This is the mail archive of the binutils@sourceware.org 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]

Re: ver_test_8_2.so


From: Ian Lance Taylor <iant@google.com>
Date: Tue, 20 May 2008 06:52:06 -0700

> David Miller <davem@davemloft.net> writes:
> 
> > g++ -m32 -W -Wall   -Werror -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -fmerge-constants -g -O2   -o ver_test_8_2.so -Bgcctestdir/ -shared -Wl,--version-script,../../../src/gold/testsuite/ver_test_8.script two_file_test_2_pic.o
> > gcctestdir/ld: /usr/lib/gcc/sparc-linux-gnu/4.1.3/../../../../lib/crti.o: requires unsupported dynamic reloc 17; recompile with -fPIC
> 
> Can you set a breakpoint on line 1940 of sparc.cc, which looks like
> this:
> 	    if (target->may_need_copy_reloc(gsym))
> for the case where r_type == R_SPARC_PC22, and see why the immediately
> preceding call to gsym->needs_dynamic_reloc(flags) returned true?

Sure.

BTW, this might be a stupid question, but I have a devil of a time setting
breakpoints on the templated functions in sparc.cc, and I wonder if it's
because the code in that file gets put into an anonymous namespace?

For example, if I wanted to set a breakpoint on:

	Target_sparc<32, true>::Scan::local()

how might I specify that to gdb?

Anyways, back to the bug.

During the call to gsyms->need_dynamic_reloc() flags is 2
(NON_PIC_REF).

gsym->is_weak_undefined() is false

gsym->is_absolute() is false

gsym->is_from_dynobj() is false

gsym->is_undefined() is true

That last one seems to be the trigger.

gsym->name() is "_GLOBAL_OFFSET_TABLE_"


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