Home | History | Annotate | Line # | Download | only in doc
HACKS revision 1.100.2.3
      1  1.100.2.3  mjf # $NetBSD: HACKS,v 1.100.2.3 2008/10/05 20:11:18 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.3  mjf hack	cross-building hack on Darwin
    284  1.100.2.3  mjf mdate	20 July 2008
    285  1.100.2.3  mjf who	agc
    286  1.100.2.3  mjf file	src/distrib/common/Makefile.mdset	: 1.33
    287  1.100.2.3  mjf descr
    288  1.100.2.3  mjf 	Darwin has problems with getopt() when used in mdsetimage -v,
    289  1.100.2.3  mjf 	due to the difference between BSD and libiberty() getopt
    290  1.100.2.3  mjf 	implementations, more fully described in
    291  1.100.2.3  mjf 	http://mail-index.netbsd.org/current-users/2008/06/27/msg003242.html
    292  1.100.2.3  mjf 	and the subsequent thread.  For just now, we just have an ugly
    293  1.100.2.3  mjf 	workaround not to call mdsetimage with the -v argument on Darwin
    294  1.100.2.3  mjf kcah
    295  1.100.2.3  mjf 
    296  1.100.2.3  mjf hack	avoid rebuilding asn1 libraries
    297  1.100.2.3  mjf mdate	03 August 2008
    298  1.100.2.3  mjf who	veego
    299  1.100.2.3  mjf file	src/crypto/dist/heimdal/lib/asn1/gen.c	: 1.10
    300  1.100.2.3  mjf file	src/lib/libasn1/Makefile	: 1.32
    301  1.100.2.3  mjf file	src/lib/libhdb/Makefile	: 1.23
    302  1.100.2.3  mjf file	src/lib/libgssapi/Makefile	: 1.20
    303  1.100.2.3  mjf file	src/lib/libhx509/Makefile	: 1.3
    304  1.100.2.3  mjf pr	9702 39185
    305  1.100.2.3  mjf descr
    306  1.100.2.3  mjf 	asn1_compile does not check if generated header files do not have to
    307  1.100.2.3  mjf 	be rebuild.
    308  1.100.2.3  mjf 	Generate .hx files and copy it in the Makefiles if they changed.
    309  1.100.2.3  mjf kcah
    310  1.100.2.3  mjf 
    311  1.100.2.2  mjf port	vax
    312  1.100.2.2  mjf 
    313  1.100.2.2  mjf 	hack	gcc4/vax ICE
    314  1.100.2.2  mjf 	cdate	
    315  1.100.2.2  mjf 	who	tsutsui
    316  1.100.2.2  mjf 	file	sys/arch/vax/conf/Makefile.vax
    317  1.100.2.2  mjf 	descr
    318  1.100.2.2  mjf 		GCC4 on vax gets ICE on compiling sys/ddb/db_command.c.
    319  1.100.2.2  mjf 		-fno-tree-ter prevents it so add it to COPTS.
    320  1.100.2.2  mjf 	kcah
    321  1.100.2.2  mjf 
    322  1.100.2.2  mjf 	hack	gcc4/vax compiler crash
    323  1.100.2.2  mjf 	cdate	Fri Jun 30 22:39:12 PDT 2006
    324  1.100.2.2  mjf 	who	mrg
    325  1.100.2.2  mjf 	file	bin/csh/Makefile	: 1.27
    326  1.100.2.2  mjf 	file	lib/i18n_module/UTF7/Makefile	: 1.2
    327  1.100.2.2  mjf 	descr
    328  1.100.2.2  mjf 		GCC4 on vax crashes.  -O0 stops it happening so far...
    329  1.100.2.2  mjf 	kcah
    330  1.100.2.2  mjf 
    331  1.100.2.2  mjf 	hack	gcc 2.95/vax doesn't like abort being used as function pointer
    332  1.100.2.2  mjf 	cdate	Tue Dec 13 05:54:50 GMT 2005
    333  1.100.2.2  mjf 	who	jmc
    334  1.100.2.2  mjf 	file	lib/libc/rpc/svc_vc.c 1.15
    335  1.100.2.2  mjf 	descr
    336  1.100.2.2  mjf 		Provide a local definition for abort which doesn't include
    337  1.100.2.2  mjf 		the noreturn attribute which trips up gcc 2.95 on vax.
    338  1.100.2.2  mjf 	kcah
    339  1.100.2.2  mjf 	
    340  1.100.2.2  mjf 	hack	gcc 2.95/vax doesn't have stdbool.h and gettext needs it
    341  1.100.2.2  mjf 	cdate	Mon May  9 12:16:22 CDT 2005
    342  1.100.2.2  mjf 	who	jmc
    343  1.100.2.2  mjf 	file	gnu/usr.bin/gettext/Makefile.inc.prog 1.5
    344  1.100.2.2  mjf 		gnu/usr.bin/gettext/libgrep/Makefile 1.3
    345  1.100.2.2  mjf 		gnu/usr.bin/gettext/libnlspr/Makefile 1.5
    346  1.100.2.2  mjf 		gnu/usr.bin/gettext/libnlsut/Makefile 1.3   
    347  1.100.2.2  mjf 	descr
    348  1.100.2.2  mjf 		The latest gettext assumes a C99 environment or at least
    349  1.100.2.2  mjf 		configure checks to work around this. As we don't use configure
    350  1.100.2.2  mjf 		provide a stdbool.h for vax builds locally in directories from
    351  1.100.2.2  mjf 		the template provided by the gettext code.
    352  1.100.2.2  mjf 	kcah
    353  1.100.2.2  mjf 	
    354  1.100.2.2  mjf 	hack	gcc 2.95/vax cannot handle __builtin_ffs()
    355  1.100.2.2  mjf 	cdate	Fri Aug 23 21:31:15 CEST 2002
    356  1.100.2.2  mjf 	who	ragge
    357  1.100.2.2  mjf 	file	sys/lib/libkern/libkern.h : 1.42
    358  1.100.2.2  mjf 	descr
    359  1.100.2.2  mjf 		__builtin_ffs() is ifdef'd away if __vax__. Matt Thomas has
    360  1.100.2.2  mjf 		added this feature to GCC 3 so it can be removed when switching.
    361  1.100.2.2  mjf 	kcah
    362  1.100.2.2  mjf 
    363  1.100.2.2  mjf 	hack	gcc 2.95/vax libbz2
    364  1.100.2.2  mjf 	mdate	27 Jun 2002
    365  1.100.2.2  mjf 	who	thorpej
    366  1.100.2.2  mjf 	file	lib/libbz2/Makefile
    367  1.100.2.2  mjf 	descr
    368  1.100.2.2  mjf 		libbz2 is mis-compiled with optimization with GCC 2.95.3
    369  1.100.2.2  mjf 		on VAX.  -O0 works around this problem.
    370  1.100.2.2  mjf 	kcah
    371  1.100.2.2  mjf 
    372  1.100.2.2  mjf 	hack	vax Toolchain bug
    373  1.100.2.2  mjf 	cdate	28 Mar 2003
    374  1.100.2.2  mjf 	who	he
    375  1.100.2.2  mjf 	file	sys/arch/vax/vax/intvec.S : 1.5
    376  1.100.2.2  mjf 	descr
    377  1.100.2.2  mjf 		Workaround for PR toolchain/20924.  The assembler apparently
    378  1.100.2.2  mjf 		tries to range-check byte offsets when it doesn't have
    379  1.100.2.2  mjf 		sufficient information to make that decision.
    380  1.100.2.2  mjf 		Workaround uses `brw' instead of `brb' instruction.
    381  1.100.2.2  mjf 	kcah
    382  1.100.2.2  mjf 
    383  1.100.2.2  mjf 	hack	vax gcc 2.95.3 -Wuninitialized workarounds
    384  1.100.2.2  mjf 	cdate	6 Nov 2003
    385  1.100.2.2  mjf 	who	he
    386  1.100.2.2  mjf 	file	sys/dev/bi/if_ni.c : 1.22
    387  1.100.2.2  mjf 	file	sys/arch/vax/vax/ctu.c : 1.20
    388  1.100.2.2  mjf 	descr
    389  1.100.2.2  mjf 		Workaround for gcc 2.95.3 failing to detect that certain
    390  1.100.2.2  mjf 		variables will be initialized; so that this code compiles
    391  1.100.2.2  mjf 		with -Wuninitialized.  Should be reviewed and possibly
    392  1.100.2.2  mjf 		reverted when gcc 3.3.2 is ready for vax.
    393  1.100.2.2  mjf 	kcah
    394  1.100.2.2  mjf 
    395  1.100.2.2  mjf 	hack	vax gcc 2.95.3 structure initialization
    396  1.100.2.2  mjf 	cdat	13 May 2004
    397  1.100.2.2  mjf 	who	cl
    398  1.100.2.2  mjf 	file	sys/miscfs/kernfs/kernfs_vnops.c : 1.104
    399  1.100.2.2  mjf 	descr
    400  1.100.2.2  mjf 		Workaround for gcc 2.95.3 failing to initialize structures
    401  1.100.2.2  mjf 		and/or unions inside structures using nested designators.
    402  1.100.2.2  mjf 		Should be reverted when gcc >=3.3.3 is ready for vax.
    403  1.100.2.2  mjf 	kcah
    404  1.100.2.2  mjf 
    405  1.100.2.2  mjf 	hack	vax gcc 2.95.3 needs -I. to build nslexer.c
    406  1.100.2.2  mjf 	cdat	6 Jun 2004
    407  1.100.2.2  mjf 	who	mhitch
    408  1.100.2.2  mjf 	file	lib/libc/arch/vax/Makefile.inc : 1.6
    409  1.100.2.2  mjf 	descr
    410  1.100.2.2  mjf 		It appears necessary to add -I. to CPPFLAGS when building
    411  1.100.2.2  mjf 		nslesxer.c.  This may be caused by gcc 2.95.3 being used.
    412  1.100.2.2  mjf 		Should be reverted when a newer gcc is ready for vax.
    413  1.100.2.2  mjf 	kcah
    414  1.100.2.2  mjf 
    415  1.100.2.2  mjf 	hack	vax gcc 2.95.3 doesn't understand "-std=c99"
    416  1.100.2.2  mjf 	cdat	5 April 2005
    417  1.100.2.2  mjf 	who	tron
    418  1.100.2.2  mjf 	file	src/share/mk/bsd.sys.mk
    419  1.100.2.2  mjf 	descr
    420  1.100.2.2  mjf 		We cannot use "-std=c99" for compiler warning level 4 and above
    421  1.100.2.2  mjf 		because gcc 2.95.3 doesn't support that option.
    422  1.100.2.2  mjf 	kcah
    423  1.100.2.2  mjf 
    424  1.100.2.2  mjf 	hack	declare boolean_t in two IPF user-mode programs
    425  1.100.2.2  mjf 	cdate	Tue Mar  7 19:19:20 CET 2006
    426  1.100.2.2  mjf 	who	he
    427  1.100.2.2  mjf 	file	dist/ipf/ipsend/iptests.c : 1.8
    428  1.100.2.2  mjf 		dist/ipf/ipsend/sock.c : 1.7
    429  1.100.2.2  mjf 	descr
    430  1.100.2.2  mjf 		The IPF user-mode programs ipsend and iptest first
    431  1.100.2.2  mjf 		include <sys/types.h> without _KERNEL defined, and
    432  1.100.2.2  mjf 		later include <sys/file.h> with _KERNEL defined.
    433  1.100.2.2  mjf 		This causes a build failure when building for vax,
    434  1.100.2.2  mjf 		since <sys/device.h> ends up being included without
    435  1.100.2.2  mjf 		bollean_t being defined by <sys/types.h>.
    436  1.100.2.2  mjf 		Build failure and further details documented in
    437  1.100.2.2  mjf 		PR#32907.
    438  1.100.2.2  mjf 	kcah
    439  1.100.2.2  mjf 
    440  1.100.2.3  mjf 	hack	pcc 0.9.9 large string literals
    441  1.100.2.3  mjf 	cdat	8 July 2008
    442  1.100.2.3  mjf 	who	gmcgarry
    443  1.100.2.3  mjf 	file	sys/conf/param.c : 1.58
    444  1.100.2.3  mjf 	descr
    445  1.100.2.3  mjf 		Workaround for pcc 0.9.9 not handling large string literals
    446  1.100.2.3  mjf 		which causes kernels with 'options INCLUDE_CONFIG_FILE' to
    447  1.100.2.3  mjf 		fail compilation.
    448  1.100.2.3  mjf 		There is a proposal on the pcc mailing list to stuff config
    449  1.100.2.3  mjf 		file in ELF section.
    450  1.100.2.3  mjf 	kcah
    451  1.100.2.3  mjf 
    452  1.100.2.3  mjf 	hack	xorg warnings
    453  1.100.2.3  mjf 	cdat	30 July 2008
    454  1.100.2.3  mjf 	who	mrg
    455  1.100.2.3  mjf 	file	external/mit/xorg/lib/libSM/Makefile : 1.2
    456  1.100.2.3  mjf 		external/mit/xorg/lib/libX11/Makefile.libx11 : 1.2
    457  1.100.2.3  mjf 		external/mit/xorg/lib/libXext/Makefile : 1.2
    458  1.100.2.3  mjf 		external/mit/xorg/lib/libXfont/Makefile : 1.2
    459  1.100.2.3  mjf 	descr
    460  1.100.2.3  mjf 		Disable several warnings or use -Wno-error across Xorg sources
    461  1.100.2.3  mjf 		while we get them working
    462  1.100.2.3  mjf 	kcah
    463  1.100.2.3  mjf 
    464  1.100.2.2  mjf port	arm
    465  1.100.2.2  mjf 
    466  1.100.2.2  mjf 	hack	gcc-unsigned-compare
    467  1.100.2.2  mjf 	cdate	09 Mar 2002
    468  1.100.2.2  mjf 	mdate	18 Mar 2002
    469  1.100.2.2  mjf 	who	bjh21
    470  1.100.2.2  mjf 	file	dist/bind/lib/nameser/ns_parse.c : 1.3
    471  1.100.2.2  mjf 	file	dist/dhcp/minires/ns_parse.c : 1.3
    472  1.100.2.2  mjf 	file	dist/dhcp/omapip/result.c : 1.2
    473  1.100.2.2  mjf 	file	dist/dhcp/server/failover.c : 1.3
    474  1.100.2.2  mjf 	file	gnu/dist/toolchain/bfd/bfd.c : 1.2
    475  1.100.2.2  mjf 	file	gnu/dist/toolchain/bfd/format.c : 1.2
    476  1.100.2.2  mjf 	file	gnu/dist/toolchain/gdb/target.c : 1.2
    477  1.100.2.2  mjf 	file	sys/kern/vfs_subr.c : 1.172
    478  1.100.2.2  mjf 	descr	When checking that a potentially-unsigned enum is >= 0, assign
    479  1.100.2.2  mjf 		it to an int first.  This is necessary to avoid "comparison is
    480  1.100.2.2  mjf 		always true" warnings with -fshort-enums.  Casting to an int
    481  1.100.2.2  mjf 		really should be enough, but turns out not to be.
    482  1.100.2.2  mjf 	kcah
    483  1.100.2.2  mjf 
    484  1.100.2.2  mjf 
    485  1.100.2.2  mjf port	sh3
    486  1.100.2.2  mjf 
    487  1.100.2.2  mjf 	hack	gcc4-sh3-bz2
    488  1.100.2.2  mjf 	cdate	Sun May 21 03:34:57 UTC 2006
    489  1.100.2.2  mjf 	mdate	Fri May 16 13:13:00 UTC 2008
    490  1.100.2.2  mjf 	who	mrg, tsutsui
    491  1.100.2.2  mjf 	file	lib/libbz2/Makefile	: 1.10
    492  1.100.2.2  mjf 	descr
    493  1.100.2.2  mjf 		The in-tree GCC 4.1-based compiler generated too-far
    494  1.100.2.2  mjf 		pc-relative addresses.  Hack is to build with
    495  1.100.2.2  mjf 		-fno-loop-optimize.
    496  1.100.2.2  mjf 	kcah
    497  1.100.2.2  mjf 
    498  1.100.2.2  mjf 
    499  1.100.2.2  mjf port	m68000
    500  1.100.2.2  mjf 
    501  1.100.2.2  mjf 	hack	gcc4-m68000
    502  1.100.2.2  mjf 	cdate	Fri Feb  8 10:29:37 PST 2008
    503  1.100.2.2  mjf 	mdate	Sun May  4 15:37:19 UTC 2008
    504  1.100.2.2  mjf 	who	mrg, tsutsui
    505  1.100.2.2  mjf 	file	rescue/Makefile	: 1.21
    506  1.100.2.2  mjf 	file	sbin/dump_lfs/Makefile	: 1.9
    507  1.100.2.2  mjf 	file	sbin/fsck_ffs/Makefile	: 1.35
    508  1.100.2.2  mjf 	file	sbin/fsdb/Makefile	: 1.22
    509  1.100.2.2  mjf 	file	share/mk/sys.mk	: 1.96
    510  1.100.2.2  mjf 	file	usr.sbin/ndbootd/Makefile	: 1.5
    511  1.100.2.2  mjf 	descr
    512  1.100.2.2  mjf 		Several internal compiler errors with gcc -O1
    513  1.100.2.2  mjf 		around 64bit integer arithmetic.
    514  1.100.2.2  mjf 		This hack uses -O1 and adds some -fno-tree-foo options
    515  1.100.2.2  mjf 		to avoid the problem.
    516  1.100.2.2  mjf 		This might be related with GCC Bugzilla Bug 32424.
    517  1.100.2.2  mjf 	kcah
    518  1.100.2.2  mjf 
    519  1.100.2.2  mjf 
    520  1.100.2.2  mjf port	sparc64
    521  1.100.2.2  mjf 
    522  1.100.2.2  mjf 	hack	disable optimzations for uvm_bio.c on 32 bit kernels
    523  1.100.2.2  mjf 	cdate	Sun Mar 21 14:14:04 MET 2004
    524  1.100.2.2  mjf 	who	martin
    525  1.100.2.2  mjf 	file	sys/arch/sparc64/conf/Makefile.sparc64 : 1.53-1.54
    526  1.100.2.2  mjf 	file	sys/arch/sparc64/conf/files.sparc64 : 1.93
    527  1.100.2.2  mjf 	descr
    528  1.100.2.2  mjf 		The sparc compiler miscompiles uvm_bio.c when using
    529  1.100.2.2  mjf 		any optimization. This results in ubc_release panics.
    530  1.100.2.2  mjf 	kcah
    531  1.100.2.2  mjf 
    532  1.100.2.2  mjf port	mips
    533  1.100.2.2  mjf 
    534  1.100.2.2  mjf 	hack	mips-shared-linker-load-address
    535  1.100.2.2  mjf 	cdate	Fri Oct  7 08:33:10 UTC 2005
    536  1.100.2.2  mjf 	who	simonb
    537  1.100.2.2  mjf 	file	src/sys/kern/exec_elf32.c : 1.107
    538  1.100.2.2  mjf 	descr
    539  1.100.2.2  mjf 		With COMPAT_16 or previous enabled (which enables
    540  1.100.2.2  mjf 		ELF_INTERP_NON_RELOCATABLE) a recent ld.elf_so will
    541  1.100.2.2  mjf 		load and run at address 0.  The check to fix this in
    542  1.100.2.2  mjf 		rev 1.107 only checks the first psection of the ELF
    543  1.100.2.2  mjf 		executable, which may not be loadable.  A more correct
    544  1.100.2.2  mjf 		fix is to check the first loadable psection instead of
    545  1.100.2.2  mjf 		just the first psection.
    546  1.100.2.2  mjf 	kcah
    547  1.100.2.2  mjf 
    548  1.100.2.2  mjf 	hack	mips-duplicate-ras-end-label
    549  1.100.2.2  mjf 	cdate	Sat Sep  2 23:29:42 2006
    550  1.100.2.2  mjf 	who	martin
    551  1.100.2.2  mjf 	file	src/regress/sys/kern/ras/ras3/Makefile : 1.3
    552  1.100.2.2  mjf 	descr
    553  1.100.2.2  mjf 		Add -fno-reorder-blocks to CFLAGS to avoid duplicate
    554  1.100.2.2  mjf 		labels by duplicated __asm output from RAS_END()
    555  1.100.2.2  mjf 		macro.
    556  1.100.2.2  mjf 	kcah
    557  1.100.2.2  mjf 
    558  1.100.2.3  mjf 	hack	mips-mcount-assembler-warning
    559  1.100.2.3  mjf 	cdate	Tue Jul 29 14:16:52 UTC 2008
    560  1.100.2.3  mjf 	who	lukem
    561  1.100.2.3  mjf 	file	src/lib/libc/gmon/Makefile.inc : 1.8
    562  1.100.2.3  mjf 	descr
    563  1.100.2.3  mjf 		Workaround for PR port-mips/39192.
    564  1.100.2.3  mjf 		common/lib/libc/gmon/mcount.c generates a (fatal)
    565  1.100.2.3  mjf 		assembler warning on MIPS:
    566  1.100.2.3  mjf 			Warning: No .cprestore pseudo-op used in PIC code
    567  1.100.2.3  mjf 		Add COPTS.count.c+=-Wa,--no-warn to avoid -Wa,--fatal-warnings
    568  1.100.2.3  mjf 	kcah
    569  1.100.2.3  mjf 
    570  1.100.2.2  mjf port	i386
    571  1.100.2.2  mjf 
    572  1.100.2.2  mjf 	hack	use volatile intermediate variable to enforce rounding
    573  1.100.2.2  mjf 	cdate	Tue Aug  1 22:15:55 MEST 2006
    574  1.100.2.2  mjf 	who	drochner
    575  1.100.2.2  mjf 	file	src/lib/libm/src/lrintf.c : 1.4
    576  1.100.2.2  mjf 	file	src/lib/libm/src/s_rintf.c : 1.8
    577  1.100.2.2  mjf 	descr
    578  1.100.2.2  mjf 		gcc-4 does subsequent operations on "float" values within
    579  1.100.2.2  mjf 		the i387 FPU without rounding the intermediate results
    580  1.100.2.2  mjf 	kcah
    581  1.100.2.3  mjf 
    582  1.100.2.3  mjf port	powerpc
    583  1.100.2.3  mjf 
    584  1.100.2.3  mjf 	hack	avoid using __builtin_return_address(0) because it fails in
    585  1.100.2.3  mjf 		Xorg's module loader
    586  1.100.2.3  mjf 	cdate	Sat Sep 27 03:52:05 UTC 2008
    587  1.100.2.3  mjf 	who	macallan
    588  1.100.2.3  mjf 	file	src/libexec/ld.elf_so/rtld.c : 1.121
    589  1.100.2.3  mjf 	descr
    590  1.100.2.3  mjf 		workaround for PR port-macppc/37812
    591  1.100.2.3  mjf 	kcah
    592  1.100.2.3  mjf 
    593