gnustep-gui-0.9.5 fails to compile. Here's the stderr output: NSOpenGLContext.m: In function `+[NSOpenGLContext currentContext]': NSOpenGLContext.m:68: warning: multiple methods named `+currentContext' found ../Headers/AppKit/NSOpenGL.h:95: warning: using `+(NSOpenGLContext *)currentContext' ../Headers/AppKit/NSGraphicsContext.h:168: warning: also found `+(NSGraphicsContext *)currentContext' GSMemoryPanel.m: In function `-[GSMemoryPanel init]': GSMemoryPanel.m:208: warning: multiple methods named `-initWithIdentifier:' found ../Headers/AppKit/NSTableColumn.h:54: warning: using `-(id)initWithIdentifier:(id)anObject' ../Headers/Additions/GNUstepGUI/GSToolbar.h:86: warning: also found `-(id)initWithIdentifier:(NSString *)identifier' GSMemoryPanel.m:213: warning: multiple methods named `-initWithIdentifier:' found ../Headers/AppKit/NSTableColumn.h:54: warning: using `-(id)initWithIdentifier:(id)anObject' ../Headers/Additions/GNUstepGUI/GSToolbar.h:86: warning: also found `-(id)initWithIdentifier:(NSString *)identifier' GSMemoryPanel.m:218: warning: multiple methods named `-initWithIdentifier:' found ../Headers/AppKit/NSTableColumn.h:54: warning: using `-(id)initWithIdentifier:(id)anObject' ../Headers/Additions/GNUstepGUI/GSToolbar.h:86: warning: also found `-(id)initWithIdentifier:(NSString *)identifier' GSMemoryPanel.m:223: warning: multiple methods named `-initWithIdentifier:' found ../Headers/AppKit/NSTableColumn.h:54: warning: using `-(id)initWithIdentifier:(id)anObject' ../Headers/Additions/GNUstepGUI/GSToolbar.h:86: warning: also found `-(id)initWithIdentifier:(NSString *)identifier' GSMemoryPanel.m: In function `-[GSMemoryPanel reorder:]': GSMemoryPanel.m:415: warning: multiple methods named `-identifier' found ../Headers/AppKit/NSTableColumn.h:59: warning: using `-(id)identifier' ../Headers/Additions/GNUstepGUI/GSToolbar.h:103: warning: also found `-(NSString *)identifier' NSTextView.m:2446: warning: incomplete implementation of class `NSTextView' NSTextView.m:2446: warning: method definition for `-selectedRange' not found NSTextView.m:2446: warning: class `NSTextView' does not fully implement the `NSTextInput' protocol NSTextView.m: In function `-[NSTextView setTextContainer:]': NSTextView.m:837: warning: 'other' might be used uninitialized in this function NSTextView.m: In function `-[NSTextView setConstrainedFrameSize:]': NSTextView.m:1567: error: insn does not satisfy its constraints: (insn:HI 144 139 140 14 (set (reg:SF 66 ctr [orig:153 <variable>._maxSize.width ] [153]) (reg:SF 66 ctr [151])) 252 {*movsf_hardfloat} (nil) (nil)) NSTextView.m:1567: internal compiler error: in reload_cse_simplify_operands, at postreload.c:391 Please submit a full bug report, with preprocessed source if appropriate. See <URL:http://bugs.gentoo.org/> for instructions. Preprocessed source stored into /var/tmp/portage/gnustep-gui-0.9.5/temp/ccBcU9ml.out file, please attach this to your bugreport. make[2]: *** [shared_obj/NSTextView.o] Error 1 make[1]: *** [libgnustep-gui.all.library.variables] Error 2 make: *** [internal-all] Error 2 !!! ERROR: gnustep-base/gnustep-gui-0.9.5 failed. !!! Function egnustep_make, Line 172, Exitcode 2 !!! package make failed !!! If you need support, post the topmost build error, NOT this status message. Here's the stdout: Calculating dependencies >>> Unpacking source... >>> Unpacking gnustep-gui-0.9.5.tar.gz to /var/tmp/portage/gnustep-gui-0.9.5/work >>> Source unpacked. ./configure --prefix=/usr --host=powerpc-unknown-linux-gnu --mandir=/usr/share/man --infodir=/usr/share/info --datadir=/usr/share --sysconfdir=/etc --localstatedir=/var/lib --build=powerpc-unknown-linux-gnu --with-tiff-include=/usr/include --with-tiff-library=/usr/lib --disable-gsnd --disable-ungif --enable-libgif --enable-jpeg --enable-png --enable-cups checking build system type... powerpc-unknown-linux-gnu checking host system type... powerpc-unknown-linux-gnu checking target system type... powerpc-unknown-linux-gnu checking for powerpc-unknown-linux-gnu-gcc... powerpc-unknown-linux-gnu-gcc checking for C compiler default output file name... a.out checking whether the C compiler works... yes checking whether we are cross compiling... no checking for suffix of executables... checking for suffix of object files... o checking whether we are using the GNU C compiler... yes checking whether powerpc-unknown-linux-gnu-gcc accepts -g... yes checking for powerpc-unknown-linux-gnu-gcc option to accept ANSI C... none needed checking how to run the C preprocessor... powerpc-unknown-linux-gnu-gcc -E checking for X... libraries , headers checking for powerpc-unknown-linux-gnu-gcc... (cached) powerpc-unknown-linux-gnu-gcc checking whether we are using the GNU C compiler... (cached) yes checking whether powerpc-unknown-linux-gnu-gcc accepts -g... (cached) yes checking for powerpc-unknown-linux-gnu-gcc option to accept ANSI C... (cached) none needed checking how to run the C preprocessor... powerpc-unknown-linux-gnu-gcc -E checking for main in -lm... yes checking for rint... yes checking for rintf... yes checking for egrep... grep -E checking for ANSI C header files... yes checking for sys/types.h... yes checking for sys/stat.h... yes checking for stdlib.h... yes checking for string.h... yes checking for memory.h... yes checking for strings.h... yes checking for inttypes.h... yes checking for stdint.h... yes checking for unistd.h... yes checking jpeglib.h usability... yes checking jpeglib.h presence... yes checking for jpeglib.h... yes checking for jpeg_destroy_decompress in -ljpeg... yes checking for main in -lz... yes checking tiffio.h usability... yes checking tiffio.h presence... yes checking for tiffio.h... yes checking for TIFFReadScanline in -ltiff... yes checking for png_sig_cmp in -lpng... yes checking for DGifOpen in -lgif... yes checking for new_aspell_document_checker in -laspell... yes checking aspell.h usability... yes checking aspell.h presence... yes checking for aspell.h... yes checking for afGetVirtualFrameSize in -laudiofile... yes checking for cups-config... yes checking cups/cups.h usability... yes checking cups/cups.h presence... yes checking for cups/cups.h... yes checking for cupsServer in -lcups... yes checking for the version of gnustep-gui we are compiling... 0.9.5 configure: creating ./config.status config.status: creating config.make config.status: creating gui.make config.status: creating Headers/Additions/GNUstepGUI/GSVersion.h config.status: creating Headers/Additions/GNUstepGUI/config.h Making all in Source... make[1]: Entering directory `/var/tmp/portage/gnustep-gui-0.9.5/work/gnustep-gui-0.9.5/Source' /usr/GNUstep/System/Library/Makefiles/mkinstalldirs . mv ../Headers/Additions/GNUstepGUI/config.h . touch ./config.h Making all for library libgnustep-gui... Compiling file Functions.m ... Compiling file NSActionCell.m ... Compiling file NSAffineTransform.m ... Compiling file NSAlert.m ... Compiling file NSApplication.m ... Compiling file NSAttributedString.m ... Compiling file NSBezierPath.m ... Compiling file NSBitmapImageRep.m ... Compiling file NSBitmapImageRep+GIF.m ... Compiling file NSBitmapImageRep+JPEG.m ... Compiling file NSBitmapImageRep+PNG.m ... Compiling file NSBitmapImageRep+PNM.m ... Compiling file NSBox.m ... Compiling file NSBrowser.m ... Compiling file NSBrowserCell.m ... Compiling file NSBundleAdditions.m ... Compiling file NSButton.m ... Compiling file NSButtonCell.m ... Compiling file NSCachedImageRep.m ... Compiling file NSCell.m ... Compiling file NSClipView.m ... Compiling file NSColor.m ... Compiling file NSColorList.m ... Compiling file NSColorPanel.m ... Compiling file NSColorPicker.m ... Compiling file NSColorWell.m ... Compiling file NSComboBox.m ... Compiling file NSComboBoxCell.m ... Compiling file NSControl.m ... Compiling file NSCursor.m ... Compiling file NSCustomImageRep.m ... Compiling file NSDataLink.m ... Compiling file NSDataLinkManager.m ... Compiling file NSDataLinkPanel.m ... Compiling file NSDocument.m ... Compiling file NSDocumentController.m ... Compiling file NSDrawer.m ... Compiling file NSEPSImageRep.m ... Compiling file NSEvent.m ... Compiling file NSFileWrapper.m ... Compiling file NSFont.m ... Compiling file NSFontManager.m ... Compiling file NSFontPanel.m ... Compiling file NSForm.m ... Compiling file NSFormCell.m ... Compiling file NSGraphicsContext.m ... Compiling file NSHelpPanel.m ... Compiling file NSHelpManager.m ... Compiling file NSImage.m ... Compiling file NSImageCell.m ... Compiling file NSImageRep.m ... Compiling file NSImageView.m ... Compiling file NSInputManager.m ... Compiling file NSInputServer.m ... Compiling file NSInterfaceStyle.m ... Compiling file NSLayoutManager.m ... Compiling file NSMatrix.m ... Compiling file NSMenu.m ... Compiling file NSMenuView.m ... Compiling file NSMenuItem.m ... Compiling file NSMenuItemCell.m ... Compiling file NSMovie.m ... Compiling file NSMovieView.m ... Compiling file NSNib.m ... Compiling file NSOpenGLContext.m ... Compiling file NSOpenGLPixelFormat.m ... Compiling file NSOpenGLView.m ... Compiling file NSOpenPanel.m ... Compiling file NSOutlineView.m ... Compiling file NSPageLayout.m ... Compiling file NSPanel.m ... Compiling file NSParagraphStyle.m ... Compiling file NSPopUpButton.m ... Compiling file NSPopUpButtonCell.m ... Compiling file NSPrinter.m ... Compiling file NSPrintInfo.m ... Compiling file NSPrintOperation.m ... Compiling file NSPrintPanel.m ... Compiling file NSProgressIndicator.m ... Compiling file NSResponder.m ... Compiling file NSRulerMarker.m ... Compiling file NSRulerView.m ... Compiling file NSSavePanel.m ... Compiling file NSScreen.m ... Compiling file NSScroller.m ... Compiling file NSScrollView.m ... Compiling file NSSecureTextField.m ... Compiling file NSSelection.m ... Compiling file NSSlider.m ... Compiling file NSSliderCell.m ... Compiling file NSSound.m ... Compiling file NSSpellChecker.m ... Compiling file NSSpellServer.m ... Compiling file NSSplitView.m ... Compiling file NSStepper.m ... Compiling file NSStepperCell.m ... Compiling file NSStringDrawing.m ... Compiling file NSTabView.m ... Compiling file NSTabViewItem.m ... Compiling file NSTableColumn.m ... Compiling file NSTableHeaderView.m ... Compiling file NSTableHeaderCell.m ... Compiling file NSTableView.m ... Compiling file NSText.m ... Compiling file NSTextAttachment.m ... Compiling file NSTextContainer.m ... Compiling file NSTextField.m ... Compiling file NSTextFieldCell.m ... Compiling file NSTextStorage.m ... Compiling file NSToolbar.m ... Compiling file NSToolbarItem.m ... Compiling file NSView.m ... Compiling file NSWindow+Toolbar.m ... Compiling file NSWindow.m ... Compiling file NSWindowController.m ... Compiling file NSWorkspace.m ... Compiling file GSDisplayServer.m ... Compiling file GSFusedSilica.m ... Compiling file GSFusedSilicaContext.m ... Compiling file GSHelpManagerPanel.m ... Compiling file GSInfoPanel.m ... Compiling file GSMemoryPanel.m ... Compiling file GSSlideView.m ... Compiling file GSTextStorage.m ... Compiling file GSTrackingRect.m ... Compiling file GSServicesManager.m ... Compiling file tiff.m ... Compiling file externs.m ... Compiling file linking.m ... Compiling file GSDrawFunctions.m ... Compiling file GSDragView.m ... Compiling file GSFontInfo.m ... Compiling file GSTable.m ... Compiling file GSHbox.m ... Compiling file GSVbox.m ... Compiling file GSKeyBindingAction.m ... Compiling file GSKeyBindingTable.m ... Compiling file NSTextView.m ... make[1]: Leaving directory `/var/tmp/portage/gnustep-gui-0.9.5/work/gnustep-gui-0.9.5/Source' ...done! >>> emerge (1 of 1) gnustep-base/gnustep-gui-0.9.5 to / >>> md5 files ;-) gnustep-gui-0.9.5_pre20050312-r1.ebuild >>> md5 files ;-) gnustep-gui-0.9.4-r1.ebuild >>> md5 files ;-) gnustep-gui-0.9.5.ebuild >>> md5 files ;-) gnustep-gui-0.9.4-r2.ebuild >>> md5 files ;-) gnustep-gui-0.9.4.ebuild >>> md5 files ;-) files/gnustep-gui-0.9.4-camaelon.patch >>> md5 files ;-) files/gui-use-giflib.patch.bz2 >>> md5 files ;-) files/gui-def.patch >>> md5 files ;-) files/digest-gnustep-gui-0.9.4-r1 >>> md5 files ;-) files/digest-gnustep-gui-0.9.4-r2 >>> md5 files ;-) files/digest-gnustep-gui-0.9.4 >>> md5 files ;-) files/digest-gnustep-gui-0.9.5 >>> md5 files ;-) files/gui-gsspell.patch >>> md5 files ;-) files/digest-gnustep-gui-0.9.5_pre20050312-r1 >>> md5 src_uri ;-) gnustep-gui-0.9.5.tar.gz Here's the gcc version Reading specs from /usr/lib/gcc/powerpc-unknown-linux-gnu/3.4.4/specs Configured with: /var/tmp/portage/gcc-3.4.4-r1/work/gcc-3.4.4/configure --prefix=/usr --bindir=/usr/powerpc-unknown-linux-gnu/gcc-bin/3.4.4 --includedir=/usr/lib/gcc/powerpc-unknown-linux-gnu/3.4.4/include --datadir=/usr/share/gcc-data/powerpc-unknown-linux-gnu/3.4.4 --mandir=/usr/share/gcc-data/powerpc-unknown-linux-gnu/3.4.4/man --infodir=/usr/share/gcc-data/powerpc-unknown-linux-gnu/3.4.4/info --with-gxx-include-dir=/usr/lib/gcc/powerpc-unknown-linux-gnu/3.4.4/include/g++-v3 --host=powerpc-unknown-linux-gnu --build=powerpc-unknown-linux-gnu --enable-altivec --enable-nls --without-included-gettext --with-system-zlib --disable-checking --disable-werror --disable-libunwind-exceptions --disable-multilib --enable-java-awt=gtk --enable-languages=c,c++,objc,java,f77 --enable-shared --enable-threads=posix --enable-__cxa_atexit --enable-clocale=gnu Thread model: posix gcc version 3.4.4 (Gentoo Hardened 3.4.4-r1, ssp-3.4.4-1.0, pie-8.7.8) Reproducible: Always Steps to Reproduce: 1. emerge gnustep-gui 2. 3. Actual Results: Failed to compile gnustep-gui Expected Results: Compiled gnustep-gui Gentoo Base System version 1.6.13 Portage 2.0.51.22-r2 (default-linux/ppc/2005.1/ppc, gcc-3.4.4, glibc-2.3.4.20041102-r1, 2.6.12-gentoo-r10 ppc) ================================================================= System uname: 2.6.12-gentoo-r10 ppc 7447A, altivec supported dev-lang/python: 2.3.5-r2 sys-apps/sandbox: 1.2.12 sys-devel/autoconf: 2.13, 2.59-r6 sys-devel/automake: 1.4_p6, 1.5, 1.6.3, 1.7.9-r1, 1.8.5-r3, 1.9.6 sys-devel/binutils: 2.15.90.0.3-r5 sys-devel/libtool: 1.5.18-r1 virtual/os-headers: 2.6.11-r2 ACCEPT_KEYWORDS="ppc" AUTOCLEAN="yes" CBUILD="powerpc-unknown-linux-gnu" CFLAGS="-O2 -mtune=powerpc -pipe -maltivec -mabi=altivec" CHOST="powerpc-unknown-linux-gnu" CONFIG_PROTECT="/etc /usr/kde/2/share/config /usr/kde/3/share/config /usr/lib/X11/xkb /usr/share/config /var/qmail/control" CONFIG_PROTECT_MASK="/etc/gconf /etc/terminfo /etc/env.d" CXXFLAGS="-O2 -mtune=powerpc -pipe -maltivec -mabi=altivec" DISTDIR="/usr/portage/distfiles" FEATURES="autoconfig distlocks sandbox sfperms strict" GENTOO_MIRRORS="http://distfiles.gentoo.org http://distro.ibiblio.org/pub/Linux/distributions/gentoo" PKGDIR="/usr/portage/packages" PORTAGE_TMPDIR="/var/tmp" PORTDIR="/usr/portage" SYNC="rsync://rsync.gentoo.org/gentoo-portage" USE="ppc X alsa altivec apm bcmath berkdb bitmap-fonts blas bzip2 cdparanoia cdr crypt cups dvd dvdr dvdread eds emboss fftw flac fortran gcj gif ginac glut gnome gnustep gpm gstreamer gtk gtk2 hardened ipv6 java javascript jpeg kde lapack lesstiff libwww mbox motif mozilla mp3 mpeg ncurses nls objc offensive ogg oggvorbis opengl pam pcre pda pdflib perl png posix python qt readline sdl slang sockets spell ssl tcpd tetex threads tiff truetype truetype-fonts type1-fonts unicode usb vorbis wifi xine xml2 xmms xv zlib userland_GNU kernel_linux elibc_glibc" Unset: ASFLAGS, CTARGET, LANG, LC_ALL, LDFLAGS, LINGUAS, MAKEOPTS, PORTDIR_OVERLAY
I don't know much about the hardened toolchain; adding 'hardened' to the CC-list. This bug definitely caused GCC to explode, and it seems to be to be related to hardened added functionality. What I would like to know is if the hardened-gcc stuff is actively tested with ObjC code from 'upstream', or even ever tested? If not, is there a way to restrict use of a hardened-enabled gcc from being beinh used from ebuilds? (I'm guessing not really.) Because I don't know if ObjC really works with 'hardened', bugs in GNUstep or not, I'm not sure if ObjC code itself is simply likely to fail. Joe: could you use gcc-config to use the non-hardened version of the compiler? Does that let allow the package to continue compiling? Also, the error output notes that the failing pre-processed source is here: "/var/tmp/portage/gnustep-gui-0.9.5/temp/ccBcU9ml.out" -- could you please post that? (maybe compress it and make it available somewhere, or here)
To verify whether the bug is triggered by the hardened compiler, use gcc-config to switch to the 'vanilla' compiler (do 'gcc-config -l' to see) and emerge this one package with that (don't forget to switch back afterwards). If it works with vanilla, but fails with the hardened compiler, then you can point the finger at different defaults enacted by the hardened gcc. If this proves to be the case, try with the hardenednopie and hardenednossp variants, which helps narrow things down a bit.
The build still fails when I use gcc-config powerpc-unknown-linux-gnu-3.4.4-vanilla. I've placed the preprocessed source for the build using the normal, hardened compiler at http://www.owlnet.rice.edu/~jgy4865/ccBcU9ml.out The preprocessed source for the build using the vanilla compiler is at http://www.owlnet.rice.edu/~jgy4865/ccleLhy8.out I'll go ahead and wipe this version of gcc off my computer and try a completely unhardened version of gcc to see what happens.
I recompiled gcc, glibc, glib, make, gnustep-make, gnustep-base, gnustep-gui in that order with hardened removed from the USE flags. I still receive an internal compiler error when compiling gnustep-gui. I've posted the current preprocessed source at http://www.owlnet.rice.edu/~jgy4865/ccBl9iKA.out I'm currently using Reading specs from /usr/lib/gcc/powerpc-unknown-linux-gnu/3.4.4/specs Configured with: /var/tmp/portage/gcc-3.4.4-r1/work/gcc-3.4.4/configure --prefix=/usr --bindir=/usr/powerpc-unknown-linux-gnu/gcc-bin/3.4.4 --includedir=/usr/lib/gcc/powerpc-unknown-linux-gnu/3.4.4/include --datadir=/usr/share/gcc-data/powerpc-unknown-linux-gnu/3.4.4 --mandir=/usr/share/gcc-data/powerpc-unknown-linux-gnu/3.4.4/man --infodir=/usr/share/gcc-data/powerpc-unknown-linux-gnu/3.4.4/info --with-gxx-include-dir=/usr/lib/gcc/powerpc-unknown-linux-gnu/3.4.4/include/g++-v3 --host=powerpc-unknown-linux-gnu --build=powerpc-unknown-linux-gnu --enable-altivec --enable-nls --without-included-gettext --with-system-zlib --disable-checking --disable-werror --disable-libunwind-exceptions --disable-multilib --enable-java-awt=gtk --enable-languages=c,c++,objc,java,f77 --enable-shared --enable-threads=posix --enable-__cxa_atexit --enable-clocale=gnu Thread model: posix gcc version 3.4.4 (Gentoo 3.4.4-r1, ssp-3.4.4-1.0, pie-8.7.8) [1] powerpc-unknown-linux-gnu-3.4.4 * [2] powerpc-unknown-linux-gnu-3.4.4-hardened [3] powerpc-unknown-linux-gnu-3.4.4-hardenednopie [4] powerpc-unknown-linux-gnu-3.4.4-hardenednopiessp [5] powerpc-unknown-linux-gnu-3.4.4-hardenednossp
I rebuilt my entire system using emerge -e world with the nonhardened version of gcc and hardened removed from the USE flags. I still receive the same error. I've placed the processed source at www.owlnet.rice.edu/~jgy4865/ccByDtu8.out
Can confirm problem. Attached compiler output, gcc -v, and preprocessed sources, appears to be same error (compiler error in NSTextView) Thanks!
did not mention, never ran with hardened toolkit.
Created attachment 78348 [details] second set of error logs second set of error logs for bug confirmation
Swapping hardened for toolchain, since this turns out to happen on the vanilla compiler as well.
This appears to be fixed in gcc-3.4.5. Can someone please verify this for me?
Created attachment 78475 [details] Smaller testcase Here is a much smaller testcase to use. Using gcc-3.4.4 it should ICE if you do: gcc -c -O2 testcase.x.mi. Doing the same with 3.4.5 should be successful. It is for me atleast :)
Works for me with 3.4.5