On Wed, 24 Sep 2025 13:23:00 GMT, Joachim Kern <[email protected]> wrote:

> After [JDK-8354686](https://bugs.openjdk.org/browse/JDK-8354686) the ubsan 
> vptr checks still did not work. We finally found out, that they only work, if 
> all linkage units are linked with the C++ compiler frontend as linker, 
> especially the main executables (java, javac, ...) which are linked with the 
> C compiler frontend.
> So for a ubsan enabled build on AIX we let everything link with the C++ 
> compiler frontend.
> Background: The C++ compiler frontend inherently adds special static 
> libraries which the C compiler does not. This results in missing symbols when 
> trying to start a program and its shared libraries, when they were linked in 
> mixed mode.

make/autoconf/jdk-options.m4 line 570:

> 568:   # In the ubsan case we have to link every binary with the C++-compiler 
> as linker, because inherently
> 569:   # the C-Compiler and the C++-compiler used as linker provide a 
> different set of ubsan exports.
> 570:   # Linkung an executable with the C-compiler and one of its shared 
> libraries with the C++-compiler

Suggestion:

  # Linking an executable with the C-compiler and one of its shared libraries 
with the C++-compiler

make/autoconf/jdk-options.m4 line 575:

> 573:       UBSAN_CFLAGS="$UBSAN_CFLAGS -DLLVM_SYMBOLIZER=$(dirname $(dirname 
> $CC))/tools/ibm-llvm-symbolizer"
> 574:       UBSAN_LDFLAGS="$UBSAN_LDFLAGS -Wl,-bbigtoc"
> 575:       LD="$LDCXX"

Indentation for blocks should be 2 spaces. 
https://openjdk.org/groups/build/doc/code-conventions.html
Suggestion:

    UBSAN_CFLAGS="$UBSAN_CFLAGS -DLLVM_SYMBOLIZER=$(dirname $(dirname 
$CC))/tools/ibm-llvm-symbolizer"
    UBSAN_LDFLAGS="$UBSAN_LDFLAGS -Wl,-bbigtoc"
    LD="$LDCXX"

-------------

PR Review Comment: https://git.openjdk.org/jdk/pull/27468#discussion_r2376669448
PR Review Comment: https://git.openjdk.org/jdk/pull/27468#discussion_r2376675889

Reply via email to