Home | History | Annotate | Download | only in doc
History log of /src/doc/HACKS
RevisionDateAuthorComments
 1.258  20-Sep-2025  christos elide gcc bogus error
 1.257  16-Sep-2025  nat Revert to previous as requested by Rin.

As I found out the hack only applies to libc/softfloat which has issues on
m68k.

The hack should not have been applied to all m68k configurations.
 1.256  11-Sep-2025  nat Fix segfaults of libm tests noticable on m68k.

Also document it in doc/HACKS.
 1.255  02-Sep-2025  rin doc/HACKS: Describe ld(1) hack for binutils 2.45
 1.254  28-Aug-2025  christos mention ia64 hack
 1.253  06-May-2025  rin doc/HACKS: Add libXfont2 to m68k v.s. stack protector hacks
 1.252  04-May-2025  nat Remove hack for lc040.

The accepted approach is to use soft-float.

Addresses PR port-mac68k/13078.
 1.251  18-Apr-2025  riastradh binutils: Remove local hack to disable secureplt by default on alpha.

ld.elf_so can handle it now, so there's no need to patch it out of
binutils. Users can always use -Wl,--no-secureplt to disable it if
they want.

PR port-alpha/57511: ld.elf_so(1) does not support secure PLT for alpha
PR port-alpha/57717: Alpha linker generates LOAD segments (and
generates warnings about them)
 1.250  13-Apr-2025  rin doc/HACKS: Describe -O0 hacks for GCC10/12 v.s. gallium{,.old}

Note that compiled binary does not work anyway on vax; they manipulate
floating-point numbers as binary, assuming IEEE 754 format.
 1.249  13-Apr-2025  rin doc/HACKS: Remove/update stale entries for vax

Also, migrate MI entries out of `port vax`.
 1.248  03-Apr-2025  nat Document workaround for buggy lc040 cpus.
 1.247  23-Sep-2024  rin doc/HACKS: Belatedly add some more GCC12/m68k stack-protector hacks
 1.246  18-Jun-2024  riastradh branches: 1.246.2;
doc/HACKS: Note tsan TLS alignment workaround for PR lib/58349.
 1.245  09-Jun-2024  mrg document recent m68k vs GCC 12 hacks.
 1.244  12-May-2024  msaitoh s/unitialized/uninitialized/
 1.243  05-May-2024  riastradh tests/lib/libm/t_fe_round.c: Work around likely ia64 bug in gcc.
 1.242  04-Apr-2024  christos mention gallium.old hack
 1.241  12-Jan-2024  martin Extend the lint "trapv" gcc bug to VAX and note that it has been fixed
(according to upstream) in gcc 11 and newer.
 1.240  04-Sep-2023  mrg document x86 curlwp/curcpu hack for GCC 12.
 1.239  18-Jul-2023  rin doc/HACKS: PR port-sh3/56311 has been fixed.
 1.238  09-Jul-2023  rin doc/HACKS: Note OPENSSL_NO_EC_NISTP_64_GCC_128 hack for aarch64eb.
 1.237  07-Jul-2023  rin doc/HACKS: Document PR port-alpha/57511
 1.236  07-May-2023  martin Not hacks to use old binutils (2.34 instead of 2.39) on mips64*
(but not mipsn64*).
 1.235  22-Jan-2023  christos new vax compiler issues
 1.234  06-Jan-2023  christos Now that the default page size is 4K again for x86_64 with the binutils
change to default to -z separate-code, remove the previous hack.
 1.233  30-Dec-2022  christos mention binutils hack
 1.232  04-Dec-2022  jakllsch branches: 1.232.2;
On VAX, compile gdtoa/misc.c at -O0 to avoid incorrect machine code
resulting in some doubles printing as garbage.
 1.231  12-Sep-2022  rin Document -O0 hack for ibm4xx copy{in,out}() for clang 13.0.0.
 1.230  10-Aug-2022  rin Note that aes_ccm_tag() still fails with GCC 10.4 with -O2 on m68k.
 1.229  31-May-2022  christos document gomoku
 1.228  10-Apr-2022  rillig doc/HACKS: add bug report for internal compiler error on alpha
 1.227  10-Apr-2022  martin PR 56789: document gcc bug workaround for -ftrapv on alpha.
 1.226  23-Nov-2021  thorpej Temporary hack to work around incorrect/missing unwind info for
the t_sig_backtrace test case on ARM when compiled with optimization.
 1.225  13-Oct-2021  nia libcrypt hack for vax
 1.224  16-Jul-2021  rin PR port-sh3/56311

Correct misinterpretation for the cause of the problem, and link to
the bug report for upstream.
 1.223  15-Jul-2021  rin PR port-sh3/56311

Document -O0 workaround for initdecl() in doc/HACKS.
 1.222  06-Jul-2021  thorpej Remove jemalloc and gdb hacks for alpha; root cause has been addressed.
 1.221  05-Jul-2021  hgutch Update gcc9-sh3-lint - instead of disabling optimization for lex.c on
sh3, rather revert the gcc change that (seemingly accidentally) broke
this.
 1.220  23-Jun-2021  rillig lint1: add bug report for internal GCC compiler error
 1.219  22-Jun-2021  martin Document sh3* lint hack for gcc 9
 1.218  31-May-2021  rin PR toolchain/55837

Get rid of -O0 hack for GDB for hard-float arm. This was necessary because
libunwind did not support s0-s31. Note that for *most* cases (not all!),
-O0 stops using VFP registers for general purposes.

Also note that this hack was incomplete. We had to compile every functions
with -O0, that can be unwinded. Otherwise, GDB crashed every time exceptions
were raised.
 1.217  08-May-2021  christos mention gdb hack discovered by rin.
 1.216  16-Dec-2020  rin -O0 hack was reintroduced to jemalloc/rtree.c for GCC9 on alpha.
 1.215  02-Dec-2020  wiz comparision -> comparison
 1.214  08-Oct-2020  rin GCC 9.3 miscompiles dwarf2{expr,loc}.c with -O2 for earmv5hf{,eb}
(-O1 is fine). This is a new regression introduced in GCC9.

For everyone's safety, extend -O0 hack to dwarf2{expr,loc}.c for
all arm variants with GCC >= 8.
 1.213  07-Oct-2020  rin PR port-alpha/54307

GCC 9.3 seems to be able to compile rtree.c with -O2:

- No new regressions in ATF.
- System survives over a night, at least, under heavy loads.

On the other hand, unfortunately, GCC 9.3 still miscompiles tcache.c
with -O2 or -O1. For example, even ``gcc -g hello.c'' fails with ICE
if tcache.c is compiled with -O[12] in libc.
 1.212  05-Oct-2020  rin Update gdb/dwarf2expr.c hack for earmv7hf{,eb}; the situation does not
change even for GCC 9.3 with ``memcmp'' fix.
 1.211  05-Oct-2020  rin Update aes_ccm_tag() hack for m68k.

Even with ``memcmp fix'', GCC 9.4 miscompiles this function for -O[12].
But the situation was slightly changed from that with GCC 8.3:

* -O0 and -O1 work but -O2 fails for 68060 and 68040 (real hardware)
* -O0 and -O2 work but -O1 fails for 68020 and 68010 (TME)
 1.210  05-Oct-2020  rin Remove -fno-omit-frame-pointer hack for sun2 kernel.
 1.209  18-Sep-2020  christos mention strtod hack
 1.208  10-Aug-2020  rin Add hacks for GCC8 vs m68k ports:

compile aes_ccm_tag() with -O0 for GCC8
http://cvsweb.netbsd.org/bsdweb.cgi/src/sys/crypto/aes/aes_ccm.c#rev1.5

compile kernel with -fno-omit-frame-pointer for GCC8
http://cvsweb.netbsd.org/bsdweb.cgi/src/sys/arch/sun2/conf/Makefile.sun2#rev1.25
 1.207  10-May-2020  maxv Pass -Wno-unused-command-line-argument for LLVM, discussed on
tech-toolchain@.
 1.206  06-May-2020  snj netsmb is no more
 1.205  30-Apr-2020  rin Hack "gcc-4.5 arm without -fno-tree-vrp generate broken code" was removed in
src/lib/libc/softfloat/Makefile.inc rev 1.21:

http://cvsweb.netbsd.org/bsdweb.cgi/src/lib/libc/softfloat/Makefile.inc#rev1.21

Now, all tests mentioned in the entry are passed for softfloat arm.
 1.204  30-Apr-2020  rin lmcconfig(8) was removed.
 1.203  30-Apr-2020  rin Add missing dates and revisions.
 1.202  29-Apr-2020  rin PR toolchain/54820
PR toolchain/54877

earmv7hf{,eb}: compile gdb/dwarf2expr.c with -O0 for GCC8

http://cvsweb.netbsd.org/bsdweb.cgi/src/external/gpl3/gdb/lib/libgdb/Makefile#rev1.22
 1.201  12-Apr-2020  leot Hack removed in src/external/bsd/nvi/usr.bin/nvi/Makefile,-r1.21

It is no longer needed, per PR bin/54656.
 1.200  04-Apr-2020  jdolecek smbfs is no more
 1.199  30-Jan-2020  christos more like this
 1.198  29-Jan-2020  christos same hack different place
 1.197  29-Jan-2020  christos powepc/clang hack
 1.196  03-Nov-2019  rin Describe that both GCC 7.4 and 8.3 fail in the last entry.
 1.195  01-Nov-2019  rin Describe workaround for PR port-alpha/54307.
 1.194  30-Oct-2019  christos more hacks
 1.193  29-Oct-2019  christos sh3 now
 1.192  29-Oct-2019  christos gcc lossage
 1.191  28-Oct-2019  christos another vax -O1
 1.190  14-May-2019  maya branches: 1.190.2;
Add a hack entry for libpthread one section
 1.189  03-Apr-2019  christos mention rtld vax hack
 1.188  03-Apr-2019  scole Remove obsoleted ia64 gcc 4.5.3 hacks
 1.187  09-Apr-2017  scole branches: 1.187.10;
Add ia64 ski emulator hack
 1.186  11-Mar-2017  maya Remove already fixed HACKS entry. correct path to makeinfo Makefile for
easy reference.
 1.185  22-Feb-2017  maya GC some GCC 4.8 specific sh3 HACKS entries.

These existed to avoid compile errors, and haven't been effect
since gcc.old was removed.
 1.184  16-Feb-2017  rin sorry, correct English grammer
 1.183  16-Feb-2017  rin lcWrap.c is miscompiled on vax, which results in input failure via XIM.
Besides, some clients, e.g., pkgsrc/x11/kterm, receives SIGSEGV.
 1.182  14-Feb-2017  rin also compile poly1305.c with -O0 on vax to address ssh login failure from/to
some hosts
 1.181  14-Feb-2017  rin correct grammar
 1.180  14-Feb-2017  rin add hack for libmandoc on vax:
mandoc(1) receives SIGILL in in_line_argn() from mdoc_macro.c
 1.179  14-Feb-2017  rin add hack for libssh on vax
 1.178  13-Feb-2017  rin PR port-vax/51967 GCC 5.4 aborts on vax due to SIGILL for cc1
As a workaround, compile dse.c with -O0.
 1.177  11-Feb-2017  christos add sparc64 hack
 1.176  08-Feb-2017  rin Remove ifconfig hack on m68000. I've confirmed that the problem has already
gone with TME.
 1.175  20-Oct-2016  he branches: 1.175.2;
Per the discussion in PR#20924, remove the HACK entry for intvec.S on vax.
 1.174  15-Jun-2016  riastradh branches: 1.174.2;
Remove dumplfs from the list now that it seems strict-aliasing-safe.
 1.173  15-Jun-2016  riastradh No more obvious strict aliasing violations here.
 1.172  15-Jun-2016  riastradh Kill another strict aliasing violation.
 1.171  15-Jun-2016  riastradh This hack no longer exists since the switch to ipsec-tools in 2005.

Another strict-aliasing problem killed.
 1.170  15-Jun-2016  mrg replace the previous hack with something that i believe is actually
correct and, more importantly ;), works properly.

thanks for riastradh for hints about which bit was actually broken.
 1.169  15-Jun-2016  mrg build convert_endian() with "no-strict-aliases" optimiser attribute
to avoid some unknown miscompilation in endian_convert() that causes
ssh to exit on some output (for me, "cc -v".)

note in HACKS. we should investigate this further if possible as
this seems to indicate a strict aliasing violation. there certainly
are 32 and 64 bit object arrays being accessed with 8 bit accessors,
but i don't have time currently.
 1.168  04-Jun-2016  joerg Drop CSU entry.
 1.167  10-May-2016  mrg move the ufs_lookup hack to the global section and update it to current
reality. add a section for the crt hacks.
 1.166  04-May-2016  christos mention libmalloc hack
 1.165  28-Apr-2016  mrg note the -fno-tree-vrp hack for amd64.
 1.164  12-Jan-2016  christos vax does not use gcc 2.95
 1.163  11-Jan-2016  christos Add hack for cabs{,f,l} in <complex>
 1.162  27-Aug-2015  pooka update c++/volatile/constexpr entry
 1.161  23-Jul-2015  mrg remove the xfree86 reachover makefiles and the vast majority of
the support in the rest of the source tree.

X11 sets could use some cleaning up perhaps (just deletion, as
we've never really marked the old X11R6 as obsolete for native
xorg using platforms so far either.)
 1.160  26-Jun-2015  pooka document g++ 5.1 + libpthread volatile workaround (PR lib/49989)
 1.159  08-May-2015  martin Remove mips-kern-ksyms-size, now that it is already gone
 1.158  08-May-2015  martin Document mips64 kernel symbol table hack
 1.157  17-Apr-2015  martin Note ia64/gcc hack for mknative
 1.156  30-Mar-2015  matt note change to workaround bug in clang's arm integrated assembler.
 1.155  05-Mar-2015  skrll Rename hp700 to hppa and note new ld.elf_so hack.
 1.154  22-Dec-2014  dennis Remove note of hack around for riscv compiler problems with
atomics. This seems to now be fixed.
 1.153  02-Dec-2014  dennis Note riscv compiler workarounds for libasan
 1.152  13-Jun-2014  mrg remove the build support for GCC 4.1, and any hacks i found for it.

there could still be more -- i only looked for lines matching
both "HAVE_GCC" and "4" as words (grep -w.)
 1.151  28-May-2014  abs Add a hack entry for lib/libcurses/Makefile workaround for lib/48827
 1.150  24-May-2014  martin Note vax /boot hack
 1.149  13-May-2014  macallan mention workaround for PR48696
 1.148  07-Apr-2014  christos Add x86 bootblock hack.
 1.147  05-Apr-2014  tron branches: 1.147.2;
Document xauth(1) hack.
 1.146  04-Apr-2014  wiz Fix typo.
 1.145  04-Apr-2014  christos add ctfconvert bug.
 1.144  24-Mar-2014  tron Document makeinfo(1) hack.
 1.143  16-Nov-2013  skrll Remove hack now it's fixed in 4.8.2
 1.142  13-Nov-2013  skrll Apply hack for gcc 4.8 bug on rtld.c.
 1.141  09-Nov-2013  christos mention gcc-4.8 hacks for the vax
 1.140  09-Nov-2013  christos document fsdb bug
 1.139  09-Nov-2013  christos and another
 1.138  09-Nov-2013  christos another 4.8.1 hack; make more specific and add more info
 1.137  07-Nov-2013  christos another gcc-4.8.1 workaround
 1.136  07-Nov-2013  joerg Grammar fix.
 1.135  07-Nov-2013  christos mention template instantiation workaround
 1.134  24-Jul-2013  skrll There wasn't a codegen bug - the test program itself was buggy.

Nothing to see hear... move along.
 1.133  23-Jul-2013  skrll Another codegen bug that fixes (in this case lots of) atf tests.
rump_server doesn't die so much now.
 1.132  23-Jul-2013  skrll Add revision to previous
 1.131  23-Jul-2013  skrll Compile tests/lib/libc/sys/t_msgrcv with -O0 on hppa to avoid compiler
bug.
 1.130  05-Jun-2013  joerg branches: 1.130.2;
If /usr/bin/cpp is not executable and RPCGEN_CPP was not set, try
/usr/bin/clang-cpp. This allows rpcgen to work in a clang-only release
build. Document hack to be resolved when the final decision about
/usr/bin/cpp and friends is made.
 1.129  03-Jun-2013  christos more vax Makefile damage
 1.128  24-May-2013  christos mention x68k hacks.
 1.127  27-Dec-2012  martin Note another ia64 compiler workaround
 1.126  27-Dec-2012  martin Note libelf ia64 hack
 1.125  27-Dec-2012  martin Document libc hesiod.c compiler workaround on ia64
 1.124  14-Nov-2012  msaitoh Add note about lib/libc/softfloat/Makefile.inc hack for arm.

Gcc has a bug in tree optimization. For adddf3, -INF + -INF returns 0 without
-fno-tree-vrp. Debugging with -fdump-tree-all shows that
softfloat.c.021t.cleanup_cfg is ok but softfloat.c.023t.ssa is broken.
 1.123  03-Mar-2012  nakayama branches: 1.123.2;
The hack has been resolved in the revision 1.340 of
sys/arch/sparc64/sparc64/locore.s.
 1.122  24-Dec-2011  tsutsui branches: 1.122.2;
Note libc/net/Makefile.inc hostname lookup -fno-tree-ter hacks for gcc 4.5 arm.
 1.121  08-Nov-2011  christos mention libgcc/emacs hack.
 1.120  29-Oct-2011  christos branches: 1.120.2;
Another binutils workaround
 1.119  29-Oct-2011  christos mention another ppc64 hack.
 1.118  27-Oct-2011  christos librt needs the ppc64 hack too.
 1.117  27-Oct-2011  christos mention ppc64 hack.
 1.116  15-Aug-2011  mrg note the sparc / GCC 4.5.3 / NULL savefpstate IPI hack.
 1.115  12-Mar-2011  matt Add note of gcc build HACKS for powerpc.
 1.114  23-Apr-2010  christos mention crash ldscript.
 1.113  11-Jan-2009  sketch typo
 1.112  11-Jan-2009  christos mention 32 bit time_t remnants
 1.111  29-Nov-2008  tsutsui Add an entry for workaround in src/sbin/ifconfig/Makefile
for gcc -O1 loop optimize bug.
 1.110  27-Sep-2008  macallan branches: 1.110.2;
add entry for the rtld.c __builtin_return_address(0) hack on powerpc
 1.109  03-Aug-2008  veego Restore .hx support for avoiding unneeded regeneration of header files
Fix PR lib/39185

Partly restore the changes which were removed during the Heimdal 1.1 update:
src/lib/libasn1/Makefile 1.28 -> 1.29
src/lib/libhdb/Makefile 1.21 -> 1.22
src/crypto/dist/heimdal/lib/asn1/gen.c 1.8 -> 1.9

Add .hx support in 'new' heimdal libraries:
src/lib/libgssapi/Makefile
src/lib/libhx509/Makefile

Add a new entry in doc/HACKS for this changes.
 1.108  02-Aug-2008  mrg normalise a path
 1.107  02-Aug-2008  mrg note about hacks to avoid xorg warnings
 1.106  29-Jul-2008  lukem document workaround for PR#39192
 1.105  21-Jul-2008  agc Implement, and document, an ugly hack which allows cross-building of
NetBSD on Darwin - Mac OS X Leopard - to complete successfully

hack cross-building hack on Darwin
mdate 20 July 2008
who agc
file src/distrib/common/Makefile.mdset : 1.33
descr
Darwin has problems with getopt() when used in mdsetimage -v,
due to the difference between BSD and libiberty() getopt
implementations, more fully described in
http://mail-index.netbsd.org/current-users/2008/06/27/msg003242.html
and the subsequent thread. For just now, we just have an ugly
workaround not to call mdsetimage with the -v argument on Darwin
kcah
 1.104  12-Jul-2008  gmcgarry Disable INCLUDE_CONFIG_FILE if compiling with PCC, since PCC cannot
handle 80KB string literals. Documented as hack.
 1.103  16-May-2008  tsutsui Update gcc4-sh3-bz2 entry.
 1.102  07-May-2008  tsutsui branches: 1.102.2;
- add an entry of gcc4/vax ICE on compiling ddb/db_command.c
- note gcc version in a vax gcc 2.95 entry
- remove obsolete gcc 3.3.2/arm -fno-strict-aliasing
- use mdate and restore cdate in gcc4-m68000
 1.101  04-May-2008  tsutsui Update gcc4-m68000 entry again.
 1.100  27-Apr-2008  tsutsui branches: 1.100.2;
Remove obsolete hack entries.

XXX could someone please take a look at gcc 2.95/vax hacks?
 1.99  27-Apr-2008  tsutsui Update an entry for gcc optimization on m68000.
 1.98  28-Mar-2008  christos branches: 1.98.2;
undo previous
 1.97  28-Mar-2008  he Note the build hack for racoon's privsep.c.
 1.96  09-Feb-2008  mrg make all sun2 use -O0 and move most of the hacks out into just 3 files.
 1.95  05-Feb-2008  mrg make sun2 build again with liberal use of -O0.
 1.94  31-Dec-2007  ad -systrace
 1.93  08-Apr-2007  scw branches: 1.93.4;
"port sh5" is no more, and its hacks have been undone.
 1.92  08-Jan-2007  chs fix a typo and remove one that's been removed from the code.
 1.91  23-Nov-2006  martin branches: 1.91.2; 1.91.4;
Note crunched dhclient change with -fno-strict-aliasing hack.
 1.90  01-Nov-2006  skrll Remove the hack that compiles dfa.c with -O1 on hppa. -O2 works fine.
 1.89  30-Oct-2006  skrll Remove a hack that's been fixed.
 1.88  29-Oct-2006  uwe The "gcc 2.95/vax can't handle __used__" hack has been fixed.
 1.87  27-Oct-2006  uwe G/c references to gawk that is no longer in our tree.
 1.86  28-Sep-2006  skrll Remove the sparc64 PLT entry.

It's compatibilty code for the changing definition of the first four PLT
entries and is very likely never going to be removed.
 1.85  02-Sep-2006  martin Document RAS_END() duplcate label workaround
 1.84  01-Aug-2006  drochner document "float" rounding workaround on i386
 1.83  31-Jul-2006  christos mention the correct PR.
 1.82  31-Jul-2006  christos mention i386 machdep.c
 1.81  01-Jul-2006  mrg document the GCC4/vax -O0 hacks.
 1.80  25-Jun-2006  tsutsui - uninitialised -> uninitialized (for consistency)
- add sys/arch/m68k/m68k/pmap_motorolo.c rev 1.19 to
the gcc4 wrong uninitialized list
 1.79  24-Jun-2006  mrg work around some GCC4 internal problems on m68000 platform.
document the hack, and update another GCC4 list.
 1.78  15-Jun-2006  skrll Remove a hack that's no longer needed with gcc 3.3.6.
 1.77  02-Jun-2006  mrg remove sh3/gcc2 hack.
 1.76  25-May-2006  mrg update the uninit list
 1.75  24-May-2006  christos mention config hack.
 1.74  21-May-2006  mrg - note sh3/vax mdreloc.c uninitialised variable warnings.
- note sh3 libbz2/gcc4 hack for blockstore.c
 1.73  21-May-2006  dan note more gcc4 uninitialised appeasement (amd64 pmap.c)
 1.72  21-May-2006  mrg note ntp_request.c 1.4
 1.71  20-May-2006  dan note uninitialsed appeasement in libexec/ld.elf_so/arch/x86_64/mdreloc.c
 1.70  20-May-2006  christos remove ypserv from the gcc4 hacks since it has been fixed.
 1.69  20-May-2006  mrg update the uninit gcc4 list a bit more.
 1.68  18-May-2006  mrg update wrong uninitialised variables list
 1.67  17-May-2006  christos Remove csu hack. It was not a gcc issue.
 1.66  17-May-2006  christos mention i386 csu issue.
 1.65  15-May-2006  christos Explain which initialized variables gcc misses.
 1.64  12-May-2006  mrg note that libsa/Makefile and crontab/Makefile have -Wno-pointer-sign and
-fno-strict-aliasing applied.
 1.63  12-May-2006  he List one more gcc 3.3.3 -Wuninitialized fix.
 1.62  12-May-2006  he Note the latest -Wuninitialized warning, and how the source is typically
marked for the other such workarounds.
 1.61  12-May-2006  mrg note gzip & mopd pointer-sign hacks
 1.60  11-May-2006  mrg update the lists for GCC4 uninit warnings and GCC4 pointer sign/strict
aliasing warnings.
 1.59  11-May-2006  mrg document the GCC4 pointer sign and strict aliasing problems (so far.)
 1.58  11-May-2006  mrg move gcc4 uninit warnings to the of the MI section. add pf.c
 1.57  10-May-2006  mrg document the bogus GCC4 uninitialised warning fixes.
 1.56  08-May-2006  tsutsui Update entry of m68k gcc ra-colorize.c.
(fixed in gcc-3.3.3 at least on m68k, but not conformed on m68000)
 1.55  08-May-2006  he Document the "reduce optimization for make/buf.c" hack for hppa.
 1.54  07-Mar-2006  he Document the hack to make ipsend and iptest build for NetBSD/vax,
with a pointer to PR#32907 for further details.
 1.53  31-Jan-2006  scw Document hack for gcc ICE compiling lib/libc/gdtoa/strtod.c for sh5.
 1.52  13-Dec-2005  jmc Note needed hack for gcc/vax and using abort in a function pointer.
From Johnny Billquist
 1.51  07-Oct-2005  simonb Describe the mips shared linker load address fix hack in
src/sys/kern/exec_elf32.c rev 1.107.
 1.50  02-Jun-2005  he Remove the hack related to -Wno-cast-qual, now that we can use
the __UNVOLATILE() macro to annul this warning more selectively.
 1.49  02-Jun-2005  he Document the hack to compile sys/arch/powerpc/oea/pmap.c with
-Wno-cast-qual.
 1.48  26-May-2005  he Reduce optimization level for sh5 for one file which causes our gcc
3.3.3 to get an internal compiler error of type "can't split insn".
 1.47  18-May-2005  chs as a stop-gap measure to allow boot-from-disk to work on hppa,
add some padding to the end of struct scsipi_xfer on that platform.
 1.46  11-May-2005  chs build grep/dfa.c with reduced optimization on hppa to avoid a gcc bug.
 1.45  09-May-2005  jmc Gettext assumes a C99 environment with stdbool.h or configure would provide one
from a template. As we do a reach over build, for vax builds provide stdbool.h
locally from that template.
 1.44  06-May-2005  jmc The __used__ change doesn't work on 2.95/vax. Put an #ifdef back in for vax and
reverted it to __unused__ as it was before
 1.43  05-Apr-2005  tron Don't use "-std=c99" for NetBSD-vax because gcc 2.95.3 doesn't support it.
 1.42  22-Feb-2005  christos branches: 1.42.2; 1.42.4;
add macppc bind compilation work-around.
 1.41  30-Dec-2004  bjh21 Correct file reference and add PR reference in
"gcc 3.3.2/arm sys/kern/uipc_socket.c".
 1.40  11-Nov-2004  he Change the BIND hack for sh5 to point to the new files requiring
lowered optimization level after import of the new BIND. The old
hack is no longer required.
 1.39  08-Oct-2004  skrll Fix typo as provided by Giorgos Keramidas in PR 27186
 1.38  09-Aug-2004  junyoung Improve description on gcc-strict-aliasing.
 1.37  06-Aug-2004  junyoung Use -fno-strict-aliasing to compile usr.sbin/racoon/racoon and
document it as a hack. PR toolchain/26516.
 1.36  06-Jun-2004  he Modify latest vax entry to instead point to the commit by mhitch, now
that my change has been backed out.
 1.35  06-Jun-2004  he Document workaround for vax nslexer.c build problem, workaround
committed to lib/libc/arch/vax/net/Makefile.inc.
 1.34  13-May-2004  cl Workaround for gcc 2.95.3 failing to initialize structures
and/or unions inside structures using nested designators.
Should be reverted when gcc >=3.3.3 is ready for vax.
 1.33  26-Apr-2004  uwe Drop workaround for toolchain/22489 now that the fix for it has been pulled
from the gcc current.
 1.32  22-Mar-2004  martin branches: 1.32.2;
Update uvm_bio.c 32bit sparc64 optimization entry.
 1.31  21-Mar-2004  martin Not uvm_bio.c disabled optimization on sparc64 32bit kernels.
 1.30  22-Feb-2004  uwe Document the workaround for toolchain/22489 (gcc optimization/11937)
that sh3 needs with gcc3.
 1.29  15-Dec-2003  skrll Remove the -fno-gcse-lm hack now that it is no longer needed.
 1.28  07-Dec-2003  scw Document the sh5 libbfd elf32.c/elf64.c hack.
 1.27  07-Dec-2003  scw Note some hacks required for gcc3 on sh5.
 1.26  07-Dec-2003  simonb Document ns32k gcc332 ICE when compiling libcpp's cppmacro.c.
 1.25  05-Dec-2003  mrg note binutils/ld/ldlex.c hack
 1.24  08-Nov-2003  ragge Note that gawk is compiled without optimizing on vax.
 1.23  06-Nov-2003  he Document some of the recent "compile fixes for -Wuninitialized" for
the vax port, to be reviewed when gcc 3.3.2 for vax is ready.
 1.22  05-Nov-2003  mrg document the m68* lossage with gcc/ra-colorize.c.
 1.21  29-Oct-2003  mycroft Separate by port, and remove the m68k hack.
 1.20  28-Oct-2003  skrll Compile sys/kern/uipc_socket.c -fno-strict-aliasing for now. PR 23044.
 1.19  28-Oct-2003  he Consolidate latest HACK entry into already existing entry documenting
same problem.
 1.18  28-Oct-2003  he sys/dev/ata/wd.c causes spurious warning about blkno not
being initialized before used. This appears to be a bug
specific to (at least) the m68k target, and will be reported
to the GCC maintainers.
 1.17  28-Oct-2003  mrg note mdsetimage/installboot sun2/gcc3 hacks.
 1.16  28-Oct-2003  cl note 'm68k {u,}int64_t used uninitialized' bug.
add reference to gcc bug report.
mark all (known) occurrences.
 1.15  27-Oct-2003  wiz no way, not now way.
 1.14  27-Oct-2003  simonb Note the GCC PR for the Duff's device warning.
 1.13  27-Oct-2003  simonb Use -Wno-error to compile a file with Duff's device and document this as
a hack.
 1.12  26-Oct-2003  mycroft Remove dead hacks.
 1.11  26-Oct-2003  lukem On MACHINE_ARCH==arm, compile newsyslog(8) with -fno-gcse-lm.
Fixes PRs [toolchain/22986] [toolchain/23002] [toolchain/23217]
 1.10  26-Sep-2003  skrll Backout previous - sparc* and i386 have switched to gdb 5.3.
 1.9  19-Sep-2003  martin Bye, bye, sparc64 hacks.
 1.8  19-Sep-2003  mrg make i386 & sparc* output DBX_DEBUG format ("-gstabs") by default for now.

XXX: back this out when these platforms switch to GDB 5.3.
 1.7  09-Sep-2003  he Belatedly make a note of the cast for LINUX_USRSTACK and USRSTACK made
to get the sun3 port to compile. Briefly discussed with mycroft.
 1.6  14-Aug-2003  uwe Remove mention of gcc-3-libtelnet hack.

The hack was removed from lib/libtelnet/Makefile rev 1.16, following
the lib/libtelnet/kerberos.c revision rev 1.10 that fixed the original
problem.
 1.5  26-Jul-2003  salo netbsd.org->NetBSD.org
 1.4  16-May-2003  scw Document the SH5 toolchain hack for pthread_lock.c.
 1.3  06-Apr-2003  jdc Remove curses \E[m hack - fixed in setterm.c : 1.36.
Add curses hack mentioning colour swap when real fix is to enhance termcap.
 1.2  28-Mar-2003  he Document hack/workaround for PR toolchain/20924.
 1.1  21-Sep-2002  lukem move doc/* -> basesrc/doc/*, except for doc/MIRRORS, which is not used
anymore (we refer to http://www.netbsd.org/mirrors/ now)
 1.32.2.4  12-Aug-2004  jmc Pullup rev 1.38 (requested by junyoung in ticket #738)

Improve description on gcc-strict-aliasing.
 1.32.2.3  11-Aug-2004  jmc Pullup rev 1.37 (requested by junyoung in ticket #738)

Add -fno-strict-aliasing to CFLAGS to avoid gcc warning
"dereferencing type-punned pointer will break strict-aliasing rules"
which occurs when compiling crypto_openssl.c with -O[23s].
 1.32.2.2  15-May-2004  tron Pull up revision 1.34 (requested by cl in ticket #326):
Workaround for gcc 2.95.3 failing to initialize structures
and/or unions inside structures using nested designators.
Should be reverted when gcc >=3.3.3 is ready for vax.
 1.32.2.1  28-Apr-2004  jmc Pullup rev 1.33 (requested by uwe in ticket #203)

Drop workaround for PR#22489 now that the fix for it has been pulled
from the gcc current.
 1.42.4.1  03-Feb-2006  riz Apply patch (requested by jnemeth in ticket #1153):
aic(4): work around rbus resource allocation problem so cards work
again. [jnemeth 20060131]
 1.42.2.1  03-Feb-2006  riz Apply patch (requested by jnemeth in ticket #1153):
aic(4): work around rbus resource allocation problem so cards work
again. [jnemeth 20060131]
 1.91.4.2  03-Sep-2007  wrstuden Sync w/ NetBSD-4-RC_1
 1.91.4.1  03-Jun-2007  wrstuden Catch up with now-somewhat-dated netbsd-4. These changes took longer
than expected for me to actually get around to merging.
 1.91.2.4  17-Mar-2012  bouyer Pull up following revision(s) via patch (requested by nakayama in ticket #1443):
sys/arch/sparc64/conf/Makefile.sparc64: revision 1.71
doc/HACKS: revision 1.123
sys/arch/sparc64/conf/files.sparc64: revision 1.138
sys/arch/sparc64/sparc64/locore.s: revision 1.340
Fix the root cause of the hack "disable optimizations for uvm_bio.c
on 32 bit kernels".
gcc converts a division in the calculation of UBC_UMAP_ADDR macro
to multiplication (smul or combination of add/sll), and the
register of its result contains a garbage in upper 32 bits (the
upper 32 bits of smul/add/sll's result isn't zero cleared).
Then it passes to pseg_get{,_real} through pmap_extract without the
zero clear of upper 32 bits in the optimization case. So the
result of pseg_get and pmap_extact sometimes gets screwed up.
The hack has been resolved in the revision 1.340 of
sys/arch/sparc64/sparc64/locore.s.
 1.91.2.3  29-Sep-2008  jdc Document hack to make vax port build again
(requested by bouyer in ticket #1207).
 1.91.2.2  19-Jul-2007  liamjfoy branches: 1.91.2.2.2;
Pull up following revision(s) (requested by soren in ticket #774):
build.sh: revision 1.169
gnu/usr.bin/gcc4/backend/Makefile: revision 1.9
sys/arch/evbsh5/README: revision 1.1
distrib/notes/common/contents: revision 1.124
usr.sbin/ndbootd/ndbootd.c: revision 1.12
gnu/lib/libopcodes/arch/sh3eb/defs.mk: revision 1.4
gnu/lib/libbfd/arch/sh3eb/defs.mk: revision 1.8
libexec/ld.elf_so/Makefile: revision 1.78
gnu/dist/binutils/bfd/config.bfd: revision 1.14
doc/HACKS: revision 1.93
distrib/cdrom/current.conf: revision 1.8
gnu/lib/libgcc4/Makefile.inc: revision 1.6
share/mk/sys.mk: revision 1.90
distrib/sets/lists/base/mi: revision 1.700
libexec/ld.elf_so/rtld.c: revision 1.112
distrib/sets/lists/base/mi: revision 1.702
sys/arch/sh5/README: revision 1.1
gnu/lib/libbfd/arch/sh3el/bfd.h: revision 1.7
usr.sbin/traceroute/traceroute.c: revision 1.69
distrib/notes/common/main: revision 1.330
distrib/notes/common/list-setsizes.sh: revision 1.2
sys/arch/Makefile: revision 1.35
gnu/lib/libopcodes/arch/sh3el/defs.mk: revision 1.4
gnu/lib/libbfd/arch/sh3el/defs.mk: revision 1.8
share/mk/bsd.own.mk: revision 1.495
gnu/lib/libbfd/arch/sh3eb/bfd.h: revision 1.7
x11/lib/OSmesa/Makefile: revision 1.20
sys/dev/dkwedge/dkwedge_bsdlabel.c: revision 1.13
gnu/dist/binutils/opcodes/configure.in: revision 1.2
gnu/dist/binutils/opcodes/configure: revision 1.2
gnu/usr.bin/send-pr/categories: revision 1.53
etc/mtree/NetBSD.dist: revision 1.339
sys/arch/README: revision 1.42
lib/libc/gdtoa/Makefile.inc: revision 1.6
usr.bin/crunch/crunchide/Makefile: revision 1.16
sys/lkm/net/bsdcomp/Makefile: revision 1.5
regress/sys/uvm/Makefile: revision 1.6
etc/MAKEDEV.awk: revision 1.18
x11/Xserver/GL/GLcore/Makefile.GLcore: revision 1.10
sys/contrib/dev/ath/netbsd/Makefile.ath.inc: revision 1.14
gnu/lib/libbfd/Makefile: revision 1.42
doc/RESPONSIBLE: revision 1.78
Remove evbsh5.
 1.91.2.1  16-May-2007  jdc Work around rbus resource allocation problem so cards work again using a
patch specifically for netbsd-4 (requested by jnemeth in ticket #638).
 1.91.2.2.2.1  17-Mar-2012  bouyer Pull up following revision(s) via patch (requested by nakayama in ticket #1443):
sys/arch/sparc64/conf/Makefile.sparc64: revision 1.71
doc/HACKS: revision 1.123
sys/arch/sparc64/conf/files.sparc64: revision 1.138
sys/arch/sparc64/sparc64/locore.s: revision 1.340
Fix the root cause of the hack "disable optimizations for uvm_bio.c
on 32 bit kernels".
gcc converts a division in the calculation of UBC_UMAP_ADDR macro
to multiplication (smul or combination of add/sll), and the
register of its result contains a garbage in upper 32 bits (the
upper 32 bits of smul/add/sll's result isn't zero cleared).
Then it passes to pseg_get{,_real} through pmap_extract without the
zero clear of upper 32 bits in the optimization case. So the
result of pseg_get and pmap_extact sometimes gets screwed up.
The hack has been resolved in the revision 1.340 of
sys/arch/sparc64/sparc64/locore.s.
 1.93.4.2  23-Mar-2008  matt sync with HEAD
 1.93.4.1  09-Jan-2008  matt sync with HEAD
 1.98.2.1  18-May-2008  yamt sync with head.
 1.100.2.3  05-Oct-2008  mjf Sync with HEAD.
 1.100.2.2  02-Jun-2008  mjf Sync with HEAD.
 1.100.2.1  27-Apr-2008  mjf file HACKS was added on branch mjf-devfs2 on 2008-06-02 13:21:19 +0000
 1.102.2.2  18-Sep-2008  wrstuden Sync with wrstuden-revivesa-base-2.
 1.102.2.1  23-Jun-2008  wrstuden Sync w/ -current. 34 merge conflicts to follow.
 1.110.2.3  17-Mar-2012  bouyer Pull up following revision(s) (requested by nakayama in ticket #1736):
sys/arch/sparc64/conf/Makefile.sparc64: revision 1.71
doc/HACKS: revision 1.123
sys/arch/sparc64/conf/files.sparc64: revision 1.138
sys/arch/sparc64/sparc64/locore.s: revision 1.340
Fix the root cause of the hack "disable optimizations for uvm_bio.c
on 32 bit kernels".
gcc converts a division in the calculation of UBC_UMAP_ADDR macro
to multiplication (smul or combination of add/sll), and the
register of its result contains a garbage in upper 32 bits (the
upper 32 bits of smul/add/sll's result isn't zero cleared).
Then it passes to pseg_get{,_real} through pmap_extract without the
zero clear of upper 32 bits in the optimization case. So the
result of pseg_get and pmap_extact sometimes gets screwed up.
The hack has been resolved in the revision 1.340 of
sys/arch/sparc64/sparc64/locore.s.
 1.110.2.2  06-Dec-2008  snj branches: 1.110.2.2.2; 1.110.2.2.6;
Pull up following revision(s) (requested by tsutsui in ticket #164):
doc/HACKS: revision 1.111 via patch
Add an entry for workaround in src/sbin/ifconfig/Makefile
for gcc -O1 loop optimize bug.
 1.110.2.1  20-Nov-2008  snj Apply patch (requested by jnemeth in ticket #80):
Work around rbus resource allocation problem so aic PCMCIA cards work.
 1.110.2.2.6.1  17-Mar-2012  bouyer Pull up following revision(s) (requested by nakayama in ticket #1736):
sys/arch/sparc64/conf/Makefile.sparc64: revision 1.71
doc/HACKS: revision 1.123
sys/arch/sparc64/conf/files.sparc64: revision 1.138
sys/arch/sparc64/sparc64/locore.s: revision 1.340
Fix the root cause of the hack "disable optimizations for uvm_bio.c
on 32 bit kernels".
gcc converts a division in the calculation of UBC_UMAP_ADDR macro
to multiplication (smul or combination of add/sll), and the
register of its result contains a garbage in upper 32 bits (the
upper 32 bits of smul/add/sll's result isn't zero cleared).
Then it passes to pseg_get{,_real} through pmap_extract without the
zero clear of upper 32 bits in the optimization case. So the
result of pseg_get and pmap_extact sometimes gets screwed up.
The hack has been resolved in the revision 1.340 of
sys/arch/sparc64/sparc64/locore.s.
 1.110.2.2.2.1  17-Mar-2012  bouyer Pull up following revision(s) (requested by nakayama in ticket #1736):
sys/arch/sparc64/conf/Makefile.sparc64: revision 1.71
doc/HACKS: revision 1.123
sys/arch/sparc64/conf/files.sparc64: revision 1.138
sys/arch/sparc64/sparc64/locore.s: revision 1.340
Fix the root cause of the hack "disable optimizations for uvm_bio.c
on 32 bit kernels".
gcc converts a division in the calculation of UBC_UMAP_ADDR macro
to multiplication (smul or combination of add/sll), and the
register of its result contains a garbage in upper 32 bits (the
upper 32 bits of smul/add/sll's result isn't zero cleared).
Then it passes to pseg_get{,_real} through pmap_extract without the
zero clear of upper 32 bits in the optimization case. So the
result of pseg_get and pmap_extact sometimes gets screwed up.
The hack has been resolved in the revision 1.340 of
sys/arch/sparc64/sparc64/locore.s.
 1.120.2.5  22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.120.2.4  23-Jan-2013  yamt sync with head
 1.120.2.3  16-Jan-2013  yamt sync with (a bit old) head
 1.120.2.2  17-Apr-2012  yamt sync with head
 1.120.2.1  10-Nov-2011  yamt sync with head
 1.122.2.2  24-Nov-2012  jdc Pull up revisions:
src/lib/libc/softfloat/Makefile.inc 1.11-1.12 via patch
src/doc/HACKS 1.124 via patch
(requested by msaitoh in ticket #703).

For arm, add -fno-tree-vrp to COPTS when compiling softfloat.c.
Without -fno-tree-vrp, -INF + -INF returns 0 by adddf3.
Fixes PR#46953.
 1.122.2.1  05-Mar-2012  sborrill branches: 1.122.2.1.4;
Pull up the following revisions(s) (requested by nakayama in ticket #85):
sys/arch/sparc64/sparc64/locore.s: revision 1.340
doc/HACKS: revision 1.123
sys/arch/sparc64/conf/Makefile.sparc64: revision 1.71
sys/arch/sparc64/conf/files.sparc64: revision 1.138

Fix the root cause of the hack "disable optimizations for uvm_bio.c
on 32 bit kernels".
 1.122.2.1.4.1  24-Nov-2012  jdc Pull up revisions:
src/lib/libc/softfloat/Makefile.inc 1.11-1.12 via patch
src/doc/HACKS 1.124 via patch
(requested by msaitoh in ticket #703).

For arm, add -fno-tree-vrp to COPTS when compiling softfloat.c.
Without -fno-tree-vrp, -INF + -INF returns 0 by adddf3.
Fixes PR#46953.
 1.123.2.4  19-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.123.2.3  23-Jun-2013  tls resync from head
 1.123.2.2  25-Feb-2013  tls resync with head
 1.123.2.1  20-Nov-2012  tls Resync to 2012-11-19 00:00:00 UTC
 1.130.2.1  23-Jul-2013  riastradh sync with HEAD
 1.147.2.1  10-Aug-2014  tls Rebase.
 1.174.2.3  26-Apr-2017  pgoyette Sync with HEAD
 1.174.2.2  20-Mar-2017  pgoyette Sync with HEAD
 1.174.2.1  04-Nov-2016  pgoyette Sync with HEAD
 1.175.2.1  21-Apr-2017  bouyer Sync with HEAD
 1.187.10.3  21-Apr-2020  martin Sync with HEAD
 1.187.10.2  13-Apr-2020  martin Mostly merge changes from HEAD upto 20200411
 1.187.10.1  10-Jun-2019  christos Sync with HEAD
 1.190.2.1  03-Nov-2019  martin Pull up following revision(s) (requested by rin in ticket #392):

doc/HACKS: revision 1.195
doc/HACKS: revision 1.196
external/bsd/jemalloc/lib/Makefile.inc: revision 1.11
external/bsd/jemalloc/include/jemalloc/internal/jemalloc_internal_defs.h: revision 1.11

PR/54307: Rin Okuyama: Lots of jemalloc assertions in latest -current

Workaround for random crash of userland binaries, as reported in
PR port-alpha/54307.

If rtree.c and tcache.c are compiled with -O0, userland just works
without problems as far as I can see. Alternately, you can specify
-DJEMALLOC_DEBUG to avoid random crash. Smells like compiler bug,
or wrong coding which relies on some undefined behavior.

Anyway, we need to pull this up into netbsd-9 asap.

Describe workaround for PR port-alpha/54307.

Describe that both GCC 7.4 and 8.3 fail in the last entry.
 1.232.2.1  19-Jul-2023  martin Pull up following revision(s) (requested by rin in ticket #237):

usr.bin/xlint/lint1/decl.c: revision 1.361
doc/HACKS: revision 1.239

lint1:initdecl(): Remove hack for now-fixed PR port-sh3/56311
doc/HACKS: PR port-sh3/56311 has been fixed.
 1.246.2.1  02-Aug-2025  perseant Sync with HEAD

RSS XML Feed