< prev index next >

make/autoconf/flags-ldflags.m4

Print this page
8209817: stack is executable when building with Clang on Linux
Reviewed-by: dholmes, martin, mikael, ihse
Contributed-by: Arthur Eubanks <aeubanks@google.com>

*** 72,85 **** fi # Add -z defs, to forbid undefined symbols in object files. BASIC_LDFLAGS="$BASIC_LDFLAGS -Wl,-z,defs" ! BASIC_LDFLAGS_JVM_ONLY="-Wl,-z,noexecstack -Wl,-O1 -Wl,-z,relro" - BASIC_LDFLAGS_JDK_LIB_ONLY="-Wl,-z,noexecstack" - LIBJSIG_NOEXECSTACK_LDFLAGS="-Wl,-z,noexecstack" elif test "x$TOOLCHAIN_TYPE" = xclang; then BASIC_LDFLAGS_JVM_ONLY="-mno-omit-leaf-frame-pointer -mstack-alignment=16 \ -fPIC" --- 72,83 ---- fi # Add -z defs, to forbid undefined symbols in object files. BASIC_LDFLAGS="$BASIC_LDFLAGS -Wl,-z,defs" ! BASIC_LDFLAGS_JVM_ONLY="-Wl,-O1 -Wl,-z,relro" elif test "x$TOOLCHAIN_TYPE" = xclang; then BASIC_LDFLAGS_JVM_ONLY="-mno-omit-leaf-frame-pointer -mstack-alignment=16 \ -fPIC"
*** 101,110 **** --- 99,114 ---- BASIC_LDFLAGS="-nologo -opt:ref" BASIC_LDFLAGS_JDK_ONLY="-incremental:no" BASIC_LDFLAGS_JVM_ONLY="-opt:icf,8 -subsystem:windows" fi + if test "x$TOOLCHAIN_TYPE" = xgcc || test "x$TOOLCHAIN_TYPE" = xclang; then + if test -n "$HAS_NOEXECSTACK"; then + BASIC_LDFLAGS="$BASIC_LDFLAGS -Wl,-z,noexecstack" + fi + fi + # Setup OS-dependent LDFLAGS if test "x$TOOLCHAIN_TYPE" = xclang || test "x$TOOLCHAIN_TYPE" = xgcc; then if test "x$OPENJDK_TARGET_OS" = xmacosx; then # Assume clang or gcc. # FIXME: We should really generalize SET_SHARED_LIBRARY_ORIGIN instead.
< prev index next >