Subject: Re: librep + NetBSD
To: John Harper <john@dcs.warwick.ac.uk>
From: Julian Assange <proff@iq.org>
List: tech-pkg
Date: 11/02/1999 03:33:59
It looks like there's a strange dl/libtool interaction problem. The symbol is clearly
being resolved, but the area it is resolved to is not mapped.

proff@omegapoint:/orb/s/h/home/proff/c/librep-0.7.1/lisp$ export REPLISPDIR=.;export REPDOCFILE=../DOC
proff@omegapoint:/orb/s/h/home/proff/c/librep-0.7.1/lisp$ ../libtool -dlopen ../src/libsdbm.la -dlopen ../src/.libs/librep.la gdb ../src/.libs/lt-rep
libtool: execute: warning: `../src/.libs/librep.la' was not linked with `-export-dynamic'
GNU gdb 4.17
(gdb) run --batch --no-rc   -l compiler -f compile-compiler
Starting program: /orb/s/netbsd/arch/i386/usr/local/exec/proff/librep-0.7.1/lisp/../src/.libs/lt-rep --batch --no-rc   -l compiler -f compile-compiler
Compiling compiler.jl...

Program received signal SIGSEGV, Segmentation fault.
0x400415aa in rep_open_dl_library (file_name=166640) at unix_dl.c:241
241                 if (feature_sym != 0
(gdb) bt
#0  0x400415aa in rep_open_dl_library (file_name=166640) at unix_dl.c:241
#1  0x400334fc in Fload (file=69064, noerr_p=26396, nopath_p=26396, nosuf_p=26396) at lispcmds.c:1686
#2  0x4003550c in Frequire (feature=138548, file=26396) at lispcmds.c:2695
#3  0x4002e41a in rep_funcall (fun=1074096736, arglist=26396, eval_args=1) at lisp.c:1105
#4  0x4002e82c in eval (obj=195332) at lisp.c:1276
#5  0x4002e95b in Feval (obj=195332) at lisp.c:1323
#6  0x4002eb97 in Fprogn (args=195340) at lisp.c:1405
#7  0x4002e4e2 in rep_funcall (fun=195388, arglist=130332, eval_args=1) at lisp.c:1134
#8  0x4002e82c in eval (obj=130324) at lisp.c:1276
#9  0x4002e95b in Feval (obj=130324) at lisp.c:1323
#10 0x4002eb97 in Fprogn (args=130316) at lisp.c:1405
#11 0x40032cc6 in Fcond (args=192396) at lispcmds.c:1405
#12 0x4002e770 in eval (obj=192404) at lisp.c:1253
#13 0x4002e95b in Feval (obj=192404) at lisp.c:1323
#14 0x4002e819 in eval (obj=130260) at lisp.c:1273
#15 0x4002e95b in Feval (obj=130260) at lisp.c:1323
#16 0x4002eb97 in Fprogn (args=130252) at lisp.c:1405
#17 0x4003ef4d in Flet (args=129956) at symbols.c:780
#18 0x4002e770 in eval (obj=129948) at lisp.c:1253
#19 0x4002e95b in Feval (obj=129948) at lisp.c:1323
#20 0x4002eb97 in Fprogn (args=129940) at lisp.c:1405
#21 0x40032cc6 in Fcond (args=129884) at lispcmds.c:1405
#22 0x4002e770 in eval (obj=126988) at lisp.c:1253
#23 0x4002e95b in Feval (obj=126988) at lisp.c:1323
#24 0x4002eb97 in Fprogn (args=126980) at lisp.c:1405
#25 0x4003ef4d in Flet (args=126932) at symbols.c:780
#26 0x4002e770 in eval (obj=126924) at lisp.c:1253
#27 0x4002e95b in Feval (obj=126924) at lisp.c:1323
#28 0x4002eb97 in Fprogn (args=126916) at lisp.c:1405
#29 0x4002e4e2 in rep_funcall (fun=126900, arglist=124116, eval_args=1) at lisp.c:1134
#30 0x4002e82c in eval (obj=124108) at lisp.c:1276
#31 0x4002e95b in Feval (obj=124108) at lisp.c:1323
#32 0x4003eae8 in Fsetq (args=124092) at symbols.c:621
#33 0x4002e770 in eval (obj=124084) at lisp.c:1253
#34 0x4002e95b in Feval (obj=124084) at lisp.c:1323
#35 0x4002eb97 in Fprogn (args=124076) at lisp.c:1405
#36 0x40032cc6 in Fcond (args=123956) at lispcmds.c:1405
#37 0x4002e770 in eval (obj=123948) at lisp.c:1253
#38 0x4002e95b in Feval (obj=123948) at lisp.c:1323
#39 0x4002eb97 in Fprogn (args=123940) at lisp.c:1405
#40 0x40032cc6 in Fcond (args=192652) at lispcmds.c:1405
#41 0x4002e770 in eval (obj=192660) at lisp.c:1253
#42 0x4002e95b in Feval (obj=192660) at lisp.c:1323
#43 0x4002e819 in eval (obj=123828) at lisp.c:1273
#44 0x4002e95b in Feval (obj=123828) at lisp.c:1323
#45 0x4002eb97 in Fprogn (args=123820) at lisp.c:1405
#46 0x40032c11 in Fwhile (args=123812) at lispcmds.c:1358
#47 0x4002e770 in eval (obj=123804) at lisp.c:1253
#48 0x4002e95b in Feval (obj=123804) at lisp.c:1323
#49 0x4002fa8a in Fcondition_case (args=123796) at lisp.c:1893
#50 0x4002e770 in eval (obj=123780) at lisp.c:1253
#51 0x4002e95b in Feval (obj=123780) at lisp.c:1323
#52 0x4002eb97 in Fprogn (args=123772) at lisp.c:1405
#53 0x4002e770 in eval (obj=123084) at lisp.c:1253
---Type <return> to continue, or q <return> to quit---
#54 0x4002e95b in Feval (obj=123084) at lisp.c:1323
#55 0x400351cc in Funwind_protect (args=123076) at lispcmds.c:2584
#56 0x4002e770 in eval (obj=123068) at lisp.c:1253
#57 0x4002e95b in Feval (obj=123068) at lisp.c:1323
#58 0x4002fa8a in Fcondition_case (args=123060) at lisp.c:1893
#59 0x4002e770 in eval (obj=108124) at lisp.c:1253
#60 0x4002e95b in Feval (obj=108124) at lisp.c:1323
#61 0x4002eb97 in Fprogn (args=108116) at lisp.c:1405
#62 0x40032cc6 in Fcond (args=193148) at lispcmds.c:1405
#63 0x4002e770 in eval (obj=193156) at lisp.c:1253
#64 0x4002e95b in Feval (obj=193156) at lisp.c:1323
#65 0x4002e819 in eval (obj=107948) at lisp.c:1273
#66 0x4002e95b in Feval (obj=107948) at lisp.c:1323
#67 0x4002eb97 in Fprogn (args=107940) at lisp.c:1405
#68 0x40032cc6 in Fcond (args=178132) at lispcmds.c:1405
#69 0x4002e770 in eval (obj=178124) at lisp.c:1253
#70 0x4002e95b in Feval (obj=178124) at lisp.c:1323
#71 0x4002e819 in eval (obj=106532) at lisp.c:1273
#72 0x4002e95b in Feval (obj=106532) at lisp.c:1323
#73 0x4002eb97 in Fprogn (args=106524) at lisp.c:1405
#74 0x4002e770 in eval (obj=106452) at lisp.c:1253
#75 0x4002e95b in Feval (obj=106452) at lisp.c:1323
#76 0x400351cc in Funwind_protect (args=106444) at lispcmds.c:2584
#77 0x4002e770 in eval (obj=106436) at lisp.c:1253
#78 0x4002e95b in Feval (obj=106436) at lisp.c:1323
#79 0x4002eb97 in Fprogn (args=106428) at lisp.c:1405
#80 0x4003ef4d in Flet (args=106092) at symbols.c:780
#81 0x4002e770 in eval (obj=106084) at lisp.c:1253
#82 0x4002e95b in Feval (obj=106084) at lisp.c:1323
#83 0x4002eb97 in Fprogn (args=106076) at lisp.c:1405
#84 0x4002e4e2 in rep_funcall (fun=106028, arglist=126428, eval_args=1) at lisp.c:1134
#85 0x4002e82c in eval (obj=126420) at lisp.c:1276
#86 0x4002e95b in Feval (obj=126420) at lisp.c:1323
#87 0x4002eb97 in Fprogn (args=126412) at lisp.c:1405
#88 0x40032cc6 in Fcond (args=177812) at lispcmds.c:1405
#89 0x4002e770 in eval (obj=177804) at lisp.c:1253
#90 0x4002e95b in Feval (obj=177804) at lisp.c:1323
#91 0x4002e819 in eval (obj=126268) at lisp.c:1273
#92 0x4002e95b in Feval (obj=126268) at lisp.c:1323
#93 0x4002eb97 in Fprogn (args=126260) at lisp.c:1405
#94 0x4002e4e2 in rep_funcall (fun=126188, arglist=177724, eval_args=0) at lisp.c:1134
#95 0x4002ec78 in rep_call_lisp1 (function=126180, arg1=109408) at lisp.c:1426
#96 0x400317dd in Fmapc (fun=126180, list=126460) at lispcmds.c:707
#97 0x4002e41a in rep_funcall (fun=1074094516, arglist=26396, eval_args=1) at lisp.c:1105
#98 0x4002e82c in eval (obj=126148) at lisp.c:1276
#99 0x4002e95b in Feval (obj=126148) at lisp.c:1323
#100 0x4002eb97 in Fprogn (args=126140) at lisp.c:1405
#101 0x4003ef4d in Flet (args=126108) at symbols.c:780
#102 0x4002e770 in eval (obj=126100) at lisp.c:1253
#103 0x4002e95b in Feval (obj=126100) at lisp.c:1323
#104 0x4002eb97 in Fprogn (args=126092) at lisp.c:1405
#105 0x4002e4e2 in rep_funcall (fun=126084, arglist=26396, eval_args=0) at lisp.c:1134
#106 0x4002e68f in Ffuncall (args=177652) at lisp.c:1217
#107 0x4002e403 in rep_funcall (fun=1074093260, arglist=177652, eval_args=1) at lisp.c:1102
---Type <return> to continue, or q <return> to quit---
#108 0x4002e82c in eval (obj=84548) at lisp.c:1276
#109 0x4002e95b in Feval (obj=84548) at lisp.c:1323
#110 0x4002eb97 in Fprogn (args=84540) at lisp.c:1405
#111 0x40032cc6 in Fcond (args=84420) at lispcmds.c:1405
#112 0x4002e770 in eval (obj=84412) at lisp.c:1253
#113 0x4002e95b in Feval (obj=84412) at lisp.c:1323
#114 0x4002eb97 in Fprogn (args=84404) at lisp.c:1405
#115 0x40032c11 in Fwhile (args=84308) at lispcmds.c:1358
#116 0x4002e770 in eval (obj=84300) at lisp.c:1253
#117 0x4002e95b in Feval (obj=84300) at lisp.c:1323
#118 0x4002eb97 in Fprogn (args=84292) at lisp.c:1405
#119 0x4003ef4d in Flet (args=84276) at symbols.c:780
#120 0x4002e770 in eval (obj=84268) at lisp.c:1253
#121 0x4002e95b in Feval (obj=84268) at lisp.c:1323
#122 0x4003361a in Fload (file=62888, noerr_p=26396, nopath_p=26396, nosuf_p=26396) at lispcmds.c:1711
#123 0x1977 in main (argc=0, argv=0xefbfd444) at rep.c:40
(gdb) l 241
236                         return 0;
237                     }
238                 }
239
240                 feature_sym = x_dlsym (handle, "rep_dl_feature");
241                 if (feature_sym != 0
242                     && *feature_sym != 0 && rep_SYMBOLP(*feature_sym))
243                 {
244                     x->feature_sym = *feature_sym;
245                     Fprovide (*feature_sym);
(gdb) p feature_sym
$1 = (repv *) 0x8002f560
(gdb) p *feature_sym
Error accessing memory address 0x8002f560: Invalid argument.
(gdb) p handle
$2 = (void *) 0x40017280
(gdb) p x_dlsym
No symbol "x_dlsym" in current context.
(gdb) p dlsym
$3 = {<text variable, no debug info>} 0x16e4 <dlsym>
(gdb) p (void*)dlsym (handle, "_rep_dl_feature")
$6 = (void *) 0x8002f560
(gdb)
[1]+  Stopped                 ../libtool -dlopen ../src/libsdbm.la -dlopen ../src/.libs/librep.la gdb ../src/.libs/lt-rep
You have new mail in /home/proff/Mailbox
proff@omegapoint:/orb/s/h/home/proff/c/librep-0.7.1/lisp$ ps |fgrep lt
 2348 pb  T      0:00.34 gdb ../src/.libs/lt-rep
 2407 pb  TWX    0:00.08 /orb/s/netbsd/arch/i386/usr/local/exec/proff/librep-0.7.1/lisp/../src/.libs/lt-rep --batch --no-rc -l c
 2444 pb  S+     0:00.01 fgrep lt
proff@omegapoint:/orb/s/h/home/proff/c/librep-0.7.1/lisp$ cat /proc/2407/map
0x1000 0x2000 r-x rwx COW NNC 1 0 0
0x2000 0x4000 r-x rwx COW NC 1 0 0
0x4000 0x5000 rwx rwx COW NNC 1 0 0
0x5000 0x3f000 rwx rwx COW NNC 1 0 0
0x40004000 0x40011000 r-x rwx COW NC 1 0 0
0x40011000 0x40012000 rw- rwx COW NNC 1 0 0
0x40012000 0x4001a000 rw- rwx COW NNC 1 0 0
0x4001a000 0x4001d000 r-x rwx COW NC 1 0 0
0x4001d000 0x4001e000 rwx rwx COW NNC 1 0 0
0x4001f000 0x40029000 rw- rwx COW NNC 1 0 0
0x40029000 0x40054000 r-x rwx COW NNC 1 0 0
0x40054000 0x40058000 rwx rwx COW NNC 1 0 0
0x40058000 0x40059000 rwx rwx COW NNC 1 0 0
0x40059000 0x400ce000 r-x rwx COW NC 1 0 0
0x400ce000 0x400d2000 rwx rwx COW NNC 1 0 0
0x400d2000 0x400dc000 rwx rwx COW NNC 1 0 0
0xedbfe000 0xef9fe000 --- rwx COW NC 1 0 0
0xef9fe000 0xefbf0000 rwx rwx COW NC 1 0 0
0xefbf0000 0xefbfe000 rwx rwx COW NNC 1 0 0
proff@omegapoint:/orb/s/h/home/proff/c/librep-0.7.1/lisp$ cat /proc/2348/map
0x1000 0xac000 r-x rwx COW NC 1 0 0
0xac000 0xb9000 rwx rwx COW NNC 1 0 0
0xb9000 0x31f000 rwx rwx COW NNC 1 0 0
0x400ac000 0x400b9000 r-x rwx COW NC 1 0 0
0x400b9000 0x400ba000 rw- rwx COW NNC 1 0 0
0x400ba000 0x400c4000 rw- rwx COW NNC 1 0 0
0x400c7000 0x400d9000 r-x rwx COW NC 1 0 0
0x400d9000 0x400db000 rwx rwx COW NNC 1 0 0
0x400db000 0x400df000 r-x rwx COW NC 1 0 0
0x400df000 0x400e0000 rwx rwx COW NNC 1 0 0
0x400e0000 0x400e1000 r-x rwx COW NC 1 0 0
0x400e1000 0x400e2000 rwx rwx COW NNC 1 0 0
0x400e2000 0x4012e000 r-x rwx COW NC 1 0 0
0x4012e000 0x40138000 rwx rwx COW NNC 1 0 0
0x40138000 0x401ad000 r-x rwx COW NC 1 0 0
0x401ad000 0x401b1000 rwx rwx COW NNC 1 0 0
0x401b1000 0x401bb000 rwx rwx COW NNC 1 0 0
0x401bb000 0x401c4000 rw- rwx COW NNC 1 0 0
0xedbfe000 0xef9fe000 --- rwx COW NC 1 0 0
0xef9fe000 0xefbf0000 rwx rwx COW NC 1 0 0
0xefbf0000 0xefbfe000 rwx rwx COW NNC 1 0 0