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] | |
I got
cc -O -g -B./ -fPIC -c main.c
cc -shared -o libfoo.so -O -g -B./ shared.c
cc -O -g -B./ -fPIC -c bar.c
cc -O -g -B./ -fPIC -c protected.c
cc -o foo -O -g -B./ main.o libfoo.so bar.o protected.o -Wl,-rpath,.
/usr/local/bin/ld: BFD 2.14.90.0.8 20040114 assertion fail
/export/linux/src/binutils/binutils/bfd/linker.c:617
The problem is there are
{
/* If the new symbol with non-default visibility comes from a
relocatable file and the old definition comes from a dynamic
object, we remove the old definition. */
if ((*sym_hash)->root.type == bfd_link_hash_indirect)
h = *sym_hash;
h->root.type = bfd_link_hash_new;
h->root.u.undef.abfd = NULL;
If the new entry with non-default visibility is undefined, set the
type to bfd_link_hash_new will lead to the assertion. Should we use
h->root.type = bfd_link_hash_undefined;
instead and let _bfd_generic_link_add_one_symbol take care of it?
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] |