On 2016-10-12 04:38, David Holmes wrote:
On 11/10/2016 7:41 PM, Erik Joelsson wrote:
Hello,

After the cleanup of C++ linking with the GCC toolchain. We missed
updating one instance with the correct TOOLCHAIN configuration. This
leads to build failures for arm ports with slowdebug. I have no idea why
it only happens there, but correcting the TOOLCHAIN configuration (so
that g++ is used to link instead of gcc) makes it build again.

Unexplained errors raise alarm bells for me. This particular reference relates to C++ exception handling which raises questions:

- why only on this platform?
- why only in slowdebug?
- why only in this code? (which seems unrelated to exceptions)

I agree the fix is to use g++ instead of gcc for linking, assuming the exception related code should actually be there.
The alarm bells ringed for me too. :-) I actually started debugging this one, but Erik beat me to it. :) I did however conclude that this error occured due to static linking (without it, everything went fine) and if I explicitely specified -lstdc++ as well, I got a more informative error, telling me that the static version of libgcc was not found. I didn't go further, since Erik found the (correct) solution, but I assume that the devkit we use to build for the arm platforms are missing some bits, which was only needed for slowdebug builds.

/Magnus


Thanks,
David

The build error looks like this:

/localhome/hg/jdk9-dev-CDR/build/linux-arm64-slowdebug/support/native/jdk.pack200/unpackexe/bands.o:(.data.DW.ref.__gxx_personality_v0[DW.ref.__gxx_personality_v0]+0x0):
undefined reference to `__gxx_personality_v0'
collect2: error: ld returned 1 exit status

Bug: https://bugs.openjdk.java.net/browse/JDK-8167479

Webrev: http://cr.openjdk.java.net/~erikj/8167479/webrev.01/

/Erik


Reply via email to