Problem building 1.4.5

Robin Getz rgetz at blackfin.uclinux.org
Thu Jun 17 00:13:37 CEST 2010


On Wed 16 Jun 2010 05:23, Werner Koch pondered:
> On Tue, 15 Jun 2010 19:26, rgetz at blackfin.uclinux.org said:
> 
> > The ABI automatically turns the C symbol "gcry_control", into "_gcry_control" 
> > in the .so, and thus turns "_gcry_control" into "__gcry_control".
> 
> That is pretty standard on most systems. 

On some - but I wouldn't say "most", its actually pretty uncommon now-a-days.

cat foo.c
int main (void)
{
        return 0;
}

gcc foo.c -o foo
nm foo
00000000004004c4 T main

bfin-elf-gcc -mcpu=bf548-0.2 foo.c -o foo
bfin-elf-nm foo
ffa00270 T _main


> > ./config.log has:
> > #define WITH_SYMBOL_UNDERSCORE 1
> 
> This is only used for the asm files see (libgcrypt/mpi/Makefile.am) and
> not the problem at hand.
> 
> > but that doesn't seem to be used in ./src/visibility.h in the MARK_VISIBLE 
> > macros, etc - which seems to be where things are managed.
> 
> I guess the problem is with the the version script feature of GNU
> linkers.  What does
> 
>   grep HAVE_LD_VERSION_SCRIPT config.status
> 
> show?  On a GNU system this should yield
> 
> S["HAVE_LD_VERSION_SCRIPT_FALSE"]="#"
> S["HAVE_LD_VERSION_SCRIPT_TRUE"]=""

Which it does:

S["HAVE_LD_VERSION_SCRIPT_FALSE"]="#"
S["HAVE_LD_VERSION_SCRIPT_TRUE"]=""

> If this is the case something is wrong with the linker for the system,
> disable this feature using
> 
>   ./configure --disable-ld-version-script
> 
> and try building again.

That fixes things - but can you describe what you mean when you say
"something wrong with the linker"?




More information about the Gcrypt-devel mailing list