Gnustep-base will not emerge. The specific error is "i686-pc-linux-gnu-gcc: -pg and -fomit-frame-pointer are incompatible" It fails when compiling GSCategories.m. Reproducible: Always Steps to Reproduce: 1. 2. 3.
Making all for subproject Additions... Compiling file GSCategories.m ... cc1: warning: command line option "-fgnu-runtime" is valid for ObjC/ObjC++ but not for C cc1: warning: command line option "-fconstant-string-class=NSConstantString" is valid for ObjC/ObjC++ but not for C i686-pc-linux-gnu-gcc: -pg and -fomit-frame-pointer are incompatible make[3]: *** [shared_profile_obj/GSCategories.o] Error 1 make[2]: *** [Additions.all.subproject.variables] Error 2 make[2]: Leaving directory `/var/tmp/portage/gnustep-base-1.10.2_pre20050312/work/gnustep/core/base/Source/Additions' make[1]: *** [libgnustep-base.all.library.variables] Error 2 make[1]: Leaving directory `/var/tmp/portage/gnustep-base-1.10.2_pre20050312/work/gnustep/core/base/Source' make: *** [internal-all] Error 2 !!! ERROR: gnustep-base/gnustep-base-1.10.2_pre20050312 failed. !!! Function egnustep_make, Line 163, Exitcode 2 !!! package make failed !!! If you need support, post the topmost build error, NOT this status message.
Please add on your emerge --info as requested. gnustep herd: -fomit-frame-pointer filtration?
Portage 2.0.51.19 (default-linux/x86/2004.3, gcc-3.4.3-20050110, glibc-2.3.4.200 50125-r1, 2.6.10-jr1 i686) ================================================================= System uname: 2.6.10-jr1 i686 Intel(R) Pentium(R) M processor 1300MHz Gentoo Base System version 1.6.10 Python: dev-lang/python-2.3.5 [2.3.5 (#1, Feb 24 2005, 23:41:10)] ccache version 2.3 [enabled] dev-lang/python: 2.3.5 Gentoo Base System version 1.6.10 Portage 2.0.51.19 (default-linux/x86/2004.3, gcc-3.4.3-20050110, glibc-2.3.4.20050125-r1, 2. 6.10-jr1 i686) ================================================================= System uname: 2.6.10-jr1 i686 Intel(R) Pentium(R) M processor 1300MHz Python: dev-lang/python-2.3.5 [2.3.5 (#1, Feb 24 2005, 23:41:10)] ccache version 2.3 [enabled] dev-lang/python: 2.3.5 sys-devel/autoconf: 2.59-r6, 2.13 sys-devel/automake: 1.8.5-r3, 1.5, 1.7.9-r1, 1.6.3, 1.4_p6, 1.9.5 sys-devel/binutils: 2.15.92.0.2-r6 sys-devel/libtool: 1.5.14 virtual/os-headers: 2.6.8.1-r2 ACCEPT_KEYWORDS="x86 ~x86" AUTOCLEAN="yes" CFLAGS="-O3 -march=pentium-m -msse -msse2 -mmmx -pipe -fomit-frame-pointer -mfpmath=sse" CHOST="i686-pc-linux-gnu" CONFIG_PROTECT="/etc /usr/kde/2/share/config /usr/kde/3.3/env /usr/kde/3.3/share/config /usr /kde/3.3/shutdown /usr/kde/3.4/env /usr/kde/3.4/share/config /usr/kde/3.4/shutdown /usr/kde/ 3/share/config /usr/lib/X11/xkb /usr/lib/mozilla/defaults/pref /usr/share/config /usr/share/ texmf/dvipdfm/config/ /usr/share/texmf/dvips/config/ /usr/share/texmf/tex/generic/config/ /usr/share/texmf/tex/platex/config/ /usr/share/texmf/xdvi/ /var/qmail/control" CONFIG_PROTECT_MASK="/etc/afs/C /etc/afs/afsws /etc/gconf /etc/terminfo etc/env.d" CXXFLAGS="-O3 -march=pentium-m -msse -msse2 -mmmx -pipe -fomit-frame-pointer -mfpmath=sse" DISTDIR="/usr/portage/distfiles" FEATURES="autoaddcvs autoconfig ccache distlocks sandbox sfperms" GENTOO_MIRRORS="http://gentoo.mirrors.pair.com/" MAKEOPTS="-j2" PKGDIR="/usr/portage/packages" PORTAGE_TMPDIR="/var/tmp" PORTDIR="/usr/portage" SYNC="rsync://rsync.gentoo.org/gentoo-portage" USE="x86 X X509 Xaw3d a52 aac aalib accessibility acl acpi acpi4linux adns afs aim alsa apm arts audiofile avi bash-completion bcmath berkdb bidi bitmap-fonts bzip2 bzlib calendar ccache cdb cdda cddb cdio cdparanoia cdr cdrom cpdflib crypt cscope ctype curl curlwrappers dga dio directfb divx4linux doc dvb dvd dvdr ecc emacs emboss encode esd evo exif fam fbcon fdftk ffmpeg fftw flac flash font-server foomaticdb fortran ftp gdbm ggi gif gimpprint ginac gnome gnustep gpm gtk gtk2 gtkhtml hal i8x0 iconv icq imagemagick imap imlib ipv6 jabber java jpeg kerberos krb4 libcaca libedit libg++ libwww lirc live mad maildir matroska mcal mhash mikmod mime ming mmap mmx mng monkey motif mozcalendar mozdevelop mozilla moznocompose moznomail mozp3p mozplaintext mozsvg mozxmlterm mp3 mpeg mpi msn ncurses nethack nls nptl objc offensive ogg oggvorbis openal opengl oss pam pcmcia pcntl pcre pda pdflib perl png pnp posix prelude profile python qt quicktime readline sasl sdl slang sockets speex spell sse ssl stream svg tcltk tcpd tetex theora tiff truetype truetype-fonts type1-fonts unicode usb vcd videos vidix vlm wmf wxwindows xine xinerama xml xml2 xmms xosd xpm xprint xv xvid xvmc yahoo zlib" Unset: ASFLAGS, CBUILD, CTARGET, LANG, LC_ALL, LDFLAGS, PORTDIR_OVERLAY
gnustep.eclass now filters -fomit-frame-pointer. Marking bug as fixed; after an update (let the mirrors sync), if it turns out to be something more esoteric, feel free to reopen the bug. Thanks for the report (I never use -fomit-frame-pointer ... 'cause it breaks things. ;-))
Interestingly enough, this error still seems to happen, whether or not I have --fomit-frame-pointer in my cflags. I will attach the full emerge results.
emerge gnustep-base Calculating dependencies ...done! >>> emerge (1 of 1) gnustep-base/gnustep-base-1.10.2_pre20050312 to / >>> Unpacking source... * Fetching CVS module gnustep/core/base into /usr/portage/distfiles/cvs-src/savannah.gnu.org-gnustep ... * Warning: The SSH host key of the remote server will not be verified. * A temporary known hosts list will be used. * Running cvs -q -d ":ext:anoncvs@savannah.gnu.org:/cvsroot/gnustep" update -dP -D 20050312 gnustep/core/base Warning: Permanently added 'savannah.gnu.org,199.232.41.3' (RSA) to the list of known hosts. * Copying gnustep/core/base from /usr/portage/distfiles/cvs-src/savannah.gnu.org-gnustep ... * CVS module gnustep/core/base is now in /var/tmp/portage/gnustep-base-1.10.2_pre20050312/work * Applying base-user-defaults.patch-1.10.2_pre20050312 ... [ ok ] >>> Source unpacked. ./configure --prefix=/usr --host=i686-pc-linux-gnu --mandir=/usr/share/man --infodir=/usr/share/info --datadir=/usr/share --sysconfdir=/etc --localstatedir=/var/lib --disable-ffcall --enable-libffi --with-ffi-library=/usr/lib/libffi --with-ffi-include=/usr/include/libffi --with-xml-prefix=/usr --with-gmp-include=/usr/include --with-gmp-library=/usr/lib configure: WARNING: If you wanted to set the --build type, don't use --host. If a cross compiler is detected then cross compile mode will be used. checking build system type... i686-pc-linux-gnu .... configure: creating ./config.status config.status: creating config.mak config.status: creating base.make config.status: creating Headers/Additions/GNUstepBase/GSConfig.h config.status: creating Headers/Additions/GNUstepBase/preface.h config.status: creating Headers/Additions/GNUstepBase/config.h configure: configuring in Source/mframe configure: running /bin/sh './configure' --prefix=/usr '--prefix=/usr' '--host=i686-pc-linux-gnu' '--mandir=/usr/share/man' '--infodir=/usr/share/info' '--datadir=/usr/share' '--sysconfdir=/etc' '--localstatedir=/var/lib' '--disable-ffcall' '--enable-libffi' '--with-ffi-library=/usr/lib/libffi' '--with-ffi-include=/usr/include/libffi' '--with-xml-prefix=/usr' '--with-gmp-include=/usr/include' '--with-gmp-library=/usr/lib' 'CFLAGS=-O3 -march=pentium-m -msse -msse2 -mmmx -pipe -mfpmath=sse' 'host_alias=i686-pc-linux-gnu' --cache-file=/dev/null --srcdir=. configure: WARNING: If you wanted to set the --build type, don't use --host. If a cross compiler is detected then cross compile mode will be used. checking build system type... i686-pc-linux-gnu checking host system type... i686-pc-linux-gnu checking target system type... i686-pc-linux-gnu Using information from i386/linux-gnu. configure: creating ./config.status configure: configuring in SSL configure: running /bin/sh './configure' --prefix=/usr '--prefix=/usr' '--host= i686-pc-linux-gnu' '--mandir=/usr/share/man' '--infodir=/usr/share/info' '--datadir=/usr/share' '--sysconfdir=/etc' '--localstatedir=/var/lib' '--disable-ffcall' '--enable-libffi' '--with-ffi-library=/usr/lib/libffi' '--with-ffi-include=/usr/include/libffi' '--with-xml-prefix=/usr' '--with-gmp-include=/usr/include' '--with-gmp-library=/usr/lib' 'CFLAGS=-O3 -march=pentium-m -msse -msse2 -mmmx -pipe -mfpmath=sse' 'host_alias=i686-pc-linux-gnu' --cache-file=/dev/null --srcdir=. configure: WARNING: If you wanted to set the --build type, don't use --host. If a cross compiler is detected then cross compile mode will be used. checking build system type... i686-pc-linux-gnu .... configure: creating ./config.status config.status: creating config.mak config.status: creating config.h Making all in Source... make[1]: Entering directory `/var/tmp/portage/gnustep-base-1.10.2_pre20050312/work/gnustep/core/base/Source' rm -f dynamic-load.h cp simple-load.h dynamic-load.h /usr/GNUstep/System/Library/Makefiles/mkinstalldirs . mv mframe/mframe.h . touch ./mframe.h /usr/GNUstep/System/Library/Makefiles/mkinstalldirs . mv ../Headers/Additions/GNUstepBase/config.h . touch ./config.h /usr/GNUstep/System/Library/Makefiles/mkinstalldirs . mv ../Headers/Additions/GNUstepBase/GSConfig.h . touch ./GSConfig.h Making all in subprojects of library libgnustep-base... make[2]: Entering directory `/var/tmp/portage/gnustep-base-1.10.2_pre20050312/work/gnustep/core/base/Source/Additions' Making all for subproject Additions... Compiling file GSCategories.m ... cc1: warning: command line option "-fgnu-runtime" is valid for ObjC/ObjC++ but not for C cc1: warning: command line option "-fconstant-string-class=NSConstantString" is valid for ObjC/ObjC++ but not for C i686-pc-linux-gnu-gcc: -pg and -fomit-frame-pointer are incompatible make[3]: *** [shared_profile_obj/GSCategories.o] Error 1 make[2]: *** [Additions.all.subproject.variables] Error 2 make[2]: Leaving directory `/var/tmp/portage/gnustep-base-1.10.2_pre20050312/work/gnustep/core/base/Source/Additions' make[1]: *** [libgnustep-base.all.library.variables] Error 2 make[1]: Leaving directory `/var/tmp/portage/gnustep-base-1.10.2_pre20050312/work/gnustep/core/base/Source' make: *** [internal-all] Error 2 !!! ERROR: gnustep-base/gnustep-base-1.10.2_pre20050312 failed. !!! Function egnustep_make, Line 163, Exitcode 2 !!! package make failed !!! If you need support, post the topmost build error, NOT this status message.
Even after changing my cflags in make.conf to: CFLAGS="-march=pentium-m -fno-omit-frame-pointer -O0 -msse -msse2 -mmmx -pipe -mfpmath=sse" I still cannot emerge gnustep-base.
Created attachment 54172 [details] /usr/GNUstep/System/Library/Makefiles/config.make This is my /usr/GNUstep/System/Library/Makefiles/config.make. This might also be the source of the problem, given that its in the $(GNUSTEP_MAKEFILES) directory.
The /usr/GNUstep/System/Library/Makefiles/config.make OPTFLAG setting was the culprit. It seems that it must have been set to a bad value with a previous emerge, and it doesn't get reset. Can this be fixed?
It seems to me that this is a problem in gnustep-base/gnustep-make.
Here's what I've figured out. The gnustep-make installation on my system was from before the change in the ebuild. The file /usr/GNUstep/System/Library/Makefiles/config.make was created before the --fomit-frame-pointer filtering started. Since gnustep-make emerged successfully though, it wasn't replaced when the new ebuild was created, and the value for OPTFLAG in config.make remained. This prevented any other gnustep ebuilds from being emerged. Emerging gnustep-make again fixed the problem.
Could this problem be fixed with a -r version bump?
Wow -- this is really interesting -- at first my other thought about it now seems unrelated to a fix. Likely I'll see if passing in "OPTFLAG" to the make call resets things ... 'cause if things now work for you, w/o omit-frame-pointer, but gnustep-make "got set" with that, I'll have to figure out how to unset things. *sigh* icky bug, but thanks for this report
okay, bumped appropriate versions of gnustep-make to propogate gnustep.eclass changes. Closing this bug, as things should be fixed now, but I'm going to keep my eye out for a better fix.