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] | |
On Fri, Jun 21, 2002 at 04:10:22PM +0930, Alan Modra wrote:
> Hi H.J.,
> I've tidied up one of your binutils patches that hasn't been
> applied to sourceware, and I'd like you to check that the changes
> are OK. The main functional difference I made is that
> elf_link_check_versioned_symbol now counts the number of matching
> versioned symbols, as ld.so does.
>
The change is wrong. Here is a testcase. Now I got
# make
gcc -B./ -c -o foo.o foo.c
gcc: file path prefix `./' never used
gcc -B./ -fPIC -c b.c
gcc: file path prefix `./' never used
gcc -B./ -fPIC -c a.c
gcc: file path prefix `./' never used
gcc -B./ -fPIC -c c.c
gcc: file path prefix `./' never used
gcc -B./ -shared -o lib-c.so c.o
gcc: file path prefix `./' never used
gcc -B./ -shared -o lib-a.so a.o lib-c.so
gcc: file path prefix `./' never used
gcc -B./ -shared -o lib-b.so b.o `pwd`/lib-a.so
gcc: file path prefix `./' never used
gcc -B./ -o foo foo.o -Wl,-rpath,. lib-b.so
gcc: file path prefix `./' never used
gcc -B./ -fPIC -c c1.c
gcc: file path prefix `./' never used
gcc -B./ -Wl,-soname,lib-c.so -Wl,--version-script=c.map -shared -o lib-c1.so
c1
.o
gcc: file path prefix `./' never used
gcc -B./ -fPIC -c c2.c
gcc: file path prefix `./' never used
gcc -B./ -Wl,-soname,lib-c.so -Wl,--version-script=c.map -shared -o lib-c2.so
c2
.o
gcc: file path prefix `./' never used
./foo
bar
cp lib-c1.so lib-c.so
gcc -B./ -o default foo.o -Wl,-rpath,. lib-b.so
gcc: file path prefix `./' never used
./foo
bar VERS.0
cp lib-c2.so lib-c.so
gcc -B./ -o default foo.o -Wl,-rpath,. lib-b.so
/home/hjl/bugs/gas/needed.3/lib-a.so: undefined reference to `bar'
collect2: ld returned 1 exit status
gcc: file path prefix `./' never used
You missed:
if ((verstab[symidx] & 0x7fff)
>= ((flags & DL_LOOKUP_RETURN_NEWEST) ? 2 : 3))
An unversioned reference can be resolved by the oldest version. The
rest of code is ok although I prefer to keep the error message instead
of abort () just in case. If you want, I can submit a new working
patch.
H.J.
Attachment:
bug.tar.gz
Description: GNU Zip compressed data
| Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
|---|---|---|
| Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |