[gold] Merging string literals with bigger alignment

Alan Modra amodra@gmail.com
Wed May 1 02:25:00 GMT 2013


On Mon, Apr 29, 2013 at 10:16:17AM -0700, Cary Coutant wrote:
> > There was no feedback from Ian for this patch: I rebased it and did
> > the changes that you mentioned.
> > As a "fully fledged"(c) gold maintainer (congratulations btw :) )
> > could you please take a look again?
> >
> > All tests pass on x86-64-gnu-linux.

They don't for me.  I see

`echo g++ -W -Wall    -Werror -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -fmerge-constants -g -O2   -o basic_static_test | sed -e 's/-Wp,-D_FORTIFY_SOURCE=[0-9][0-9]*//'` -Bgcctestdir/ -static basic_test.o
collect2: ld terminated with signal 6 [Aborted]
terminate called after throwing an instance of 'std::bad_alloc'
  what():  std::bad_alloc
make[5]: *** [basic_static_test] Error 1

On powerpc64 with a different compiler:
gold/stringpool.cc:220:23: error: ‘offset’ may be used uninitialized in this function [-Werror=uninitialized]
cc1plus: all warnings being treated as errors
and indeed the code is wrong.

Fixing new_key_offset() is easy, but the gold bootstrap test fails

(cd gcctestdir2 && ln -s ../ld1 ld)
g++ -m64 -W -Wall    -Werror -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -frandom-seed=ld2 -g -O2 -Bgcctestdir2/ -Wl,--build-id=tree -Wl,--build-id-chunk-size-for-treehash=12345 -Wl,--build-id-min-file-size-for-treehash=0   -o ld2 main.o powerpc.o libgold.a ../libiberty/libiberty.a    -ldl -lz 
gcctestdir2/ld: error: cannot find main.o
gcctestdir2/ld: error: cannot find powerpc.o
gcctestdir2/ld: error: cannot find libgold.a
gcctestdir2/ld: error: cannot find ../libiberty/libiberty.a
.zdebug_line: error: undefined reference to 'main'
collect2: error: ld returned 1 exit status

> > If ok, could someone commit please? I don't have commit access.
> 
> Committed on your behalf. Thanks!
> 
> -cary

-- 
Alan Modra
Australia Development Lab, IBM



More information about the Binutils mailing list