492 lines
14 KiB
Text
492 lines
14 KiB
Text
# $NetBSD: HACKS,v 1.30 2005/05/15 22:23:09 jschauma 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 -O2 bug
|
|
cdate Wed Feb 5 16:36:58 EST 2003
|
|
who dmcmahill
|
|
port alpha
|
|
file audio/xsidplay/patches/patch-aa : 1.8
|
|
cad/qcad/patches/patch-aa : 1.4
|
|
devel/guile-gtk//Makefile : 1.10
|
|
devel/guile-gtk/patches/patch-aa : 1.6
|
|
x11/qt2-libs/patches/patch-ae : 1.8
|
|
x11/qt2-libs/patches/patch-ae : 1.18
|
|
x11/kdelibs3/patches/patch-cd : 1.1
|
|
x11/kdelibs3/patches/patch-ce : 1.1
|
|
lang/gcc3/Makefile : 1.5
|
|
net/bing/Makefile : 1.12
|
|
net/isic/Makefile : 1.5
|
|
net/ettercap/patches/patch-aa : 1.4
|
|
net/ettercap/Makefile : 1.11
|
|
descr
|
|
Compiler crashes
|
|
kcah
|
|
|
|
hack gcc 2.95.3/alpha -O2 bug
|
|
cdate Thu Jan 23 15:42:57 UTC 2003
|
|
who dmcmahill
|
|
port alpha
|
|
file mail/imap-uwwm/Makefile : 1.52
|
|
descr
|
|
Compiler crashes
|
|
kcah
|
|
|
|
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" <kogule@mars.dti.ne.jp> 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
|
|
|
|
hack cc -O* bug
|
|
mdate 28 Nov 2002
|
|
who agc
|
|
port arm
|
|
file emulators/simh/Makefile : 1.3 :
|
|
descr
|
|
Usual arm optimisation problem. The first problem occurs around
|
|
compilation of altairz80
|
|
kcah
|
|
|
|
hack gcc-sparc64-memorysize
|
|
mdate 8 Jan 2003
|
|
who salo
|
|
port sparc64
|
|
file security/skey/patch-aa : 1.2
|
|
file security/skey/patch-ab : 1.1
|
|
descr
|
|
The SHA1Transform() function causes the sparc64 compiler to use
|
|
excessive amounts of memory attempting to optimise this function.
|
|
Using no optimisation allows the function to build.
|
|
kcah
|
|
|
|
hack ImageMagick arm32+mipsel -O2 bug
|
|
mdate 25 Jan 2003
|
|
who hubertf (the mipsel one, dunno who did the arm32 one)
|
|
port cobald (probably other mipsel's), arm32
|
|
file graphics/ImageMagick/Makefile : 1.90
|
|
descr
|
|
When compiling with -O2, gcc spins at one file. Going back to
|
|
-O fixes this. (The usual story...)
|
|
kcah
|
|
|
|
hack zip -O bug
|
|
mdate 1 Jun 2003
|
|
who grant
|
|
port powerpc
|
|
file archivers/zip/Makefile : 1.33
|
|
descr
|
|
When compiling with -O or -O2, gcc dies with an internal
|
|
compiler error on crypt.c. Turning off optimization fixes this.
|
|
kcah
|
|
|
|
hack gcc 2.95.3/arm -O2 bug
|
|
cdate 2 Aug 2003
|
|
who kristerw
|
|
port arm
|
|
file devel/ftnchek/Makefile : 1.13
|
|
descr Internal compiler error for fortran.c when -O2. Use -O1 instead.
|
|
kcah
|
|
|
|
hack gcc 2.95.3/arm -O* bug
|
|
cdate 19 Oct 2003
|
|
who kristerw
|
|
port arm
|
|
file mail/safecat/patches/patch-aa : 1.1
|
|
descr Compilation of the tryulong32.c configuration test takes ~forever.
|
|
kcah
|
|
|
|
hack gcc 2.95.3/arm internal error
|
|
cdate 31 Jan 2004
|
|
who kristerw
|
|
port arm
|
|
file games/sjeng/Makefile : 1.7
|
|
descr Internal compiler error when compiling search.c.
|
|
kcah
|
|
|
|
hack gcc 2.95.3/arm -O* bug
|
|
cdate 31 Jan 2003
|
|
who kristerw
|
|
port arm
|
|
file databases/cdb/patches/patch-aa : 1.1
|
|
descr Compilation of the tryulong32.c configuration test takes ~forever.
|
|
kcah
|
|
|
|
hack perl 5.8/openssl/sparc64 bug
|
|
cdate Wed Feb 16 13:24:06 2000
|
|
who seb
|
|
port sparc64
|
|
file security/openssl/patches/patch-ak
|
|
descr
|
|
Perl's int() function gives bad result on sparc64.
|
|
Hence openssl's bn_prime.pl perl script fails.
|
|
Use POSIX::floor() as a workaround.
|
|
See perl ticket #25249.
|
|
kcah
|
|
|
|
hack alpha c++ -O2 bug
|
|
cdate Wed Feb 16 13:24:06 2000
|
|
who recht
|
|
port alpha
|
|
file graphics/freetype2/Makefile
|
|
pr 25742
|
|
descr
|
|
The default compiler flags on the alpha port "-O2 -mieee"
|
|
cause the c++ compiler to generate buggy code.
|
|
kcah
|
|
|
|
hack sparc64 gcc 3.3.x -O2 bug
|
|
cdate 29 Apr 2004
|
|
who adam
|
|
port sparc64
|
|
file graphics/netpbm/patches/patch-ab
|
|
descr
|
|
sparc64 gcc 3.3.x toolchain bug means we must compile exif.o
|
|
without optimisation
|
|
kcah
|
|
|
|
hack i386 g++ 3.3.x -O2 bug
|
|
cdate Tue Aug 17 00:59:31 NZST 2004
|
|
who dsainty
|
|
port i386
|
|
file emulators/palmosemulator/patches/patch-an
|
|
descr
|
|
EmPoint.cpp malfunctions with optimisation on, trashing point
|
|
coordinates. Apparently an aliasing issue with automatic variables on
|
|
the stack and some fairly dodgy type casting. The patch file contains
|
|
more details.
|
|
kcah
|
|
|
|
hack libtool nawk line length problem
|
|
cdate Tue Sep 7 01:23:10 UTC 2004
|
|
who jschauma
|
|
port mipseb (IRIX)
|
|
file x11/gtk2/Makefile
|
|
descr
|
|
If we're on IRIX and we're using gcc, then, apparently, we need gawk,
|
|
as otherwise the awk invocation in libtool breaks complaining about
|
|
the ``Input record [...] too long'' near the end of the build process.
|
|
Oddly this does not occur using the mipspro compiler. Possible
|
|
reason: using gcc we have longer CFLAGS. Fix: add USE_GNU_TOOLS+=awk
|
|
iff IRIX and gcc. Problem: this might affect other packages as well.
|
|
One might consider depending libtool on gawk for IRIX.
|
|
kcah
|
|
|
|
hack devel/bison -O* bug with sunpro
|
|
cdate Tue Nov 2 17:30:48 GMT 2004
|
|
who sketch
|
|
port sparc (Solaris)
|
|
file devel/bison/Makefile : 1.49
|
|
descr
|
|
bison's quotearg_buffer_restyled() has issues with certain compilers
|
|
using optimisation flags. The resulting bison with optimsation
|
|
breaks on at least net/libIDL. BUILDLINK_TRANSFORM -O* away until
|
|
the root cause can be fixed.
|
|
kcah
|
|
|
|
hack security/libgpg-error awk on IRIX
|
|
cdate Sun May 15 18:08:48 EDT 2005
|
|
who jschauma
|
|
port mipseb (IRIX)
|
|
file security/libgpg-error/Makefile
|
|
descr
|
|
Apparently, for as of yet undetermined reasons, gawk as built on IRIX
|
|
under pkgsrc croaks on regular expressions including a combination of
|
|
alpha- and numerical matches, such as the rather trivial
|
|
/^[ \t]*[0-9]+/
|
|
Let's use the system's AWK (ie nawk) for this package to avoid
|
|
breaking hundreds of dependents.
|
|
Speculation: somehow the regular expression library used to build gawk
|
|
conflicts with the systems regular expression library or some such.
|
|
Note: gawk from SGIs freeware collection depends on expat -- why is
|
|
that? Does that have anything to do with anything?
|
|
kcah
|