< prev index next >

make/autoconf/flags.m4

Print this page
rev 47248 : 8187045: [linux] Not all libraries in the VM are linked with -z,noexecstack
Reviewed-by: ihse, dholmes


1294 
1295   $2LDFLAGS_JDKEXE="${$2LDFLAGS_JDK}"
1296 
1297   if test "x$TOOLCHAIN_TYPE" = xmicrosoft; then
1298     if test "x$OPENJDK_$1_CPU_BITS" = "x64"; then
1299       LDFLAGS_STACK_SIZE=1048576
1300     else
1301       LDFLAGS_STACK_SIZE=327680
1302     fi
1303     $2LDFLAGS_JDKEXE="${$2LDFLAGS_JDKEXE} /STACK:$LDFLAGS_STACK_SIZE"
1304   elif test "x$OPENJDK_$1_OS" = xlinux; then
1305     $2LDFLAGS_JDKEXE="[$]$2LDFLAGS_JDKEXE -Wl,--allow-shlib-undefined"
1306   fi
1307 
1308   $2LDFLAGS_JDKEXE="${$2LDFLAGS_JDKEXE} ${$2EXTRA_LDFLAGS_JDK}"
1309 
1310   # Customize LDFLAGS for libs
1311   $2LDFLAGS_JDKLIB="${$2LDFLAGS_JDK}"
1312 
1313   $2LDFLAGS_JDKLIB="${$2LDFLAGS_JDKLIB} ${SHARED_LIBRARY_FLAGS}"

1314   if test "x$TOOLCHAIN_TYPE" = xmicrosoft; then
1315     $2JAVA_BASE_LDFLAGS="${$2JAVA_BASE_LDFLAGS} \
1316         -libpath:${OUTPUT_ROOT}/support/modules_libs/java.base"
1317     $2JDKLIB_LIBS=""
1318   else
1319     $2JAVA_BASE_LDFLAGS="${$2JAVA_BASE_LDFLAGS} \
1320         -L\$(SUPPORT_OUTPUTDIR)/modules_libs/java.base"
1321 
1322     if test "x$1" = "xTARGET"; then
1323       # On some platforms (mac) the linker warns about non existing -L dirs.
1324       # For any of the variants server, client or minimal, the dir matches the
1325       # variant name. The "main" variant should be used for linking. For the
1326       # rest, the dir is just server.
1327       if HOTSPOT_CHECK_JVM_VARIANT(server) || HOTSPOT_CHECK_JVM_VARIANT(client) \
1328           || HOTSPOT_CHECK_JVM_VARIANT(minimal); then
1329         $2JAVA_BASE_LDFLAGS="${$2JAVA_BASE_LDFLAGS} \
1330             -L\$(SUPPORT_OUTPUTDIR)/modules_libs/java.base/$JVM_VARIANT_MAIN"
1331       else
1332         $2JAVA_BASE_LDFLAGS="${$2JAVA_BASE_LDFLAGS} \
1333             -L\$(SUPPORT_OUTPUTDIR)/modules_libs/java.base/server"


1371         wsock32.lib winmm.lib version.lib psapi.lib"
1372     fi
1373 
1374   # Set $2JVM_ASFLAGS
1375   if test "x$OPENJDK_$1_OS" = xlinux; then
1376     if test "x$OPENJDK_$1_CPU" = xx86; then
1377       $2JVM_ASFLAGS="[$]$2JVM_ASFLAGS -march=i586"
1378     fi
1379   elif test "x$OPENJDK_$1_OS" = xmacosx; then
1380     $2JVM_ASFLAGS="[$]$2JVM_ASFLAGS -x assembler-with-cpp -mno-omit-leaf-frame-pointer -mstack-alignment=16"
1381   fi
1382 
1383   $2LDFLAGS_JDKLIB="${$2LDFLAGS_JDKLIB} ${$2EXTRA_LDFLAGS_JDK}"
1384 
1385   AC_SUBST($2LDFLAGS_JDKLIB)
1386   AC_SUBST($2LDFLAGS_JDKEXE)
1387   AC_SUBST($2JDKLIB_LIBS)
1388   AC_SUBST($2JDKEXE_LIBS)
1389   AC_SUBST($2LDFLAGS_CXX_JDK)
1390   AC_SUBST($2LDFLAGS_HASH_STYLE)

1391 
1392   AC_SUBST($2JVM_CFLAGS)
1393   AC_SUBST($2JVM_LDFLAGS)
1394   AC_SUBST($2JVM_ASFLAGS)
1395   AC_SUBST($2JVM_LIBS)
1396 
1397 ])
1398 
1399 # FLAGS_C_COMPILER_CHECK_ARGUMENTS(ARGUMENT: [ARGUMENT], IF_TRUE: [RUN-IF-TRUE],
1400 #                                  IF_FALSE: [RUN-IF-FALSE])
1401 # ------------------------------------------------------------
1402 # Check that the C compiler supports an argument
1403 BASIC_DEFUN_NAMED([FLAGS_C_COMPILER_CHECK_ARGUMENTS],
1404     [*ARGUMENT IF_TRUE IF_FALSE], [$@],
1405 [
1406   AC_MSG_CHECKING([if the C compiler supports "ARG_ARGUMENT"])
1407   supports=yes
1408 
1409   saved_cflags="$CFLAGS"
1410   CFLAGS="$CFLAGS ARG_ARGUMENT"




1294 
1295   $2LDFLAGS_JDKEXE="${$2LDFLAGS_JDK}"
1296 
1297   if test "x$TOOLCHAIN_TYPE" = xmicrosoft; then
1298     if test "x$OPENJDK_$1_CPU_BITS" = "x64"; then
1299       LDFLAGS_STACK_SIZE=1048576
1300     else
1301       LDFLAGS_STACK_SIZE=327680
1302     fi
1303     $2LDFLAGS_JDKEXE="${$2LDFLAGS_JDKEXE} /STACK:$LDFLAGS_STACK_SIZE"
1304   elif test "x$OPENJDK_$1_OS" = xlinux; then
1305     $2LDFLAGS_JDKEXE="[$]$2LDFLAGS_JDKEXE -Wl,--allow-shlib-undefined"
1306   fi
1307 
1308   $2LDFLAGS_JDKEXE="${$2LDFLAGS_JDKEXE} ${$2EXTRA_LDFLAGS_JDK}"
1309 
1310   # Customize LDFLAGS for libs
1311   $2LDFLAGS_JDKLIB="${$2LDFLAGS_JDK}"
1312 
1313   $2LDFLAGS_JDKLIB="${$2LDFLAGS_JDKLIB} ${SHARED_LIBRARY_FLAGS}"
1314   $2LDFLAGS_JDKLIB="${$2LDFLAGS_JDKLIB} ${LDFLAGS_NO_EXEC_STACK}"
1315   if test "x$TOOLCHAIN_TYPE" = xmicrosoft; then
1316     $2JAVA_BASE_LDFLAGS="${$2JAVA_BASE_LDFLAGS} \
1317         -libpath:${OUTPUT_ROOT}/support/modules_libs/java.base"
1318     $2JDKLIB_LIBS=""
1319   else
1320     $2JAVA_BASE_LDFLAGS="${$2JAVA_BASE_LDFLAGS} \
1321         -L\$(SUPPORT_OUTPUTDIR)/modules_libs/java.base"
1322 
1323     if test "x$1" = "xTARGET"; then
1324       # On some platforms (mac) the linker warns about non existing -L dirs.
1325       # For any of the variants server, client or minimal, the dir matches the
1326       # variant name. The "main" variant should be used for linking. For the
1327       # rest, the dir is just server.
1328       if HOTSPOT_CHECK_JVM_VARIANT(server) || HOTSPOT_CHECK_JVM_VARIANT(client) \
1329           || HOTSPOT_CHECK_JVM_VARIANT(minimal); then
1330         $2JAVA_BASE_LDFLAGS="${$2JAVA_BASE_LDFLAGS} \
1331             -L\$(SUPPORT_OUTPUTDIR)/modules_libs/java.base/$JVM_VARIANT_MAIN"
1332       else
1333         $2JAVA_BASE_LDFLAGS="${$2JAVA_BASE_LDFLAGS} \
1334             -L\$(SUPPORT_OUTPUTDIR)/modules_libs/java.base/server"


1372         wsock32.lib winmm.lib version.lib psapi.lib"
1373     fi
1374 
1375   # Set $2JVM_ASFLAGS
1376   if test "x$OPENJDK_$1_OS" = xlinux; then
1377     if test "x$OPENJDK_$1_CPU" = xx86; then
1378       $2JVM_ASFLAGS="[$]$2JVM_ASFLAGS -march=i586"
1379     fi
1380   elif test "x$OPENJDK_$1_OS" = xmacosx; then
1381     $2JVM_ASFLAGS="[$]$2JVM_ASFLAGS -x assembler-with-cpp -mno-omit-leaf-frame-pointer -mstack-alignment=16"
1382   fi
1383 
1384   $2LDFLAGS_JDKLIB="${$2LDFLAGS_JDKLIB} ${$2EXTRA_LDFLAGS_JDK}"
1385 
1386   AC_SUBST($2LDFLAGS_JDKLIB)
1387   AC_SUBST($2LDFLAGS_JDKEXE)
1388   AC_SUBST($2JDKLIB_LIBS)
1389   AC_SUBST($2JDKEXE_LIBS)
1390   AC_SUBST($2LDFLAGS_CXX_JDK)
1391   AC_SUBST($2LDFLAGS_HASH_STYLE)
1392   AC_SUBST($2LDFLAGS_NO_EXEC_STACK)
1393 
1394   AC_SUBST($2JVM_CFLAGS)
1395   AC_SUBST($2JVM_LDFLAGS)
1396   AC_SUBST($2JVM_ASFLAGS)
1397   AC_SUBST($2JVM_LIBS)
1398 
1399 ])
1400 
1401 # FLAGS_C_COMPILER_CHECK_ARGUMENTS(ARGUMENT: [ARGUMENT], IF_TRUE: [RUN-IF-TRUE],
1402 #                                  IF_FALSE: [RUN-IF-FALSE])
1403 # ------------------------------------------------------------
1404 # Check that the C compiler supports an argument
1405 BASIC_DEFUN_NAMED([FLAGS_C_COMPILER_CHECK_ARGUMENTS],
1406     [*ARGUMENT IF_TRUE IF_FALSE], [$@],
1407 [
1408   AC_MSG_CHECKING([if the C compiler supports "ARG_ARGUMENT"])
1409   supports=yes
1410 
1411   saved_cflags="$CFLAGS"
1412   CFLAGS="$CFLAGS ARG_ARGUMENT"


< prev index next >