This is the mail archive of the binutils@sources.redhat.com mailing list for the binutils project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

PATCH: A strang symbol versioning problem


On Sat, Aug 10, 2002 at 03:06:10PM -0700, H. J. Lu wrote:
> 
> Here is a small testcase
> 
> # make
> gcc  -B./ -g -fPIC   -c -o foo.o foo.c
> gcc: file path prefix `./' never used
> gcc  -B./ -g -fPIC   -c -o new.o new.c
> gcc: file path prefix `./' never used
> gcc  -B./ -Wl,--version-script=bar.map  -shared -o libnew.so new.o
> gcc: file path prefix `./' never used
> gcc  -B./ -shared -o libfoo.so -Wl,-rpath,. foo.o libnew.so
> gcc: file path prefix `./' never used
> gcc  -B./ -g -fPIC   -c -o old.o old.c
> gcc: file path prefix `./' never used
> gcc  -B./ -Wl,--version-script=bar.map  -shared -o libold.so old.o
> gcc: file path prefix `./' never used
> gcc  -B./ -o main -Wl,-rpath,. main.c libfoo.so libold.so new.o
> ./libnew.so(*IND*+0x0): multiple definition of `bar@VERS.0'
> libold.so(.text+0x12c): first defined here
> collect2: ld returned 1 exit status
> gcc: file path prefix `./' never used
> make: *** [main] Error 1
> 
> I will see what I can do.

The problem is the section pointer got changed across the call to
elf_merge_symbol. If the first call changes the section pointer to
undefined due to override, the next call to elf_merge_symbol will
be confused. I am enclosing a patch here. Do we expect/want the
section pointer gets changed after elf_add_default_symbol? Any
comments?


H.J.

Attachment: binutils-version-add.patch
Description: Text document


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]