GMSoft and i talked about moving the 64bit.eclass:64bit() to return only "true" on 64bit architectures. Currently, 64bit() returns true on all 64bit archs _and_ on hppa, as they depend on all those -fPIC Makefile patches, too. For that purpose I made a list of all occurences of 64bit and fPIC in the whole tree; will attach it to this bug. TODO: 1) make sure there is no: "64bit && <fpic-patch>"; move to unconditional epatch. Gentoo Policy sais to apply -fPIC to all shared libraries, regardless of ${ARCH}. In case the ebuild both produces executables and binaries, a patch to the ebuild's Makefile(s) is neccessary. 2) move "use [amd64, *64] && <some-64bit-patch" to either "64bit && epatch" in case the patch breaks 32bit archs or to an unconditional epatch. 3) remove hppa from 64bit().
Created attachment 34193 [details] List of 64bit
Created attachment 34194 [details] List of -fPIC
...got a patch to make all those fPIC ones do (64-bit || use hppa)? also... doesnt hppa have 64bit? we can remove this if hppa doesnt mind and all these ebuilds use the above syntax. i strongly agree that if a function is named 64-bit, it damn well better be returning true only on 64bit archs...
Created attachment 38481 [details] Updated list of ebuild which uses 64-bit.eclass Ok, let's start by this list.
Here is what was done : ##./sys-apps/shadow/shadow-4.0.4.1-r1.ebuild:inherit eutils libtool gnuconfig 64-bit flag-o-matic #./app-text/chasen/chasen-2.3.3-r2.ebuild:inherit perl-module 64-bit flag-o-matic ##./dev-libs/DirectFB/DirectFB-0.9.20-r1.ebuild:inherit eutils 64-bit #./dev-libs/gmetadom/gmetadom-0.2.1-r1.ebuild:inherit 64-bit flag-o-matic eutils ##./dev-libs/libaio/libaio-0.3.15.ebuild:inherit eutils 64-bit ##./media-gfx/sodipodi/sodipodi-0.34.ebuild:inherit gnome2 64-bit eutils #./media-libs/libsamplerate/libsamplerate-0.1.1.ebuild:inherit 64-bit ##./media-libs/tse3/tse3-0.2.7.ebuild:inherit eutils 64-bit ##./media-sound/cheesetracker/cheesetracker-0.9.9.ebuild:inherit 64-bit eutils ##./media-video/dvdauthor/dvdauthor-0.6.10.ebuild:inherit eutils 64-bit #./sys-libs/ncurses/ncurses-5.4-r4.ebuild:inherit eutils flag-o-matic 64-bit gnuconfig ##./x11-libs/libast/libast-0.5-r2.ebuild:inherit 64-bit eutils #./x11-wm/waimea/waimea-0.5.0_pre040506.ebuild:inherit eutils 64-bit # done ## unrelated to -fPIC or newer version does not have it Now, 64-bit isn't used anymore for -fPIC. hppa will be removed from the 64-bit.eclass when I'll mark stable ncurses-5.4-r5 on hppa.
# These two ebuilds are the only ones showing up for me that # are conditionally patched right now with the following commands. wget -q -O - 'http://bugs.gentoo.org/attachment.cgi?id=4194' | grep -v filter-flags | grep patch | grep '&&' media-video/mjpegtools/mjpegtools-1.6.2-r1.ebuild: [ "$ARCH" != x86 ] && epatch ${FILESDIR}/${P}-fPIC.patch net-www/gplflash/gplflash-0.4.10-r3.ebuild: use amd64 && epatch ${FILESDIR}/${P}-fPIC.patch -------------------------------------------------------------------------------- # To help narrow your list of packages down I did. wget -q -O - 'http://bugs.gentoo.org/attachment.cgi?id=34194'|grep -v filter-flags|grep patch|grep -v '#'|cut -d : -f 1|cut -d / -f 0-2|sort -u # And I don't see anything on this bug that is directly related to # the toolchain@. Clue me in? Anything we need to change? -------------------------------------------------------------------------------- # Kugelfang: Narrow down the official list of fPIC down a little please. --------------------------------------------------------------------------------
What about use arch && append-flags -fPIC ? This should be unconditional too or better a patch to -fPIC only libs. for this I used "find . -name \*.ebuild | xargs grep -B 3 -i fpic | less" It's a bit longer but I found thoses ebuild which either conditionaly use append-flags -fPIC or apply conditionaly a fPIC patch. sys-apps/filelight sys-apps/pciutils app-misc/krusader app-sci/blas app-sci/lapack app-text/gpdf dev-lang/perl dev-lang/python dev-libs/ffcall dev-libs/nettle dev-perl/PDL dev-tcltk/tclx dev-util/cvs dev-util/kdevelop mail-client/evolution mail-client/mozilla-thunderbird media-gfx/imagemagick media-libs/flac media-libs/gst-plugins media-libs/clibpdf media-libs/imlib2 media-libs/jbigkit media-libs/libcdaudio media-libs/libddmpeg media-libs/libmatroska media-libs/libmpeg2 media-libs/libmpeg3 media-libs/plib media-plugins/live media-video/ffmpeg media-video/transcode net-dialup/wvdial net-dns/bind-tools net-ftp/kbear net-im/silc-toolkit net-irc/bitchx net-irc/ctrlproxy net-libs/c-client net-libs/openh323 net-mail/checkpassword net-misc/hylafax net-wireless/bluez-libs net-www/gplflash net-www/mozilla net-www/mozilla-firefox sys-devel/patch sys-libs/libcap x11-wm/fvwm This doesn't contain ebuild which unconditionaly use append-flags -fPIC when a fPIC specific patch would be better. I'll try to produce fPIC patch for the ebuild listed above or at least use fPIC unconditionally.
I worked a bit on Guy's list: app-misc/krusader - -fPIC no longer necessary (Potential problem w/ libtool/gnuconfig on amd64 which is now solved ?) app-sci/blas - Will be removed from tree soon. Replacement is app-sci/blas-{atlas, reference} app-sci/lapack - see above dev-lang/perl - Guy: this doesn't seem to be necessary anymore ! Can you test just w/o -fPIC on hppa ? See ChangeLog Entry for dcccflags. dev-libs/ffcall - Already OK. Only library here, no executables dev-util/kdevelop - fixed media-gfx/imagemagick - No problems in the latest stable version(all arches). Old ebuild will be removed. -- solar: I remove toolchain@g.o now. amd64, alpha and hppa can handle this. Still can't remember why i CC'ed you guys in the first place ! ;-)
And of course, I started to work on thoses at the top of the list :) I already commited theses : sys-apps/filelight sys-apps/pciutils app-sci/blas and was working on other in your "not todo" list. I'll continue my work and notice you if I find a suspect ebuild :)
app-text/gpdf - kloeri tested and removed fPIC not necessary anymore dev-lang/python - needs no -fPIC on amd64. dev-libs/nettle - -fPIC no longer necessary (Potential problem w/ libtool/gnuconfig on amd64 which is now solved ?) dev-perl/PDL - fixed dev-tcltk/tclx - -fPIC no longer necessary mail-client/mozilla-thunderbird - works w/o append-flags -fPIC on amd64.
x11-wm/fvwm needs checking for alpha it compiled without -fPIC on hppa. sys-lib/libcap doesn't have -fPIC in the latest version sys-devel/patch has a hardened/amd64 stuff which may need checking net-wireless/bluez-libs needs checking on amd64. works on my hppa without -fPIC net-irc/bitchx did a nice fPIC.patch
dev-util/cvs I don't think it's still needed for alpha -> needs test media-libs/flac newer version is already inconditionnal
Little summary of what still need to be done. Alpha and amd64, can you test thoses plz ? Need amd64 checking : sys-devel/patch net-wireless/bluez-libs Need alpha checking : x11-wm/fvwm dev-util/cvs TODO : mail-client/evolution media-libs/gst-plugins media-libs/clibpdf media-libs/imlib2 media-libs/jbigkit media-libs/libcdaudio media-libs/libddmpeg media-libs/libmatroska media-libs/libmpeg2 media-libs/libmpeg3 media-libs/plib media-plugins/live media-video/ffmpeg media-video/transcode net-dialup/wvdial net-dns/bind-tools net-ftp/kbear net-im/silc-toolkit net-irc/ctrlproxy net-libs/c-client net-libs/openh323 net-mail/checkpassword net-misc/hylafax net-www/gplflash net-www/mozilla net-www/mozilla-firefox
The fPIC thing in sys-devel/patch was done to solve an amd64/hardened bug. I'll ask lv if it is still necessary in 2.5.9. As for bluez-libs: I introduced that -fPIC there myself for version 2.5 when the shared libs didn't get build with it. 2.10 builds object files for shared and static libs now in separate directories. The sed-fPIC line has already been removed.
net-misc/hylafax is done. Btw latest version of if is already applying it unconditionally.
x11-wm/fvwm and dev-util/cvs is fixed on alpha.
hppa moved out of 64bit(), the list is horribly messy and last activity was half a year ago.. closing as fixed, i don't think we still need this bug. feel free to reopen ;)
how about we close the bug when we remove the 64-bit.eclass
only rxvt-unicode (Bug 91511) and dev-lang/R (Bug 91512) use the 64-bit eclass anymore ive updated the 64-bit function to call 'die' if $PN != rxvt-unicode and $PV != R
vapier: this bug never wanted to remove the 64bit.eclass. all we wanted is that only 64bit arches get a 64bit() == true. it used to also return true on hppa, because hppa relies on -fPIC patches too. this misbehaviour was corrected, so i can't see a reason to close the bug.
well regardless, the 64bit eclass is an ugly hack which is plain wrong only two packages are left which use it and once those are fixed i'll punt the eclass