# $NetBSD: HACKS,v 1.1 2002/09/19 13:15:38 lukem Exp $ # # This file is intended to document workarounds for currently unsolved # (mostly) compiler bugs. # # Format: # hack title # cdate creation date # mdate mod date # who responsible developer # port ... # affected ports, space separated, if not "all" # file affected file : revision : line from : line to # affected files and revision and line numbers describing hack # multiple lines if necessary. # pr NNNN ... # problem reports this hack works around, if known. Space # separated. # regress src/regress/directory/where/test/found # regression test directories, if available. # descr # insert short informal description (multi-line). (Longer ones # should be in the PR database. More formal descriptions might # be in the regress tree. See above). # kcah # closing bracket. # # this is a comment. hack gcc 2.95.3/alpha c++ -O2 bug cdate Fri Aug 16 06:38:16 EDT 2002 who dmcmahill port alpha file print/cjk-lyx/patches/patch-ab : 1.2 file print/cjk-lyx/patches/patch-ad : 1.1 file print/cjk-lyx/patches/patch-ae : 1.1 file print/cjk-lyx/patches/patch-af : 1.1 descr Assembler runs forever and never returns with -O2 on some files. kcah hack gcc 2.95.3/alpha -O2 bug cdate Sun Aug 11 12:39:46 EDT 2002 who dmcmahill port alpha file wm/flubox/patches/patch-ab : 1.3 descr Assembler runs forever and never returns with -O2 on some files. kcah hack gcc 2.95.3/m68k -O2 bug cdate Fri Jul 19 04:33:29 UTC 2002 who fredb port mac68k, amiga file graphics/gdk-pixbuf/patches/patch-aa : 1.3 descr pixops.c gives 'Internal compiler error' with -O2 (but not -O), on m68k only. The exact error message is reproduced in the patch. kcah hack gas 2.11.2 commutative constraint bug cdate Fri May 10 04:51:29 UTC 2002 who fredb port mac68k file devel/gmp/patches/patch-aa : 1.7 descr The __asm__() in longlong.h fails to assemble on m68k with an "unrecognized instruction" error, unless the commutative constraint ('%') is removed (which makes it *more* constrained). kcah hack gcc 2.95.3 -O2 bug cdate Thu Apr 18 15:42:57 UTC 2002 who fredb, dmcmahill port alpha, mac68k file print/lyx/patches/patch-ab : 1.2 file print/lyx/patches/patch-ac : 1.1 file print/lyx/patches/patch-ae : 1.1 descr lyxfunc.C causes 'Internal compiler error' with -O2 (but not -O). The exact error message is reproduced in the patch. Various other files cause the assembler to run forever (well, I gave up after several hours) on netbsd-1.5.3/alpha using gcc-2.95.3 and -O2. kcah hack cc -O* bug mdate 29 Dec 2001 who abs port arm32 file audio/libvorbis/Makefile : 1.12 : 20 : 28 descr floor1.c causes Internal compiler error with egcs-2.91.66 19990314 (shipped with 1.5.2) kcah hack cc -O* bug mdate 10 Oct 2001 who abs port arm32 file net/djbdns/Makefile : 1.14 : descr various files go into infinite loop if optimisation enabled in egcs-2.91.66 19990314 (shipped with 1.5.2) kcah hack cc -O* bug mdate 03 Oct 2001 who abs port arm32 file net/ucspi-tcp/Makefile : 1.7 : descr various files go into infinite loop if optimisation enabled in egcs-2.91.66 19990314 (shipped with 1.5.2) kcah hack cc -O* bug mdate 23 Aug 2001 who abs port sparc64 file graphics/tiff/patches/patch-aa : 1.3 : 52 : 58 descr on tif_dirread.c -O[12] causes the compiler to abort kcah hack cc -O* bug cdate 08 Nov 2000 mdate 10 Jan 2002 who abs port arm32 arm file benchmarks/lmbench/patches/patch-aa : 1.2 : file benchmarks/lmbench/Makefile : 1.9 : descr on certain c files, using -O[1-3] will cause the arm32 cc1 to run forever. reported to GCC people as PR optimization/2391. kcah hack cc -O* bug mdate 18 May 2001 who abs file x11/xscreensaver/distinfo : 1.2 : file x11/xscreensaver/patches/patch-ab : 1.7 : descr on distort.c -O[12] causes the compiler to abort kcah hack c++ -O* bug mdate 02 Jun 2000 who dmcmahill file audio/festival/patches/patch-ai : 1.2 : file audio/festival/patches/patch-aj : 1.1 : file audio/festival/patches/patch-ak : 1.1 : file audio/festival/patches/patch-al : 1.1 : file cad/verilog/patches/patch-ad : 1.3 : file cad/verilog-current/patches/patch-ad : 1.3 : file cad/vipec/patches/patch-ac : 1.4 : file emulators/stella/patches/patch-ac : 1.3 : 36 : 43 file graphics/kdegraphics/patches/patch-af : 1.5 file graphics/xpdf/Makefile : 1.18: 27 file graphics/xpdf/patches/patch-aa : 1.3 file math/yacas/patches/patch-ac : 1.1.1.1 : file x11/glclock/Makefile : 1.3 : 18 : 20 file x11/windowmaker/Makefile : 1.51 : 39 : 42 pr 9453 descr on certain c++ files, using -O[1-3] will cause cc1plus to run forever. On other files, c++ -O[1-3] will cause the assembler to run forever. This problem is noted on pmax and sparc (NetBSD-1.4.*) with gcc version egcs-2.91.60 19981201 (egcs-1.1.1 release) evidently this problem also exists on arm32. kcah hack mac68k-jade mdate 29 Mar 2001 who hubertf port mac68k file textproc/jade/patches/patch-aa: 1.1 : 1 : 999 descr jade on mac68k seems to dump core under certain conditions, the patch was sent in by "Kogule, Ryo" via tech-pkg. The subject of the thread is "Jade doesn't work" It is suspected that the patch really works around a bug in the toolchain. kcah hack perl5-base mdate 12 Apr 2001 who manu port all Checking in perl5-base/patches/patch-ag: 1.2 : 1 : 999 descr The Xerces-Perl module is implemented as a shared object. It needs some symbols from libgcc.a, such as __eh_alloc. It's not possible to link the xerces-P shared object with libgcc.a, because libgcc.a is not compiled with -fPIC. Hence we need to have the missing symbols in the Perl executable. This hack includes the whole libgcc.a in the Perl executable, and links with c++ so that some mandatory symbols such as __pure_virtual are also included. It should go away with GCC-3.0, or if we make a libgcc.so on day. kcah hack gcc-2.95.3 -O* bug mdate 12 Feb 2002 who mrauch port i386 file devel/pth/Makefile : 1.37 : 20 : 22 descr OpenOffice segfaults after some time in the pthread library with a completely thrashed stack. Removing optimization when building pth (-O0) avoids this problem. kcah hack binutils-2.11.2 ld versioned symbols bug cdate 26 Feb 2002 who mrauch file misc/openoffice/patches/patch-dj file misc/openoffice/patches/patch-dk descr Using versioned symbols the special symbol _etext can end up in the shared library with a junk value for the version string instead of "0" for no version. Sometimes it is sufficient to reorder the -l flags on the link line but the general hack is to disable versioned symbols. kcah hack sparc64-kth-krb cdate 29 Mar 2002 who hubertf file security/kth-krb4/Makefile descr This package hangs when compiling one of the files with the compiler that comes with 1.5ZC. The compiler needs to be killed manually - the package is marked as interactive on sparc64 for that reason. kcah hack cc -O* bug mdate 04 Jun 2002 who cjep port arm file net/ucspi-tcp/Makefile : 1.11 : descr some compilations go into infinite loop if optimisation enabled in gcc-2.95.3 20010315 (release) (NetBSD nb2) as shipped with a releng snapshot (May 31st) of NetBSD-1.6_BETA1. See also abs's entry above. First hang at: ( ( ./compile tryulong32.c && ./load tryulong32 && ./tryulong32 ) \ >/dev/null 2>&1 && cat uint32.h2 || cat uint32.h1 ) > uint32.h kcah hack cc -O* bug mdate 04 Jun 2002 who cjep port arm file net/djbdns/Makefile : 1.19 : descr various files go into infinite loop if optimisation enabled in gcc-2.95.3 20010315 (release) (NetBSD nb2) as shipped with a releng snapshot (May 31st) of NetBSD-1.6_BETA1. See also abs's entry above. First hang as ucspi-tcp. kcah hack cc -O* bug mdate 06 Jun 2002 who cjep port arm file emulators/stella/Makefile : 1.5 : descr Usual arm optimisation problem. The first problem is at: c++ -c -O2 -fno-rtti -I. -I../emucore -I../emucore/m6502/src \ -I../emucore/m6502/src/bspf/src -I../ui/x11 -I../ui/sound \ -I/usr/X11R6/include -DBSPF_UNIX ../emucore/m6502/src/M6502.cxx kcah hack cc -O* bug mdate 07 Jun 2002 who cjep port arm file databases/cdb/Makefile : 1.3 : descr Usual arm optimisation problem. The first problem occurs around ( cat warn-auto.sh; echo exec "`head -1 conf-cc`" '-c ${1+"$@"}' \ ) > compile chmod 755 compile kcah hack gcc 2.95.3 -O2 bug mdate 22 Jun 2002 who jlam port sparc64 file x11/openmotif/patches/patch-ap : 1.2 : 209 pr 15477 descr With -O2 optimization, a "if {} else if {} else {}" C statement isn't converted into the correct code. kcah