HACKS revision 1.59
1# $NetBSD: HACKS,v 1.59 2006/05/11 09:39:58 mrg Exp $ 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 30hack netstat ieee1394 address printing. 31mdate 14 Nov 2000 32who matt 33file lib/libc/net/getnameinfo.c : 1.32 : 497 : 503 34descr 35 Because the current implementation of IP over IEEE1394, the 36 fw device address contains more than just the IEEE1394 EUI-64. 37 So when printing out IEEE1394 addresses, ignore the extra stuff. 38kcah 39 40hack xterm vs. libterm 41mdate 01 Aug 2000 42who jdc 43file xsrc/xc/programs/xterm/main.c : 1.2 : 3609 : 3614 44pr 10383 45descr 46 In order to extend the termcap string over 1023 bytes, a ZZ entry was 47 introduced to point to a memory location containing the full entry. 48 Without this hack, xterm will export a termcap containing the ZZ 49 entry, which will then be ignored by libterm. As xterm modifies the 50 exported termcap, this would cause those modifications to be ignored. 51kcah 52 53hack wi-at-big-endian-bus 54cdate 15 Mar 2002 55who martin 56file dev/ic/wireg.h 57descr Add an option to access the underlying bus in big endian byte order 58 to work around deficiencies in bus_space_{read,write}_* macros. 59 Those don't allow the implementation of a proper pcmcia bus space 60 tag. 61kcah 62 63hack specific knowledge of colours in curses code 64cdate Sun Apr 6 11:05:24 BST 2003 65who jdc 66file lib/libcurses/color.c : r1.24 67descr 68 Swap red/blue and yellow/cyan colours for COLOR_OTHER. 69 Fix is to enhance libtermcap to understand terminfo-style % sequences. 70 See also: 71 http://mail-index.NetBSD.org/tech-userlevel/2003/04/06/0000.html 72kcah 73 74hack Compensation for differing types of LINUX_USRSTACK and USRSTACK 75cdate 21 Aug 2003 76who he 77file sys/miscfs/procfs/procfs_linux.c : 1.14 78descr 79 Not all ports have LINUX_USRSTACK and/or USRSTACK defined as 80 literals/constants, but refer to variables of a type which is 81 not "unsigned long", causing compilation of procfs_linux.c to 82 fail with "makes integer from pointer without a cast". This 83 is observed on e.g. the sun3 port. Ideally the "types" for 84 symbols should be consistent across all ports. 85kcah 86 87hack GCC2 isn't C99 88cdate 5 December 2003 89who mrg 90file gnu/dist/binutils/ld/ldlex.c: r1.2 91descr 92 ldlex.c is generated from ldlex.l and we get macro redefinition 93 errors from it if __STDC_VERSION__ is not C99 compliant. This 94 hack forces NetBSD 1.6 and later systems to also include <stdint.h> 95 to get the relevant definitions. This hack should be backed out 96 when all platforms have switched away from GCC2. 97kcah 98 99hack gcc-strict-aliasing 100cdate 6 August 2004 101who junyoung 102pr 26516 103file src/usr.sbin/racoon/racoon/Makefile : 1.21 104descr 105 GCC issues a warning "dereferencing type-punned pointer will break 106 strict-aliasing rules" when compiling 107 crypto/dist/kame/racoon/crypto/openssl.c with -O[23s]. Note that this 108 is due to use of type casting in a non-standard way in the code and 109 not a compiler bug. Once a new release of KAME with a proper fix 110 applied is imported this should be backed out. 111kcah 112 113hack gcc4 wrong uninitialised variable 114mdate 10 May 2006 115who mrg 116file bin/ksh/eval.c : 1.6 117file bin/sh/histedit.c : 1.39 118file bin/sh/parser.c : 1.60 119file bin/systrace/systrace.c : 1.33 120file crypto/dist/heimdal/kdc/524.c : 1.10 121file crypto/dist/ssh/sftp.c : 1.20 122file crypto/dist/ssh/ssh-keysign.c : 1.11 123file dist/ipf/lib/hostname.c : 1.2 124file dist/ipf/tools/ipmon.c : 1.8 125file dist/ntp/ntpd/refclock_shm.c : 1.4 126file dist/ntp/sntp/timing.c : 1.3 127file dist/pppd/pppstats/pppstats.c : 1.3 128file dist/smbfs/lib/smb/rap.c : 1.6 129file dist/tcpdump/print-zephyr.c : 1.5 130file gnu/libexec/uucp/uucico/uucico.c : 1.6 131file lib/libc/citrus/citrus_csmapper.c : 1.6 132file lib/libc/citrus/citrus_pivot_factory.c : 1.5 133file lib/libc/inet/inet_cidr_ntop.c : 1.3 134file lib/libc/inet/inet_ntop.c : 1.3 135file lib/libc/stdio/vfwprintf.c : 1.8 136file libexec/ld.elf_so/arch/sparc64/mdreloc.c : 1.39 137file sbin/fsck_ext2fs/dir.c : 1.19 138file sbin/routed/rtquery/rtquery.c : 1.18 139file sys/crypto/cast128/cast128.c : 1.9 140file sys/ddb/db_command.c : 1.86 141file sys/dev/fss.c : 1.25 142file sys/dev/ic/midway.c : 1.71 143file sys/dev/pci/machfb.c : 1.45 144file sys/dist/ipf/netinet/ip_nat.c : 1.10 145file sys/dist/ipf/netinet/ip_rpcb_pxy.c : 1.8 146file sys/dist/pf/net/pf.c : 1.22 147file sys/fs/udf/udf_vnops.c : 1.4 148file sys/kern/kern_sig.c : 1.219 149file sys/kern/tty.c : 1.181 150file sys/net/bpf.c : 1.116 151file sys/net/zlib.c : 1.26 152file sys/netinet/in.c : 1.107 153file sys/netsmb/smb_smb.c : 1.27 154file sys/netsmb/smb_trantcp.c : 1.22 155file sys/nfs/nfs_serv.c : 1.108 156file sys/nfs/nfs_socket.c : 1.129 157file sys/nfs/nfs_syscalls.c : 1.91 158file sys/ufs/lfs/lfs_vfsops.c : 1.207 [also (char *)] 159file usr.bin/ftp/ftp.c : 1.140 160file usr.bin/find/function.c : 1.54 161file usr.bin/mail/tty.c : 1.20 162file usr.bin/nl/nl.c : 1.7 163file usr.bin/systat/keyboard.c : 1.23 164file usr.bin/usbhidctl/usbhid.c : 1.29 165file usr.bin/vi/cl/cl_read.c : 1.5 166file usr.bin/vi/ex/ex_cscope.c : 1.12 167file usr.bin/vi/ex/ex_tag.c : 1.19 168file usr.bin/vi/vi/v_txt.c : 1.15 169file usr.sbin/altq/altqstat/qdisc_rio.c : 1.4 170file usr.sbin/cron/do_command.c : 1.19 171file usr.sbin/timed/timed/slave.c : 1.15 172descr 173 GCC 4.1 gets many uninitialised variable warnings wrong. We should 174 really audit all the old hacks like this when older compilers are 175 removed from the tree, as many are probably no longer required. 176kcah 177 178hack gcc4 pointer sign and strict aliasing problems 179mdate 10 May 2006 180who mrg 181file bin/ed/Makefile : 1.33 182file bin/systrace/Makefile : 1. 183file usr.bin/awk/Makefile : 1.9 184file usr.bin/vi/build/Makefile : 1.26 185file usr.bin/ssh/ssh/Makefile : 1.24 186file usr.sbin/amd/amd/Makefile : 1.27 187file usr.sbin/amd/amq/Makefile : 1.14 188file usr.sbin/amd/libamu/Makefile : 1.20 189file usr.sbin/amd/pawd/Makefile : 1.5 190file usr.sbin/bind/Makefile.inc : 1.22 191file usr.sbin/dhcp/Makefile.inc : 1.20 192file usr.sbin/dumplfs/Makefile : 1.11 193file usr.sbin/ipf/ipftest/Makefile : 1.32 194file usr.sbin/isdn/isdnd/Makefile : 1.6 195file usr.sbin/isdn/isdnmonitor/Makefile : 1.3 196file usr.sbin/isdn/isdntel/Makefile : 1.2 197file usr.sbin/isdn/isdntrace/Makefile : 126 198file usr.sbin/ntp/ntpd/Makefile : 1.10/1.11 199file usr.sbin/ntp/ntptime/Makefile : 1.4/1.5 200file usr.sbin/pppd/Makefile.inc : 1.3 201file usr.sbin/pppd/pppd/Makefile : 1.38 202file usr.sbin/rbootd/Makefile : 1.10 203file usr.sbin/rtadvd/Makefile : 1.9 204file usr.sbin/tcpdump/Makefile : 1.41 205file usr.sbin/wiconfig/Makefile : 1.3 206descr 207 GCC 4.1 warns on pointer sign comparision/assignments and lots of 208 code does not conform. For now we use -Wno-pointer-sign and 209 -fno-strict-aliasing. 210kcah 211 212 213port vax 214 215 hack gcc 2.95/vax doesn't like abort being used as function pointer 216 cdate Tue Dec 13 05:54:50 GMT 2005 217 who jmc 218 file lib/libc/rpc/svc_vc.c 1.15 219 descr 220 Provide a local definition for abort which doesn't include 221 the noreturn attribute which trips up gcc 2.95 on vax. 222 223 hack gcc 2.95/vax doesn't have stdbool.h and gettext needs it 224 cdate Mon May 9 12:16:22 CDT 2005 225 who jmc 226 file gnu/usr.bin/gettext/Makefile.inc.prog 1.5 227 gnu/usr.bin/gettext/libgrep/Makefile 1.3 228 gnu/usr.bin/gettext/libnlspr/Makefile 1.5 229 gnu/usr.bin/gettext/libnlsut/Makefile 1.3 230 descr 231 The latest gettext assumes a C99 environment or at least 232 configure checks to work around this. As we don't use configure 233 provide a stdbool.h for vax builds locally in directories from 234 the template provided by the gettext code. 235 236 hack gcc 2.95/vax can't handle __used__ in mcount.c 237 cdate Fri May 6 14:30:53 CDT 2005 238 who jmc 239 file src/lib/libc/gmon/mcount.c 1.17 240 descr 241 Recent changes to mark this as __used__ to prevent optimization 242 away on sparc64 don't work on 2.95 vax. Ifdef'd back in the 243 old __unused__ if on vax. 244 245 hack gcc 2.95/vax cannot handle __builtin_ffs() 246 cdate Fri Aug 23 21:31:15 CEST 2002 247 who ragge 248 file sys/lib/libkern/libkern.h : 1.42 249 descr 250 __builtin_ffs() is ifdef'd away if __vax__. Matt Thomas has 251 added this feature to GCC 3 so it can be removed when switching. 252 253 254 hack gcc-vax-libbz2 255 mdate 27 Jun 2002 256 who thorpej 257 file lib/libbz2/Makefile 258 descr 259 libbz2 is mis-compiled with optimization with GCC 2.95.3 260 on VAX. -O0 works around this problem. 261 kcah 262 263 hack gawk 264 mdate 8 Nov 2003 265 who ragge 266 file gnu/usr.bin/gawk/Makefile 267 descr 268 gawk is mis-compiled with optimization with GCC 2.95.3 269 on VAX. -O0 works around this problem. 270 kcah 271 272 hack vax Toolchain bug 273 cdate 28 Mar 2003 274 who he 275 file sys/arch/vax/vax/intvec.S : 1.5 276 descr 277 Workaround for PR toolchain/20924. The assembler apparently 278 tries to range-check byte offsets when it doesn't have 279 sufficient information to make that decision. 280 Workaround uses `brw' instead of `brb' instruction. 281 kcah 282 283 hack vax gcc 2.95.3 -Wuninitialized workarounds 284 cdate 6 Nov 2003 285 who he 286 file sys/dev/bi/if_ni.c : 1.22 287 file sys/arch/vax/vax/ctu.c : 1.20 288 descr 289 Workaround for gcc 2.95.3 failing to detect that certain 290 variables will be initialized; so that this code compiles 291 with -Wuninitialized. Should be reviewed and possibly 292 reverted when gcc 3.3.2 is ready for vax. 293 kcah 294 295 hack vax gcc 2.95.3 structure initialization 296 cdat 13 May 2004 297 who cl 298 file sys/miscfs/kernfs/kernfs_vnops.c : 1.104 299 descr 300 Workaround for gcc 2.95.3 failing to initialize structures 301 and/or unions inside structures using nested designators. 302 Should be reverted when gcc >=3.3.3 is ready for vax. 303 kcah 304 305 hack vax gcc 2.95.3 needs -I. to build nslexer.c 306 cdat 6 Jun 2004 307 who mhitch 308 file lib/libc/arch/vax/Makefile.inc : 1.6 309 descr 310 It appears necessary to add -I. to CPPFLAGS when building 311 nslesxer.c. This may be caused by gcc 2.95.3 being used. 312 Should be reverted when a newer gcc is ready for vax. 313 kcah 314 315 hack vax gcc 2.95.3 doesn't understand "-std=c99" 316 cdat 5 April 2005 317 who tron 318 file src/share/mk/bsd.sys.mk 319 descr 320 We cannot use "-std=c99" for compiler warning level 4 and above 321 because gcc 2.95.3 doesn't support that option. 322 kcah 323 324 hack declare boolean_t in two IPF user-mode programs 325 cdate Tue Mar 7 19:19:20 CET 2006 326 who he 327 file dist/ipf/ipsend/iptests.c : 1.8 328 dist/ipf/ipsend/sock.c : 1.7 329 descr 330 The IPF user-mode programs ipsend and iptest first 331 include <sys/types.h> without _KERNEL defined, and 332 later include <sys/file.h> with _KERNEL defined. 333 This causes a build failure when building for vax, 334 since <sys/device.h> ends up being included without 335 bollean_t being defined by <sys/types.h>. 336 Build failure and further details documented in 337 PR#32907. 338 kcah 339 340port sparc64 341 342 hack binutil-2.11-sparc64-pltrela 343 mdate 14 Aug 2001 344 who eeh 345 file libexec/ld.elf_so/arch/sparc64/mdreloc.c 346 descr 347 The first four PLT entries are reserved. There is some 348 disagreement whether they should have associated relocation 349 entries. Both the SPARC 32-bit and 64-bit ELF specifications 350 say that they should have relocation entries, but the 32-bit 351 SPARC binutils do not generate them, and now the 64-bit SPARC 352 binutils have stopped generating them too. 353 354 To provide binary compatibility, we will check the first entry, 355 if it is reserved it should not be of the type JMP_SLOT. If it 356 is JMP_SLOT, then the 4 reserved entries were not generated and 357 our index is 4 entries too far, so we frob the rela pointer. 358 kcah 359 360 361port arm 362 363 hack gcc-unsigned-compare 364 cdate 09 Mar 2002 365 mdate 18 Mar 2002 366 who bjh21 367 file dist/bind/lib/nameser/ns_parse.c : 1.3 368 file dist/dhcp/minires/ns_parse.c : 1.3 369 file dist/dhcp/omapip/result.c : 1.2 370 file dist/dhcp/server/failover.c : 1.3 371 file gnu/dist/gawk/eval.c : 1.4 372 file gnu/dist/toolchain/bfd/bfd.c : 1.2 373 file gnu/dist/toolchain/bfd/format.c : 1.2 374 file gnu/dist/toolchain/gdb/target.c : 1.2 375 file sys/kern/vfs_subr.c : 1.172 376 descr When checking that a potentially-unsigned enum is >= 0, assign 377 it to an int first. This is necessary to avoid "comparison is 378 always true" warnings with -fshort-enums. Casting to an int 379 really should be enough, but turns out not to be. 380 kcah 381 382 hack gcc 3.3.2/arm sys/kern/uipc_socket.c 383 cdate Tue Oct 28 18:02:16 GMT 2003 384 who skrll 385 pr 23044 386 file sys/arch/arm/conf/Makefile.arm : 1.19 387 descr 388 Performing a build.sh tools on a CATS with NFS mounted 389 obj and src directories results in "panic: receive 1" 390 The hack is to compile sys/kern/uipc_socket.c with 391 -fno-strict-aliasing 392 kcah 393 394 395port pc532 396 397 hack egcs-pc532-ip6_mroute 398 cdate 09 Jul 2002 399 who simonb 400 file sys/arch/pc532/conf/Makefile.pc532 : 1.70 401 file sys/arch/pc532/conf/files.pc532 : 1.47 402 descr 403 egcs 1.1.2 gets an "internal error--insn does not satisfy its 404 constraints" error compiling ip6_mroute.c with -O2 or greater. 405 -O1 works around this problem. 406 kcah 407 408 hack gcc-pc532-duffs_device 409 cdate Mon Oct 27 07:23:05 UTC 2003 410 who simonb 411 file sys/arch/pc532/conf/Makefile.pc532 : 1.71 412 file sys/arch/pc532/conf/files.pc532 : 1.52 413 pr GCC PR optimization/5230 414 descr 415 gcc incorrectly gives an "unreachable code at beginning of 416 switch statement" for a Duff's device construct in 417 arch/pc532/dev/ncr.c. There is no way to disable just this 418 warning, so -Wno-error is turned on for this file. 419 kcah 420 421 hack gcc332-cppmacro-ice 422 cdate Sun Dec 7 12:48:33 UTC 2003 423 who simonb 424 file gnu/usr.bin/gcc3/libcpp/Makefile : 1.2 425 descr 426 gcc 3.3.2 gets an ICE when compiling cppmacro.c with -O2. 427 The hack is to use -O1 for this file. Fixed in gcc 428 -current mainline, unable to work out where the fix is 429 right now. 430 kcah 431 432 433port sh3 434 435 hack gcc-sh3-sed 436 mdate 23 Apr 2002 437 who thorpej 438 file usr.bin/sed/Makefile : 1.9 : 9 : 13 439 descr 440 The in-tree GCC 2.95.3-based compiler ICEs when building 441 with optimization for SuperH. Hack is to build with -O0. 442 kcah 443 444 445port sh5 446 447 hack SuperH SH5 Toolchain Bugs 448 cdate 11 Jul 2002 449 who scw 450 file usr.sbin/ndbootd/ndbootd.c : 1.6 451 file usr.sbin/traceroute/traceroute.c : 1.48 452 descr 453 The SuperH SH5 toolchain (2.97-sh5-010522) gets an internal 454 compiler error when assigning a bit-wise inverted value 455 under some circumstances. 456 Work around it by splitting the statement into two. 457 kcah 458 459 hack SuperH SH5 Toolchain Bugs 460 cdate 17 May 2003 461 who scw 462 file lib/libpthread/pthread_lock.c : 1.7 463 descr 464 The SuperH SH5 toolchain generates incorrect PIC code when 465 faced with a symbol which is declared extern, but has local 466 scope due to being defined within an asm() statement (without 467 being declared .globl in that statement). Work around it by 468 adding the .globl. 469 kcah 470 471 hack gcc 3.3.2 on sh5 - ICE compiling reload1.c at -O2 472 cdate Sun Dec 7 19:44:05 GMT 2003 473 who scw 474 file gnu/usr.bin/gcc3/backend/Makefile : 1.13 475 descr 476 Gcc3 for sh5 gets an ICE compiling reload1.c at -O2. 477 Drop to -O1 for now when building for sh5. 478 kcah 479 480 hack gcc 3.3.2 on sh5 - ICE compiling elf32.c/elf64.c at -O2 481 cdate Sun Dec 7 21:10:46 GMT 2003 482 who scw 483 file gnu/lib/libbfd/Makefile : 1.39 484 descr 485 Gcc3 for sh5 gets an ICE compiling libbfd's elf32.c 486 and elf64.c at -O2. 487 Drop to -O1 for now when building for sh5. 488 kcah 489 490 491 hack gcc 3.3.2 on sh5 - fatal warning compiling function.c 492 cdate Sun Dec 7 19:44:05 GMT 2003 493 who scw 494 file gnu/usr.bin/gcc3/backend/Makefile : 1.13 495 descr 496 Gcc3 for sh5 issues a warning: 497 .../gnu/dist/gcc/gcc/function.c:4742: warning: `and' of 498 mutually exclusive equal-tests is always 0. 499 This causes the build to fail because of -Werror. 500 Work-around by defining NOGCCERROR when building for sh5. 501 kcah 502 503 hack gcc 3.3.3 on sh5 - ICE compiling rbtdb.c and rbtdb64.c 504 cdate Thu Nov 11 00:35:33 UTC 2004 505 who he 506 file usr.sbin/bind/libdns/Makefile/1.2 507 descr 508 Gcc3 for sh5 gets an ICE compiling these files at -O2. 509 Drop to -O1 for now when building for sh5. 510 kcah 511 512 hack gcc 3.3.3 nb3 on sh5 - ICE compiling bsd-comp.c 513 cdate Thu May 25 23:05:20 UTC 2005 514 who he 515 file sys/lkm/net/bsdcomp/Makefile : 1.3 516 descr 517 Gcc3 for sh5 gets an ICE compiling this at -O2, 518 "could not split insn". Drop to -O1 for sh5. 519 kcah 520 521 hack gcc 3.3.3 nb3 on sh5 - ICE compiling strtod.c 522 cdate Tue Jan 31 10:51:52 GMT 2006 523 who scw 524 file lib/libc/gdtoa/Makefile.inc : 1.2 525 descr 526 Gcc3 for sh5 gets an ICE compiling this at -O2, 527 "could not split insn". Drop to -O1 for sh5. 528 kcah 529 530port sun2 531 532 hack gcc 3.3.2/mdsetimage 533 cdate Tue Oct 28 18:43:05 EST 2003 534 who fredette 535 file gnu/usr.sbin/mdsetimage/Makefile : 1.15 536 descr 537 mdsetimage.c causes cc1 to barf for as-yet unknown reasons. 538 this hack uses -O0 to avoid the problem. 539 kcah 540 541 hack gcc 3.3.2/installboot/ffs.c 542 cdate Tue Oct 28 18:43:05 EST 2003 543 who fredette 544 file usr.sbin/installboot/Makefile : 1.26 545 descr 546 ffs.c causes cc1 to barf for as-yet unknown reasons. this 547 hack uses -O0 to avoid the problem. 548 kcah 549 550 551port m68000 552 553 hack gcc 3.3.2/gcc/ra-colorize.c 554 cdate Wed Nov 5 11:03:13 EST 2003 555 who mrg 556 file gnu/usr.bin/gcc3/backend/Makefile : 1.11 557 descr 558 ra-colorize.c causes a whole spew of unreferenced .L* local 559 symbols. using -O0 (or even -O2 reportedly) avoids the problem. 560 Note this has been fixed in 3.3.3 at least on m68k, 561 but it hasn't been confirmed on sun2/m68000. 562 (it's too slow even on emulator and unlikely to build 563 toolchains on sun2 with its maximum 4MB RAM) 564 kcah 565 566port sparc64 567 568 hack disable optimzations for uvm_bio.c on 32 bit kernels 569 cdate Sun Mar 21 14:14:04 MET 2004 570 who martin 571 file sys/arch/sparc64/conf/Makefile.sparc64 : 1.53-1.54 572 file sys/arch/sparc64/conf/files.sparc64 : 1.93 573 descr 574 The sparc compiler miscompiles uvm_bio.c when using 575 any optimization. This results in ubc_release panics. 576 kcah 577 578port macppc 579 580 hack remove inline from rotate_{left,right} 581 cdate Tue Feb 22 13:43:25 EST 2005 582 who christos 583 file src/dist/bind/lib/dns/rbt.c 584 descr 585 The macppc gcc-3.3 compiler miscompiles rbt.c when these 586 functions are inlined. The error is: 587 .* named[368]: rbt.c:1584: INSIST(child != (void *)0) >failed 588 .* named[368]: exiting (due to assertion failure) 589 This is reportedly fixed in gcc-3.4 590 kcah 591 592port hppa 593 594 hack hppa-gcc-3.3.3/grep/dfa.c 595 cdate Sun Aug 8 08:34:32 PDT 2004 596 who chs 597 file gnu/usr.bin/grep/grep/Makefile : 1.4 598 descr 599 gcc 3.3.3 generates bad code for dfa.c with -O2, 600 reduce optimization to -O1 to avoid the bug. 601 kcah 602 603 hack hppa-gcc-3.3.3 / make/buf.c 604 cdate Mon May 8 13:02:36 CEST 2006 605 who he 606 file usr.bin/make/Makefile : 1.34 607 descr 608 gcc 3.3.3 nb3 gets an "unrecognized insn" internal 609 compiler error when building this file with -O2, 610 reduce optimization to -O1 to avoid the bug. 611 kcah 612 613 hack hppa boot-from-disk memory corruption 614 cdate Wed May 18 06:56:07 PDT 2005 615 who chs 616 file src/sys/dev/scsipi/scsipiconf.h : 1.98 617 descr 618 There is some bug with DMA on hppa that corrupts scsipi_xfer 619 structures, but it only shows up when booting from disk. 620 For now, we'll add some padding to scsipi_xfer so that 621 the corrupted memory is not otherwise used. 622 kcah 623 624port mips 625 626 hack mips-shared-linker-load-address 627 cdate Fri Oct 7 08:33:10 UTC 2005 628 who simonb 629 file src/sys/kern/exec_elf32.c : 1.107 630 descr 631 With COMPAT_16 or previous enabled (which enables 632 ELF_INTERP_NON_RELOCATABLE) a recent ld.elf_so will 633 load and run at address 0. The check to fix this in 634 rev 1.107 only checks the first psection of the ELF 635 executable, which may not be loadable. A more correct 636 fix is to check the first loadable psection instead of 637 just the first psection. 638 kcah 639 640