Bug#555801: gcj: Creates "dummy" variables.
Package: gcj-4.3
Version: 4.3.4-4
Severity: important
Hi,
When running the libtool regression tests, I get the following
error:
gcj -shared -Wl,--whole-archive ./.libs/liba1.a ./.libs/liba2.a -Wl,--no-whole-archive -Wl,-soname -Wl,liba12.so.0 -o .libs/liba12.so.0.0.0
./.libs/liba2.a(A2.o):(.rodata+0x0): multiple definition of `java resource .dummy'
./.libs/liba1.a(A1.o):(.rodata+0x0): first defined here collect2: ld returned 1 exit status
Looking at liba1.a I see:
Relocation section '.rela.text' at offset 0x1ad0 contains 3 entries:
Offset Info Type Sym. Value Sym. Name + Addend000000000005 002600000004 R_X86_64_PLT32 0000000000000000 _ZN4java4lang6ObjectC1 - 4
000000000023 002300000002 R_X86_64_PC32 0000000000000000 _ZGr8_$_dummy - 4
[...]
Symbol table '.symtab' contains 54 entries:
Num: Value Size Type Bind Vis Ndx Name
[...]
35: 0000000000000000 16 OBJECT GLOBAL HIDDEN 11 _ZGr8_$_dummy
There is nothing called "dummy" in the source file. The source
file is:
public class foo1 {
public static void main(String[] argv) {
A1 a1 = new A1();
}
}
It can also be reproduced with a file that just
has "public class foo1 {}"
gcj in stable (4.3.2-2) does not generate that symbol. A build
log of libtool with gcj version 4.3.3-3 does not show the error.
Kurt
Reply to: