HACKS revision 1.183
11.183Srin# $NetBSD: HACKS,v 1.183 2017/02/16 01:02:28 rin Exp $ 21.1Slukem# 31.1Slukem# This file is intended to document workarounds for currently unsolved 41.1Slukem# (mostly) compiler bugs. 51.1Slukem# 61.1Slukem# Format: 71.1Slukem# hack title 81.1Slukem# cdate creation date 91.1Slukem# mdate mod date 101.1Slukem# who responsible developer 111.1Slukem# port ... 121.1Slukem# affected ports, space separated, if not "all" 131.1Slukem# file affected file : revision : line from : line to 141.1Slukem# affected files and revision and line numbers describing hack 151.1Slukem# multiple lines if necessary. 161.1Slukem# pr NNNN ... 171.1Slukem# problem reports this hack works around, if known. Space 181.1Slukem# separated. 191.1Slukem# regress src/regress/directory/where/test/found 201.1Slukem# regression test directories, if available. 211.1Slukem# descr 221.1Slukem# insert short informal description (multi-line). (Longer ones 231.1Slukem# should be in the PR database. More formal descriptions might 241.1Slukem# be in the regress tree. See above). 251.1Slukem# kcah 261.1Slukem# closing bracket. 271.1Slukem# 281.1Slukem# this is a comment. 291.1Slukem 301.166Schristoshack gcc-5.3 optimizes memset+malloc -> calloc inside calloc 311.166Schristosmdate 4 May 2016 321.166Schristoswho christos 331.166Schristosfile external/gpl2/lib/libmalloc/lib/Makefile 1.3 -> 1.5 341.166Schristosdescr 351.166Schristos resulting in infinite recursion; we prevent this with 361.166Schristos -fno-builtin-malloc 371.166Schristoskcah 381.166Schristos 391.167Smrghack turn off tree-vrp for parts of ufs_lookup.c 401.167Smrgmdate 28 April 2016 411.167Smrgwho mrg christos 421.167Smrgfile src/sys/ufs/ufs/ufs_lookup.c : 1.144 431.167Smrgpr 51094 441.167Smrgdescr 451.167Smrg with -ftree-vrp enabled in ufs_lookup.c sometimes bad dir 461.167Smrg panicks are see. 471.167Smrghcah 481.167Smrg 491.1Slukemhack netstat ieee1394 address printing. 501.1Slukemmdate 14 Nov 2000 511.1Slukemwho matt 521.1Slukemfile lib/libc/net/getnameinfo.c : 1.32 : 497 : 503 531.1Slukemdescr 541.1Slukem Because the current implementation of IP over IEEE1394, the 551.1Slukem fw device address contains more than just the IEEE1394 EUI-64. 561.1Slukem So when printing out IEEE1394 addresses, ignore the extra stuff. 571.1Slukemkcah 581.1Slukem 591.1Slukemhack xterm vs. libterm 601.1Slukemmdate 01 Aug 2000 611.1Slukemwho jdc 621.1Slukemfile xsrc/xc/programs/xterm/main.c : 1.2 : 3609 : 3614 631.1Slukempr 10383 641.1Slukemdescr 651.1Slukem In order to extend the termcap string over 1023 bytes, a ZZ entry was 661.1Slukem introduced to point to a memory location containing the full entry. 671.1Slukem Without this hack, xterm will export a termcap containing the ZZ 681.1Slukem entry, which will then be ignored by libterm. As xterm modifies the 691.1Slukem exported termcap, this would cause those modifications to be ignored. 701.1Slukemkcah 711.1Slukem 721.1Slukemhack wi-at-big-endian-bus 731.1Slukemcdate 15 Mar 2002 741.1Slukemwho martin 751.1Slukemfile dev/ic/wireg.h 761.1Slukemdescr Add an option to access the underlying bus in big endian byte order 771.1Slukem to work around deficiencies in bus_space_{read,write}_* macros. 781.1Slukem Those don't allow the implementation of a proper pcmcia bus space 791.1Slukem tag. 801.1Slukemkcah 811.1Slukem 821.3Sjdchack specific knowledge of colours in curses code 831.3Sjdccdate Sun Apr 6 11:05:24 BST 2003 841.3Sjdcwho jdc 851.3Sjdcfile lib/libcurses/color.c : r1.24 861.3Sjdcdescr 871.3Sjdc Swap red/blue and yellow/cyan colours for COLOR_OTHER. 881.3Sjdc Fix is to enhance libtermcap to understand terminfo-style % sequences. 891.3Sjdc See also: 901.5Ssalo http://mail-index.NetBSD.org/tech-userlevel/2003/04/06/0000.html 911.4Sscwkcah 921.4Sscw 931.7Shehack Compensation for differing types of LINUX_USRSTACK and USRSTACK 941.7Shecdate 21 Aug 2003 951.7Shewho he 961.7Shefile sys/miscfs/procfs/procfs_linux.c : 1.14 971.7Shedescr 981.7She Not all ports have LINUX_USRSTACK and/or USRSTACK defined as 991.7She literals/constants, but refer to variables of a type which is 1001.7She not "unsigned long", causing compilation of procfs_linux.c to 1011.7She fail with "makes integer from pointer without a cast". This 1021.7She is observed on e.g. the sun3 port. Ideally the "types" for 1031.7She symbols should be consistent across all ports. 1041.25Smrgkcah 1051.25Smrg 1061.80Stsutsuihack gcc4 wrong uninitialized variable 1071.58Smrgmdate 10 May 2006 1081.58Smrgwho mrg 1091.58Smrgfile bin/ksh/eval.c : 1.6 1101.58Smrgfile bin/sh/histedit.c : 1.39 1111.58Smrgfile bin/sh/parser.c : 1.60 1121.58Smrgfile crypto/dist/heimdal/kdc/524.c : 1.10 1131.58Smrgfile crypto/dist/ssh/sftp.c : 1.20 1141.58Smrgfile crypto/dist/ssh/ssh-keysign.c : 1.11 1151.58Smrgfile dist/ipf/lib/hostname.c : 1.2 1161.58Smrgfile dist/ipf/tools/ipmon.c : 1.8 1171.72Smrgfile dist/ntp/ntpd/ntp_request.c : 1.4 1181.58Smrgfile dist/ntp/ntpd/refclock_shm.c : 1.4 1191.58Smrgfile dist/ntp/sntp/timing.c : 1.3 1201.58Smrgfile dist/pppd/pppstats/pppstats.c : 1.3 1211.58Smrgfile dist/smbfs/lib/smb/rap.c : 1.6 1221.58Smrgfile dist/tcpdump/print-zephyr.c : 1.5 1231.68Smrgfile distrib/utils/sysinst/aout2elf.c : 1.12 1241.58Smrgfile gnu/libexec/uucp/uucico/uucico.c : 1.6 1251.58Smrgfile lib/libc/citrus/citrus_csmapper.c : 1.6 1261.58Smrgfile lib/libc/citrus/citrus_pivot_factory.c : 1.5 1271.58Smrgfile lib/libc/inet/inet_cidr_ntop.c : 1.3 1281.58Smrgfile lib/libc/inet/inet_ntop.c : 1.3 1291.58Smrgfile lib/libc/stdio/vfwprintf.c : 1.8 1301.69Smrgfile libexec/ld.elf_so/arch/m68k/mdreloc.c : 1.20 1311.76Smrgfile libexec/ld.elf_so/arch/powerpc/ppc_reloc.c : 1.40 1321.74Smrgfile libexec/ld.elf_so/arch/sh3/mdreloc.c : 1.22 1331.69Smrgfile libexec/ld.elf_so/arch/sparc/mdreloc.c : 1.39 1341.58Smrgfile libexec/ld.elf_so/arch/sparc64/mdreloc.c : 1.39 1351.74Smrgfile libexec/ld.elf_so/arch/vax/mdreloc.c : 1.21 1361.71Sdanfile libexec/ld.elf_so/arch/x86_64/mdreloc.c : 1.27 1371.58Smrgfile sbin/fsck_ext2fs/dir.c : 1.19 1381.58Smrgfile sbin/routed/rtquery/rtquery.c : 1.18 1391.73Sdanfile sys/arch/amd64/amd64/pmap.c : 1.26 1401.79Smrgfile sys/arch/i386/pci/piixpcib.c : 1.4 1411.80Stsutsuifile sys/arch/m68k/m68k/pmap_motorola.c : 1.4 1421.58Smrgfile sys/crypto/cast128/cast128.c : 1.9 1431.58Smrgfile sys/ddb/db_command.c : 1.86 1441.68Smrgfile sys/dev/cardbus/cardbus_map.c : 1.21 1451.58Smrgfile sys/dev/fss.c : 1.25 1461.69Smrgfile sys/dev/ic/igsfb.c : 1.39 1471.68Smrgfile sys/dev/ic/mb86950.c : 1.5 1481.58Smrgfile sys/dev/ic/midway.c : 1.71 1491.68Smrgfile sys/dev/kttcp.c : 1.18 1501.68Smrgfile sys/dev/rasops/rasops_bitops.h : 1.9 1511.68Smrgfile sys/dev/pci/cmpci.c : 1.31 1521.58Smrgfile sys/dev/pci/machfb.c : 1.45 1531.68Smrgfile sys/dev/usb/ohci.c : 1.174 1541.68Smrgfile sys/dev/usb/uhci.c : 1.196 1551.68Smrgfile sys/dev/rasops/rasops_bitops.h : 1.9 1561.58Smrgfile sys/dist/ipf/netinet/ip_nat.c : 1.10 1571.58Smrgfile sys/dist/ipf/netinet/ip_rpcb_pxy.c : 1.8 1581.58Smrgfile sys/dist/pf/net/pf.c : 1.22 1591.59Smrgfile sys/fs/udf/udf_vnops.c : 1.4 1601.58Smrgfile sys/kern/kern_sig.c : 1.219 1611.58Smrgfile sys/kern/tty.c : 1.181 1621.58Smrgfile sys/net/bpf.c : 1.116 1631.58Smrgfile sys/net/zlib.c : 1.26 1641.68Smrgfile sys/netccitt/if_x25subr.c : 1.37 1651.58Smrgfile sys/netinet/in.c : 1.107 1661.58Smrgfile sys/netsmb/smb_smb.c : 1.27 1671.58Smrgfile sys/netsmb/smb_trantcp.c : 1.22 1681.58Smrgfile sys/nfs/nfs_serv.c : 1.108 1691.58Smrgfile sys/nfs/nfs_socket.c : 1.129 1701.58Smrgfile sys/nfs/nfs_syscalls.c : 1.91 1711.58Smrgfile sys/ufs/lfs/lfs_vfsops.c : 1.207 [also (char *)] 1721.58Smrgfile usr.bin/ftp/ftp.c : 1.140 1731.58Smrgfile usr.bin/find/function.c : 1.54 1741.58Smrgfile usr.bin/mail/tty.c : 1.20 1751.100Stsutsuifile usr.bin/msgc/msg_sys.def : 1.33-1.34 1761.58Smrgfile usr.bin/nl/nl.c : 1.7 1771.58Smrgfile usr.bin/systat/keyboard.c : 1.23 1781.58Smrgfile usr.bin/usbhidctl/usbhid.c : 1.29 1791.58Smrgfile usr.bin/vi/cl/cl_read.c : 1.5 1801.58Smrgfile usr.bin/vi/ex/ex_cscope.c : 1.12 1811.58Smrgfile usr.bin/vi/ex/ex_tag.c : 1.19 1821.58Smrgfile usr.bin/vi/vi/v_txt.c : 1.15 1831.58Smrgfile usr.sbin/altq/altqstat/qdisc_rio.c : 1.4 1841.58Smrgfile usr.sbin/cron/do_command.c : 1.19 1851.58Smrgfile usr.sbin/timed/timed/slave.c : 1.15 1861.58Smrgdescr 1871.58Smrg GCC 4.1 gets many uninitialised variable warnings wrong. We should 1881.58Smrg really audit all the old hacks like this when older compilers are 1891.58Smrg removed from the tree, as many are probably no longer required. 1901.65Schristos The problem is that it does not recognize initialization via function 1911.65Schristos call pointer. I.e. 1921.65Schristos int p; 1931.65Schristos foo(&p); 1941.65Schristos does not mark p as initialized. 1951.58Smrgkcah 1961.58Smrg 1971.59Smrghack gcc4 pointer sign and strict aliasing problems 1981.59Smrgmdate 10 May 2006 1991.59Smrgwho mrg 2001.59Smrgfile bin/ed/Makefile : 1.33 2011.68Smrgfile distrib/utils/sysinst/Makefile.inc : 1.44 2021.91Smartinfile distrib/utils/x_dhclient/Makefile : 1.15 2031.60Smrgfile games/bcd/Makefile : 1.5 2041.60Smrgfile games/dab/Makefile : 1.5 2051.60Smrgfile games/larn/Makefile : 1.17 2061.60Smrgfile games/pom/Makefile : 1.5 2071.60Smrgfile lib/libasn1/Makefile : 1.26 2081.60Smrgfile lib/libcrypt/Makefile : 1.17 2091.60Smrgfile lib/libgssapi/Makefile : 1.16 2101.60Smrgfile lib/libhdb/Makefile : 1.20 2111.60Smrgfile lib/libkadm5clnt/Makefile : 1.21 2121.60Smrgfile lib/libkadm5srv/Makefile : 1.25 2131.60Smrgfile lib/libkrb5/Makefile : 1.35 2141.60Smrgfile lib/libssh/Makefile : 1.6 2151.60Smrgfile lib/libtelnet/Makefile : 1.26 2161.60Smrgfile libexec/getty/Makefile : 1.14 2171.60Smrgfile libexec/kadmind/Makefile : 1.19 2181.60Smrgfile libexec/kpasswdd/Makefile : 1.14 2191.60Smrgfile sbin/atactl/Makefile : 1.3 2201.60Smrgfile sbin/cgdconfig/Makefile : 1.7 2211.60Smrgfile sbin/clri/Makefile : 1.13 2221.60Smrgfile sbin/dkctl/Makefile : 1.4 2231.60Smrgfile sbin/dump/Makefile : 1.33 2241.60Smrgfile sbin/fdisk/Makefile : 1.35 2251.60Smrgfile sbin/fsck_ext2fs/Makefile : 1.11 2261.60Smrgfile sbin/fsck_ffs/Makefile : 1.29 2271.60Smrgfile sbin/fsdb/Makefile : 1.18 2281.60Smrgfile sbin/mount_smbfs/Makefile : 1.4 2291.60Smrgfile sbin/newfs/Makefile : 1.30 2301.60Smrgfile sbin/newfs_sysvbfs/Makefile : 1.2 2311.60Smrgfile sbin/restore/Makefile : 1.23 2321.60Smrgfile sbin/veriexecctl/Makefile : 1.11 2331.64Smrgfile sys/lib/libsa/Makefile : 1.59 2341.68Smrgfile sys/arch/evbarm/adi_brh/brh_machdep.c : 1.24 2351.59Smrgfile usr.bin/awk/Makefile : 1.9 2361.64Smrgfile usr.bin/crontab/Makefile : 1.24 2371.60Smrgfile usr.bin/ctags/Makefile : 1.8 2381.61Smrgfile usr.bin/gzip/Makefile : 1.10 2391.60Smrgfile usr.bin/ssh/sftp/Makefile : 1.10 2401.60Smrgfile usr.bin/ssh/ssh/Makefile : 1.25 2411.59Smrgfile usr.bin/vi/build/Makefile : 1.26 2421.60Smrgfile usr.bin/telnet/Makefile : 1.40 2431.60Smrgfile usr.bin/tn3270/tn3270/Makefile : 1.36 2441.60Smrgfile usr.bin/tr/Makefile : 1.4 2451.59Smrgfile usr.sbin/amd/amd/Makefile : 1.27 2461.59Smrgfile usr.sbin/amd/amq/Makefile : 1.14 2471.59Smrgfile usr.sbin/amd/libamu/Makefile : 1.20 2481.59Smrgfile usr.sbin/amd/pawd/Makefile : 1.5 2491.59Smrgfile usr.sbin/bind/Makefile.inc : 1.22 2501.60Smrgfile usr.sbin/bind/libdns/Makefile : 1.3 2511.60Smrgfile usr.sbin/bind/named/Makefile : 1.17 2521.60Smrgfile usr.sbin/bootp/bootptest/Makefile : 1.2 2531.60Smrgfile usr.sbin/chrtbl/Makefile : 1.6 2541.60Smrgfile usr.sbin/cron/Makefile : 1.12 2551.59Smrgfile usr.sbin/dhcp/Makefile.inc : 1.20 2561.60Smrgfile usr.sbin/hprop/Makefile : 1.13 2571.60Smrgfile usr.sbin/installboot/Makefile : 1.35 2581.59Smrgfile usr.sbin/ipf/ipftest/Makefile : 1.32 2591.59Smrgfile usr.sbin/isdn/isdnd/Makefile : 1.6 2601.59Smrgfile usr.sbin/isdn/isdnmonitor/Makefile : 1.3 2611.59Smrgfile usr.sbin/isdn/isdntel/Makefile : 1.2 2621.59Smrgfile usr.sbin/isdn/isdntrace/Makefile : 126 2631.61Smrgfile usr.sbin/mopd/common/Makefile : 1.10 2641.61Smrgfile usr.sbin/mopd/mopd/Makefile : 1.9 2651.61Smrgfile usr.sbin/mopd/mopprobe/Makefile : 1.7 2661.60Smrgfile usr.sbin/makefs/Makefile : 1.17 2671.60Smrgfile usr.sbin/mscdlabel/Makefile : 1.5 2681.60Smrgfile usr.sbin/pkg_install/add/Makefile : 1.7 2691.60Smrgfile usr.sbin/pkg_install/create/Makefile : 1.5 2701.60Smrgfile usr.sbin/pkg_install/lib/Makefile : 1.28 2711.59Smrgfile usr.sbin/ntp/ntpd/Makefile : 1.10/1.11 2721.59Smrgfile usr.sbin/ntp/ntptime/Makefile : 1.4/1.5 2731.59Smrgfile usr.sbin/pppd/Makefile.inc : 1.3 2741.59Smrgfile usr.sbin/pppd/pppd/Makefile : 1.38 2751.60Smrgfile usr.sbin/rarpd/Makefile : 1.10 2761.59Smrgfile usr.sbin/rbootd/Makefile : 1.10 2771.60Smrgfile usr.sbin/rpc.pcnfsd/Makefile : 1.17 2781.60Smrgfile usr.sbin/tcpdump/Makefile : 1.42 2791.59Smrgdescr 2801.59Smrg GCC 4.1 warns on pointer sign comparision/assignments and lots of 2811.59Smrg code does not conform. For now we use -Wno-pointer-sign and 2821.59Smrg -fno-strict-aliasing. 2831.59Smrgkcah 2841.59Smrg 2851.145Schristoshack disable ctf for gcc-4.8 build 2861.145Schristosmdate April 3 2014 2871.146Swizwho christos 2881.145Schristosfile external/gpl3/gcc/usr.bin/Makefile.frontend : 1.4 2891.145Schristosfile external/gpl3/gcc/usr.bin/Makefile.backend : 1.5 2901.145Schristosdescr 2911.145Schristos nbctfconvert -g -L VERSION -g fold-const.o 2921.145Schristos ERROR: fold-const.c: failed to get mapping for tid 79154 \ 2931.145Schristos ((null)) <13532> 2941.145Schristoskcak 2951.145Schristos 2961.121Schristoshack emacs aborting on exit (libgcc issue) 2971.121Schristosmdate 7 November 2011 2981.121Schristoswho christos 2991.121Schristosfile external/gpl3/gcc/dist/gcc/unwind-dw2-fde.c : 1.2 3001.121Schristosdescr 3011.121Schristos GCC 4.5.3 now calls __unregister_frame_info_bases() on unloading/exit 3021.121Schristos to do just that. If the symbol requested is not found, then it aborts. 3031.121Schristos emacs 23.3 triggers this assertion. For now disable aborting, and 3041.121Schristos silently ignore. 3051.121Schristoskcah 3061.121Schristos 3071.105Sagchack cross-building hack on Darwin 3081.105Sagcmdate 20 July 2008 3091.105Sagcwho agc 3101.105Sagcfile src/distrib/common/Makefile.mdset : 1.33 3111.105Sagcdescr 3121.105Sagc Darwin has problems with getopt() when used in mdsetimage -v, 3131.105Sagc due to the difference between BSD and libiberty() getopt 3141.105Sagc implementations, more fully described in 3151.105Sagc http://mail-index.netbsd.org/current-users/2008/06/27/msg003242.html 3161.105Sagc and the subsequent thread. For just now, we just have an ugly 3171.105Sagc workaround not to call mdsetimage with the -v argument on Darwin 3181.105Sagckcah 3191.105Sagc 3201.109Sveegohack avoid rebuilding asn1 libraries 3211.109Sveegomdate 03 August 2008 3221.109Sveegowho veego 3231.109Sveegofile src/crypto/dist/heimdal/lib/asn1/gen.c : 1.10 3241.109Sveegofile src/lib/libasn1/Makefile : 1.32 3251.109Sveegofile src/lib/libhdb/Makefile : 1.23 3261.109Sveegofile src/lib/libgssapi/Makefile : 1.20 3271.109Sveegofile src/lib/libhx509/Makefile : 1.3 3281.109Sveegopr 9702 39185 3291.109Sveegodescr 3301.109Sveego asn1_compile does not check if generated header files do not have to 3311.109Sveego be rebuild. 3321.109Sveego Generate .hx files and copy it in the Makefiles if they changed. 3331.109Sveegokcah 3341.109Sveego 3351.114Schristoshack MKPIE ldscript for /usr.sbin/crash 3361.114Schristoscdate 22 April 2010 3371.114Schristoswho christos 3381.114Schristosfile src/usr.sbin/crash/Makefile : 1.5 3391.114Schristosfile src/usr.sbin/crash/ldscript.crash : 1.1 3401.114Schristospr N/A 3411.114Schristosdescr 3421.114Schristos fixed in binutils-2.20.1. Linking with MKPIE=yes causes overlapping 3431.114Schristos sections 3441.114Schristoskcah 3451.114Schristos 3461.144Stronhack Disable fortification for /usr/bin/makeinfo 3471.144Stroncdata 24 Mar 2014 3481.144Stronwho tron 3491.144Stronfile src/gnu/usr.bin/texinfo/makeinfo/Makefile : 1.8 3501.144Stronpr N/A 3511.144Strondescr 3521.144Stron If "makeinfo" is compiled with "-D_FORTIFY_SOURCE=2" using GCC 4.8.3 3531.144Stron it fails to process certain texinfo files, e.g. "cl.texi" 3541.144Stron included in the Emacs 24.3 distribution. 3551.144Stronkcah 3561.144Stron 3571.147Stronhack Disable Stack Smash Protection for /usr/X11R7/bin/xauth 3581.147Stroncdata 05 Apr 2014 3591.147Stronwho tron 3601.147Stronfile src/external/mit/xorg/bin/xauth/Makefile : 1.4 3611.147Stronpr N/A 3621.147Strondescr 3631.147Stron If "xauth" is compile with "USE_SSP" set to "yes" it fails 3641.147Stron mysteriously with an error message like this: 3651.147Stron 3661.147Stron /usr/X11R7/bin/xauth: file /foo/bar/.Xauthority does not exist 3671.147Stron /usr/X11R7/bin/xauth: unable to link authority file /foo/bar/.Xauthority, use /foo/bar/.Xauthority 3681.147Stron 3691.147Stron The compiler seems to get confused about the two filename variables 3701.147Stron used in the link(2) system call. 3711.147Stronkcah 3721.147Stron 3731.162Spookahack g++ 5.x barfs on volatile in constexpr initializers 3741.162Spookacdata 27 Aug 2015 3751.160Spookawho pooka 3761.162Spookafile src/lib/libpthread/pthread_types.h : 1.17 3771.160Spookapr lib/49989 3781.160Spookadescr 3791.160Spooka Trying to use e.g. pthread_mutex_t m = PTHREAD_MUTEX_INITIALIZER 3801.160Spooka in C++ results in: 3811.160Spooka error: temporary of non-literal type '__pthread_mutex_st' 3821.160Spooka in a constant expression 3831.160Spooka constexpr mutex() _NOEXCEPT : __m_(PTHREAD_MUTEX_INITIALIZER) {} 3841.160Spooka [...] 3851.160Spooka include/pthread_types.h:101:8: note: '__pthread_mutex_st' is 3861.160Spooka not literal because: 3871.160Spooka struct __pthread_mutex_st { 3881.160Spooka ^ 3891.160Spooka include/pthread_types.h:103:17: note: non-static data 3901.160Spooka member '__pthread_mutex_st::ptm_errorcheck' has volatile type 3911.160Spooka pthread_spin_t ptm_errorcheck; 3921.160Spookakcah 3931.160Spooka 3941.163Schristoshack libm cabs{,f,l} and g++ 3951.163Schristoscdata 11 Jan 2016 3961.163Schristoswho christos 3971.163Schristospr lib/50646 3981.163Schristosfile src/external/gpl3/gcc.old/dist/libstdc++-v3/include/std/complex : 1.2 3991.163Schristosfile src/external/gpl3/gcc/dist/libstdc++-v3/include/std/complex : 1.2 4001.163Schristosdescr 4011.163Schristos Our cabs and cabsf have a different argument format on some architectures 4021.163Schristos and for that we have created in libm/compat_cabs{,f}.c. The standard 4031.163Schristos versions in libc are __c99_cabs{,f,l} and there are __RENAME()'s in 4041.163Schristos <complex.h>. G++ uses __builtin_cabs{,f,l} to implement those and they 4051.163Schristos translate by default to cabs{,f,l} which gets defined to cabs{,f} (the 4061.163Schristos wrong function) and an undefined cabsl. I've changed <complex> to use 4071.163Schristos the __c99_cabs{,f,l} directly. Using the __builtin_cabs{,f,l} in gcc is 4081.163Schristos still broken. 4091.163Schristoskcah 4101.163Schristos 4111.21Smycroftport vax 4121.21Smycroft 4131.102Stsutsui hack gcc4/vax ICE 4141.102Stsutsui cdate 4151.102Stsutsui who tsutsui 4161.102Stsutsui file sys/arch/vax/conf/Makefile.vax 4171.102Stsutsui descr 4181.102Stsutsui GCC4 on vax gets ICE on compiling sys/ddb/db_command.c. 4191.102Stsutsui -fno-tree-ter prevents it so add it to COPTS. 4201.102Stsutsui kcah 4211.102Stsutsui 4221.81Smrg hack gcc4/vax compiler crash 4231.81Smrg cdate Fri Jun 30 22:39:12 PDT 2006 4241.81Smrg who mrg 4251.81Smrg file bin/csh/Makefile : 1.27 4261.81Smrg file lib/i18n_module/UTF7/Makefile : 1.2 4271.81Smrg descr 4281.81Smrg GCC4 on vax crashes. -O0 stops it happening so far... 4291.81Smrg kcah 4301.81Smrg 4311.54She hack declare boolean_t in two IPF user-mode programs 4321.54She cdate Tue Mar 7 19:19:20 CET 2006 4331.54She who he 4341.54She file dist/ipf/ipsend/iptests.c : 1.8 4351.54She dist/ipf/ipsend/sock.c : 1.7 4361.54She descr 4371.54She The IPF user-mode programs ipsend and iptest first 4381.54She include <sys/types.h> without _KERNEL defined, and 4391.54She later include <sys/file.h> with _KERNEL defined. 4401.54She This causes a build failure when building for vax, 4411.54She since <sys/device.h> ends up being included without 4421.54She bollean_t being defined by <sys/types.h>. 4431.54She Build failure and further details documented in 4441.54She PR#32907. 4451.54She kcah 4461.54She 4471.104Sgmcgarry hack pcc 0.9.9 large string literals 4481.104Sgmcgarry cdat 8 July 2008 4491.104Sgmcgarry who gmcgarry 4501.104Sgmcgarry file sys/conf/param.c : 1.58 4511.104Sgmcgarry descr 4521.104Sgmcgarry Workaround for pcc 0.9.9 not handling large string literals 4531.104Sgmcgarry which causes kernels with 'options INCLUDE_CONFIG_FILE' to 4541.104Sgmcgarry fail compilation. 4551.104Sgmcgarry There is a proposal on the pcc mailing list to stuff config 4561.104Sgmcgarry file in ELF section. 4571.104Sgmcgarry kcah 4581.104Sgmcgarry 4591.107Smrg hack xorg warnings 4601.129Schristos cdat 30 July 2008, 3 June, 2013 4611.107Smrg who mrg 4621.108Smrg file external/mit/xorg/lib/libSM/Makefile : 1.2 4631.129Schristos external/mit/xorg/lib/libX11/Makefile.libx11 : 1.10 4641.107Smrg external/mit/xorg/lib/libXext/Makefile : 1.2 4651.107Smrg external/mit/xorg/lib/libXfont/Makefile : 1.2 4661.107Smrg descr 4671.107Smrg Disable several warnings or use -Wno-error across Xorg sources 4681.107Smrg while we get them working 4691.107Smrg kcah 4701.107Smrg 4711.112Schristos hack 32 bit time leftovers 4721.112Schristos cdat 11 January 2009 4731.112Schristos who christos 4741.112Schristos file lib/libc/time/localtime.c : 1.41 4751.112Schristos lib/libc/time/zic.c : 1.23 4761.112Schristos descr 4771.112Schristos The timezone compiled files still contain 32 bit time_t 4781.112Schristos quantities. I did not want to version the files because 4791.112Schristos the ``parser'' is too ugly for words. What needs to be 4801.112Schristos done, is to rewrite the parser from scratch also to avoid 4811.112Schristos potential core-dumps from parsing invalid files. 4821.112Schristos kcah 4831.112Schristos 4841.112Schristos hack 32 bit time leftovers 4851.112Schristos cdat 11 January 2009 4861.112Schristos who christos 4871.112Schristos file various 4881.112Schristos descr 4891.113Ssketch Many filesystem on-disk formats have 32 bit times. 4901.112Schristos kcah 4911.112Schristos 4921.141Schristos hack gcc 4.5 fsdb miscompile 4931.140Schristos date Sat Nov 9 11:03:02 EST 2013 4941.140Schristos who christos 4951.141Schristos file src/sbin/fsdb/Makefile : 1.36 (and earlier) 4961.140Schristos descr 4971.140Schristos src/sbin/fsdb/fsdb.c: In function 'findblk': 4981.140Schristos src/sbin/fsdb/fsdb.c:610:1: error: unrecognizable insn: 4991.140Schristos (insn 941 940 942 134 src/sbin/fsdb/fsdb.c:589 (set (reg:SI 604) 5001.140Schristos (subreg:SI (mem/s/j:DI (plus:SI (mult:SI (reg:SI 602) 5011.140Schristos (const_int 8 [0x8])) 5021.140Schristos (reg/f:SI 601)) [0 curinode.99_378->dp2.di_ib S8 A32]) 4)) \ 5031.140Schristos -1 (nil)) 5041.140Schristos src/sbin/fsdb/fsdb.c:610:1: internal compiler error: in \ 5051.140Schristos extract_insn, at recog.c:2103 5061.140Schristos kcah 5071.140Schristos 5081.141Schristos hack gcc 4.8 gcc miscompiles 5091.141Schristos date Sat Nov 9 16:35:18 EST 2013 5101.141Schristos who christos 5111.141Schristos file distrib/utils/x_ping/Makefile 5121.141Schristos file distrib/vax/miniroot/Makefile.inc 5131.141Schristos file distrib/vax/ramdisk/Makefile 5141.141Schristos file external/gpl3/gdb/lib/libdecnumber/Makefile 5151.141Schristos file sbin/fsdb/Makefile 5161.141Schristos file sbin/newfs_ext2fs/Makefile 5171.141Schristos file sbin/ping/Makefile 5181.141Schristos file usr.sbin/lmcconfig/Makefile 5191.141Schristos file usr.sbin/mtrace/Makefile 5201.141Schristos descr 5211.141Schristos external/gpl3/gcc/dist/gcc/expmed.c:2781:1: 5221.141Schristos internal compiler error: in change_address_1, at emit-rtl.c:2019 5231.141Schristos external/gpl3/gcc/dist/gcc/recog.c:770:1: 5241.141Schristos internal compiler error: in change_address_1, at emit-rtl.c:2019 5251.141Schristos external/gpl3/gcc/dist/libdecnumber/decNumber.c:7214:3: 5261.141Schristos internal compiler error: in change_address_1, at emit-rtl.c:2019 5271.141Schristos sbin/ping/ping.c:679:1: 5281.141Schristos internal compiler error: in change_address_1, at emit-rtl.c:2019 5291.141Schristos sbin/newfs_ext2fs/mke2fs.c:681:1: 5301.141Schristos internal compiler error: in reload_combine_note_use, 5311.141Schristos at postreload.c:1561 5321.141Schristos external/gpl3/gdb/dist/libdecnumber/decNumber.c:7214:3: 5331.141Schristos internal compiler error: in change_address_1, at emit-rtl.c:2019 5341.141Schristos usr.sbin/lmcconfig/lmcconfig.c:939:3: 5351.141Schristos internal compiler error: in reload_combine_note_use, 5361.141Schristos at postreload.c:1561 5371.141Schristos usr.sbin/mtrace/mtrace.c:1655:1: 5381.141Schristos internal compiler error: in change_address_1, at emit-rtl.c:2019 5391.141Schristos kcah 5401.141Schristos 5411.178Srin hack gcc 5.4 cc1 miscompile 5421.178Srin date Tue Feb 14 07:19:57 JST 2017 5431.178Srin who rin 5441.178Srin pr port-vax/51967 5451.178Srin file external/gpl3/gcc/usr.bin/backend/Makefile : 1.35 5461.178Srin descr 5471.178Srin cc1 aborts due to SIGILL when compiling the sample code attached 5481.178Srin to the PR. As a workaround, compile dse.c with -O0. 5491.178Srin kcah 5501.178Srin 5511.179Srin hack libssh miscompile 5521.182Srin cdate Tue Feb 14 17:58:06 JST 2017 5531.182Srin mdate Tue Feb 14 18:57:39 JST 2017 5541.179Srin who rin 5551.179Srin file crypto/external/bsd/openssh/lib/Makefile : 1.20 5561.179Srin descr 5571.182Srin poly1305.c and umac.c are miscompiled, which results in login 5581.182Srin failure to/from external hosts via ssh. 5591.179Srin kcah 5601.179Srin 5611.180Srin hack mandoc miscompile 5621.180Srin date Tue Feb 14 18:03:05 JST 2017 5631.180Srin who rin 5641.180Srin file external/bsd/mdocml/lib/libmandoc/Makefile : 1.8 5651.180Srin descr 5661.180Srin mandoc(1) receives SIGILL in in_line_argn() from mdoc_macro.c. 5671.180Srin kcah 5681.180Srin 5691.183Srin hack libX11 miscompile 5701.183Srin date Thu Feb 16 10:00:22 JST 2017 5711.183Srin who rin 5721.183Srin file src/external/mit/xorg/lib/libX11/Makefile.libx11 : 1.18 5731.183Srin descr 5741.183Srin lcWrap.c is miscompiled, which results in input failure via XIM. 5751.183Srin Besides, some clients, e.g., pkgsrc/x11/kterm, receives SIGSEGV. 5761.183Srin kcah 5771.183Srin 5781.21Smycroftport arm 5791.21Smycroft 5801.21Smycroft hack gcc-unsigned-compare 5811.21Smycroft cdate 09 Mar 2002 5821.21Smycroft mdate 18 Mar 2002 5831.21Smycroft who bjh21 5841.21Smycroft file dist/bind/lib/nameser/ns_parse.c : 1.3 5851.21Smycroft file dist/dhcp/minires/ns_parse.c : 1.3 5861.21Smycroft file dist/dhcp/omapip/result.c : 1.2 5871.21Smycroft file dist/dhcp/server/failover.c : 1.3 5881.21Smycroft file gnu/dist/toolchain/bfd/bfd.c : 1.2 5891.21Smycroft file gnu/dist/toolchain/bfd/format.c : 1.2 5901.21Smycroft file gnu/dist/toolchain/gdb/target.c : 1.2 5911.21Smycroft file sys/kern/vfs_subr.c : 1.172 5921.21Smycroft descr When checking that a potentially-unsigned enum is >= 0, assign 5931.21Smycroft it to an int first. This is necessary to avoid "comparison is 5941.21Smycroft always true" warnings with -fshort-enums. Casting to an int 5951.21Smycroft really should be enough, but turns out not to be. 5961.21Smycroft kcah 5971.21Smycroft 5981.122Stsutsui hack gcc-4.5 arm CNAME hostname lookup failure on 5991.122Stsutsui certain DNS environment (probably -ftree-ter problem) 6001.122Stsutsui cdate Sat Dec 24 04:59:00 UTC 2011 6011.122Stsutsui mdate 6021.122Stsutsui who tsutsui 6031.122Stsutsui file lib/libc/net/Makefile.inc 1.79 6041.122Stsutsui descr Hostname lookup against CNAMEs by some commands fails 6051.122Stsutsui on certain DNS environments if lib/libc/net/gethnamaddr.c 6061.122Stsutsui (ping(8) etc) and lib/libc/net/getaddrinfo.c (ftp(1) etc) 6071.122Stsutsui are compiled with -O2, even though nslookup(1) against 6081.122Stsutsui the same CNAME returns proper hostname. 6091.122Stsutsui They works properly if compiled with -O2 -fno-tree-ter. 6101.122Stsutsui Also -O2 fails but -O2 -fno-tree-ter works on the following 6111.122Stsutsui test case in gcc bugzilla: 6121.122Stsutsui http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48863#c4 6131.122Stsutsui kcah 6141.122Stsutsui 6151.124Smsaitoh hack gcc-4.5 arm without -fno-tree-vrp generate broken code 6161.124Smsaitoh cdate Wed Nov 14 13:02:02 JST 2012 6171.124Smsaitoh who msaitoh 6181.124Smsaitoh file lib/libc/softfloat/Makefile.inc 6191.124Smsaitoh pr 46953 6201.124Smsaitoh regress src/tests/lib/libm/t_cbrt 6211.124Smsaitoh regress src/tests/lib/libm/t_ceil 6221.124Smsaitoh regress src/tests/lib/libm/t_exp 6231.124Smsaitoh regress src/tests/lib/libm/t_log 6241.124Smsaitoh regress src/tests/lib/libm/t_scalbn 6251.124Smsaitoh regress src/tests/lib/libm/t_sinh 6261.124Smsaitoh regress src/tests/lib/libm/t_sqrt 6271.124Smsaitoh descr Gcc has a bug in tree optimization. For adddf3, 6281.124Smsaitoh -INF + -INF returns 0 without -fno-tree-vrp. 6291.124Smsaitoh Debugging with -fdump-tree-all shows that 6301.124Smsaitoh softfloat.c.021t.cleanup_cfg is ok but softfloat.c.023t.ssa 6311.124Smsaitoh is broken. 6321.124Smsaitoh kcah 6331.21Smycroft 6341.21Smycroftport sh3 6351.21Smycroft 6361.74Smrg hack gcc4-sh3-bz2 6371.103Stsutsui cdate Sun May 21 03:34:57 UTC 2006 6381.103Stsutsui mdate Fri May 16 13:13:00 UTC 2008 6391.103Stsutsui who mrg, tsutsui 6401.74Smrg file lib/libbz2/Makefile : 1.10 6411.74Smrg descr 6421.74Smrg The in-tree GCC 4.1-based compiler generated too-far 6431.103Stsutsui pc-relative addresses. Hack is to build with 6441.103Stsutsui -fno-loop-optimize. 6451.74Smrg kcah 6461.74Smrg 6471.138Schristosport sh3eb 6481.137Schristos hack gcc4.8.1 6491.137Schristos cdate Thu Nov 7 16:31:23 EST 2013 6501.137Schristos who christos 6511.137Schristos file src/sys/rump/net/lib/libnetbt/Makefile : 1.2 6521.137Schristos desrc 6531.138Schristos for profiling 6541.137Schristos compile l2cap_signal.c with -O0 to avoid: 6551.137Schristos ./netbt/l2cap_signal.c:36: 6561.137Schristos /p/netbsd/cvsroot/src/sys/rump/net/lib/libnetbt/../../../../\ 6571.137Schristos netbt/l2cap_signal.c: In function 'l2cap_recv_signal': 6581.137Schristos ./sh3/byte_swap.h:20:2: error: 'asm' operand requires \ 6591.137Schristos impossible reload 6601.137Schristos __asm volatile ("swap.b %1,%0" : "=r"(rval) : "r"(x)); 6611.137Schristos kcah 6621.21Smycroft 6631.138Schristosport sh3el 6641.138Schristos hack gcc4.8.1 6651.138Schristos cdate Fri Nov 8 19:27:01 EST 2013 6661.138Schristos who christos 6671.138Schristos file src/external/bsd/libevent/lib/libevent/Makefile : 1.2 6681.138Schristos desrc 6691.138Schristos for profiling 6701.138Schristos compile evdns.c with -O0 to avoid: 6711.138Schristos ./sh3/byte_swap.h:20:2: error: 'asm' operand requires \ 6721.138Schristos impossible reload 6731.138Schristos __asm volatile ("swap.b %1,%0" : "=r"(rval) : "r"(x)); 6741.138Schristos kcah 6751.139Schristos 6761.139Schristos hack gcc4.8.1 6771.139Schristos cdate Fri Nov 8 19:34:48 EST 2013 6781.139Schristos who christos 6791.139Schristos file src/usr.sbin/racoon/Makefile : 1.27 6801.139Schristos desrc 6811.139Schristos for profiling 6821.139Schristos compile ipsec_doi.c with -O0 to avoid: 6831.139Schristos ./sh3/byte_swap.h:20:2: error: 'asm' operand requires \ 6841.139Schristos impossible reload 6851.139Schristos __asm volatile ("swap.b %1,%0" : "=r"(rval) : "r"(x)); 6861.139Schristos kcah 6871.138Schristos 6881.96Smrgport m68000 6891.79Smrg 6901.96Smrg hack gcc4-m68000 6911.102Stsutsui cdate Fri Feb 8 10:29:37 PST 2008 6921.102Stsutsui mdate Sun May 4 15:37:19 UTC 2008 6931.99Stsutsui who mrg, tsutsui 6941.96Smrg file rescue/Makefile : 1.21 6951.99Stsutsui file sbin/dump_lfs/Makefile : 1.9 6961.101Stsutsui file sbin/fsck_ffs/Makefile : 1.35 6971.101Stsutsui file sbin/fsdb/Makefile : 1.22 6981.101Stsutsui file share/mk/sys.mk : 1.96 6991.99Stsutsui file usr.sbin/ndbootd/Makefile : 1.5 7001.95Smrg descr 7011.101Stsutsui Several internal compiler errors with gcc -O1 7021.101Stsutsui around 64bit integer arithmetic. 7031.99Stsutsui This hack uses -O1 and adds some -fno-tree-foo options 7041.99Stsutsui to avoid the problem. 7051.101Stsutsui This might be related with GCC Bugzilla Bug 32424. 7061.95Smrg kcah 7071.95Smrg 7081.141Schristosport m68k,sh3,vax 7091.135Schristos 7101.135Schristos hack gcc-4.8.1 7111.135Schristos cdate Wed Nov 6 20:41:35 EST 2013 7121.135Schristos who christos 7131.141Schristos file src/external/gpl3/gcc/libstdc++-v3/Makefile : 1.6 7141.135Schristos descr 7151.135Schristos compile hashtable_c++0x.cc with -O2 instead of -Os to 7161.135Schristos produce missing instantiation of std::lower_bound expansion 7171.135Schristos for unsigned long. 7181.135Schristos kcah 7191.22Smrg 7201.116Smrgport sparc 7211.116Smrg 7221.116Smrg hack avoid NULL pointer derefs in savefpstate IPIs and GCC 4.5.3 7231.116Smrg cdate Sun Aug 14 19:26:48 PDT 2011 7241.116Smrg who mrg 7251.116Smrg file sys/arch/sparc64/sparc/cpu.c : 1.234 7261.116Smrg file sys/arch/sparc64/sparc/cpuvar.h : 1.90 7271.116Smrg file sys/arch/sparc64/sparc/genassym.cf : 1.67 7281.116Smrg file sys/arch/sparc64/sparc/locore.s : 1.265 7291.116Smrg descr 7301.116Smrg Something is wrong with GCC 4.5.3 and the savefpstate IPI. 7311.116Smrg Post newlock2 there was a bug where a lock was reduced from 7321.116Smrg IPL_SCHED to IPL_VM (?) and occasionally savefpstate IPI 7331.116Smrg would crash due to NULL IPI. This was fixed by re-using the 7341.116Smrg right IPL value. However, GCC 4.5.3 build kernels have the 7351.116Smrg same problems. For now, the hack is re-instated. 7361.116Smrg kcah 7371.116Smrg 7381.116Smrg 7391.51Ssimonbport mips 7401.51Ssimonb 7411.51Ssimonb hack mips-shared-linker-load-address 7421.51Ssimonb cdate Fri Oct 7 08:33:10 UTC 2005 7431.51Ssimonb who simonb 7441.51Ssimonb file src/sys/kern/exec_elf32.c : 1.107 7451.51Ssimonb descr 7461.51Ssimonb With COMPAT_16 or previous enabled (which enables 7471.51Ssimonb ELF_INTERP_NON_RELOCATABLE) a recent ld.elf_so will 7481.51Ssimonb load and run at address 0. The check to fix this in 7491.51Ssimonb rev 1.107 only checks the first psection of the ELF 7501.51Ssimonb executable, which may not be loadable. A more correct 7511.51Ssimonb fix is to check the first loadable psection instead of 7521.51Ssimonb just the first psection. 7531.51Ssimonb kcah 7541.54She 7551.85Smartin hack mips-duplicate-ras-end-label 7561.85Smartin cdate Sat Sep 2 23:29:42 2006 7571.85Smartin who martin 7581.92Schs file src/regress/sys/kern/ras/ras3/Makefile : 1.3 7591.85Smartin descr 7601.85Smartin Add -fno-reorder-blocks to CFLAGS to avoid duplicate 7611.85Smartin labels by duplicated __asm output from RAS_END() 7621.85Smartin macro. 7631.85Smartin kcah 7641.85Smartin 7651.106Slukem hack mips-mcount-assembler-warning 7661.106Slukem cdate Tue Jul 29 14:16:52 UTC 2008 7671.106Slukem who lukem 7681.106Slukem file src/lib/libc/gmon/Makefile.inc : 1.8 7691.106Slukem descr 7701.106Slukem Workaround for PR port-mips/39192. 7711.106Slukem common/lib/libc/gmon/mcount.c generates a (fatal) 7721.106Slukem assembler warning on MIPS: 7731.106Slukem Warning: No .cprestore pseudo-op used in PIC code 7741.106Slukem Add COPTS.count.c+=-Wa,--no-warn to avoid -Wa,--fatal-warnings 7751.106Slukem kcah 7761.106Slukem 7771.82Schristosport i386 7781.82Schristos 7791.84Sdrochner hack use volatile intermediate variable to enforce rounding 7801.84Sdrochner cdate Tue Aug 1 22:15:55 MEST 2006 7811.84Sdrochner who drochner 7821.84Sdrochner file src/lib/libm/src/lrintf.c : 1.4 7831.84Sdrochner file src/lib/libm/src/s_rintf.c : 1.8 7841.84Sdrochner descr 7851.84Sdrochner gcc-4 does subsequent operations on "float" values within 7861.84Sdrochner the i387 FPU without rounding the intermediate results 7871.84Sdrochner kcah 7881.110Smacallan 7891.148Schristosport x86 7901.148Schristos hack turn off optimization for biosdisk_ll.c because otherwise 7911.148Schristos we are pass the wrong arguments to biosdisk_read(). 7921.148Schristos $ cd /usr/src/sys/arch/i386/floppies/bootflopp-com 7931.148Schristos $ qemu-system-i386 -nographic -fda boot-com1.fs -boot a 7941.148Schristos who christos 7951.148Schristos file src/sys/arch/i386/stand/lib/Makefile : 1.38 7961.148Schristos descr 7971.148Schristos Turning on DISK_DEBUG shows the problem. We should find 7981.148Schristos out which option is causing this. 7991.148Schristos hcah 8001.148Schristos 8011.110Smacallanport powerpc 8021.110Smacallan 8031.110Smacallan hack avoid using __builtin_return_address(0) because it fails in 8041.110Smacallan Xorg's module loader 8051.110Smacallan cdate Sat Sep 27 03:52:05 UTC 2008 8061.110Smacallan who macallan 8071.110Smacallan file src/libexec/ld.elf_so/rtld.c : 1.121 8081.110Smacallan descr 8091.110Smacallan workaround for PR port-macppc/37812 8101.110Smacallan kcah 8111.110Smacallan 8121.115Smatt hack define TARGET_SECURE_PLT and HAVE_AS_TLS because when 8131.115Smatt building the native compiler via build.sh those don't defined 8141.115Smatt properly. 8151.115Smatt cdate Sat Mar 12 08:00:00 UTC 2011 8161.115Smatt who matt 8171.115Smatt file src/gnu/dist/gcc4/gcc/config/rs6000/netbsd.h 8181.115Smatt descr 8191.115Smatt see above 8201.115Smatt kcah 8211.117Schristos 8221.117Schristosport powerpc64 8231.117Schristos 8241.117Schristos hack include _errno.c in libposix so that __errno resolves. It 8251.117Schristos should resolve from libc's errno, but somehow it does not. 8261.117Schristos Linker bug? 8271.117Schristos cdate Thu Oct 27 13:19:47 EDT 2011 8281.117Schristos who christos 8291.117Schristos file src/lib/libposix/Makefile: 1.15 8301.118Schristos file src/lib/librt/Makefile: 1.14 8311.117Schristos descr 8321.117Schristos workaround for: 8331.117Schristos libposix_pic.a(cerror.pico)(.text+0x14): unresolvable \ 8341.117Schristos R_PPC64_REL24 relocation against symbol `.__errno' 8351.117Schristos kcah 8361.119Schristos 8371.119Schristos hack rename data() function in mdocml to avoid redefined error. 8381.119Schristos Compiler/Assembler bug? 8391.119Schristos cdate Sat Oct 29 11:16:01 EDT 2011 8401.119Schristos who christos 8411.119Schristos file src/external/bsd/mdocml/tbl_data.c: 1.2 8421.119Schristos descr 8431.119Schristos workaround for: 8441.119Schristos {standard input}: Assembler messages: 8451.119Schristos {standard input}:105: Error: symbol `.data' is already \ 8461.119Schristos defined 8471.119Schristos kcah 8481.120Schristos 8491.120Schristosport emips 8501.120Schristos 8511.120Schristos hack Add nop between ctc1 and mtc0 to avoid assembler internal 8521.120Schristos error 8531.120Schristos cdate Sat Oct 29 16:57:34 EDT 2011 8541.120Schristos who christos 8551.120Schristos file src/sys/arch/mips/mips/mips_fpu.c: 1.7 8561.120Schristos descr 8571.120Schristos workaround for: 8581.120Schristos {standard input}: Assembler messages: 8591.120Schristos {standard input}:730: Internal error! 8601.120Schristos Assertion failure in append_insn at /usr/src/external/gpl3/\ 8611.120Schristos binutils/dist/gas/config/tc-mips.c line 2910. 8621.120Schristos kcah 8631.125Smartin 8641.125Smartinport ia64 8651.125Smartin 8661.125Smartin hack libc hesiod.c file does not compile with -O2 (internal 8671.125Smartin compiler error in gcc 4.5.3) 8681.125Smartin cdate Thu Dec 27 08:05:43 CET 2012 8691.125Smartin who martin 8701.125Smartin file src/lib/libc/net/Makefile.inc: 1.82 8711.125Smartin descr 8721.125Smartin workaround for: 8731.125Smartin {standard input}: Assembler messages: 8741.125Smartin {standard input}:1507: Warning: Use of 'mov' may violate WAW dependency 'GR%, % in 1 - 127' (impliedf), specific resource number is 15 8751.125Smartin {standard input}:1506: Warning: This is the location of the conflicting usage 8761.125Smartin {standard input}: Error: 2 warnings, treating warnings as errors 8771.125Smartin kcah 8781.125Smartin 8791.126Smartin hack libelf libelf_extended.c compiler error in gcc 4.5.3 8801.126Smartin cdate Thu Dec 27 09:05:51 CET 2012 8811.126Smartin who martin 8821.126Smartin file src/external/bsd/libelf/lib/Makefile: 1.3 8831.126Smartin descr 8841.126Smartin workaround for: 8851.126Smartin {standard input}: Assembler messages: 8861.126Smartin {standard input}:87: Warning: Use of 'adds' may violate RAW dependency 'GR%, % in 1 - 127' (impliedf), specific resource number is 33 8871.126Smartin {standard input}:87: Warning: Only the first path encountering the conflict is reported 8881.126Smartin {standard input}:85: Warning: This is the location of the conflicting usage 8891.126Smartin kcah 8901.126Smartin 8911.127Smartin hack compiler error with gcc 4.5.x 8921.127Smartin cdate Thu Dec 27 15:15:25 CET 2012 8931.127Smartin who martin 8941.127Smartin file src/crypto/external/bsd/netpgp/lib/verify/Makefile: 1.5 8951.127Smartin descr 8961.127Smartin workaround for: 8971.127Smartin {standard input}: Assembler messages: 8981.127Smartin {standard input}:22979: Warning: Use of 'mov' may violate WAW dependency 'GR%, % in 1 - 127' (impliedf), specific resource number is 8 8991.127Smartin {standard input}:22978: Warning: This is the location of the conflicting usage 9001.127Smartin kcah 9011.127Smartin 9021.157Smartin hack libgcc unwind dummy function 9031.157Smartin cdate Fri Apr 17 14:31:03 CEST 2015 9041.157Smartin who martin 9051.157Smartin file src/external/gpl3/gcc/dist/libgcc/config/ia64/unwind-ia64.c: 1.4 9061.157Smartin descr 9071.157Smartin Add an empty _Unwind_FindTableEntry() implementation. 9081.157Smartin In the end we will use our libc stuff, and this should 9091.157Smartin go away again. 9101.157Smartin kcah 9111.157Smartin 9121.128Schristosport x68k 9131.127Smartin 9141.128Schristos hack compiler error with gcc 4.5.x 9151.128Schristos cdate Fri May 24 13:23:01 EDT 2013 9161.128Schristos who christos 9171.128Schristos file src/external/gpl3/gcc/usr.bin/bakend/Makefile: 1.17 9181.128Schristos xsrc/external/mit/xorg/lib/libGLU/Makefile: 1.11 9191.128Schristos descr 9201.128Schristos workaround for: 9211.128Schristos internal compiler error: in cselib_record_set, at cselib.c:1999 9221.128Schristos kcah 9231.130Sjoerg 9241.130Sjoerghack fallback to /usr/bin/clang-cpp in rpcgen 9251.130Sjoergcdate Wed Jun 5 15:49:27 CEST 2013 9261.130Sjoergwho joerg 9271.130Sjoergfile src/usr.bin/rpcgen/rpc_main.c 9281.130Sjoergdescr 9291.136Sjoerg It is undecided which compiler owns /usr/bin/cpp and whether it should 9301.130Sjoerg exist in a MKGCC=no world. To allow rpcgen to work out-of-the-box, 9311.130Sjoerg if either gcc or clang is installed, use /usr/bin/clang-cpp as fallback. 9321.130Sjoerg This applies only if RPCGEN_CPP is not set and /usr/bin/cpp is not executable. 9331.130Sjoergkcah 9341.131Sskrll 9351.155Sskrllport hppa 9361.131Sskrll 9371.131Sskrll hack compiler error with gcc 4.5.x 9381.131Sskrll cdate Tue Jul 23 07:42:28 BST 2013 9391.131Sskrll who skrll 9401.133Sskrll file src/sys/lib/libkern/Makefile.libkern: 1.26 9411.133Sskrll descr 9421.133Sskrll workaround for unanalysed codegen bug affecting md5c.c. 9431.133Sskrll kcah 9441.149Smacallan 9451.155Sskrll hack gdb vs _rtld_debug_state problem 9461.155Sskrll cdate Thu Mar 5 09:49:53 UTC 2015 9471.155Sskrll who skrll 9481.155Sskrll file src/libexec/ld.elf_so/rtld.c: 1.175 9491.155Sskrll descr 9501.155Sskrll workaround for problem where gdb misses the breakpoint on 9511.155Sskrll _rtld_debug_state when the function is only the 9521.155Sskrll bv,n %r0(%rp) instruction - the nullify seems to 9531.155Sskrll confuse something 9541.155Sskrll kcah 9551.155Sskrll 9561.149Smacallanport mips64* 9571.149Smacallanhack compiler crashes on mips64* with optimization enabled 9581.149Smacallancdate Tue May 13 18:46:48 UTC 2014 9591.149Smacallanwho macallan 9601.149Smacallanfile src/external/lgpl3/gmp/lib/libgmp/arch/mips64eb/Makefile.inc: 1.6 9611.149Smacallan src/external/lgpl3/gmp/lib/libgmp/arch/mips64eb/config.h: 1.5 9621.149Smacallan src/external/lgpl3/gmp/lib/libgmp/arch/mips64el/Makefile.inc: 1.6 9631.149Smacallan src/external/lgpl3/gmp/lib/libgmp/arch/mips64el/config.h: 1.5 9641.149Smacallandescr workaround for n32 gcc doing unaligned 64bit accesses when optimizing 9651.149Smacallanpr 48696 9661.149Smacallankcah 9671.150Smartin 9681.150Smartinport vax 9691.150Smartinhack compile boot with -O1 9701.150Smartincdate Sat May 24 09:40:58 CEST 2014 9711.150Smartinwho martin 9721.150Smartinfile src/sys/arch/vax/boot/boot/Makefile: 1.41 9731.150Smartindescr /boot does not work when compiled with -O2 and gcc 4.8 9741.150Smartinkcah 9751.150Smartin 9761.156Smattport arm 9771.156Smatthack avoid using labels in a 12-bit constant. 9781.156Smattwho matt 9791.156Smattfile crypto/external/bsd/openssl/lib/libcrypto/arch/arm/aes-armv4.S: 1.2 9801.156Smattdescr workaround for clang misassembling an instruction 9811.156Smattkcah 9821.177Schristos 9831.177Schristosport sparc64 9841.177Schristoshack during profiling with -m32 (and ASLR) labels are not generated 9851.177Schristos consistently 9861.177Schristoswho christos 9871.177Schristosfile /cvsroot/src/crypto/external/bsd/heimdal/lib/libasn1/Makefile: 1.4 9881.177Schristosdesc asn1_krb5_asn1.po does not produce the same results during successive 9891.177Schristos compilation runs; it is bimodal. Turning optimization to -O0 fixes 9901.177Schristos the issue 9911.177Schristoskcah 992