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: Bill Page
Subject: [Axiom-developer] RE: gcl-2.6.8pre on MAC OSX 10.2
Date: Tue, 24 Oct 2006 13:55:26 -0400

Camm,

On October 24, 2006 11:56 AM you wrote:
> > 
> > Aha. No "__srget" symbol defined in the gcl image? Isn't it strange?
> >  
> 
> Yes, in light of this and previous messages.  We need a gdb session
> on raw_pre_gcl.  Please let me know if you would like me to walk
> you through one, or whether you can provide me with remote ssh
> access to the box or equivalent.

I am using the SourceForge compile farm machine 'ppc-osx3'. All
registered SourceForge developers have access to these machines.
You should have not problem to access it. Once you can log in,
I can scp my working directories to your account.

> ... 
> 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;
> 
>     if (strncmp(q[u]->section->name,"*UND*",5) && 
> !(q[u]->flags & BSF_WEAK))
>       continue;
> 
> *** the above might skip ___srget ***
> 
>     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?

Regards,
Bill Page.






reply via email to

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