On Fri, 10 Apr 2015 18:51:29 +0200, Stuart Henderson wrote: > > Build/install it and check that your system doesn't blow up (keep an old one > around with a spare root shell just in case). Run some programs using shared > libraries, run the tests in /usr/src/regress/libexec/ld.so. > -- > Sent from a phone, please excuse the formatting. >
Ok, I ran make depend and make regress on the hppa boxen and after that built a kernel, results below: Output from regress: $ make depend && make regress ===> elf ===> elf/libbar ===> elf/foo ===> hidden ===> hidden/libaa ===> hidden/libab ===> hidden/test1 ===> hidden/test2 ===> weak ===> weak/libstrong ===> weak/libweak ===> weak/prog ===> weak/prog2 ===> dlsym ===> dlsym/test1 ===> dlsym/test1/libaa ===> dlsym/test1/prog1 ===> dlsym/test1/prog2 ===> dlsym/test2 ===> dlsym/test2/libcc ===> dlsym/test2/libbb ===> dlsym/test2/libaa ===> dlsym/test2/prog1 ===> dlsym/test2/prog2 ===> dlsym/test2/prog3 ===> dlsym/test2/prog4 ===> dlsym/test2/prog5 ===> dlsym/test3 ===> dlsym/test3/libee ===> dlsym/test3/libdd ===> dlsym/test3/libcc ===> dlsym/test3/libbb ===> dlsym/test3/libaa ===> dlsym/test3/prog1 ===> dlsym/test3/prog2 ===> dlsym/test3/prog3 ===> dlsym/test3/prog4 ===> dlopen ===> dlopen/libaa ===> dlopen/libab ===> dlopen/libac ===> dlopen/prog1 ===> dlopen/prog2 ===> dlopen/prog3 ===> dlopen/prog4 ===> dlclose ===> dlclose/test1 ===> dlclose/test1/libbb ===> dlclose/test1/libaa ===> dlclose/test1/prog1 ===> dlclose/test1/prog2 ===> dlclose/test1/prog3 ===> dlclose/test2 ===> dlclose/test2/libzz ===> dlclose/test2/libcc ===> dlclose/test2/libbb ===> dlclose/test2/libaa ===> dlclose/test2/prog1 ===> lazy ===> lazy/libfoo ===> lazy/libbar ===> lazy/prog ===> link-order ===> link-order/libnover ===> link-order/lib10 ===> link-order/lib11 ===> link-order/lib20 ===> link-order/prog ===> link-order/test ===> edgecases ===> edgecases/test1 ===> edgecases/test1/libaa_g ===> edgecases/test1/libaa_b ===> edgecases/test1/prog1 ===> edgecases/test2 ===> edgecases/test2/libaa ===> edgecases/test2/prog1 ===> edgecases/test3 ===> edgecases/test3/libbb ===> edgecases/test3/libaa ===> edgecases/test3/prog1 ===> initfirst ===> initfirst/test1 ===> initfirst/test1/libif1 ===> initfirst/test1/libif2 ===> initfirst/test1/libif3 ===> initfirst/test1/libnormal ===> initfirst/test1/prog1 ===> initfirst/test2 ===> initfirst/test2/libae ===> initfirst/test2/libad ===> initfirst/test2/libac ===> initfirst/test2/libab ===> initfirst/test2/libaa ===> initfirst/test2/prog1 ===> initfirst/test2/prog2 ===> df_1_noopen ===> randomdata ===> randomdata/libaa ===> randomdata/prog-dynamic ===> randomdata/prog-static ===> randomdata/prog-pie ===> randomdata/ld.so-cookie ===> subst ===> subst/libaa ===> subst/prog1 ===> dependencies ===> dependencies/order1 ===> dependencies/order1/libbb ===> dependencies/order1/libaa ===> dependencies/order1/prog1 ===> elf ===> elf/libbar ===> elf/foo ./elfbug bar ===> hidden ===> hidden/libaa ===> hidden/libab ===> hidden/test1 ./test1 ===> hidden/test2 ./test2 ===> weak ===> weak/libstrong ===> weak/libweak ===> weak/prog ./prog ===> weak/prog2 ./prog2 ===> dlsym ===> dlsym/test1 ===> dlsym/test1/libaa ===> dlsym/test1/prog1 ./prog1 ===> dlsym/test1/prog2 ./prog2 ===> dlsym/test2 ===> dlsym/test2/libcc ===> dlsym/test2/libbb ===> dlsym/test2/libaa ===> dlsym/test2/prog1 ./prog1 ===> dlsym/test2/prog2 ./prog2 ===> dlsym/test2/prog3 ./prog3 ===> dlsym/test2/prog4 ./prog4 ===> dlsym/test2/prog5 ./prog5 ===> dlsym/test3 ===> dlsym/test3/libee ===> dlsym/test3/libdd ===> dlsym/test3/libcc ===> dlsym/test3/libbb ===> dlsym/test3/libaa ===> dlsym/test3/prog1 ./prog1 ===> dlsym/test3/prog2 ./prog2 ===> dlsym/test3/prog3 ./prog3 ===> dlsym/test3/prog4 ./prog4 ===> dlopen ===> dlopen/libaa ===> dlopen/libab ===> dlopen/libac ===> dlopen/prog1 ./prog1 main ===> dlopen/prog2 ./prog2 main ===> dlopen/prog3 ./prog3 ===> dlopen/prog4 ./prog4 ===> dlclose ===> dlclose/test1 ===> dlclose/test1/libbb ===> dlclose/test1/libaa ===> dlclose/test1/prog1 ./prog1 ===> dlclose/test1/prog2 ./prog2 ./prog2:/usr/src/regress/libexec/ld.so/dlclose/test1/prog2/../libbb/libbb.so.1.0: undefined symbol 'bbLazyFun' lazy binding failed! *** Signal SIGSEGV in dlclose/test1/prog2 (<bsd.regress.mk>:48 'run-regress-prog2') FAILED *** Error 1 in target 'regress' (ignored) ===> dlclose/test1/prog3 ./prog3 *** Signal SIGSEGV in dlclose/test1/prog3 (<bsd.regress.mk>:48 'run-regress-prog3') FAILED *** Error 1 in target 'regress' (ignored) ===> dlclose/test2 ===> dlclose/test2/libzz ===> dlclose/test2/libcc ===> dlclose/test2/libbb ===> dlclose/test2/libaa ===> dlclose/test2/prog1 ./prog1 ===> lazy ===> lazy/libfoo ===> lazy/libbar ===> lazy/prog ./prog loading: /usr/src/regress/libexec/ld.so/lazy/prog/../libfoo/libfoo.so loaded: /usr/src/regress/libexec/ld.so/lazy/prog/../libfoo/libfoo.so looking up foo found 0x4b15f942 - calling it loading /usr/src/regress/libexec/ld.so/lazy/libfoo/../libbar/libbar.so loaded: /usr/src/regress/libexec/ld.so/lazy/libfoo/../libbar/libbar.so bar done. ===> link-order ===> link-order/libnover ===> link-order/lib10 ===> link-order/lib11 ===> link-order/lib20 ===> link-order/prog ===> link-order/test sh /usr/src/regress/libexec/ld.so/link-order/test/test.sh /usr/src/regress/libexec/ld.so/link-order/test/../prog/prog '%ERROR%' prog: could not dynamically link libtest cp /usr/src/regress/libexec/ld.so/link-order/test/../lib10/libtest.so.1.0 lib/ sh /usr/src/regress/libexec/ld.so/link-order/test/test.sh /usr/src/regress/libexec/ld.so/link-order/test/../prog/prog 1.0 cp /usr/src/regress/libexec/ld.so/link-order/test/../lib10/libtest.so.1.0 /usr/src/regress/libexec/ld.so/link-order/test/../lib11/libtest.so.1.1 lib/ sh /usr/src/regress/libexec/ld.so/link-order/test/test.sh /usr/src/regress/libexec/ld.so/link-order/test/../prog/prog 1.1 cp /usr/src/regress/libexec/ld.so/link-order/test/../lib10/libtest.so.1.0 /usr/src/regress/libexec/ld.so/link-order/test/../lib11/libtest.so.1.1 lib/ sh /usr/src/regress/libexec/ld.so/link-order/test/test.sh /usr/src/regress/libexec/ld.so/link-order/test/../prog/prog 1.1 cp /usr/src/regress/libexec/ld.so/link-order/test/../lib11/libtest.so.1.1 /usr/src/regress/libexec/ld.so/link-order/test/../lib20/libtest.so.2.0 lib/ sh /usr/src/regress/libexec/ld.so/link-order/test/test.sh /usr/src/regress/libexec/ld.so/link-order/test/../prog/prog 2.0 cp /usr/src/regress/libexec/ld.so/link-order/test/../lib11/libtest.so.1.1 /usr/src/regress/libexec/ld.so/link-order/test/../lib20/libtest.so.2.0 lib/ sh /usr/src/regress/libexec/ld.so/link-order/test/test.sh /usr/src/regress/libexec/ld.so/link-order/test/../prog/prog 2.0 cp /usr/src/regress/libexec/ld.so/link-order/test/../libnover/libtest.so lib/ sh /usr/src/regress/libexec/ld.so/link-order/test/test.sh /usr/src/regress/libexec/ld.so/link-order/test/../prog/prog none cp /usr/src/regress/libexec/ld.so/link-order/test/../libnover/libtest.so /usr/src/regress/libexec/ld.so/link-order/test/../lib10/libtest.so.1.0 lib/ sh /usr/src/regress/libexec/ld.so/link-order/test/test.sh /usr/src/regress/libexec/ld.so/link-order/test/../prog/prog none cp /usr/src/regress/libexec/ld.so/link-order/test/../lib10/libtest.so.1.0 /usr/src/regress/libexec/ld.so/link-order/test/../libnover/libtest.so lib/ sh /usr/src/regress/libexec/ld.so/link-order/test/test.sh /usr/src/regress/libexec/ld.so/link-order/test/../prog/prog none ===> edgecases ===> edgecases/test1 ===> edgecases/test1/libaa_g ===> edgecases/test1/libaa_b ===> edgecases/test1/prog1 ./prog1 2>&1 | grep "undefined symbol 'libglobal'" ./prog1:./prog1: undefined symbol 'libglobal' ./prog1 >/dev/null 2>&1 || echo "ld.so killed program, good"; ld.so killed program, good ===> edgecases/test2 ===> edgecases/test2/libaa ===> edgecases/test2/prog1 ./prog1 ! ./prog1 2>&1 | grep unresolvedWeakSymbol ===> edgecases/test3 ===> edgecases/test3/libbb ===> edgecases/test3/libaa ===> edgecases/test3/prog1 ./prog1 ===> initfirst ===> initfirst/test1 ===> initfirst/test1/libif1 ===> initfirst/test1/libif2 ===> initfirst/test1/libif3 ===> initfirst/test1/libnormal ===> initfirst/test1/prog1 ./prog1 | cmp -s /usr/src/regress/libexec/ld.so/initfirst/test1/prog1/expected1 - ./prog2 | cmp -s /usr/src/regress/libexec/ld.so/initfirst/test1/prog1/expected2 - ./prog3 | cmp -s /usr/src/regress/libexec/ld.so/initfirst/test1/prog1/expected3 - ./prog4 | cmp -s /usr/src/regress/libexec/ld.so/initfirst/test1/prog1/expected4 - ===> initfirst/test2 ===> initfirst/test2/libae ===> initfirst/test2/libad ===> initfirst/test2/libac ===> initfirst/test2/libab ===> initfirst/test2/libaa ===> initfirst/test2/prog1 [ "`./prog1`" = "DBECAPpacebd" ] ===> initfirst/test2/prog2 [ "`./prog2`" = "DBECAacebd" ] ===> df_1_noopen /bin/sh /usr/src/regress/libexec/ld.so/df_1_noopen/test.sh lib1.so: lib1.so passed passed passed passed passed passed passed passed lib2.so: lib2.so lib1.so passed passed passed passed passed passed passed passed lib3.so: lib3.so lib2.so lib1.so passed passed passed passed passed passed passed passed ===> randomdata ===> randomdata/libaa ===> randomdata/prog-dynamic ./prog ===> randomdata/prog-static ./prog ===> randomdata/prog-pie ./prog ===> randomdata/ld.so-cookie ./test ===> subst ===> subst/libaa ===> subst/prog1 mkdir -p "OpenBSD/`uname -r`/`uname -m`" cp /usr/src/regress/libexec/ld.so/subst/prog1/../libaa/libaa.so* "OpenBSD/`uname -r`/`uname -m`/" ./prog1 ===> dependencies ===> dependencies/order1 ===> dependencies/order1/libbb ===> dependencies/order1/libaa ===> dependencies/order1/prog1 ./prog1 After that I started a kernel build with /usr/src mounted via nfs. While linking the network went down, maybe due to exsessive swaping? (at first I thought it may have crashed, however the machine was running happely this morning:) last line before the network went down: ld -X -T ../../../../arch/hppa/conf/ld.script -Ttext 80000 --warn-common -nopie -S -x -o bsd ${SYSTEM_HEAD} vers.o ${OBJS} packet_write_wait: Connection to 192.168.1.115: Broken pipe $ tail -n 1 /tmp/log ld -X -T ../../../../arch/hppa/conf/ld.script -Ttext 80000 --warn-common -nopie -S -x -o bsd ${SYSTEM_HEAD} vers.o ${OBJS} The kernel: # ls -l bsd -rwxr-xr-x 1 root wsrc 6653936 Apr 13 16:13 bsd* However there is a runaway make process going stronk. This of course maybe unrelated and caused by me fatfingering when figuring out how to do the regress stuff or it may have gone astray when network went down (building over nfs). State this morning: $ top -d 1 -b load averages: 1.91, 1.31, 1.16 hppa.lemarit.com 08:47:03 31 processes: 2 running, 28 idle, 1 on processor CPU states: 90.3% user, 0.0% nice, 6.4% system, 0.2% interrupt, 3.2% idle Memory: Real: 18M/44M act/tot Free: 11M Cache: 11M Swap: 9760K/81M PID USERNAME PRI NICE SIZE RES STATE WAIT TIME CPU COMMAND 11702 root 56 0 1336K 472K run - 991:02 51.12% make 17976 root 56 0 3792K 5588K run - 0:39 37.74% perl 7226 alf 18 0 4640K 4668K sleep pause 0:01 1.51% ksh 3859 root 2 0 3636K 2920K sleep poll 0:01 1.27% sshd 23407 alf 2 0 3604K 2324K sleep select 0:00 0.54% sshd 23813 alf 32 0 376K 1152K onproc - 0:00 0.20% top 7538 _pflogd 4 0 720K 164K sleep bpf 0:24 0.00% pflogd 3208 root 2 0 564K 608K sleep poll 0:03 0.00% cron 2683 _ntp 2 -20 912K 888K idle poll 0:02 0.00% ntpd 5390 _syslogd 2 0 800K 840K idle kqread 0:02 0.00% syslogd 19710 _smtpq 2 0 1484K 1896K idle kqread 0:02 0.00% smtpd 1 root 10 0 472K 136K sleep wait 0:01 0.00% init 6477 root 3 0 708K 720K idle ttyin 0:01 0.00% ksh 15658 _smtpd 2 0 1456K 1768K idle kqread 0:01 0.00% smtpd 15857 _smtpd 2 0 1496K 1860K idle kqread 0:01 0.00% smtpd 8933 _smtpd 2 0 1520K 1428K idle kqread 0:01 0.00% smtpd 30789 root 18 0 712K 720K idle pause 0:00 0.00% sh 31536 _smtpd 2 0 1208K 1612K idle kqread 0:00 0.00% smtpd $ uptime 8:48AM up 22:53, 2 users, load averages: 2.02, 1.48, 1.23 # fstat -p 11702 USER CMD PID FD MOUNT INUM MODE R/W SZ|DV root make 11702 text /usr 54622 -r-xr-xr-x r 168612 root make 11702 wd /usr/src 26468 drwxr-xr-x r 33792 root make 11702 tr / 13 -rw------- rw 118 root make 11702 0 - - bad - root make 11702 1 / 25609 -rw-r--r-- w 927517 root make 11702 2 / 25609 -rw-r--r-- w 927517 # find /usr/src/ -inum 26468 -o -inum 54622 -ls 54622 8 -rw-rw-r-- 1 root wsrc 2963 Jun 2 2003 /usr/src/lib/libc/db/btree/extern.h dmesg pr0n: [ using 406500 bytes of bsd ELF symbol table ] Copyright (c) 1982, 1986, 1989, 1991, 1993 The Regents of the University of California. All rights reserved. Copyright (c) 1995-2015 OpenBSD. All rights reserved. http://www.OpenBSD.org OpenBSD 5.7-current (GENERIC) #474: Wed Apr 8 15:57:29 MDT 2015 dera...@hppa.openbsd.org:/usr/src/sys/arch/hppa/compile/GENERIC HP 9000/712/80 (King Gecko) PA-RISC 1.1c real mem = 67108864 (64MB) rsvd mem = 524288 (512KB) avail mem = 57430016 (54MB) mpath0 at root scsibus0 at mpath0: 256 targets mainbus0 at root [flex fff80000] pdc0 at mainbus0 power0 at mainbus0: DR25 cpu0 at mainbus0 offset ffbe000 irq 31: PCXL L1-A 80MHz, FPU PCXL (CMOS-26B) rev 1 cpu0: 128K(32b/l) Icache, 128K(32b/l) wr-back Dcache, 64 coherent TLB, 8 BTLB mem0 at mainbus0 offset ffbf000: viper rev 0, size 64MB lasi0 at mainbus0 offset 100000 irq 28: rev 3.0 gsc0 at lasi0 gsckbc0 at gsc0 offset 8100 irq 26 gsckbc1 at gsc0 offset 8000 irq 26 "floppy controller" at gsc0 (type a sv 83 mod 1 hv c0) offset a000 not configured harmony0 at gsc0 offset 4000 irq 13: rev 18 audio0 at harmony0 lpt0 at gsc0 offset 2000 irq 7 com0 at gsc0 offset 5000 irq 5: ns16550a, 16 byte fifo com0: console ie0 at gsc0 offset 7000 irq 8: LASI/i82596CA v1.0, address 08:00:09:7d:0a:e2 osiop0 at gsc0 offset 6000 irq 9: NCR53C710 rev 2, 40MHz scsibus1 at osiop0: 8 targets, initiator 7 osiop0: target 6 now using 8 bit 10 MHz 8 REQ/ACK offset xfers sd0 at scsibus1 targ 6 lun 0: <HP, C3325A, HP08> SCSI2 0/direct fixed serial.HP_C3325A_MY6012N5QQ sd0: 2048MB, 512 bytes/sector, 4194685 sectors sti0 at mainbus0 offset 8000000 irq 11: rev 8.04;7, ID 0x2B4DED6D40A00499 sti0: HPA208LC640, 2048x1024 frame buffer, 640x480x8 display sti0: 8x16 font type 1, 16 bpc, charset 0-255 wsdisplay0 at sti0 mux 1 wsdisplay0: screen 0 added (std, vt100 emulation) vscsi0 at root scsibus2 at vscsi0: 256 targets softraid0 at root scsibus3 at softraid0: 256 targets bootpath: 2/0/1.6 class=1 flags=0 hpa=0xf0106000 spa=0x0 io=0x84ec root on sd0a (7a2ca6b0277c70e1.a) swap on sd0b dump on sd0b WARNING: clock lost 15363 days -- CHECK AND RESET THE DATE! ie0: receive descriptors out of sync at 65 ie0: receive descriptors out of sync at 41 ie0: receive descriptors out of sync at 52 ie0: receive descriptors out of sync at 52 ie0: receive descriptors out of sync at 48 ie0: receive descriptors out of sync at 27 ie0: TDR detected an open 0 clocks away ie0: receive descriptors out of sync at 59 ie0: TDR detected an open 0 clocks away ie0: receive descriptors out of sync at 2 ie0: receive descriptors out of sync at 16 ie0: receive descriptors out of sync at 55 ie0: TDR detected an open 0 clocks away ie0: receive descriptors out of sync at 53 ie0: receive descriptors out of sync at 54 ie0: receive descriptors out of sync at 64 ie0: receive descriptors out of sync at 7 ie0: receive descriptors out of sync at 59 ie0: receive descriptors out of sync at 47 ie0: receive descriptors out of sync at 13 ie0: receive descriptors out of sync at 61 ie0: receive descriptors out of sync at 69 ie0: TDR detected an open 0 clocks away ie0: receive descriptors out of sync at 42 ie0: TDR detected an open 0 clocks away ie0: receive descriptors out of sync at 53 ie0: TDR detected an open 1 clock away ie0: receive descriptors out of sync at 25 ie0: receive descriptors out of sync at 71 ie0: receive descriptors out of sync at 55 ie0: receive descriptors out of sync at 53 ie0: receive descriptors out of sync at 63 ie0: receive descriptors out of sync at 28 ie0: TDR detected an open 1 clock away ie0: receive descriptors out of sync at 12 ie0: receive descriptors out of sync at 35 ie0: receive descriptors out of sync at 53 ie0: receive descriptors out of sync at 17 ie0: receive descriptors out of sync at 56 ie0: receive descriptors out of sync at 21 ie0: receive descriptors out of sync at 4 ie0: receive descriptors out of sync at 21 ie0: receive descriptors out of sync at 45 ie0: receive descriptors out of sync at 40 ie0: TDR detected an open 0 clocks away ie0: receive descriptors out of sync at 74 ie0: receive descriptors out of sync at 69 ie0: TDR detected an open 0 clocks away ie0: receive descriptors out of sync at 60 ie0: receive descriptors out of sync at 30 ie0: TDR detected an open 0 clocks away ie0: receive descriptors out of sync at 8 ie0: receive descriptors out of sync at 32 ie0: receive descriptors out of sync at 3 ie0: receive descriptors out of sync at 26 ie0: receive descriptors out of sync at 39 ie0: TDR detected an open 1 clock away ie0: receive descriptors out of sync at 27 ie0: receive descriptors out of sync at 6 ie0: receive descriptors out of sync at 20 ie0: receive descriptors out of sync at 79 ie0: receive descriptors out of sync at 1 ie0: receive descriptors out of sync at 20 ie0: receive descriptors out of sync at 48 ie0: receive descriptors out of sync at 13 ie0: TDR detected an open 0 clocks away ie0: receive descriptors out of sync at 41 ie0: TDR detected an open 0 clocks away ie0: receive descriptors out of sync at 71 ie0: receive descriptors out of sync at 21 ie0: TDR detected an open 0 clocks away ie0: receive descriptors out of sync at 11 ie0: TDR detected an open 0 clocks away ie0: receive descriptors out of sync at 53 ie0: TDR detected an open 1 clock away