axiom-developer
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Axiom-developer] RE: gcl-2.6.8pre on MAC OSX 10.2


From: Page, Bill
Subject: [Axiom-developer] RE: gcl-2.6.8pre on MAC OSX 10.2
Date: Wed, 25 Oct 2006 19:19:40 -0400

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?

Also it looks like there is no prepended @@ in q[u]->name.

> > >     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.

Regards,
Bill Page.




reply via email to

[Prev in Thread] Current Thread [Next in Thread]