This is the mail archive of the
binutils@sources.redhat.com
mailing list for the binutils project.
Re: 2.12 branch will be cut on Saturday
On Sun, Feb 10, 2002 at 10:59:25PM +0100, Jakub Jelinek wrote:
> On Sun, Feb 10, 2002 at 10:42:35PM +0100, Christian Jönsson wrote:
> > > FAIL: S-records with constructors
> >
> > I agree with you. Still, the S-records is failing and perhaps that's a
> > binutils on sparc issue. Since we all heard you're the expert, :-), do
> > you think you perhaps could look into this specific failure?
>
> Certainly not an expert on S-records (don't know about this binary format
> anything).
> Anyway, objdump -x diff of (ELF->srec objcopy, direct srec link) is:
> Idx Name Size VMA LMA File off
> Algn
> 0 .sec1 0000020c 0000000000001000 0000000000001000 00000026 2**0
> CONTENTS, ALLOC, LOAD
> - 1 .sec2 0000001b 0000000000001210 0000000000001210 0000060c 2**0
> + 1 .sec2 00000020 0000000000001210 0000000000001210 0000060c 2**0
> CONTENTS, ALLOC, LOAD
> - 2 .sec3 0000000c 000000000001122c 000000000001122c 0000065e 2**0
> + 2 .sec3 0000000c 0000000000011230 0000000000011230 00000668 2**0
> CONTENTS, ALLOC, LOAD
>
> where ELF link has the interesting sections:
> [ 1] .text PROGBITS 00001000 001000 00020c 00 AX 0 0 4
> [ 2] .rodata PROGBITS 00001210 001210 00001b 01 A 0 0 8
> [ 3] .data PROGBITS 0001122c 00122c 000004 00 WA 0 0 4
> [ 4] .ctors PROGBITS 00011230 001230 000004 00 WA 0 0 1
> [ 5] .dtors PROGBITS 00011234 001234 000004 00 WA 0 0 1
> [ 6] .bss NOBITS 00011238 001238 000058 00 WA 0 0 4
>
> Contents of section .rodata:
> 1210 6175746f 6d617469 635f666f 6f000000 automatic_foo...
> 1220 73746174 69635f66 6f6f00 static_foo.
>
> which is that in ELF a section size is not rounded up to its alignment, only
> next section start is rounded up to next section alignment.
> In srec, it looks like .rodata size is rounded up to its alignment.
>
> Jakub
OK, well, here's the log file of "my" S-records falure:
Running /share1/gcc-dev/gcc/ld/testsuite/ld-srec/srec.exp ...
/share1/gcc-dev/gcc/objdir/gcc/xgcc -B/share1/gcc-dev/gcc/objdir/gcc/ -B/usr/local/sparc-linux/bin/ -B/usr/local/sparc-linux/lib/ -isystem /usr/local/sparc-linux/include -L/share1/gcc-dev/gcc/objdir/ld -B/share1/gcc-dev/gcc/objdir/ld/tmpdir/gas/ -I/share1/gcc-dev/gcc/ld/testsuite/ld-srec -g -fPIC -c /share1/gcc-dev/gcc/ld/testsuite/ld-srec/sr1.c -o tmpdir/sr1.o
/share1/gcc-dev/gcc/objdir/gcc/xgcc -B/share1/gcc-dev/gcc/objdir/gcc/ -B/usr/local/sparc-linux/bin/ -B/usr/local/sparc-linux/lib/ -isystem /usr/local/sparc-linux/include -L/share1/gcc-dev/gcc/objdir/ld -B/share1/gcc-dev/gcc/objdir/ld/tmpdir/gas/ -I/share1/gcc-dev/gcc/ld/testsuite/ld-srec -g -fPIC -c /share1/gcc-dev/gcc/ld/testsuite/ld-srec/sr2.c -o tmpdir/sr2.o
/share1/gcc-dev/gcc/objdir/ld/ld-new -o tmpdir/sr1 -Ttext 0x1000 tmpdir/sr1.o tmpdir/sr2.o
/share1/gcc-dev/gcc/objdir/ld/ld-new -o tmpdir/sr2.sr -Ttext 0x1000 --oformat srec tmpdir/sr1.o tmpdir/sr2.o
tmpdir/sr1.o: In function `main':
/share1/gcc-dev/gcc/ld/testsuite/ld-srec/sr1.c:16: undefined reference to `_GLOBAL_OFFSET_TABLE_'
/share1/gcc-dev/gcc/ld/testsuite/ld-srec/sr1.c:17: undefined reference to `_GLOBAL_OFFSET_TABLE_'
tmpdir/sr2.o: In function `fn1':
/share1/gcc-dev/gcc/ld/testsuite/ld-srec/sr2.c:9: undefined reference to `_GLOBAL_OFFSET_TABLE_'
/share1/gcc-dev/gcc/ld/testsuite/ld-srec/sr2.c:10: undefined reference to `_GLOBAL_OFFSET_TABLE_'
tmpdir/sr2.o: In function `fn2':
/share1/gcc-dev/gcc/ld/testsuite/ld-srec/sr2.c:16: undefined reference to `_GLOBAL_OFFSET_TABLE_'
tmpdir/sr2.o:/share1/gcc-dev/gcc/ld/testsuite/ld-srec/sr2.c:17: more undefined references to `_GLOBAL_OFFSET_TABLE_' follow
FAIL: S-records
/share1/gcc-dev/gcc/objdir/gcc/g++ -B/share1/gcc-dev/gcc/objdir/gcc/ -nostdinc++ -nostdinc++ -I/share1/gcc-dev/gcc/objdir/sparc-linux/libstdc++-v3/include/sparc-linux -I/share1/gcc-dev/gcc/objdir/sparc-linux/libstdc++-v3/include -I/share1/gcc-dev/gcc/libstdc++-v3/libsupc++ -I/share1/gcc-dev/gcc/libstdc++-v3/libio -I/share1/gcc-dev/gcc/libstdc++-v3/include/backward -I/share1/gcc-dev/gcc/libstdc++-v3/testsuite -L/share1/gcc-dev/gcc/objdir/sparc-linux/libstdc++-v3/src -L/share1/gcc-dev/gcc/objdir/sparc-linux/libstdc++-v3/src/.libs -B/usr/local/sparc-linux/bin/ -B/usr/local/sparc-linux/lib/ -isystem /usr/local/sparc-linux/include -L/share1/gcc-dev/gcc/objdir/ld -g -O2 -fgnu-linker -fno-exceptions -B/share1/gcc-dev/gcc/objdir/ld/tmpdir/gas/ -I/share1/gcc-dev/gcc/ld/testsuite/ld-srec -g -fPIC -c /share1/gcc-dev/gcc/ld/testsuite/ld-srec/sr3.cc -o tmpdir/sr3.o
/share1/gcc-dev/gcc/objdir/ld/ld-new -o tmpdir/sr1 -Ttext 0x1000 tmpdir/sr3.o
/share1/gcc-dev/gcc/objdir/ld/ld-new -o tmpdir/sr2.sr -Ttext 0x1000 --oformat srec tmpdir/sr3.o
tmpdir/sr3.o: In function `main':
/share1/gcc-dev/gcc/ld/testsuite/ld-srec/sr3.cc:24: undefined reference to `_GLOBAL_OFFSET_TABLE_'
/share1/gcc-dev/gcc/ld/testsuite/ld-srec/sr3.cc:25: undefined reference to `_GLOBAL_OFFSET_TABLE_'
tmpdir/sr3.o: In function `Foo::init_foo()':
/share1/gcc-dev/gcc/ld/testsuite/ld-srec/sr3.cc:87: undefined reference to `_GLOBAL_OFFSET_TABLE_'
/share1/gcc-dev/gcc/ld/testsuite/ld-srec/sr3.cc:88: undefined reference to `_GLOBAL_OFFSET_TABLE_'
tmpdir/sr3.o: In function `Foo::Foo()':
/share1/gcc-dev/gcc/ld/testsuite/ld-srec/sr3.cc:92: undefined reference to `_GLOBAL_OFFSET_TABLE_'
tmpdir/sr3.o:/share1/gcc-dev/gcc/ld/testsuite/ld-srec/sr3.cc:93: more undefined references to `_GLOBAL_OFFSET_TABLE_' follow
FAIL: S-records with constructors
testcase /share1/gcc-dev/gcc/ld/testsuite/ld-srec/srec.exp completed in 8 seconds
(Now, a fun detail, cdtests fail using glibc-2.2.5 :-)
Cheers,
/ChJ