Greetings, and thanks! "Page, Bill" <[EMAIL PROTECTED]> writes:
> Camm, > > On Wednesday, October 25, 2006 11:10 AM you wrote: > > ... > > OK, will try to reactivate my sourceforge status. Something > > changed over the summer. > > Yes, there were some problems with access to the compile farm. > That seems to be fixed now. > > > In the meantime, here is what needs doing: > > > > ./configure --enable-debug && make > > cd unixport > > make raw_pre_gcl > > gdb raw_pre_gcl > > (gdb) b sfasli.c:65 > > (gdb) r ./ > > (gdb) cond 1 strstr(q[u]->name,"srget") > > (gdb) c > > (gdb) p q[u]->name > > (gdb) p q[u]->section->name > > (gdb) p q[u]->flags > > > > > > Thanks! > > > > Here you go: > > --------- > > ppc-osx3:~/osx/new/gcl-2.6.8pre $ ./configure > --prefix=/home/users/b/bi/billpage/osx --enable-locbfd > --disable-statsysbfd --enable-debug > ... > > ppc-osx3:~/osx/new/gcl-2.6.8pre $ make > ... > makeinfo --html gcl-si.texi > makeinfo --html gcl-tk.texi > > ppc-osx3:~/osx/new/gcl-2.6.8pre $ cd unixport > > ppc-osx3:~/osx/new/gcl-2.6.8pre/unixport $ make raw_pre_gcl > ls: ../xgcl-2/*.o: No such file or directory > ls: ../mod/*.o: No such file or directory > ls: ../pcl/*.o: No such file or directory > ls: ../clcs/*.o: No such file or directory > ls: ../clcs/clcs_*.lisp: No such file or directory > touch raw_pre_gcl_map > gcc -no-cpp-precomp -o raw_pre_gcl \ > -L. -lpre_gcl `echo -lm | sed -e 's/-lncurses/ /'` -lc -lgclp > > ppc-osx3:~/osx/new/gcl-2.6.8pre/unixport $ gdb raw_pre_gcl > GNU gdb 5.3-20021014 (Apple version gdb-250) (Sat Dec 7 02:14:27 GMT > 2002) > Copyright 2002 Free Software Foundation, Inc. > GDB is free software, covered by the GNU General Public License, and you > are > welcome to change it and/or distribute copies of it under certain > conditions. > Type "show copying" to see the conditions. > There is absolutely no warranty for GDB. Type "show warranty" for > details. > This GDB was configured as "powerpc-apple-macos10". > Reading symbols for shared libraries .. done > (gdb) b sfasli.c:65 > Breakpoint 1 at 0xb1b54: file sfasli.c, line 65. > (gdb) r ./ > Starting program: > /private/automount/home/users/b/bi/billpage/osx/new/gcl-2.6.8pre/unixpor > t/raw_pre_gcl ./ > [Switching to process 27643 thread 0xb03] > Reading symbols for shared libraries . done > Reading symbols for shared libraries .. done > DBEGIN: 0x122000 > mach_mapstart: 0x548000 > heap_end: 0x548000 > core_end: 0x548000 > mach_brkpt: 0x548000 > mach_maplimit: 0x20122000 > --- List of All Regions --- > address size prot maxp zone_name > 0 0x1000 none none (no zone) > 0x1000 0x1000 r x rwx (no zone) > 0x2000 0xaf000 r x rwx (no zone) > 0xb1000 0x1000 r x rwx (no zone) > 0xb2000 0x70000 r x rwx (no zone) > 0x122000 0x6000 rw rwx (no zone) > 0x128000 0x420000 rw rwx (no zone) > 0x548000 0x2dd000 r rwx (no zone) > 0x825000 0x40000 rw rwx DefaultMallocZone > 0x865000 0x20000 rw rwx DefaultMallocZone > --- List of Regions to be Dumped --- > address size prot maxp zone_name > 0 0x1000 none none (no zone) > 0x1000 0x121000 r x rwx (no zone) > 0x122000 0x426000 rw rwx (no zone) > 0x548000 0x2dd000 r rwx (no zone) > 0x825000 0x60000 rw rwx DefaultMallocZone > --- Header Information --- > Magic = 0xfeedface > CPUType = 18 > CPUSubType = 0 > FileType = 0x2 > NCmds = 10 > SizeOfCmds = 1620 > Flags = 0x00000085 > Highest address of load commands in input file: 0x825000 > Lowest offset of all sections in __TEXT segment: 0xb18 > --- List of Load Commands in Input File --- > no cmd cmdsize name address size > 0 LC_SEGMENT 0x38 __PAGEZERO 0 0x1000 > 1 LC_SEGMENT 0x258 __TEXT 0x1000 0x121000 > __text 0x1b18 0x10a410 > __picsymbol_stub 0x10bf28 0x18e4 > __symbol_stub 0x10d80c 0 > __cstring 0x10d80c 0x12714 > __literal4 0x11ff20 0x18 > __literal8 0x11ff38 0xc8 > __const 0x120000 0x1f9c > __eh_frame 0x121f9c 0x60 > 2 LC_SEGMENT 0x214 __DATA 0x122000 0x426000 > __data 0x122000 0x25b0 > __la_symbol_ptr 0x1245b0 0x2c4 > __nl_symbol_ptr 0x124874 0x8fc > __dyld 0x125170 0x1c > __const 0x12518c 0x2748 > __bss 0x1278d8 0x8f28 > __common 0x130800 0x416d68 > 3 LC_SEGMENT 0x38 __LINKEDIT 0x548000 0x2dd000 > 4 LC_LOAD_DYLINKER 0x1c > 5 LC_LOAD_DYLIB 0x34 > 6 LC_SYMTAB 0x18 > 7 LC_DYSYMTAB 0x50 > 8 LC_TWOLEVEL_HINTS 0x10 > 9 LC_UNIXTHREAD 0xb0 > --- Load Commands written to Output File --- > Writing segment __PAGEZERO at 0 - 0 (sz: > 0) > Writing segment __TEXT at 0 - 0x121000 (sz: > 0x121000) > Writing segment __DATA at 0x121000 - 0x127000 (sz: > 0x6000) > section __data at 0x121000 - 0x1235b0 (sz: > 0x25b0) > section __la_symbol_ptr at 0x1235b0 - 0x123874 (sz: > 0x2c4) > section __nl_symbol_ptr at 0x123874 - 0x124170 (sz: > 0x8fc) > section __dyld at 0x124170 - 0x12418c (sz: > 0x1c) > section __const at 0x12418c - 0x1268d4 (sz: > 0x2748) > section __bss at 0x1268d8 - 0x12f800 (sz: > 0x8f28) > section __common at 0x12f800 - 0x546568 (sz: > 0x416d68) > Writing segment __DATA at 0x547000 - 0x547000 (sz: > 0) > Writing segment __LINKEDIT at 0x547000 - 0x823df4 (sz: > 0x2dcdf4) > Writing LC_LOAD_DYLINKER command > Writing LC_LOAD_DYLIB command > Writing LC_SYMTAB command > Fixed up 17/17 external relocation entries in data segment. > Writing LC_DYSYMTAB command > Writing LC_TWOLEVEL_HINTS command > Writing LC_UNIXTHREAD command > 1068 unused bytes follow Mach-O header > > Program received signal SIGTRAP, Trace/breakpoint trap. > 0x8fe19090 in __dyld__dyld_start () > > (gdb) cond 1 (int) strstr(q[u]->name,"srget") > > (gdb) c > Continuing. > GCL (GNU Common Lisp) April 1994 131072 pages > Building symbol table for > /private/automount/home/users/b/bi/billpage/osx/new/gcl-2.6.8pre/unixpor > t/raw_pre_gcl.tmp .. > > Breakpoint 1, build_symbol_table_bfd () at sfasli.c:65 > 65 if (strncmp(q[u]->section->name,"*UND*",5) && !(q[u]->flags > & BSF_WEAK)) > > (gdb) p q[u]->name > $1 = 0x5742d1 "___srget" > > (gdb) p q[u]->section->name > $2 = 0x114e74 "*UND*" > > (gdb) p q[u]->flags > $3 = 2 > > (gdb) c > Continuing. > loading ./../lsp/gcl_export.lsp > loading ./../lsp/gcl_defmacro.lsp > loading ./../lsp/gcl_evalmacros.lsp > loading ./../lsp/gcl_top.lsp > loading ./../lsp/gcl_module.lsp > loading ./../lsp/gcl_autoload.lsp > > >(quit) > > Program exited normally. > (gdb) quit > ppc-osx3:~/osx/new/gcl-2.6.8pre/unixport $ > > -------- > > Note I had to add (int) to: > > cond 1 (int) strstr(q[u]->name,"srget") > > to avoid an error message about unknow return type. > > > > > ... > > > > Come to think of it, there may be a problem like the following: > > > > > > > > On Linux systems, libc symbols are postpended with a @@ and > > > > version number. Here is our code to deal with this (sfasli.c): > > > > (my comments in ****) > > > > > > > > for (u=0;u<v;u++) { > > > > char *c=NULL; > > > > struct bfd_link_hash_entry *h; > > > > > > > > if (!*q[u]->name) > > > > continue; > > > > > > This is line 65: > > > > > if (strncmp(q[u]->section->name,"*UND*",5) && > > > > !(q[u]->flags & BSF_WEAK)) > > > > continue; > > > > > > Is value of flags=2 ok? What is BSF_WEAK? > > h/bfd.h:#define BSF_WEAK 0x80 > > > > > *** the above might skip ___srget *** > > > > > > It looks like it's gonna skip to me. Is that good or bad? > Actually, it looks like it will not skip due to the section->name. Please verify this by stepping through with n and this point. In fact, if you can step from this point to the bottom of this for loop iteration, and then (gdb) p *bfd_link_hash_lookup(link_info.hash,q[u]->name,MY_BFD_FALSE,MY_BFD_FALSE,MY_BFD_TRUE) that would be most helpful. > Also it looks like there is no prepended @@ in q[u]->name. > This is OK, as there is no other junk that needs special processing. > > > > if ((c=(char *)strstr(q[u]->name,"@@"))) { > > > > *c=0; > > > > if > > > > (!(h=bfd_link_hash_lookup(link_info.hash,q[u]->name,MY_BFD_TRU > > > > E,MY_BFD_TRUE,MY_BFD_TRUE))) > > > > FEerror("Cannot make new hash entry",0); > > > > h->type=bfd_link_hash_new; > > > > } else if > > > > > > > > (!(h=bfd_link_hash_lookup(link_info.hash,q[u]->name,MY_BFD_FAL > > > SE,MY_BFD_FALSE,MY_BFD_TRUE)) && > > > > > > > > !(h=bfd_link_hash_lookup(link_info.hash,q[u]->name,MY_BFD_TRUE > > > > ,MY_BFD_TRUE,MY_BFD_TRUE))) > > > > FEerror("Cannot make new hash entry",0); > > > > > > > > *** There might be some other mangling than the @ for ___srget *** > > > > > > > > if (h->type!=bfd_link_hash_defined) { > > > > if (!q[u]->section) > > > > FEerror("Symbol ~S is missing > > > > section",1,make_simple_string(q[u]->name)); > > > > if (!my_plt(q[u]->name,&pa)) { > > > > /* printf("my_plt %s %p\n",q[u]->name,(void *)pa); */ > > > > if (q[u]->value && q[u]->value!=pa) > > > > FEerror("plt address mismatch", 0); > > > > else > > > > q[u]->value=pa; > > > > } > > > > if (q[u]->value) { > > > > h->type=bfd_link_hash_defined; > > > > h->u.def.value=q[u]->value+q[u]->section->vma; > > > > h->u.def.section=q[u]->section; > > > > } > > > > } > > > > > > > > if (c) { > > > > *c='@'; > > > > c=NULL; > > > > } > > > > } > > > > > > > > This might be instructive with srget in place of cos: > > > > > > > > objdump -x /usr/lib/gcl-2.6.7/unixport/saved_gcl |grep cos > > > > 0812f590 l F .text 0000015b number_cos > > > > 00000000 F *UND* 00000026 cos@@GLIBC_2.0 > > > > 0804fb40 F *UND* 00000074 acosh@@GLIBC_2.0 > > > > 08050440 F *UND* 00000081 cosh@@GLIBC_2.0 > > > > 0812f6f0 g F .text 00000047 Lcos > > > > 00000000 F *UND* 00000026 cosf@@GLIBC_2.0 > > > > 08051200 F *UND* 00000075 acos@@GLIBC_2.0 > > > > > > > > > > There is no objdump on this OSX 10.2 system. :-( > > > > > > Shall I try to install GNU binutils? The version bundled with GCL > > > or a newer one? > > > > The one in the GCL sources should be fine. > > > > See next email. > Thanks again! Take care, > Regards, > Bill Page. > > > -- Camm Maguire [EMAIL PROTECTED] ========================================================================== "The earth is but one country, and mankind its citizens." -- Baha'u'llah _______________________________________________ Gcl-devel mailing list Gcl-devel@gnu.org http://lists.gnu.org/mailman/listinfo/gcl-devel