[BACK]Return to HACKS CVS log [TXT][DIR] Up to [cvs.NetBSD.org] / src / doc

Annotation of src/doc/HACKS, Revision 1.224

1.224   ! rin         1: # $NetBSD: HACKS,v 1.223 2021/07/15 08:02:47 rin Exp $
1.1       lukem       2: #
                      3: # This file is intended to document workarounds for currently unsolved
                      4: # (mostly) compiler bugs.
                      5: #
                      6: # Format:
                      7: #   hack               title
                      8: #   cdate              creation date
                      9: #   mdate              mod date
                     10: #   who                        responsible developer
                     11: #   port               ...
                     12: #        affected ports, space separated, if not "all"
                     13: #   file               affected file : revision : line from : line to
                     14: #        affected files and revision and line numbers describing hack
                     15: #        multiple lines if necessary.
                     16: #   pr                 NNNN ...
                     17: #        problem reports this hack works around, if known. Space
                     18: #        separated.
                     19: #   regress            src/regress/directory/where/test/found
                     20: #        regression test directories, if available.
                     21: #   descr
                     22: #        insert short informal description (multi-line). (Longer ones
                     23: #        should be in the PR database. More formal descriptions might
                     24: #        be in the regress tree. See above).
                     25: #   kcah
                     26: #        closing bracket.
                     27: #
                     28: # this is a comment.
                     29:
1.207     maxv       30: hack   llvm needs no-unused-command-line-argument
                     31: mdate  10 May 2020
                     32: who    maxv
                     33: file   share/mk/bsd.lib.mk 1.380 -> 1.381
                     34: descr
                     35:        To avoid LLVM warnings when compiling the kernel with special
                     36:        CFLAGS such as KASAN on amd64 or ARMV83_PAC on aarch64, pass
                     37:        -Wno-unused-command-line-argument.
                     38: kcah
                     39:
1.190     maya       40: hack   static linking with libpthread
                     41: mdate  7 May 2019
                     42: who    maya
1.209     christos   43: file   src/lib/libpthread/Makefile 1.92 -> 1.94
1.190     maya       44: descr
                     45:        To avoid some libc thread stub functions being picked up
                     46:        in static builds, link pthread as one section.
                     47: kcah
                     48:
1.209     christos   49: hack   disable optimization for gcc-9.3 in src/lib/libc/gdtoa/strtod.c
                     50: mdate  18 Sep 2020
                     51: who    christos
                     52: file    src/lib/libc/gdtoa/strtod.c 1.15 -> 1.16
                     53: descr
                     54:        See PR/55668, the program there causes infinite loop
                     55: kcah
                     56:
1.166     christos   57: hack   gcc-5.3 optimizes memset+malloc -> calloc inside calloc
                     58: mdate  4 May 2016
                     59: who    christos
                     60: file   external/gpl2/lib/libmalloc/lib/Makefile 1.3 -> 1.5
                     61: descr
                     62:        resulting in infinite recursion; we prevent this with
                     63:        -fno-builtin-malloc
                     64: kcah
                     65:
1.167     mrg        66: hack   turn off tree-vrp for parts of ufs_lookup.c
                     67: mdate  28 April 2016
                     68: who    mrg christos
                     69: file   src/sys/ufs/ufs/ufs_lookup.c : 1.144
                     70: pr     51094
                     71: descr
                     72:        with -ftree-vrp enabled in ufs_lookup.c sometimes bad dir
                     73:        panicks are see.
                     74: hcah
                     75:
1.1       lukem      76: hack   netstat ieee1394 address printing.
                     77: mdate  14 Nov 2000
                     78: who    matt
                     79: file   lib/libc/net/getnameinfo.c      : 1.32 : 497 : 503
                     80: descr
                     81:        Because the current implementation of IP over IEEE1394, the
                     82:        fw device address contains more than just the IEEE1394 EUI-64.
                     83:        So when printing out IEEE1394 addresses, ignore the extra stuff.
                     84: kcah
                     85:
                     86: hack   xterm vs. libterm
                     87: mdate  01 Aug 2000
                     88: who    jdc
                     89: file   xsrc/xc/programs/xterm/main.c   : 1.2 : 3609 : 3614
                     90: pr     10383
                     91: descr
                     92:        In order to extend the termcap string over 1023 bytes, a ZZ entry was
                     93:        introduced to point to a memory location containing the full entry.
                     94:        Without this hack, xterm will export a termcap containing the ZZ
                     95:        entry, which will then be ignored by libterm.  As xterm modifies the
                     96:        exported termcap, this would cause those modifications to be ignored.
                     97: kcah
                     98:
                     99: hack   wi-at-big-endian-bus
                    100: cdate  15 Mar 2002
                    101: who    martin
1.203     rin       102: file   dev/ic/wireg.h : 1.20
1.1       lukem     103: descr  Add an option to access the underlying bus in big endian byte order
                    104:        to work around deficiencies in bus_space_{read,write}_* macros.
                    105:        Those don't allow the implementation of a proper pcmcia bus space
                    106:        tag.
                    107: kcah
                    108:
1.3       jdc       109: hack   specific knowledge of colours in curses code
                    110: cdate  Sun Apr  6 11:05:24 BST 2003
                    111: who    jdc
                    112: file   lib/libcurses/color.c : r1.24
                    113: descr
                    114:        Swap red/blue and yellow/cyan colours for COLOR_OTHER.
                    115:        Fix is to enhance libtermcap to understand terminfo-style % sequences.
                    116:        See also:
1.5       salo      117:            http://mail-index.NetBSD.org/tech-userlevel/2003/04/06/0000.html
1.4       scw       118: kcah
                    119:
1.7       he        120: hack   Compensation for differing types of LINUX_USRSTACK and USRSTACK
                    121: cdate  21 Aug 2003
                    122: who    he
                    123: file   sys/miscfs/procfs/procfs_linux.c : 1.14
                    124: descr
                    125:        Not all ports have LINUX_USRSTACK and/or USRSTACK defined as
                    126:        literals/constants, but refer to variables of a type which is
                    127:        not "unsigned long", causing compilation of procfs_linux.c to
                    128:        fail with "makes integer from pointer without a cast".  This
                    129:        is observed on e.g. the sun3 port.  Ideally the "types" for
                    130:        symbols should be consistent across all ports.
1.25      mrg       131: kcah
                    132:
1.80      tsutsui   133: hack   gcc4 wrong uninitialized variable
1.58      mrg       134: mdate  10 May 2006
                    135: who    mrg
                    136: file   bin/ksh/eval.c                  : 1.6
                    137: file   bin/sh/histedit.c               : 1.39
                    138: file   bin/sh/parser.c                 : 1.60
                    139: file   crypto/dist/heimdal/kdc/524.c   : 1.10
                    140: file   crypto/dist/ssh/sftp.c          : 1.20
                    141: file   crypto/dist/ssh/ssh-keysign.c   : 1.11
                    142: file   dist/ipf/lib/hostname.c         : 1.2
                    143: file   dist/ipf/tools/ipmon.c          : 1.8
1.72      mrg       144: file   dist/ntp/ntpd/ntp_request.c     : 1.4
1.58      mrg       145: file   dist/ntp/ntpd/refclock_shm.c    : 1.4
                    146: file   dist/ntp/sntp/timing.c          : 1.3
                    147: file   dist/pppd/pppstats/pppstats.c   : 1.3
                    148: file   dist/tcpdump/print-zephyr.c     : 1.5
1.68      mrg       149: file   distrib/utils/sysinst/aout2elf.c : 1.12
1.58      mrg       150: file   gnu/libexec/uucp/uucico/uucico.c : 1.6
                    151: file   lib/libc/citrus/citrus_csmapper.c : 1.6
                    152: file   lib/libc/citrus/citrus_pivot_factory.c : 1.5
                    153: file   lib/libc/inet/inet_cidr_ntop.c  : 1.3
                    154: file   lib/libc/inet/inet_ntop.c       : 1.3
                    155: file   lib/libc/stdio/vfwprintf.c      : 1.8
1.69      mrg       156: file   libexec/ld.elf_so/arch/m68k/mdreloc.c : 1.20
1.76      mrg       157: file   libexec/ld.elf_so/arch/powerpc/ppc_reloc.c : 1.40
1.74      mrg       158: file   libexec/ld.elf_so/arch/sh3/mdreloc.c : 1.22
1.69      mrg       159: file   libexec/ld.elf_so/arch/sparc/mdreloc.c : 1.39
1.58      mrg       160: file   libexec/ld.elf_so/arch/sparc64/mdreloc.c : 1.39
1.74      mrg       161: file   libexec/ld.elf_so/arch/vax/mdreloc.c    : 1.21
1.71      dan       162: file   libexec/ld.elf_so/arch/x86_64/mdreloc.c : 1.27
1.58      mrg       163: file   sbin/fsck_ext2fs/dir.c          : 1.19
                    164: file   sbin/routed/rtquery/rtquery.c   : 1.18
1.73      dan       165: file   sys/arch/amd64/amd64/pmap.c     : 1.26
1.79      mrg       166: file   sys/arch/i386/pci/piixpcib.c    : 1.4
1.80      tsutsui   167: file   sys/arch/m68k/m68k/pmap_motorola.c      : 1.4
1.58      mrg       168: file   sys/crypto/cast128/cast128.c    : 1.9
                    169: file   sys/ddb/db_command.c            : 1.86
1.68      mrg       170: file   sys/dev/cardbus/cardbus_map.c   : 1.21
1.58      mrg       171: file   sys/dev/fss.c                   : 1.25
1.69      mrg       172: file   sys/dev/ic/igsfb.c              : 1.39
1.68      mrg       173: file   sys/dev/ic/mb86950.c            : 1.5
1.58      mrg       174: file   sys/dev/ic/midway.c             : 1.71
1.68      mrg       175: file   sys/dev/kttcp.c                 : 1.18
                    176: file   sys/dev/rasops/rasops_bitops.h  : 1.9
                    177: file   sys/dev/pci/cmpci.c             : 1.31
1.58      mrg       178: file   sys/dev/pci/machfb.c            : 1.45
1.68      mrg       179: file   sys/dev/usb/ohci.c              : 1.174
                    180: file   sys/dev/usb/uhci.c              : 1.196
                    181: file   sys/dev/rasops/rasops_bitops.h  : 1.9
1.58      mrg       182: file   sys/dist/ipf/netinet/ip_nat.c   : 1.10
                    183: file   sys/dist/ipf/netinet/ip_rpcb_pxy.c : 1.8
                    184: file   sys/dist/pf/net/pf.c            : 1.22
1.59      mrg       185: file   sys/fs/udf/udf_vnops.c          : 1.4
1.58      mrg       186: file   sys/kern/kern_sig.c             : 1.219
                    187: file   sys/kern/tty.c                  : 1.181
                    188: file   sys/net/bpf.c                   : 1.116
                    189: file   sys/net/zlib.c                  : 1.26
1.68      mrg       190: file   sys/netccitt/if_x25subr.c       : 1.37
1.58      mrg       191: file   sys/netinet/in.c                : 1.107
                    192: file   sys/nfs/nfs_serv.c              : 1.108
                    193: file   sys/nfs/nfs_socket.c            : 1.129
                    194: file   sys/nfs/nfs_syscalls.c          : 1.91
                    195: file   sys/ufs/lfs/lfs_vfsops.c        : 1.207 [also (char *)]
                    196: file   usr.bin/ftp/ftp.c               : 1.140
                    197: file   usr.bin/find/function.c         : 1.54
                    198: file   usr.bin/mail/tty.c              : 1.20
1.100     tsutsui   199: file   usr.bin/msgc/msg_sys.def        : 1.33-1.34
1.58      mrg       200: file   usr.bin/nl/nl.c                 : 1.7
                    201: file   usr.bin/systat/keyboard.c       : 1.23
                    202: file   usr.bin/usbhidctl/usbhid.c      : 1.29
                    203: file   usr.bin/vi/cl/cl_read.c         : 1.5
                    204: file   usr.bin/vi/ex/ex_cscope.c       : 1.12
                    205: file   usr.bin/vi/ex/ex_tag.c          : 1.19
                    206: file   usr.bin/vi/vi/v_txt.c           : 1.15
                    207: file   usr.sbin/altq/altqstat/qdisc_rio.c : 1.4
                    208: file   usr.sbin/cron/do_command.c      : 1.19
                    209: file   usr.sbin/timed/timed/slave.c    : 1.15
                    210: descr
                    211:        GCC 4.1 gets many uninitialised variable warnings wrong.  We should
                    212:        really audit all the old hacks like this when older compilers are
                    213:        removed from the tree, as many are probably no longer required.
1.65      christos  214:        The problem is that it does not recognize initialization via function
                    215:        call pointer. I.e.
                    216:                int p;
                    217:                foo(&p);
                    218:        does not mark p as initialized.
1.58      mrg       219: kcah
                    220:
1.59      mrg       221: hack   gcc4 pointer sign and strict aliasing problems
                    222: mdate  10 May 2006
                    223: who    mrg
                    224: file   bin/ed/Makefile                 : 1.33
1.68      mrg       225: file   distrib/utils/sysinst/Makefile.inc : 1.44
1.91      martin    226: file   distrib/utils/x_dhclient/Makefile : 1.15
1.60      mrg       227: file   games/bcd/Makefile              : 1.5
                    228: file   games/dab/Makefile              : 1.5
                    229: file   games/larn/Makefile             : 1.17
                    230: file   games/pom/Makefile              : 1.5
                    231: file   lib/libasn1/Makefile            : 1.26
                    232: file   lib/libcrypt/Makefile           : 1.17
                    233: file   lib/libgssapi/Makefile          : 1.16
                    234: file   lib/libhdb/Makefile             : 1.20
                    235: file   lib/libkadm5clnt/Makefile       : 1.21
                    236: file   lib/libkadm5srv/Makefile        : 1.25
                    237: file   lib/libkrb5/Makefile            : 1.35
                    238: file   lib/libssh/Makefile             : 1.6
                    239: file   lib/libtelnet/Makefile          : 1.26
                    240: file   libexec/getty/Makefile          : 1.14
                    241: file   libexec/kadmind/Makefile        : 1.19
                    242: file   libexec/kpasswdd/Makefile       : 1.14
                    243: file   sbin/atactl/Makefile            : 1.3
                    244: file   sbin/cgdconfig/Makefile         : 1.7
                    245: file   sbin/clri/Makefile              : 1.13
                    246: file   sbin/dkctl/Makefile             : 1.4
                    247: file   sbin/dump/Makefile              : 1.33
                    248: file   sbin/fdisk/Makefile             : 1.35
                    249: file   sbin/fsck_ext2fs/Makefile       : 1.11
                    250: file   sbin/fsck_ffs/Makefile          : 1.29
                    251: file   sbin/fsdb/Makefile              : 1.18
                    252: file   sbin/newfs/Makefile             : 1.30
                    253: file   sbin/newfs_sysvbfs/Makefile     : 1.2
                    254: file   sbin/restore/Makefile           : 1.23
                    255: file   sbin/veriexecctl/Makefile       : 1.11
1.64      mrg       256: file   sys/lib/libsa/Makefile          : 1.59
1.68      mrg       257: file   sys/arch/evbarm/adi_brh/brh_machdep.c : 1.24
1.59      mrg       258: file   usr.bin/awk/Makefile            : 1.9
1.64      mrg       259: file   usr.bin/crontab/Makefile        : 1.24
1.60      mrg       260: file   usr.bin/ctags/Makefile          : 1.8
1.61      mrg       261: file   usr.bin/gzip/Makefile           : 1.10
1.60      mrg       262: file   usr.bin/ssh/sftp/Makefile       : 1.10
                    263: file   usr.bin/ssh/ssh/Makefile        : 1.25
1.59      mrg       264: file   usr.bin/vi/build/Makefile       : 1.26
1.60      mrg       265: file   usr.bin/telnet/Makefile         : 1.40
                    266: file   usr.bin/tn3270/tn3270/Makefile  : 1.36
                    267: file   usr.bin/tr/Makefile             : 1.4
1.59      mrg       268: file   usr.sbin/amd/amd/Makefile       : 1.27
                    269: file   usr.sbin/amd/amq/Makefile       : 1.14
                    270: file   usr.sbin/amd/libamu/Makefile    : 1.20
                    271: file   usr.sbin/amd/pawd/Makefile      : 1.5
                    272: file   usr.sbin/bind/Makefile.inc      : 1.22
1.60      mrg       273: file   usr.sbin/bind/libdns/Makefile   : 1.3
                    274: file   usr.sbin/bind/named/Makefile    : 1.17
                    275: file   usr.sbin/bootp/bootptest/Makefile : 1.2
                    276: file   usr.sbin/chrtbl/Makefile        : 1.6
                    277: file   usr.sbin/cron/Makefile          : 1.12
1.59      mrg       278: file   usr.sbin/dhcp/Makefile.inc      : 1.20
1.60      mrg       279: file   usr.sbin/hprop/Makefile         : 1.13
                    280: file   usr.sbin/installboot/Makefile   : 1.35
1.59      mrg       281: file   usr.sbin/ipf/ipftest/Makefile   : 1.32
                    282: file   usr.sbin/isdn/isdnd/Makefile    : 1.6
                    283: file   usr.sbin/isdn/isdnmonitor/Makefile : 1.3
                    284: file   usr.sbin/isdn/isdntel/Makefile  : 1.2
                    285: file   usr.sbin/isdn/isdntrace/Makefile : 126
1.61      mrg       286: file   usr.sbin/mopd/common/Makefile   : 1.10
                    287: file   usr.sbin/mopd/mopd/Makefile     : 1.9
                    288: file   usr.sbin/mopd/mopprobe/Makefile : 1.7
1.60      mrg       289: file   usr.sbin/makefs/Makefile        : 1.17
                    290: file   usr.sbin/mscdlabel/Makefile     : 1.5
                    291: file   usr.sbin/pkg_install/add/Makefile : 1.7
                    292: file   usr.sbin/pkg_install/create/Makefile : 1.5
                    293: file   usr.sbin/pkg_install/lib/Makefile : 1.28
1.59      mrg       294: file   usr.sbin/ntp/ntpd/Makefile      : 1.10/1.11
                    295: file   usr.sbin/ntp/ntptime/Makefile   : 1.4/1.5
                    296: file   usr.sbin/pppd/Makefile.inc      : 1.3
                    297: file   usr.sbin/pppd/pppd/Makefile     : 1.38
1.60      mrg       298: file   usr.sbin/rarpd/Makefile         : 1.10
1.59      mrg       299: file   usr.sbin/rbootd/Makefile        : 1.10
1.60      mrg       300: file   usr.sbin/rpc.pcnfsd/Makefile    : 1.17
                    301: file   usr.sbin/tcpdump/Makefile       : 1.42
1.59      mrg       302: descr
1.215     wiz       303:        GCC 4.1 warns on pointer sign comparison/assignments and lots of
1.59      mrg       304:        code does not conform.  For now we use -Wno-pointer-sign and
                    305:        -fno-strict-aliasing.
                    306: kcah
                    307:
1.145     christos  308: hack   disable ctf for gcc-4.8 build
                    309: mdate  April 3 2014
1.146     wiz       310: who    christos
1.145     christos  311: file   external/gpl3/gcc/usr.bin/Makefile.frontend     : 1.4
                    312: file   external/gpl3/gcc/usr.bin/Makefile.backend      : 1.5
                    313: descr
                    314:        nbctfconvert -g -L VERSION -g fold-const.o
                    315:        ERROR: fold-const.c: failed to get mapping for tid 79154 \
                    316:                ((null)) <13532>
                    317: kcak
                    318:
1.121     christos  319: hack   emacs aborting on exit (libgcc issue)
                    320: mdate  7 November 2011
                    321: who    christos
                    322: file   external/gpl3/gcc/dist/gcc/unwind-dw2-fde.c : 1.2
                    323: descr
                    324:        GCC 4.5.3 now calls __unregister_frame_info_bases() on unloading/exit
                    325:        to do just that. If the symbol requested is not found, then it aborts.
                    326:        emacs 23.3 triggers this assertion. For now disable aborting, and
                    327:        silently ignore.
                    328: kcah
                    329:
1.105     agc       330: hack   cross-building hack on Darwin
                    331: mdate  20 July 2008
                    332: who    agc
                    333: file   src/distrib/common/Makefile.mdset       : 1.33
                    334: descr
                    335:        Darwin has problems with getopt() when used in mdsetimage -v,
                    336:        due to the difference between BSD and libiberty() getopt
                    337:        implementations, more fully described in
                    338:        http://mail-index.netbsd.org/current-users/2008/06/27/msg003242.html
                    339:        and the subsequent thread.  For just now, we just have an ugly
                    340:        workaround not to call mdsetimage with the -v argument on Darwin
                    341: kcah
                    342:
1.109     veego     343: hack   avoid rebuilding asn1 libraries
                    344: mdate  03 August 2008
                    345: who    veego
                    346: file   src/crypto/dist/heimdal/lib/asn1/gen.c  : 1.10
                    347: file   src/lib/libasn1/Makefile        : 1.32
                    348: file   src/lib/libhdb/Makefile : 1.23
                    349: file   src/lib/libgssapi/Makefile      : 1.20
                    350: file   src/lib/libhx509/Makefile       : 1.3
                    351: pr     9702 39185
                    352: descr
                    353:        asn1_compile does not check if generated header files do not have to
                    354:        be rebuild.
                    355:        Generate .hx files and copy it in the Makefiles if they changed.
                    356: kcah
                    357:
1.144     tron      358: hack   Disable fortification for /usr/bin/makeinfo
                    359: cdata  24 Mar 2014
                    360: who    tron
1.186     maya      361: file   src/external/gpl2/texinfo/bin/makeinfo/Makefile : 1.1
1.144     tron      362: pr     N/A
                    363: descr
                    364:        If "makeinfo" is compiled with "-D_FORTIFY_SOURCE=2" using GCC 4.8.3
                    365:        it fails to process certain texinfo files, e.g. "cl.texi"
                    366:        included in the Emacs 24.3 distribution.
                    367: kcah
                    368:
1.147     tron      369: hack   Disable Stack Smash Protection for /usr/X11R7/bin/xauth
                    370: cdata  05 Apr 2014
                    371: who    tron
                    372: file   src/external/mit/xorg/bin/xauth/Makefile        : 1.4
                    373: pr     N/A
                    374: descr
                    375:        If "xauth" is compile with "USE_SSP" set to "yes" it fails
                    376:        mysteriously with an error message like this:
                    377:
                    378:        /usr/X11R7/bin/xauth:  file /foo/bar/.Xauthority does not exist
                    379:        /usr/X11R7/bin/xauth:  unable to link authority file /foo/bar/.Xauthority, use /foo/bar/.Xauthority
                    380:
                    381:        The compiler seems to get confused about the two filename variables
                    382:        used in the link(2) system call.
                    383: kcah
                    384:
1.162     pooka     385: hack   g++ 5.x barfs on volatile in constexpr initializers
                    386: cdata  27 Aug 2015
1.160     pooka     387: who    pooka
1.162     pooka     388: file   src/lib/libpthread/pthread_types.h      : 1.17
1.160     pooka     389: pr     lib/49989
                    390: descr
                    391:        Trying to use e.g. pthread_mutex_t m = PTHREAD_MUTEX_INITIALIZER
                    392:        in C++ results in:
                    393:                error: temporary of non-literal type '__pthread_mutex_st'
                    394:                in a constant expression
                    395:                constexpr mutex() _NOEXCEPT : __m_(PTHREAD_MUTEX_INITIALIZER) {}
                    396:                [...]
                    397:                include/pthread_types.h:101:8: note: '__pthread_mutex_st' is
                    398:                not literal because:
                    399:                struct __pthread_mutex_st {
                    400:                ^
                    401:                include/pthread_types.h:103:17: note:   non-static data
                    402:                member '__pthread_mutex_st::ptm_errorcheck' has volatile type
                    403:                pthread_spin_t ptm_errorcheck;
                    404: kcah
                    405:
1.163     christos  406: hack   libm cabs{,f,l} and g++
                    407: cdata  11 Jan 2016
                    408: who    christos
                    409: pr     lib/50646
                    410: file   src/external/gpl3/gcc.old/dist/libstdc++-v3/include/std/complex : 1.2
                    411: file   src/external/gpl3/gcc/dist/libstdc++-v3/include/std/complex : 1.2
                    412: descr
                    413:        Our cabs and cabsf have a different argument format on some architectures
                    414:        and for that we have created in libm/compat_cabs{,f}.c. The standard
                    415:        versions in libc are __c99_cabs{,f,l} and there are __RENAME()'s in
                    416:        <complex.h>. G++ uses __builtin_cabs{,f,l} to implement those and they
                    417:        translate by default to cabs{,f,l} which gets defined to cabs{,f} (the
                    418:        wrong function) and an undefined cabsl. I've changed <complex> to use
                    419:        the __c99_cabs{,f,l} directly. Using the __builtin_cabs{,f,l} in gcc is
                    420:        still broken.
                    421: kcah
                    422:
1.21      mycroft   423: port   vax
                    424:
1.102     tsutsui   425:        hack    gcc4/vax ICE
1.203     rin       426:        cdate   Sat Dec 22 08:17:57 2007 UTC
1.102     tsutsui   427:        who     tsutsui
1.203     rin       428:        file    sys/arch/vax/conf/Makefile.vax : 1.79
1.102     tsutsui   429:        descr
                    430:                GCC4 on vax gets ICE on compiling sys/ddb/db_command.c.
                    431:                -fno-tree-ter prevents it so add it to COPTS.
                    432:        kcah
                    433:
1.81      mrg       434:        hack    gcc4/vax compiler crash
                    435:        cdate   Fri Jun 30 22:39:12 PDT 2006
                    436:        who     mrg
                    437:        file    bin/csh/Makefile        : 1.27
                    438:        file    lib/i18n_module/UTF7/Makefile   : 1.2
                    439:        descr
                    440:                GCC4 on vax crashes.  -O0 stops it happening so far...
                    441:        kcah
                    442:
1.54      he        443:        hack    declare boolean_t in two IPF user-mode programs
                    444:        cdate   Tue Mar  7 19:19:20 CET 2006
                    445:        who     he
                    446:        file    dist/ipf/ipsend/iptests.c : 1.8
                    447:                dist/ipf/ipsend/sock.c : 1.7
                    448:        descr
                    449:                The IPF user-mode programs ipsend and iptest first
                    450:                include <sys/types.h> without _KERNEL defined, and
                    451:                later include <sys/file.h> with _KERNEL defined.
                    452:                This causes a build failure when building for vax,
                    453:                since <sys/device.h> ends up being included without
                    454:                bollean_t being defined by <sys/types.h>.
                    455:                Build failure and further details documented in
                    456:                PR#32907.
                    457:        kcah
                    458:
1.104     gmcgarry  459:        hack    pcc 0.9.9 large string literals
                    460:        cdat    8 July 2008
                    461:        who     gmcgarry
                    462:        file    sys/conf/param.c : 1.58
                    463:        descr
                    464:                Workaround for pcc 0.9.9 not handling large string literals
                    465:                which causes kernels with 'options INCLUDE_CONFIG_FILE' to
                    466:                fail compilation.
                    467:                There is a proposal on the pcc mailing list to stuff config
                    468:                file in ELF section.
                    469:        kcah
                    470:
1.107     mrg       471:        hack    xorg warnings
1.129     christos  472:        cdat    30 July 2008, 3 June, 2013
1.107     mrg       473:        who     mrg
1.108     mrg       474:        file    external/mit/xorg/lib/libSM/Makefile : 1.2
1.129     christos  475:                external/mit/xorg/lib/libX11/Makefile.libx11 : 1.10
1.107     mrg       476:                external/mit/xorg/lib/libXext/Makefile : 1.2
                    477:                external/mit/xorg/lib/libXfont/Makefile : 1.2
                    478:        descr
                    479:                Disable several warnings or use -Wno-error across Xorg sources
                    480:                while we get them working
                    481:        kcah
                    482:
1.112     christos  483:        hack    32 bit time leftovers
                    484:        cdat    11 January 2009
                    485:        who     christos
                    486:        file    lib/libc/time/localtime.c : 1.41
                    487:                lib/libc/time/zic.c : 1.23
                    488:        descr
                    489:                The timezone compiled files still contain 32 bit time_t
                    490:                quantities. I did not want to version the files because
                    491:                the ``parser'' is too ugly for words. What needs to be
                    492:                done, is to rewrite the parser from scratch also to avoid
                    493:                potential core-dumps from parsing invalid files.
                    494:        kcah
                    495:
                    496:        hack    32 bit time leftovers
                    497:        cdat    11 January 2009
                    498:        who     christos
                    499:        file    various
                    500:        descr
1.113     sketch    501:                Many filesystem on-disk formats have 32 bit times.
1.112     christos  502:        kcah
                    503:
1.141     christos  504:        hack    gcc 4.5 fsdb miscompile
1.140     christos  505:        date    Sat Nov  9 11:03:02 EST 2013
                    506:        who     christos
1.141     christos  507:        file    src/sbin/fsdb/Makefile : 1.36 (and earlier)
1.140     christos  508:        descr
                    509:                src/sbin/fsdb/fsdb.c: In function 'findblk':
                    510:                src/sbin/fsdb/fsdb.c:610:1: error: unrecognizable insn:
                    511:                (insn 941 940 942 134 src/sbin/fsdb/fsdb.c:589 (set (reg:SI 604)
                    512:                    (subreg:SI (mem/s/j:DI (plus:SI (mult:SI (reg:SI 602)
                    513:                         (const_int 8 [0x8]))
                    514:                     (reg/f:SI 601)) [0 curinode.99_378->dp2.di_ib S8 A32]) 4)) \
                    515:                        -1 (nil))
                    516:                src/sbin/fsdb/fsdb.c:610:1: internal compiler error: in \
                    517:                extract_insn, at recog.c:2103
                    518:        kcah
                    519:
1.141     christos  520:        hack    gcc 4.8 gcc miscompiles
                    521:        date    Sat Nov  9 16:35:18 EST 2013
                    522:        who     christos
1.203     rin       523:        file    distrib/utils/x_ping/Makefile : 1.8
                    524:        file    distrib/vax/miniroot/Makefile.inc : ?
                    525:        file    distrib/vax/ramdisk/Makefile : ?
                    526:        file    external/gpl3/gdb/lib/libdecnumber/Makefile : 1.3
                    527:        file    sbin/fsdb/Makefile : 1.36
                    528:        file    sbin/newfs_ext2fs/Makefile : 1.6
                    529:        file    sbin/ping/Makefile : 1.17
                    530:        file    usr.sbin/mtrace/Makefile : 1.11
1.141     christos  531:        descr
                    532:                external/gpl3/gcc/dist/gcc/expmed.c:2781:1:
                    533:                internal compiler error: in change_address_1, at emit-rtl.c:2019
                    534:                external/gpl3/gcc/dist/gcc/recog.c:770:1:
                    535:                internal compiler error: in change_address_1, at emit-rtl.c:2019
                    536:                external/gpl3/gcc/dist/libdecnumber/decNumber.c:7214:3:
                    537:                internal compiler error: in change_address_1, at emit-rtl.c:2019
                    538:                sbin/ping/ping.c:679:1:
                    539:                internal compiler error: in change_address_1, at emit-rtl.c:2019
                    540:                sbin/newfs_ext2fs/mke2fs.c:681:1:
                    541:                internal compiler error: in reload_combine_note_use,
                    542:                at postreload.c:1561
                    543:                external/gpl3/gdb/dist/libdecnumber/decNumber.c:7214:3:
                    544:                internal compiler error: in change_address_1, at emit-rtl.c:2019
                    545:                usr.sbin/mtrace/mtrace.c:1655:1:
                    546:                internal compiler error: in change_address_1, at emit-rtl.c:2019
                    547:        kcah
                    548:
1.178     rin       549:        hack    gcc 5.4 cc1 miscompile
                    550:        date    Tue Feb 14 07:19:57 JST 2017
                    551:        who     rin
                    552:        pr      port-vax/51967
                    553:        file    external/gpl3/gcc/usr.bin/backend/Makefile : 1.35
                    554:        descr
                    555:                cc1 aborts due to SIGILL when compiling the sample code attached
                    556:                to the PR. As a workaround, compile dse.c with -O0.
                    557:        kcah
                    558:
1.179     rin       559:        hack    libssh miscompile
1.182     rin       560:        cdate   Tue Feb 14 17:58:06 JST 2017
                    561:        mdate   Tue Feb 14 18:57:39 JST 2017
1.179     rin       562:        who     rin
                    563:        file    crypto/external/bsd/openssh/lib/Makefile : 1.20
                    564:        descr
1.182     rin       565:                poly1305.c and umac.c are miscompiled, which results in login
                    566:                failure to/from external hosts via ssh.
1.179     rin       567:        kcah
                    568:
1.180     rin       569:        hack    mandoc miscompile
                    570:        date    Tue Feb 14 18:03:05 JST 2017
                    571:        who     rin
                    572:        file    external/bsd/mdocml/lib/libmandoc/Makefile : 1.8
                    573:        descr
                    574:                mandoc(1) receives SIGILL in in_line_argn() from mdoc_macro.c.
                    575:        kcah
                    576:
1.183     rin       577:        hack    libX11 miscompile
                    578:        date    Thu Feb 16 10:00:22 JST 2017
                    579:        who     rin
                    580:        file    src/external/mit/xorg/lib/libX11/Makefile.libx11 : 1.18
                    581:        descr
                    582:                lcWrap.c is miscompiled, which results in input failure via XIM.
1.184     rin       583:                Besides, some clients, e.g., pkgsrc/x11/kterm, receive SIGSEGV.
1.183     rin       584:        kcah
                    585:
1.21      mycroft   586: port   arm
                    587:
                    588:        hack    gcc-unsigned-compare
                    589:        cdate   09 Mar 2002
                    590:        mdate   18 Mar 2002
                    591:        who     bjh21
                    592:        file    dist/bind/lib/nameser/ns_parse.c : 1.3
                    593:        file    dist/dhcp/minires/ns_parse.c : 1.3
                    594:        file    dist/dhcp/omapip/result.c : 1.2
                    595:        file    dist/dhcp/server/failover.c : 1.3
                    596:        file    gnu/dist/toolchain/bfd/bfd.c : 1.2
                    597:        file    gnu/dist/toolchain/bfd/format.c : 1.2
                    598:        file    gnu/dist/toolchain/gdb/target.c : 1.2
                    599:        file    sys/kern/vfs_subr.c : 1.172
                    600:        descr   When checking that a potentially-unsigned enum is >= 0, assign
                    601:                it to an int first.  This is necessary to avoid "comparison is
                    602:                always true" warnings with -fshort-enums.  Casting to an int
                    603:                really should be enough, but turns out not to be.
                    604:        kcah
                    605:
1.122     tsutsui   606:        hack    gcc-4.5 arm CNAME hostname lookup failure on
                    607:                certain DNS environment (probably -ftree-ter problem)
                    608:        cdate   Sat Dec 24 04:59:00 UTC 2011
                    609:        mdate
                    610:        who     tsutsui
                    611:        file    lib/libc/net/Makefile.inc 1.79
                    612:        descr   Hostname lookup against CNAMEs by some commands fails
                    613:                on certain DNS environments if lib/libc/net/gethnamaddr.c
                    614:                (ping(8) etc) and lib/libc/net/getaddrinfo.c (ftp(1) etc)
                    615:                are compiled with -O2, even though nslookup(1) against
                    616:                the same CNAME returns proper hostname.
                    617:                They works properly if compiled with -O2 -fno-tree-ter.
                    618:                Also -O2 fails but -O2 -fno-tree-ter works on the following
                    619:                test case in gcc bugzilla:
                    620:                http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48863#c4
                    621:        kcah
                    622:
1.21      mycroft   623: port   sh3
                    624:
1.74      mrg       625:        hack    gcc4-sh3-bz2
1.103     tsutsui   626:        cdate   Sun May 21 03:34:57 UTC 2006
                    627:        mdate   Fri May 16 13:13:00 UTC 2008
                    628:        who     mrg, tsutsui
1.74      mrg       629:        file    lib/libbz2/Makefile     : 1.10
                    630:        descr
                    631:                The in-tree GCC 4.1-based compiler generated too-far
1.103     tsutsui   632:                pc-relative addresses.  Hack is to build with
                    633:                -fno-loop-optimize.
1.74      mrg       634:        kcah
                    635:
1.96      mrg       636: port   m68000
1.79      mrg       637:
1.96      mrg       638:        hack    gcc4-m68000
1.102     tsutsui   639:        cdate   Fri Feb  8 10:29:37 PST 2008
                    640:        mdate   Sun May  4 15:37:19 UTC 2008
1.99      tsutsui   641:        who     mrg, tsutsui
1.96      mrg       642:        file    rescue/Makefile : 1.21
1.99      tsutsui   643:        file    sbin/dump_lfs/Makefile  : 1.9
1.101     tsutsui   644:        file    sbin/fsck_ffs/Makefile  : 1.35
                    645:        file    sbin/fsdb/Makefile      : 1.22
                    646:        file    share/mk/sys.mk : 1.96
1.99      tsutsui   647:        file    usr.sbin/ndbootd/Makefile       : 1.5
1.95      mrg       648:        descr
1.101     tsutsui   649:                Several internal compiler errors with gcc -O1
                    650:                around 64bit integer arithmetic.
1.99      tsutsui   651:                This hack uses -O1 and adds some -fno-tree-foo options
                    652:                to avoid the problem.
1.101     tsutsui   653:                This might be related with GCC Bugzilla Bug 32424.
1.95      mrg       654:        kcah
                    655:
1.141     christos  656: port   m68k,sh3,vax
1.135     christos  657:
                    658:        hack    gcc-4.8.1
                    659:        cdate   Wed Nov  6 20:41:35 EST 2013
                    660:        who     christos
1.141     christos  661:        file    src/external/gpl3/gcc/libstdc++-v3/Makefile : 1.6
1.135     christos  662:        descr
                    663:                compile hashtable_c++0x.cc with -O2 instead of -Os to
                    664:                produce missing instantiation of std::lower_bound expansion
                    665:                for unsigned long.
                    666:        kcah
1.22      mrg       667:
1.116     mrg       668: port   sparc
                    669:
                    670:        hack    avoid NULL pointer derefs in savefpstate IPIs and GCC 4.5.3
                    671:        cdate   Sun Aug 14 19:26:48 PDT 2011
                    672:        who     mrg
                    673:        file    sys/arch/sparc64/sparc/cpu.c : 1.234
                    674:        file    sys/arch/sparc64/sparc/cpuvar.h : 1.90
                    675:        file    sys/arch/sparc64/sparc/genassym.cf : 1.67
                    676:        file    sys/arch/sparc64/sparc/locore.s : 1.265
                    677:        descr
                    678:                Something is wrong with GCC 4.5.3 and the savefpstate IPI.
                    679:                Post newlock2 there was a bug where a lock was reduced from
                    680:                IPL_SCHED to IPL_VM (?) and occasionally savefpstate IPI
                    681:                would crash due to NULL IPI.  This was fixed by re-using the
                    682:                right IPL value.  However, GCC 4.5.3 build kernels have the
                    683:                same problems.  For now, the hack is re-instated.
                    684:        kcah
                    685:
                    686:
1.51      simonb    687: port   mips
                    688:
                    689:        hack    mips-shared-linker-load-address
                    690:        cdate   Fri Oct  7 08:33:10 UTC 2005
                    691:        who     simonb
                    692:        file    src/sys/kern/exec_elf32.c : 1.107
                    693:        descr
                    694:                With COMPAT_16 or previous enabled (which enables
                    695:                ELF_INTERP_NON_RELOCATABLE) a recent ld.elf_so will
                    696:                load and run at address 0.  The check to fix this in
                    697:                rev 1.107 only checks the first psection of the ELF
                    698:                executable, which may not be loadable.  A more correct
                    699:                fix is to check the first loadable psection instead of
                    700:                just the first psection.
                    701:        kcah
1.54      he        702:
1.85      martin    703:        hack    mips-duplicate-ras-end-label
                    704:        cdate   Sat Sep  2 23:29:42 2006
                    705:        who     martin
1.92      chs       706:        file    src/regress/sys/kern/ras/ras3/Makefile : 1.3
1.85      martin    707:        descr
                    708:                Add -fno-reorder-blocks to CFLAGS to avoid duplicate
                    709:                labels by duplicated __asm output from RAS_END()
                    710:                macro.
                    711:        kcah
                    712:
1.106     lukem     713:        hack    mips-mcount-assembler-warning
                    714:        cdate   Tue Jul 29 14:16:52 UTC 2008
                    715:        who     lukem
                    716:        file    src/lib/libc/gmon/Makefile.inc : 1.8
                    717:        descr
                    718:                Workaround for PR port-mips/39192.
                    719:                common/lib/libc/gmon/mcount.c generates a (fatal)
                    720:                assembler warning on MIPS:
                    721:                        Warning: No .cprestore pseudo-op used in PIC code
                    722:                Add COPTS.count.c+=-Wa,--no-warn to avoid -Wa,--fatal-warnings
                    723:        kcah
                    724:
1.82      christos  725: port   i386
                    726:
1.84      drochner  727:        hack    use volatile intermediate variable to enforce rounding
                    728:        cdate   Tue Aug  1 22:15:55 MEST 2006
                    729:        who     drochner
                    730:        file    src/lib/libm/src/lrintf.c : 1.4
                    731:        file    src/lib/libm/src/s_rintf.c : 1.8
                    732:        descr
                    733:                gcc-4 does subsequent operations on "float" values within
                    734:                the i387 FPU without rounding the intermediate results
                    735:        kcah
1.110     macallan  736:
1.148     christos  737: port   x86
                    738:        hack    turn off optimization for biosdisk_ll.c because otherwise
                    739:                we are pass the wrong arguments to biosdisk_read().
                    740:                $ cd /usr/src/sys/arch/i386/floppies/bootflopp-com
                    741:                $ qemu-system-i386 -nographic -fda boot-com1.fs -boot a
1.203     rin       742:        cdate   Mon Apr 7 21:09:55 2014 UTC
1.148     christos  743:        who     christos
                    744:        file    src/sys/arch/i386/stand/lib/Makefile : 1.38
                    745:        descr
                    746:                Turning on DISK_DEBUG shows the problem. We should find
                    747:                out which option is causing this.
                    748:        hcah
                    749:
1.110     macallan  750: port   powerpc
                    751:
                    752:        hack    avoid using __builtin_return_address(0) because it fails in
                    753:                Xorg's module loader
                    754:        cdate   Sat Sep 27 03:52:05 UTC 2008
                    755:        who     macallan
                    756:        file    src/libexec/ld.elf_so/rtld.c : 1.121
                    757:        descr
                    758:                workaround for PR port-macppc/37812
                    759:        kcah
                    760:
1.115     matt      761:        hack    define TARGET_SECURE_PLT and HAVE_AS_TLS because when
                    762:                building the native compiler via build.sh those don't defined
                    763:                properly.
                    764:        cdate   Sat Mar 12 08:00:00 UTC 2011
                    765:        who     matt
1.203     rin       766:        file    src/gnu/dist/gcc4/gcc/config/rs6000/netbsd.h : 1.7
1.115     matt      767:        descr
                    768:                see above
                    769:        kcah
1.117     christos  770:
                    771: port   powerpc64
                    772:
                    773:        hack    include _errno.c in libposix so that __errno resolves. It
                    774:                should resolve from libc's errno, but somehow it does not.
                    775:                Linker bug?
                    776:        cdate   Thu Oct 27 13:19:47 EDT 2011
                    777:        who     christos
                    778:        file    src/lib/libposix/Makefile: 1.15
1.118     christos  779:        file    src/lib/librt/Makefile: 1.14
1.117     christos  780:        descr
                    781:                workaround for:
                    782:                    libposix_pic.a(cerror.pico)(.text+0x14): unresolvable \
                    783:                    R_PPC64_REL24 relocation against symbol `.__errno'
                    784:        kcah
1.119     christos  785:
                    786:        hack    rename data() function in mdocml to avoid redefined error.
                    787:                Compiler/Assembler bug?
                    788:        cdate   Sat Oct 29 11:16:01 EDT 2011
                    789:        who     christos
                    790:        file    src/external/bsd/mdocml/tbl_data.c: 1.2
                    791:        descr
                    792:                workaround for:
                    793:                    {standard input}: Assembler messages:
                    794:                    {standard input}:105: Error: symbol `.data' is already \
                    795:                    defined
                    796:        kcah
1.120     christos  797:
                    798: port   emips
                    799:
                    800:        hack    Add nop between ctc1 and mtc0 to avoid assembler internal
                    801:                error
                    802:        cdate   Sat Oct 29 16:57:34 EDT 2011
                    803:        who     christos
                    804:        file    src/sys/arch/mips/mips/mips_fpu.c: 1.7
                    805:        descr
                    806:                workaround for:
                    807:                    {standard input}: Assembler messages:
                    808:                    {standard input}:730: Internal error!
                    809:                    Assertion failure in append_insn at /usr/src/external/gpl3/\
                    810:                    binutils/dist/gas/config/tc-mips.c line 2910.
                    811:        kcah
1.125     martin    812:
                    813: port   ia64
                    814:
1.157     martin    815:        hack    libgcc unwind dummy function
                    816:        cdate   Fri Apr 17 14:31:03 CEST 2015
                    817:        who     martin
                    818:        file    src/external/gpl3/gcc/dist/libgcc/config/ia64/unwind-ia64.c: 1.4
                    819:        descr
                    820:                Add an empty _Unwind_FindTableEntry() implementation.
                    821:                In the end we will use our libc stuff, and this should
                    822:                go away again.
                    823:        kcah
                    824:
1.128     christos  825: port   x68k
1.127     martin    826:
1.128     christos  827:        hack    compiler error with gcc 4.5.x
                    828:        cdate   Fri May 24 13:23:01 EDT 2013
                    829:        who     christos
                    830:        file    src/external/gpl3/gcc/usr.bin/bakend/Makefile: 1.17
                    831:                xsrc/external/mit/xorg/lib/libGLU/Makefile: 1.11
                    832:        descr
                    833:                workaround for:
                    834:                internal compiler error: in cselib_record_set, at cselib.c:1999
                    835:        kcah
1.130     joerg     836:
                    837: hack   fallback to /usr/bin/clang-cpp in rpcgen
                    838: cdate  Wed Jun  5 15:49:27 CEST 2013
                    839: who    joerg
1.203     rin       840: file   src/usr.bin/rpcgen/rpc_main.c : 1.35
1.130     joerg     841: descr
1.136     joerg     842:        It is undecided which compiler owns /usr/bin/cpp and whether it should
1.130     joerg     843:        exist in a MKGCC=no world. To allow rpcgen to work out-of-the-box,
                    844:        if either gcc or clang is installed, use /usr/bin/clang-cpp as fallback.
                    845:        This applies only if RPCGEN_CPP is not set and /usr/bin/cpp is not executable.
                    846: kcah
1.131     skrll     847:
1.155     skrll     848: port   hppa
1.131     skrll     849:
                    850:        hack    compiler error with gcc 4.5.x
                    851:        cdate   Tue Jul 23 07:42:28 BST 2013
                    852:        who     skrll
1.133     skrll     853:        file    src/sys/lib/libkern/Makefile.libkern: 1.26
                    854:        descr
                    855:                workaround for unanalysed codegen bug affecting md5c.c.
                    856:        kcah
1.149     macallan  857:
1.155     skrll     858:        hack    gdb vs _rtld_debug_state problem
                    859:        cdate   Thu Mar  5 09:49:53 UTC 2015
                    860:        who     skrll
                    861:        file    src/libexec/ld.elf_so/rtld.c: 1.175
                    862:        descr
                    863:                workaround for problem where gdb misses the breakpoint on
                    864:                _rtld_debug_state when the function is only the
                    865:                bv,n %r0(%rp) instruction - the nullify seems to
                    866:                confuse something
                    867:        kcah
                    868:
1.149     macallan  869: port   mips64*
                    870: hack   compiler crashes on mips64* with optimization enabled
                    871: cdate  Tue May 13 18:46:48 UTC 2014
                    872: who    macallan
                    873: file   src/external/lgpl3/gmp/lib/libgmp/arch/mips64eb/Makefile.inc: 1.6
                    874:        src/external/lgpl3/gmp/lib/libgmp/arch/mips64eb/config.h: 1.5
                    875:        src/external/lgpl3/gmp/lib/libgmp/arch/mips64el/Makefile.inc: 1.6
                    876:        src/external/lgpl3/gmp/lib/libgmp/arch/mips64el/config.h: 1.5
                    877: descr  workaround for n32 gcc doing unaligned 64bit accesses when optimizing
                    878: pr     48696
                    879: kcah
1.150     martin    880:
                    881: port   vax
                    882: hack   compile boot with -O1
                    883: cdate  Sat May 24 09:40:58 CEST 2014
                    884: who    martin
                    885: file   src/sys/arch/vax/boot/boot/Makefile: 1.41
                    886: descr  /boot does not work when compiled with -O2 and gcc 4.8
                    887: kcah
                    888:
1.191     christos  889: port   vax
                    890: hack   compile nir.c in gallium with -O1
                    891: cdate  Mon Oct 28 14:39:35 EDT 2019
                    892: who    christos
                    893: file   /cvsroot/src/external/mit/xorg/lib/gallium/Makefile 1.36
                    894: descr  gallium does not compile.
                    895: kcah
                    896:
1.193     christos  897: port   sh3
                    898: hack   compile parse.c in battlestar with -Wno-restrict
                    899: cdate  Mon Oct 28 14:39:35 EDT 2019
                    900: who    christos
                    901: file   /cvsroot/src/games/battlestar/Makefile 1.11
                    902: descr  fails to compile, confused by char words[][];
                    903:        strcpy(words[n - 1], words[n + 1]);
                    904: kcah
                    905:
1.194     christos  906: port   sh3
                    907: hack   compile ddns.c in dhcpcd with no-stringop-overflow
                    908: cdate  Tue Oct 29 20:25:59 EDT 2019
                    909: who    christos
                    910: file   /cvsroot/src/external/mpl/dhcp/bin/server/Makefile 1.2
                    911: descr  fails to compile, confused by builtin_object_size in strcat(p, ".in..")
                    912: kcah
                    913:
1.156     matt      914: port   arm
                    915: hack   avoid using labels in a 12-bit constant.
1.203     rin       916: cdate  Mon Mar 30 05:26:47 2015 UTC
1.156     matt      917: who    matt
                    918: file   crypto/external/bsd/openssl/lib/libcrypto/arch/arm/aes-armv4.S: 1.2
                    919: descr  workaround for clang misassembling an instruction
                    920: kcah
1.177     christos  921:
                    922: port   sparc64
                    923: hack   during profiling with -m32 (and ASLR) labels are not generated
                    924:        consistently
1.203     rin       925: cdate  Sat Feb 11 04:56:37 2017 UTC
1.177     christos  926: who    christos
                    927: file   /cvsroot/src/crypto/external/bsd/heimdal/lib/libasn1/Makefile: 1.4
                    928: desc   asn1_krb5_asn1.po does not produce the same results during successive
                    929:        compilation runs; it is bimodal. Turning optimization to -O0 fixes
                    930:        the issue
                    931: kcah
1.187     scole     932:
                    933: port   ia64
                    934: hack   ski emulator crashes
1.203     rin       935: cdate  Sat Apr 8 18:10:43 2017 UTC
1.187     scole     936: who    scole
                    937: file   /cvsroot/src/sys/external/bsd/acpica/dist/tables/tbxfload.c: 1.6
                    938: desc
                    939:        ski emulator crashes during acpi detection.  Added a check for
                    940:        uninitialized index.  Submitted a request for change with upstream
                    941:        mailing list, but never got a response
                    942: kcah
1.189     christos  943:
                    944: port   vax
                    945: hack   compile rtld.c with -O0
                    946: cdate  Wed Apr  3 17:38:38 EDT 2019
                    947: who    christos
                    948: file   src/libexec/ld.elf_so/Makefile: 1.141
                    949: descr  Disable optimization for rtld.c on the vax with gcc-7. Crashes on the
                    950:        second pass loop with elm == 0xffffffff
                    951: kcah
1.195     rin       952:
1.197     christos  953: port   powerpc
1.199     christos  954: hack   compile tc.c, logerr.c, ubsan.c with -O0 for clang
1.197     christos  955: cdate  Wed Jan 29 17:40:19 EST 2020
                    956: who    christos
                    957: file   src/external/bsd/atf/lib/libatf-c/Makefile: 1.22
1.198     christos  958: file   src/external/bsd/dhcpcd/sbin/dhcpcd/Makefile: 1.49
1.199     christos  959: file   src/tests/lib/libc/misc/Makefile: 1.5
                    960:
                    961: descr  Disable optimization on tc.c, logerr.c, ubsan.c crashes:
1.197     christos  962:        lib/libLLVMCodeGen/../../llvm/../../external/apache2/llvm/lib/..\
                    963:        /dist/llvm/include/llvm/CodeGen/MachineFrameInfo.h", line 495, \
                    964:        function "__int64_t llvm::MachineFrameInfo::getObjectOffset(int) const"
                    965: kcah
1.202     rin       966:
1.208     rin       967: port   m68k
1.211     rin       968: hack   compile aes_ccm_tag() with -O0 for GCC8 and GCC9
1.208     rin       969: cdate  Mon Aug 10 06:27:29 UTC 2020
1.211     rin       970: mdate  Mon Oct  5 22:00:00 JST 2020
1.208     rin       971: who    rin
                    972: file   src/sys/crypto/aes/aes_ccm.c: 1.5
1.211     rin       973: descr  GCC 9.4 and 8.3 miscompile aes_ccm_tag() for m68k with optimization
                    974:        level -O[12], which results in failure in aes_ccm_selftest().
                    975:        For 9.4, -O0 and -O1 work but -O2 fails for amiga (A1200, 68060) and
                    976:        mac68k (Quadra 840AV, 68040). Whereas -O0 and -O2 work but -O1 fails
                    977:        for sun3 (TME, 68020 emulator) and sun2 (TME, 68010 emulator).
1.208     rin       978: kcah
1.217     christos  979:
1.219     martin    980: port   sh3
                    981:
                    982:        hack    gcc9-sh3-lint
                    983:        cdate   Tue Jun 22 14:59:52 CEST 2021
1.221     hgutch    984:        mdate   Mon Jul  5 12:34:57 CEST 2021
                    985:        who     hgutch
                    986:        file    external/gpl3/gcc/dist/gcc/config/sh/sh.md 1.2
                    987:                external/gpl3/gcc.old/dist/gcc/config/sh/sh.md 1.11
                    988:        descr
                    989:                The in-tree gcc 9/gcc 10 crashes with an internal
                    990:                invalid opcode exception when using any kind of
                    991:                optimization on lex.c in usr.bin/xlint/lint .  This
                    992:                was introduced apparently unintendedly in gcc when
                    993:                addressing a different issue.  Rather than disabling
                    994:                optimization for lex.c, instead revert the change to
                    995:                gcc.  The bug report upstream has been updated to
                    996:                reflect the exact breakage.
                    997:
1.220     rillig    998:                https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101177
1.219     martin    999: kcah
1.223     rin      1000:
                   1001: port   sh3
                   1002: hack   compile lint1/initdecl() with -O0 for sh3 (port-sh3/56311)
                   1003: cdate  Thu Jul 15 07:58:05 UTC 2021
1.224   ! rin      1004: mdate  Fri Jul 16 10:00:00 UTC 2021
1.223     rin      1005: who    rin
                   1006: file   src/usr.bin/xlint/lint1/decl.c: 1.200
1.224   ! rin      1007: descr  GCC 9 and 10 miscompile initdecl() due to mischoice of register,
        !          1008:        as described in the PR. Compiling this function with -O0 works
        !          1009:        around the problem.
        !          1010:        The problem has been reported to upstream as GCC Bug 101469:
        !          1011:        https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101469
1.223     rin      1012: kcah

CVSweb <webmaster@jp.NetBSD.org>