Home | History | Annotate | Line # | Download | only in doc
HACKS revision 1.100.2.2
      1  1.100.2.2  mjf # $NetBSD: HACKS,v 1.100.2.2 2008/06/02 13:21:19 mjf Exp $
      2  1.100.2.2  mjf #
      3  1.100.2.2  mjf # This file is intended to document workarounds for currently unsolved
      4  1.100.2.2  mjf # (mostly) compiler bugs.
      5  1.100.2.2  mjf #
      6  1.100.2.2  mjf # Format:
      7  1.100.2.2  mjf #   hack		title
      8  1.100.2.2  mjf #   cdate		creation date
      9  1.100.2.2  mjf #   mdate		mod date
     10  1.100.2.2  mjf #   who			responsible developer
     11  1.100.2.2  mjf #   port		...
     12  1.100.2.2  mjf #  	  affected ports, space separated, if not "all"
     13  1.100.2.2  mjf #   file		affected file : revision : line from : line to
     14  1.100.2.2  mjf #  	  affected files and revision and line numbers describing hack
     15  1.100.2.2  mjf #  	  multiple lines if necessary.
     16  1.100.2.2  mjf #   pr			NNNN ...
     17  1.100.2.2  mjf #  	  problem reports this hack works around, if known. Space
     18  1.100.2.2  mjf #  	  separated.
     19  1.100.2.2  mjf #   regress		src/regress/directory/where/test/found
     20  1.100.2.2  mjf #  	  regression test directories, if available.
     21  1.100.2.2  mjf #   descr
     22  1.100.2.2  mjf #  	  insert short informal description (multi-line). (Longer ones
     23  1.100.2.2  mjf #  	  should be in the PR database. More formal descriptions might
     24  1.100.2.2  mjf #  	  be in the regress tree. See above).
     25  1.100.2.2  mjf #   kcah
     26  1.100.2.2  mjf #  	  closing bracket.
     27  1.100.2.2  mjf #
     28  1.100.2.2  mjf # this is a comment.
     29  1.100.2.2  mjf 
     30  1.100.2.2  mjf hack	netstat ieee1394 address printing.
     31  1.100.2.2  mjf mdate	14 Nov 2000
     32  1.100.2.2  mjf who	matt
     33  1.100.2.2  mjf file	lib/libc/net/getnameinfo.c	: 1.32 : 497 : 503
     34  1.100.2.2  mjf descr
     35  1.100.2.2  mjf 	Because the current implementation of IP over IEEE1394, the
     36  1.100.2.2  mjf 	fw device address contains more than just the IEEE1394 EUI-64.
     37  1.100.2.2  mjf 	So when printing out IEEE1394 addresses, ignore the extra stuff.
     38  1.100.2.2  mjf kcah
     39  1.100.2.2  mjf 
     40  1.100.2.2  mjf hack	xterm vs. libterm
     41  1.100.2.2  mjf mdate	01 Aug 2000
     42  1.100.2.2  mjf who	jdc
     43  1.100.2.2  mjf file	xsrc/xc/programs/xterm/main.c	: 1.2 : 3609 : 3614
     44  1.100.2.2  mjf pr	10383
     45  1.100.2.2  mjf descr
     46  1.100.2.2  mjf 	In order to extend the termcap string over 1023 bytes, a ZZ entry was
     47  1.100.2.2  mjf 	introduced to point to a memory location containing the full entry.
     48  1.100.2.2  mjf 	Without this hack, xterm will export a termcap containing the ZZ
     49  1.100.2.2  mjf 	entry, which will then be ignored by libterm.  As xterm modifies the
     50  1.100.2.2  mjf 	exported termcap, this would cause those modifications to be ignored.
     51  1.100.2.2  mjf kcah
     52  1.100.2.2  mjf 
     53  1.100.2.2  mjf hack	wi-at-big-endian-bus
     54  1.100.2.2  mjf cdate	15 Mar 2002
     55  1.100.2.2  mjf who	martin
     56  1.100.2.2  mjf file	dev/ic/wireg.h
     57  1.100.2.2  mjf descr	Add an option to access the underlying bus in big endian byte order
     58  1.100.2.2  mjf 	to work around deficiencies in bus_space_{read,write}_* macros.
     59  1.100.2.2  mjf 	Those don't allow the implementation of a proper pcmcia bus space
     60  1.100.2.2  mjf 	tag.
     61  1.100.2.2  mjf kcah
     62  1.100.2.2  mjf 
     63  1.100.2.2  mjf hack	specific knowledge of colours in curses code
     64  1.100.2.2  mjf cdate	Sun Apr  6 11:05:24 BST 2003
     65  1.100.2.2  mjf who	jdc
     66  1.100.2.2  mjf file	lib/libcurses/color.c : r1.24
     67  1.100.2.2  mjf descr
     68  1.100.2.2  mjf 	Swap red/blue and yellow/cyan colours for COLOR_OTHER.
     69  1.100.2.2  mjf 	Fix is to enhance libtermcap to understand terminfo-style % sequences.
     70  1.100.2.2  mjf 	See also:
     71  1.100.2.2  mjf 	    http://mail-index.NetBSD.org/tech-userlevel/2003/04/06/0000.html
     72  1.100.2.2  mjf kcah
     73  1.100.2.2  mjf 
     74  1.100.2.2  mjf hack	Compensation for differing types of LINUX_USRSTACK and USRSTACK
     75  1.100.2.2  mjf cdate	21 Aug 2003
     76  1.100.2.2  mjf who	he
     77  1.100.2.2  mjf file	sys/miscfs/procfs/procfs_linux.c : 1.14
     78  1.100.2.2  mjf descr
     79  1.100.2.2  mjf 	Not all ports have LINUX_USRSTACK and/or USRSTACK defined as
     80  1.100.2.2  mjf 	literals/constants, but refer to variables of a type which is
     81  1.100.2.2  mjf 	not "unsigned long", causing compilation of procfs_linux.c to
     82  1.100.2.2  mjf 	fail with "makes integer from pointer without a cast".  This
     83  1.100.2.2  mjf 	is observed on e.g. the sun3 port.  Ideally the "types" for
     84  1.100.2.2  mjf 	symbols should be consistent across all ports.
     85  1.100.2.2  mjf kcah
     86  1.100.2.2  mjf 
     87  1.100.2.2  mjf hack	gcc-strict-aliasing
     88  1.100.2.2  mjf cdate	6 August 2004
     89  1.100.2.2  mjf who	junyoung
     90  1.100.2.2  mjf pr	26516
     91  1.100.2.2  mjf file	src/usr.sbin/racoon/racoon/Makefile : 1.21
     92  1.100.2.2  mjf descr
     93  1.100.2.2  mjf 	GCC issues a warning "dereferencing type-punned pointer will break
     94  1.100.2.2  mjf 	strict-aliasing rules" when compiling
     95  1.100.2.2  mjf 	crypto/dist/kame/racoon/crypto/openssl.c with -O[23s]. Note that this
     96  1.100.2.2  mjf 	is due to use of type casting in a non-standard way in the code and
     97  1.100.2.2  mjf 	not a compiler bug. Once a new release of KAME with a proper fix
     98  1.100.2.2  mjf 	applied is imported this should be backed out.
     99  1.100.2.2  mjf kcah
    100  1.100.2.2  mjf 
    101  1.100.2.2  mjf hack	gcc4 wrong uninitialized variable
    102  1.100.2.2  mjf mdate	10 May 2006
    103  1.100.2.2  mjf who	mrg
    104  1.100.2.2  mjf file	bin/ksh/eval.c			: 1.6
    105  1.100.2.2  mjf file	bin/sh/histedit.c		: 1.39
    106  1.100.2.2  mjf file	bin/sh/parser.c			: 1.60
    107  1.100.2.2  mjf file	crypto/dist/heimdal/kdc/524.c	: 1.10
    108  1.100.2.2  mjf file	crypto/dist/ssh/sftp.c		: 1.20
    109  1.100.2.2  mjf file	crypto/dist/ssh/ssh-keysign.c	: 1.11
    110  1.100.2.2  mjf file	dist/ipf/lib/hostname.c		: 1.2
    111  1.100.2.2  mjf file	dist/ipf/tools/ipmon.c		: 1.8
    112  1.100.2.2  mjf file	dist/ntp/ntpd/ntp_request.c	: 1.4
    113  1.100.2.2  mjf file	dist/ntp/ntpd/refclock_shm.c	: 1.4
    114  1.100.2.2  mjf file	dist/ntp/sntp/timing.c		: 1.3
    115  1.100.2.2  mjf file	dist/pppd/pppstats/pppstats.c	: 1.3
    116  1.100.2.2  mjf file	dist/smbfs/lib/smb/rap.c	: 1.6
    117  1.100.2.2  mjf file	dist/tcpdump/print-zephyr.c	: 1.5
    118  1.100.2.2  mjf file	distrib/utils/sysinst/aout2elf.c : 1.12
    119  1.100.2.2  mjf file	gnu/libexec/uucp/uucico/uucico.c : 1.6
    120  1.100.2.2  mjf file	lib/libc/citrus/citrus_csmapper.c : 1.6
    121  1.100.2.2  mjf file	lib/libc/citrus/citrus_pivot_factory.c : 1.5
    122  1.100.2.2  mjf file	lib/libc/inet/inet_cidr_ntop.c	: 1.3
    123  1.100.2.2  mjf file	lib/libc/inet/inet_ntop.c	: 1.3
    124  1.100.2.2  mjf file	lib/libc/stdio/vfwprintf.c	: 1.8
    125  1.100.2.2  mjf file	libexec/ld.elf_so/arch/m68k/mdreloc.c : 1.20
    126  1.100.2.2  mjf file	libexec/ld.elf_so/arch/powerpc/ppc_reloc.c : 1.40
    127  1.100.2.2  mjf file	libexec/ld.elf_so/arch/sh3/mdreloc.c : 1.22
    128  1.100.2.2  mjf file	libexec/ld.elf_so/arch/sparc/mdreloc.c : 1.39
    129  1.100.2.2  mjf file	libexec/ld.elf_so/arch/sparc64/mdreloc.c : 1.39
    130  1.100.2.2  mjf file	libexec/ld.elf_so/arch/vax/mdreloc.c	: 1.21
    131  1.100.2.2  mjf file	libexec/ld.elf_so/arch/x86_64/mdreloc.c	: 1.27
    132  1.100.2.2  mjf file	sbin/fsck_ext2fs/dir.c		: 1.19
    133  1.100.2.2  mjf file	sbin/routed/rtquery/rtquery.c	: 1.18
    134  1.100.2.2  mjf file	sys/arch/amd64/amd64/pmap.c	: 1.26
    135  1.100.2.2  mjf file	sys/arch/i386/pci/piixpcib.c	: 1.4
    136  1.100.2.2  mjf file	sys/arch/m68k/m68k/pmap_motorola.c	: 1.4
    137  1.100.2.2  mjf file	sys/crypto/cast128/cast128.c	: 1.9
    138  1.100.2.2  mjf file	sys/ddb/db_command.c		: 1.86
    139  1.100.2.2  mjf file	sys/dev/cardbus/cardbus_map.c	: 1.21
    140  1.100.2.2  mjf file	sys/dev/fss.c			: 1.25
    141  1.100.2.2  mjf file	sys/dev/ic/igsfb.c		: 1.39
    142  1.100.2.2  mjf file	sys/dev/ic/mb86950.c		: 1.5
    143  1.100.2.2  mjf file	sys/dev/ic/midway.c		: 1.71
    144  1.100.2.2  mjf file	sys/dev/kttcp.c			: 1.18
    145  1.100.2.2  mjf file	sys/dev/rasops/rasops_bitops.h	: 1.9
    146  1.100.2.2  mjf file	sys/dev/pci/cmpci.c		: 1.31
    147  1.100.2.2  mjf file	sys/dev/pci/machfb.c		: 1.45
    148  1.100.2.2  mjf file	sys/dev/usb/ohci.c		: 1.174
    149  1.100.2.2  mjf file	sys/dev/usb/uhci.c		: 1.196
    150  1.100.2.2  mjf file	sys/dev/rasops/rasops_bitops.h	: 1.9
    151  1.100.2.2  mjf file	sys/dist/ipf/netinet/ip_nat.c	: 1.10
    152  1.100.2.2  mjf file	sys/dist/ipf/netinet/ip_rpcb_pxy.c : 1.8
    153  1.100.2.2  mjf file	sys/dist/pf/net/pf.c		: 1.22
    154  1.100.2.2  mjf file	sys/fs/udf/udf_vnops.c		: 1.4
    155  1.100.2.2  mjf file	sys/kern/kern_sig.c		: 1.219
    156  1.100.2.2  mjf file	sys/kern/tty.c			: 1.181
    157  1.100.2.2  mjf file	sys/net/bpf.c			: 1.116
    158  1.100.2.2  mjf file	sys/net/zlib.c			: 1.26
    159  1.100.2.2  mjf file	sys/netccitt/if_x25subr.c	: 1.37
    160  1.100.2.2  mjf file	sys/netinet/in.c		: 1.107
    161  1.100.2.2  mjf file	sys/netsmb/smb_smb.c		: 1.27
    162  1.100.2.2  mjf file	sys/netsmb/smb_trantcp.c	: 1.22
    163  1.100.2.2  mjf file	sys/nfs/nfs_serv.c		: 1.108
    164  1.100.2.2  mjf file	sys/nfs/nfs_socket.c		: 1.129
    165  1.100.2.2  mjf file	sys/nfs/nfs_syscalls.c		: 1.91
    166  1.100.2.2  mjf file	sys/ufs/lfs/lfs_vfsops.c	: 1.207 [also (char *)]
    167  1.100.2.2  mjf file	usr.bin/ftp/ftp.c		: 1.140
    168  1.100.2.2  mjf file	usr.bin/find/function.c		: 1.54
    169  1.100.2.2  mjf file	usr.bin/mail/tty.c		: 1.20
    170  1.100.2.2  mjf file	usr.bin/msgc/msg_sys.def	: 1.33-1.34
    171  1.100.2.2  mjf file	usr.bin/nl/nl.c			: 1.7
    172  1.100.2.2  mjf file	usr.bin/systat/keyboard.c	: 1.23
    173  1.100.2.2  mjf file	usr.bin/usbhidctl/usbhid.c	: 1.29
    174  1.100.2.2  mjf file	usr.bin/vi/cl/cl_read.c		: 1.5
    175  1.100.2.2  mjf file	usr.bin/vi/ex/ex_cscope.c	: 1.12
    176  1.100.2.2  mjf file	usr.bin/vi/ex/ex_tag.c		: 1.19
    177  1.100.2.2  mjf file	usr.bin/vi/vi/v_txt.c		: 1.15
    178  1.100.2.2  mjf file	usr.sbin/altq/altqstat/qdisc_rio.c : 1.4
    179  1.100.2.2  mjf file	usr.sbin/cron/do_command.c	: 1.19
    180  1.100.2.2  mjf file	usr.sbin/timed/timed/slave.c	: 1.15
    181  1.100.2.2  mjf descr
    182  1.100.2.2  mjf 	GCC 4.1 gets many uninitialised variable warnings wrong.  We should
    183  1.100.2.2  mjf 	really audit all the old hacks like this when older compilers are
    184  1.100.2.2  mjf 	removed from the tree, as many are probably no longer required.
    185  1.100.2.2  mjf 	The problem is that it does not recognize initialization via function
    186  1.100.2.2  mjf 	call pointer. I.e.
    187  1.100.2.2  mjf 		int p;
    188  1.100.2.2  mjf 		foo(&p);
    189  1.100.2.2  mjf 	does not mark p as initialized.
    190  1.100.2.2  mjf kcah
    191  1.100.2.2  mjf 
    192  1.100.2.2  mjf hack	gcc4 pointer sign and strict aliasing problems
    193  1.100.2.2  mjf mdate	10 May 2006
    194  1.100.2.2  mjf who	mrg
    195  1.100.2.2  mjf file	bin/ed/Makefile			: 1.33
    196  1.100.2.2  mjf file	distrib/utils/sysinst/Makefile.inc : 1.44
    197  1.100.2.2  mjf file	distrib/utils/x_dhclient/Makefile : 1.15
    198  1.100.2.2  mjf file	games/bcd/Makefile		: 1.5
    199  1.100.2.2  mjf file	games/dab/Makefile		: 1.5
    200  1.100.2.2  mjf file	games/larn/Makefile		: 1.17
    201  1.100.2.2  mjf file	games/pom/Makefile		: 1.5
    202  1.100.2.2  mjf file	lib/libasn1/Makefile		: 1.26
    203  1.100.2.2  mjf file	lib/libcrypt/Makefile		: 1.17
    204  1.100.2.2  mjf file	lib/libgssapi/Makefile		: 1.16
    205  1.100.2.2  mjf file	lib/libhdb/Makefile		: 1.20
    206  1.100.2.2  mjf file	lib/libkadm5clnt/Makefile	: 1.21
    207  1.100.2.2  mjf file	lib/libkadm5srv/Makefile	: 1.25
    208  1.100.2.2  mjf file	lib/libkrb5/Makefile		: 1.35
    209  1.100.2.2  mjf file	lib/libssh/Makefile		: 1.6
    210  1.100.2.2  mjf file	lib/libtelnet/Makefile		: 1.26
    211  1.100.2.2  mjf file	libexec/getty/Makefile		: 1.14
    212  1.100.2.2  mjf file	libexec/kadmind/Makefile	: 1.19
    213  1.100.2.2  mjf file	libexec/kpasswdd/Makefile	: 1.14
    214  1.100.2.2  mjf file	sbin/atactl/Makefile		: 1.3
    215  1.100.2.2  mjf file	sbin/cgdconfig/Makefile		: 1.7
    216  1.100.2.2  mjf file	sbin/clri/Makefile		: 1.13
    217  1.100.2.2  mjf file	sbin/dkctl/Makefile		: 1.4
    218  1.100.2.2  mjf file	sbin/dump/Makefile		: 1.33
    219  1.100.2.2  mjf file	sbin/fdisk/Makefile		: 1.35
    220  1.100.2.2  mjf file	sbin/fsck_ext2fs/Makefile	: 1.11
    221  1.100.2.2  mjf file	sbin/fsck_ffs/Makefile		: 1.29
    222  1.100.2.2  mjf file	sbin/fsdb/Makefile		: 1.18
    223  1.100.2.2  mjf file	sbin/mount_smbfs/Makefile	: 1.4
    224  1.100.2.2  mjf file	sbin/newfs/Makefile		: 1.30
    225  1.100.2.2  mjf file	sbin/newfs_sysvbfs/Makefile	: 1.2
    226  1.100.2.2  mjf file	sbin/restore/Makefile		: 1.23
    227  1.100.2.2  mjf file	sbin/veriexecctl/Makefile	: 1.11
    228  1.100.2.2  mjf file	sys/lib/libsa/Makefile		: 1.59
    229  1.100.2.2  mjf file	sys/arch/evbarm/adi_brh/brh_machdep.c : 1.24
    230  1.100.2.2  mjf file	usr.bin/awk/Makefile		: 1.9
    231  1.100.2.2  mjf file	usr.bin/crontab/Makefile	: 1.24
    232  1.100.2.2  mjf file	usr.bin/ctags/Makefile		: 1.8
    233  1.100.2.2  mjf file	usr.bin/gzip/Makefile		: 1.10
    234  1.100.2.2  mjf file	usr.bin/ssh/sftp/Makefile	: 1.10
    235  1.100.2.2  mjf file	usr.bin/ssh/ssh/Makefile	: 1.25
    236  1.100.2.2  mjf file	usr.bin/vi/build/Makefile	: 1.26
    237  1.100.2.2  mjf file	usr.bin/telnet/Makefile		: 1.40
    238  1.100.2.2  mjf file	usr.bin/tn3270/tn3270/Makefile	: 1.36
    239  1.100.2.2  mjf file	usr.bin/tr/Makefile		: 1.4
    240  1.100.2.2  mjf file	usr.sbin/amd/amd/Makefile	: 1.27
    241  1.100.2.2  mjf file	usr.sbin/amd/amq/Makefile	: 1.14
    242  1.100.2.2  mjf file	usr.sbin/amd/libamu/Makefile	: 1.20
    243  1.100.2.2  mjf file	usr.sbin/amd/pawd/Makefile	: 1.5
    244  1.100.2.2  mjf file	usr.sbin/bind/Makefile.inc	: 1.22
    245  1.100.2.2  mjf file	usr.sbin/bind/libdns/Makefile	: 1.3
    246  1.100.2.2  mjf file	usr.sbin/bind/named/Makefile	: 1.17
    247  1.100.2.2  mjf file	usr.sbin/bootp/bootptest/Makefile : 1.2
    248  1.100.2.2  mjf file	usr.sbin/chrtbl/Makefile	: 1.6
    249  1.100.2.2  mjf file	usr.sbin/cron/Makefile		: 1.12
    250  1.100.2.2  mjf file	usr.sbin/dhcp/Makefile.inc	: 1.20
    251  1.100.2.2  mjf file	usr.sbin/dumplfs/Makefile	: 1.11
    252  1.100.2.2  mjf file	usr.sbin/hprop/Makefile		: 1.13
    253  1.100.2.2  mjf file	usr.sbin/installboot/Makefile	: 1.35
    254  1.100.2.2  mjf file	usr.sbin/ipf/ipftest/Makefile	: 1.32
    255  1.100.2.2  mjf file	usr.sbin/isdn/isdnd/Makefile	: 1.6
    256  1.100.2.2  mjf file	usr.sbin/isdn/isdnmonitor/Makefile : 1.3
    257  1.100.2.2  mjf file	usr.sbin/isdn/isdntel/Makefile	: 1.2
    258  1.100.2.2  mjf file	usr.sbin/isdn/isdntrace/Makefile : 126
    259  1.100.2.2  mjf file	usr.sbin/mopd/common/Makefile	: 1.10
    260  1.100.2.2  mjf file	usr.sbin/mopd/mopd/Makefile	: 1.9
    261  1.100.2.2  mjf file	usr.sbin/mopd/mopprobe/Makefile	: 1.7
    262  1.100.2.2  mjf file	usr.sbin/makefs/Makefile	: 1.17
    263  1.100.2.2  mjf file	usr.sbin/mscdlabel/Makefile	: 1.5
    264  1.100.2.2  mjf file	usr.sbin/pkg_install/add/Makefile : 1.7
    265  1.100.2.2  mjf file	usr.sbin/pkg_install/create/Makefile : 1.5
    266  1.100.2.2  mjf file	usr.sbin/pkg_install/lib/Makefile : 1.28
    267  1.100.2.2  mjf file	usr.sbin/ntp/ntpd/Makefile	: 1.10/1.11
    268  1.100.2.2  mjf file	usr.sbin/ntp/ntptime/Makefile	: 1.4/1.5
    269  1.100.2.2  mjf file	usr.sbin/pppd/Makefile.inc	: 1.3
    270  1.100.2.2  mjf file	usr.sbin/pppd/pppd/Makefile	: 1.38
    271  1.100.2.2  mjf file	usr.sbin/rarpd/Makefile		: 1.10
    272  1.100.2.2  mjf file	usr.sbin/rbootd/Makefile	: 1.10
    273  1.100.2.2  mjf file	usr.sbin/rpc.pcnfsd/Makefile	: 1.17
    274  1.100.2.2  mjf file	usr.sbin/rtadvd/Makefile	: 1.9
    275  1.100.2.2  mjf file	usr.sbin/tcpdump/Makefile	: 1.42
    276  1.100.2.2  mjf file	usr.sbin/wiconfig/Makefile	: 1.3
    277  1.100.2.2  mjf descr
    278  1.100.2.2  mjf 	GCC 4.1 warns on pointer sign comparision/assignments and lots of
    279  1.100.2.2  mjf 	code does not conform.  For now we use -Wno-pointer-sign and
    280  1.100.2.2  mjf 	-fno-strict-aliasing.
    281  1.100.2.2  mjf kcah
    282  1.100.2.2  mjf 
    283  1.100.2.2  mjf port	vax
    284  1.100.2.2  mjf 
    285  1.100.2.2  mjf 	hack	gcc4/vax ICE
    286  1.100.2.2  mjf 	cdate	
    287  1.100.2.2  mjf 	who	tsutsui
    288  1.100.2.2  mjf 	file	sys/arch/vax/conf/Makefile.vax
    289  1.100.2.2  mjf 	descr
    290  1.100.2.2  mjf 		GCC4 on vax gets ICE on compiling sys/ddb/db_command.c.
    291  1.100.2.2  mjf 		-fno-tree-ter prevents it so add it to COPTS.
    292  1.100.2.2  mjf 	kcah
    293  1.100.2.2  mjf 
    294  1.100.2.2  mjf 	hack	gcc4/vax compiler crash
    295  1.100.2.2  mjf 	cdate	Fri Jun 30 22:39:12 PDT 2006
    296  1.100.2.2  mjf 	who	mrg
    297  1.100.2.2  mjf 	file	bin/csh/Makefile	: 1.27
    298  1.100.2.2  mjf 	file	lib/i18n_module/UTF7/Makefile	: 1.2
    299  1.100.2.2  mjf 	descr
    300  1.100.2.2  mjf 		GCC4 on vax crashes.  -O0 stops it happening so far...
    301  1.100.2.2  mjf 	kcah
    302  1.100.2.2  mjf 
    303  1.100.2.2  mjf 	hack	gcc 2.95/vax doesn't like abort being used as function pointer
    304  1.100.2.2  mjf 	cdate	Tue Dec 13 05:54:50 GMT 2005
    305  1.100.2.2  mjf 	who	jmc
    306  1.100.2.2  mjf 	file	lib/libc/rpc/svc_vc.c 1.15
    307  1.100.2.2  mjf 	descr
    308  1.100.2.2  mjf 		Provide a local definition for abort which doesn't include
    309  1.100.2.2  mjf 		the noreturn attribute which trips up gcc 2.95 on vax.
    310  1.100.2.2  mjf 	kcah
    311  1.100.2.2  mjf 	
    312  1.100.2.2  mjf 	hack	gcc 2.95/vax doesn't have stdbool.h and gettext needs it
    313  1.100.2.2  mjf 	cdate	Mon May  9 12:16:22 CDT 2005
    314  1.100.2.2  mjf 	who	jmc
    315  1.100.2.2  mjf 	file	gnu/usr.bin/gettext/Makefile.inc.prog 1.5
    316  1.100.2.2  mjf 		gnu/usr.bin/gettext/libgrep/Makefile 1.3
    317  1.100.2.2  mjf 		gnu/usr.bin/gettext/libnlspr/Makefile 1.5
    318  1.100.2.2  mjf 		gnu/usr.bin/gettext/libnlsut/Makefile 1.3   
    319  1.100.2.2  mjf 	descr
    320  1.100.2.2  mjf 		The latest gettext assumes a C99 environment or at least
    321  1.100.2.2  mjf 		configure checks to work around this. As we don't use configure
    322  1.100.2.2  mjf 		provide a stdbool.h for vax builds locally in directories from
    323  1.100.2.2  mjf 		the template provided by the gettext code.
    324  1.100.2.2  mjf 	kcah
    325  1.100.2.2  mjf 	
    326  1.100.2.2  mjf 	hack	gcc 2.95/vax cannot handle __builtin_ffs()
    327  1.100.2.2  mjf 	cdate	Fri Aug 23 21:31:15 CEST 2002
    328  1.100.2.2  mjf 	who	ragge
    329  1.100.2.2  mjf 	file	sys/lib/libkern/libkern.h : 1.42
    330  1.100.2.2  mjf 	descr
    331  1.100.2.2  mjf 		__builtin_ffs() is ifdef'd away if __vax__. Matt Thomas has
    332  1.100.2.2  mjf 		added this feature to GCC 3 so it can be removed when switching.
    333  1.100.2.2  mjf 	kcah
    334  1.100.2.2  mjf 
    335  1.100.2.2  mjf 	hack	gcc 2.95/vax libbz2
    336  1.100.2.2  mjf 	mdate	27 Jun 2002
    337  1.100.2.2  mjf 	who	thorpej
    338  1.100.2.2  mjf 	file	lib/libbz2/Makefile
    339  1.100.2.2  mjf 	descr
    340  1.100.2.2  mjf 		libbz2 is mis-compiled with optimization with GCC 2.95.3
    341  1.100.2.2  mjf 		on VAX.  -O0 works around this problem.
    342  1.100.2.2  mjf 	kcah
    343  1.100.2.2  mjf 
    344  1.100.2.2  mjf 	hack	vax Toolchain bug
    345  1.100.2.2  mjf 	cdate	28 Mar 2003
    346  1.100.2.2  mjf 	who	he
    347  1.100.2.2  mjf 	file	sys/arch/vax/vax/intvec.S : 1.5
    348  1.100.2.2  mjf 	descr
    349  1.100.2.2  mjf 		Workaround for PR toolchain/20924.  The assembler apparently
    350  1.100.2.2  mjf 		tries to range-check byte offsets when it doesn't have
    351  1.100.2.2  mjf 		sufficient information to make that decision.
    352  1.100.2.2  mjf 		Workaround uses `brw' instead of `brb' instruction.
    353  1.100.2.2  mjf 	kcah
    354  1.100.2.2  mjf 
    355  1.100.2.2  mjf 	hack	vax gcc 2.95.3 -Wuninitialized workarounds
    356  1.100.2.2  mjf 	cdate	6 Nov 2003
    357  1.100.2.2  mjf 	who	he
    358  1.100.2.2  mjf 	file	sys/dev/bi/if_ni.c : 1.22
    359  1.100.2.2  mjf 	file	sys/arch/vax/vax/ctu.c : 1.20
    360  1.100.2.2  mjf 	descr
    361  1.100.2.2  mjf 		Workaround for gcc 2.95.3 failing to detect that certain
    362  1.100.2.2  mjf 		variables will be initialized; so that this code compiles
    363  1.100.2.2  mjf 		with -Wuninitialized.  Should be reviewed and possibly
    364  1.100.2.2  mjf 		reverted when gcc 3.3.2 is ready for vax.
    365  1.100.2.2  mjf 	kcah
    366  1.100.2.2  mjf 
    367  1.100.2.2  mjf 	hack	vax gcc 2.95.3 structure initialization
    368  1.100.2.2  mjf 	cdat	13 May 2004
    369  1.100.2.2  mjf 	who	cl
    370  1.100.2.2  mjf 	file	sys/miscfs/kernfs/kernfs_vnops.c : 1.104
    371  1.100.2.2  mjf 	descr
    372  1.100.2.2  mjf 		Workaround for gcc 2.95.3 failing to initialize structures
    373  1.100.2.2  mjf 		and/or unions inside structures using nested designators.
    374  1.100.2.2  mjf 		Should be reverted when gcc >=3.3.3 is ready for vax.
    375  1.100.2.2  mjf 	kcah
    376  1.100.2.2  mjf 
    377  1.100.2.2  mjf 	hack	vax gcc 2.95.3 needs -I. to build nslexer.c
    378  1.100.2.2  mjf 	cdat	6 Jun 2004
    379  1.100.2.2  mjf 	who	mhitch
    380  1.100.2.2  mjf 	file	lib/libc/arch/vax/Makefile.inc : 1.6
    381  1.100.2.2  mjf 	descr
    382  1.100.2.2  mjf 		It appears necessary to add -I. to CPPFLAGS when building
    383  1.100.2.2  mjf 		nslesxer.c.  This may be caused by gcc 2.95.3 being used.
    384  1.100.2.2  mjf 		Should be reverted when a newer gcc is ready for vax.
    385  1.100.2.2  mjf 	kcah
    386  1.100.2.2  mjf 
    387  1.100.2.2  mjf 	hack	vax gcc 2.95.3 doesn't understand "-std=c99"
    388  1.100.2.2  mjf 	cdat	5 April 2005
    389  1.100.2.2  mjf 	who	tron
    390  1.100.2.2  mjf 	file	src/share/mk/bsd.sys.mk
    391  1.100.2.2  mjf 	descr
    392  1.100.2.2  mjf 		We cannot use "-std=c99" for compiler warning level 4 and above
    393  1.100.2.2  mjf 		because gcc 2.95.3 doesn't support that option.
    394  1.100.2.2  mjf 	kcah
    395  1.100.2.2  mjf 
    396  1.100.2.2  mjf 	hack	declare boolean_t in two IPF user-mode programs
    397  1.100.2.2  mjf 	cdate	Tue Mar  7 19:19:20 CET 2006
    398  1.100.2.2  mjf 	who	he
    399  1.100.2.2  mjf 	file	dist/ipf/ipsend/iptests.c : 1.8
    400  1.100.2.2  mjf 		dist/ipf/ipsend/sock.c : 1.7
    401  1.100.2.2  mjf 	descr
    402  1.100.2.2  mjf 		The IPF user-mode programs ipsend and iptest first
    403  1.100.2.2  mjf 		include <sys/types.h> without _KERNEL defined, and
    404  1.100.2.2  mjf 		later include <sys/file.h> with _KERNEL defined.
    405  1.100.2.2  mjf 		This causes a build failure when building for vax,
    406  1.100.2.2  mjf 		since <sys/device.h> ends up being included without
    407  1.100.2.2  mjf 		bollean_t being defined by <sys/types.h>.
    408  1.100.2.2  mjf 		Build failure and further details documented in
    409  1.100.2.2  mjf 		PR#32907.
    410  1.100.2.2  mjf 	kcah
    411  1.100.2.2  mjf 
    412  1.100.2.2  mjf port	arm
    413  1.100.2.2  mjf 
    414  1.100.2.2  mjf 	hack	gcc-unsigned-compare
    415  1.100.2.2  mjf 	cdate	09 Mar 2002
    416  1.100.2.2  mjf 	mdate	18 Mar 2002
    417  1.100.2.2  mjf 	who	bjh21
    418  1.100.2.2  mjf 	file	dist/bind/lib/nameser/ns_parse.c : 1.3
    419  1.100.2.2  mjf 	file	dist/dhcp/minires/ns_parse.c : 1.3
    420  1.100.2.2  mjf 	file	dist/dhcp/omapip/result.c : 1.2
    421  1.100.2.2  mjf 	file	dist/dhcp/server/failover.c : 1.3
    422  1.100.2.2  mjf 	file	gnu/dist/toolchain/bfd/bfd.c : 1.2
    423  1.100.2.2  mjf 	file	gnu/dist/toolchain/bfd/format.c : 1.2
    424  1.100.2.2  mjf 	file	gnu/dist/toolchain/gdb/target.c : 1.2
    425  1.100.2.2  mjf 	file	sys/kern/vfs_subr.c : 1.172
    426  1.100.2.2  mjf 	descr	When checking that a potentially-unsigned enum is >= 0, assign
    427  1.100.2.2  mjf 		it to an int first.  This is necessary to avoid "comparison is
    428  1.100.2.2  mjf 		always true" warnings with -fshort-enums.  Casting to an int
    429  1.100.2.2  mjf 		really should be enough, but turns out not to be.
    430  1.100.2.2  mjf 	kcah
    431  1.100.2.2  mjf 
    432  1.100.2.2  mjf 
    433  1.100.2.2  mjf port	sh3
    434  1.100.2.2  mjf 
    435  1.100.2.2  mjf 	hack	gcc4-sh3-bz2
    436  1.100.2.2  mjf 	cdate	Sun May 21 03:34:57 UTC 2006
    437  1.100.2.2  mjf 	mdate	Fri May 16 13:13:00 UTC 2008
    438  1.100.2.2  mjf 	who	mrg, tsutsui
    439  1.100.2.2  mjf 	file	lib/libbz2/Makefile	: 1.10
    440  1.100.2.2  mjf 	descr
    441  1.100.2.2  mjf 		The in-tree GCC 4.1-based compiler generated too-far
    442  1.100.2.2  mjf 		pc-relative addresses.  Hack is to build with
    443  1.100.2.2  mjf 		-fno-loop-optimize.
    444  1.100.2.2  mjf 	kcah
    445  1.100.2.2  mjf 
    446  1.100.2.2  mjf 
    447  1.100.2.2  mjf port	m68000
    448  1.100.2.2  mjf 
    449  1.100.2.2  mjf 	hack	gcc4-m68000
    450  1.100.2.2  mjf 	cdate	Fri Feb  8 10:29:37 PST 2008
    451  1.100.2.2  mjf 	mdate	Sun May  4 15:37:19 UTC 2008
    452  1.100.2.2  mjf 	who	mrg, tsutsui
    453  1.100.2.2  mjf 	file	rescue/Makefile	: 1.21
    454  1.100.2.2  mjf 	file	sbin/dump_lfs/Makefile	: 1.9
    455  1.100.2.2  mjf 	file	sbin/fsck_ffs/Makefile	: 1.35
    456  1.100.2.2  mjf 	file	sbin/fsdb/Makefile	: 1.22
    457  1.100.2.2  mjf 	file	share/mk/sys.mk	: 1.96
    458  1.100.2.2  mjf 	file	usr.sbin/ndbootd/Makefile	: 1.5
    459  1.100.2.2  mjf 	descr
    460  1.100.2.2  mjf 		Several internal compiler errors with gcc -O1
    461  1.100.2.2  mjf 		around 64bit integer arithmetic.
    462  1.100.2.2  mjf 		This hack uses -O1 and adds some -fno-tree-foo options
    463  1.100.2.2  mjf 		to avoid the problem.
    464  1.100.2.2  mjf 		This might be related with GCC Bugzilla Bug 32424.
    465  1.100.2.2  mjf 	kcah
    466  1.100.2.2  mjf 
    467  1.100.2.2  mjf 
    468  1.100.2.2  mjf port	sparc64
    469  1.100.2.2  mjf 
    470  1.100.2.2  mjf 	hack	disable optimzations for uvm_bio.c on 32 bit kernels
    471  1.100.2.2  mjf 	cdate	Sun Mar 21 14:14:04 MET 2004
    472  1.100.2.2  mjf 	who	martin
    473  1.100.2.2  mjf 	file	sys/arch/sparc64/conf/Makefile.sparc64 : 1.53-1.54
    474  1.100.2.2  mjf 	file	sys/arch/sparc64/conf/files.sparc64 : 1.93
    475  1.100.2.2  mjf 	descr
    476  1.100.2.2  mjf 		The sparc compiler miscompiles uvm_bio.c when using
    477  1.100.2.2  mjf 		any optimization. This results in ubc_release panics.
    478  1.100.2.2  mjf 	kcah
    479  1.100.2.2  mjf 
    480  1.100.2.2  mjf port	mips
    481  1.100.2.2  mjf 
    482  1.100.2.2  mjf 	hack	mips-shared-linker-load-address
    483  1.100.2.2  mjf 	cdate	Fri Oct  7 08:33:10 UTC 2005
    484  1.100.2.2  mjf 	who	simonb
    485  1.100.2.2  mjf 	file	src/sys/kern/exec_elf32.c : 1.107
    486  1.100.2.2  mjf 	descr
    487  1.100.2.2  mjf 		With COMPAT_16 or previous enabled (which enables
    488  1.100.2.2  mjf 		ELF_INTERP_NON_RELOCATABLE) a recent ld.elf_so will
    489  1.100.2.2  mjf 		load and run at address 0.  The check to fix this in
    490  1.100.2.2  mjf 		rev 1.107 only checks the first psection of the ELF
    491  1.100.2.2  mjf 		executable, which may not be loadable.  A more correct
    492  1.100.2.2  mjf 		fix is to check the first loadable psection instead of
    493  1.100.2.2  mjf 		just the first psection.
    494  1.100.2.2  mjf 	kcah
    495  1.100.2.2  mjf 
    496  1.100.2.2  mjf 	hack	mips-duplicate-ras-end-label
    497  1.100.2.2  mjf 	cdate	Sat Sep  2 23:29:42 2006
    498  1.100.2.2  mjf 	who	martin
    499  1.100.2.2  mjf 	file	src/regress/sys/kern/ras/ras3/Makefile : 1.3
    500  1.100.2.2  mjf 	descr
    501  1.100.2.2  mjf 		Add -fno-reorder-blocks to CFLAGS to avoid duplicate
    502  1.100.2.2  mjf 		labels by duplicated __asm output from RAS_END()
    503  1.100.2.2  mjf 		macro.
    504  1.100.2.2  mjf 	kcah
    505  1.100.2.2  mjf 
    506  1.100.2.2  mjf port	i386
    507  1.100.2.2  mjf 
    508  1.100.2.2  mjf 	hack	use volatile intermediate variable to enforce rounding
    509  1.100.2.2  mjf 	cdate	Tue Aug  1 22:15:55 MEST 2006
    510  1.100.2.2  mjf 	who	drochner
    511  1.100.2.2  mjf 	file	src/lib/libm/src/lrintf.c : 1.4
    512  1.100.2.2  mjf 	file	src/lib/libm/src/s_rintf.c : 1.8
    513  1.100.2.2  mjf 	descr
    514  1.100.2.2  mjf 		gcc-4 does subsequent operations on "float" values within
    515  1.100.2.2  mjf 		the i387 FPU without rounding the intermediate results
    516  1.100.2.2  mjf 	kcah
    517