Hi Omair!
On 4/29/2011 3:59 PM, Omair Majid wrote:
Hi,
http://cr.openjdk.java.net/~omajid/webrevs/gcc-46-support/
The patch adds support for building hotspot with gcc 4.6. gcc 4.6
changed how arguments are handled. It now treats -export-dynamic as it
treats any other -efoo option: it thinks xport-dynamic is the entry
point and passes this information to the linker. Since -export-dynamic
is not passed to the linker, not all symbols will be exported by the
linker. The bfd-based linker, given the invalid entry point
xport-dynamic, simply ignores it. The gold linker, however, crashes
causing the build to fail.
Since -export-dynamic is a linker option, the correct way to pass it
is using -Wl,-export-dynamic (or -Xlinker -export-dynamic). We have
had this patch in IcedTea6 for a while now, but it would be nice if
this was in OpenJDK too.
Seems like your change should be surrounded by an ifneq that enables
your change for 4.6 and later
Example elsewhere in the file
129 # Except for a few acceptable ones
130 # Since GCC 4.3, -Wconversion has changed its meanings to warn these
implicit
131 # conversions which might affect the values. To avoid that, we need to
turn
132 # it off explicitly.
133 ifneq "$(shell expr \( $(CC_VER_MAJOR) \> 4 \) \| \( \( $(CC_VER_MAJOR) = 4 \) \& \(
$(CC_VER_MINOR) \>= 3 \) \))" "0"
134 ACCEPTABLE_WARNINGS = -Wpointer-arith -Wsign-compare
135 else
136 ACCEPTABLE_WARNINGS = -Wpointer-arith -Wconversion -Wsign-compare
137 endif
Thanks
Dave