Ok, I think I found the problem: In hotspot/make/defs.make, the following lines:
# Windows should have OS predefined ifeq ($(OS),) OS := $(shell uname -s) ifneq ($(findstring BSD,$(OS)),) OS=bsd endif ifeq ($(OS), Darwin) OS=bsd endif HOST := $(shell uname -n) endif # If not SunOS, not Linux not BSD and not AIX, assume Windows ifneq ($(OS), Linux) ifneq ($(OS), SunOS) ifneq ($(OS), bsd) ifneq ($(OS), AIX) OSNAME=windows else OSNAME=aix endif else OSNAME=bsd endif else OSNAME=solaris endif else OSNAME=linux endif I added the following after the first block: $(info $$OS is [${OS}]) In the build logs, I saw $OS is [linux] Note the lower-case first letter. Thus, it will not be detected as being on linux. As for why the first letter is lower-case, I haven't a clue. On 09/09/14 15:51, Eric McCorkle wrote: > On 08/24/14 20:31, David Holmes wrote: >> On 22/08/2014 1:12 AM, Eric McCorkle wrote: >>> Possible lead: it seems hotspot/make/defs.make defaults to Windows if it >>> doesn't recognize the $OS variable. >>> >>> 1) It should throw an error in that case >>> 2) I checked on Jenkins, and the PATH seems fine, and uname -s run as a >>> script works fine. Could it be something about make is causing uname -s >>> to behave funny? >> >> Check the contents of the generated spec.gmk and hotspot-spec.gmk. I've >> never seen anything like this. > > Coming back late... > > > Here is spec.gmk: > > # > # Copyright (c) 2011, 2014, Oracle and/or its affiliates. All rights > reserved. > # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. > # > # This code is free software; you can redistribute it and/or modify it > # under the terms of the GNU General Public License version 2 only, as > # published by the Free Software Foundation. Oracle designates this > # particular file as subject to the "Classpath" exception as provided > # by Oracle in the LICENSE file that accompanied this code. > # > # This code is distributed in the hope that it will be useful, but WITHOUT > # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or > # FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License > # version 2 for more details (a copy is included in the LICENSE file that > # accompanied this code). > # > # You should have received a copy of the GNU General Public License version > # 2 along with this work; if not, write to the Free Software Foundation, > # Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. > # > # Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA > # or visit www.oracle.com if you need additional information or have any > # questions. > # > > # Configured Tue Sep 9 12:37:12 PDT 2014 to build > # for target system linux-x86_64 > # (called x86_64-unknown-linux-gnu by autoconf) > # on build system linux-x86_64 > # (called x86_64-unknown-linux-gnu by autoconf) > # using 'configure > --prefix=/scratch/jenkins/workspaces/jdk9/XRTSRJ9UFLOX/OS/linux/arch/x86-64/staging > --exec-prefix=/scratch/jenkins/workspaces/jdk9/XRTSRJ9UFLOX/OS/linux/arch/x86-64/staging' > > # When calling macros, the spaces between arguments are > # often semantically important! Sometimes we need to subst > # spaces and commas, therefore we need the following macros. > X:= > SPACE:=$(X) $(X) > COMMA:=, > HASH:=\# > LEFT_PAREN:=( > RIGHT_PAREN:=) > SQUOTE:=' > #' > DQUOTE:=" > #" > define NEWLINE > > > endef > > # The command line given to configure. > CONFIGURE_COMMAND_LINE:=--prefix=/scratch/jenkins/workspaces/jdk9/XRTSRJ9UFLOX/OS/linux/arch/x86-64/staging > --exec-prefix=/scratch/jenkins/workspaces/jdk9/XRTSRJ9UFLOX/OS/linux/arch/x86-64/staging > > # A self-referential reference to this file. > SPEC:=/scratch/jenkins/workspaces/jdk9/XRTSRJ9UFLOX/OS/linux/arch/x86-64/build/linux-x86_64-normal-server-release/spec.gmk > > # Specify where the spec file is. > MAKE_ARGS="SPEC=$(SPEC)" > > MAKE:=/usr/bin/gmake > > # Pass along the verbosity and log level settings. > ifeq (,$(findstring VERBOSE=,$(MAKE))) > MAKE:=$(MAKE) $(VERBOSE) VERBOSE="$(VERBOSE)" LOG_LEVEL="$(LOG_LEVEL)" > endif > > # No implicit variables or rules! > ifeq (,$(findstring -R,$(MAKE))) > MAKE:=$(MAKE) -R > endif > > # Specify where the common include directory for makefiles is. > ifeq (,$(findstring -I > /scratch/jenkins/workspaces/jdk9/XRTSRJ9UFLOX/OS/linux/arch/x86-64/make/common,$(MAKE))) > MAKE:=$(MAKE) -I > /scratch/jenkins/workspaces/jdk9/XRTSRJ9UFLOX/OS/linux/arch/x86-64/make/common > endif > > OUTPUT_SYNC_SUPPORTED:=false > OUTPUT_SYNC:= > > # The "human readable" name of this configuration > CONF_NAME:=linux-x86_64-normal-server-release > > # The built jdk will run in this target system. > OPENJDK_TARGET_OS:=linux > OPENJDK_TARGET_OS_API:=posix > OPENJDK_TARGET_OS_ENV:=linux > > OPENJDK_TARGET_CPU:=x86_64 > OPENJDK_TARGET_CPU_ARCH:=x86 > OPENJDK_TARGET_CPU_BITS:=64 > OPENJDK_TARGET_CPU_ENDIAN:=little > > COMPILE_TYPE:=native > > # Legacy support > OPENJDK_TARGET_CPU_ISADIR:= > OPENJDK_TARGET_CPU_LIBDIR:=/amd64 > OPENJDK_TARGET_CPU_LEGACY:=amd64 > OPENJDK_TARGET_CPU_LEGACY_LIB:=amd64 > OPENJDK_TARGET_CPU_OSARCH:=amd64 > OPENJDK_TARGET_CPU_JLI_CFLAGS:=-DLIBARCHNAME='"amd64"' > OPENJDK_TARGET_OS_API_DIR:=unix > OPENJDK_TARGET_OS_EXPORT_DIR:=unix > > # We are building on this build system. > # When not cross-compiling, it is the same as the target. > OPENJDK_BUILD_OS:=linux > OPENJDK_BUILD_OS_API:=posix > OPENJDK_BUILD_OS_ENV:=linux > > OPENJDK_BUILD_CPU:=x86_64 > OPENJDK_BUILD_CPU_ARCH:=x86 > OPENJDK_BUILD_CPU_BITS:=64 > OPENJDK_BUILD_CPU_ENDIAN:=little > > # Legacy OS values for use in release file. > REQUIRED_OS_NAME:=Linux > REQUIRED_OS_VERSION:=2.6 > > OPENJDK=true > LIBM:=-lm > LIBDL:=-ldl > > # colon or semicolon > PATH_SEP:=: > > ifeq ($(OPENJDK_TARGET_OS), windows) > # On Windows, the Visual Studio toolchain needs the LIB and INCLUDE > # environment variables (in Windows path style), and the PATH needs to > # be adjusted to include Visual Studio tools (but this needs to be in > # cygwin/msys style). > export PATH:= > export INCLUDE:= > export LIB:= > endif > > SYSROOT_CFLAGS := > SYSROOT_LDFLAGS := > > # Paths to the source code > ADD_SRC_ROOT:= > OVERRIDE_SRC_ROOT:= > > # The top-level directory of the forest (SRC_ROOT is a traditional alias) > TOPDIR:=/scratch/jenkins/workspaces/jdk9/XRTSRJ9UFLOX/OS/linux/arch/x86-64 > SRC_ROOT:=/scratch/jenkins/workspaces/jdk9/XRTSRJ9UFLOX/OS/linux/arch/x86-64 > > OUTPUT_ROOT:=/scratch/jenkins/workspaces/jdk9/XRTSRJ9UFLOX/OS/linux/arch/x86-64/build/linux-x86_64-normal-server-release > JDK_TOPDIR:=/scratch/jenkins/workspaces/jdk9/XRTSRJ9UFLOX/OS/linux/arch/x86-64/jdk > LANGTOOLS_TOPDIR:=/scratch/jenkins/workspaces/jdk9/XRTSRJ9UFLOX/OS/linux/arch/x86-64/langtools > CORBA_TOPDIR:=/scratch/jenkins/workspaces/jdk9/XRTSRJ9UFLOX/OS/linux/arch/x86-64/corba > JAXP_TOPDIR:=/scratch/jenkins/workspaces/jdk9/XRTSRJ9UFLOX/OS/linux/arch/x86-64/jaxp > JAXWS_TOPDIR:=/scratch/jenkins/workspaces/jdk9/XRTSRJ9UFLOX/OS/linux/arch/x86-64/jaxws > HOTSPOT_TOPDIR:=/scratch/jenkins/workspaces/jdk9/XRTSRJ9UFLOX/OS/linux/arch/x86-64/hotspot > NASHORN_TOPDIR:=/scratch/jenkins/workspaces/jdk9/XRTSRJ9UFLOX/OS/linux/arch/x86-64/nashorn > COPYRIGHT_YEAR:=2014 > > # Information gathered from the version.numbers file. > JDK_MAJOR_VERSION:=1 > JDK_MINOR_VERSION:=9 > JDK_MICRO_VERSION:=0 > JDK_UPDATE_VERSION:= > JDK_BUILD_NUMBER:=b00 > MILESTONE:=internal > LAUNCHER_NAME:=openjdk > PRODUCT_NAME:=OpenJDK > PRODUCT_SUFFIX:=Runtime Environment > JDK_RC_PLATFORM_NAME:=Platform > COMPANY_NAME:=N/A > MACOSX_BUNDLE_NAME_BASE=OpenJDK > MACOSX_BUNDLE_ID_BASE=net.java.openjdk > USER_RELEASE_SUFFIX=jenkins_2014_09_09_12_37 > > # Different version strings generated from the above information. > JDK_VERSION:=1.9.0 > RUNTIME_NAME=$(PRODUCT_NAME) $(PRODUCT_SUFFIX) > COOKED_BUILD_NUMBER:=0 > # These variables need to be generated here so that MILESTONE and > # JDK_BUILD_NUMBER can be overridden on the make command line. > ifeq ($(MILESTONE), fcs) > RELEASE=$(JDK_VERSION)$(BUILD_VARIANT_RELEASE) > else > RELEASE=$(JDK_VERSION)-$(MILESTONE)$(BUILD_VARIANT_RELEASE) > endif > > ifneq ($(USER_RELEASE_SUFFIX), ) > FULL_VERSION=$(RELEASE)-$(USER_RELEASE_SUFFIX)-$(JDK_BUILD_NUMBER) > else > FULL_VERSION=$(RELEASE)-$(JDK_BUILD_NUMBER) > endif > JRE_RELEASE_VERSION:=$(FULL_VERSION) > > # How to compile the code: release, fastdebug or slowdebug > DEBUG_LEVEL:=release > > # This is the JDK variant to build. > # The JDK variant is a name for a specific set of modules to be compiled > for the JDK. > JDK_VARIANT:=normal > > # Should we compile support for running with a graphical UI? (ie headful) > # Should we compile support for running without? (ie headless) > SUPPORT_HEADFUL:=yes > SUPPORT_HEADLESS:=yes > # Legacy defines controlled by the SUPPORT_HEADLESS and SUPPORT_HEADFUL > options. > BUILD_HEADLESS:=true > > # These are the libjvms that we want to build. > # The java launcher uses the default. > # The others can be selected by specifying -client -server -minimal1 > -kernel -zero or -zeroshark > # on the java launcher command line. > JVM_VARIANTS:=,server, > JVM_VARIANT_SERVER:=true > JVM_VARIANT_CLIENT:=false > JVM_VARIANT_MINIMAL1:=false > JVM_VARIANT_KERNEL:=false > JVM_VARIANT_ZERO:=false > JVM_VARIANT_ZEROSHARK:=false > JVM_VARIANT_CORE:=false > > # Universal binaries on macosx > MACOSX_UNIVERSAL= > > # Legacy setting: -debug or -fastdebug > # Still used in version string... > BUILD_VARIANT_RELEASE:= > > # JDK_OUTPUTDIR specifies where a working jvm is built. > # You can run $(JDK_OUTPUTDIR)/bin/java > # Though the layout of the contents of $(JDK_OUTPUTDIR) is not > # yet the same as a default installation. > # > # When you run "make install" it will create the standardized > # layout for the jdk and the jre inside the IMAGES_OUTPUTDIR subdir. > # Then it will copy the contents of the jdk into the installation > # directory. > > BUILD_OUTPUT:=/scratch/jenkins/workspaces/jdk9/XRTSRJ9UFLOX/OS/linux/arch/x86-64/build/linux-x86_64-normal-server-release > # Colon left out to be able to override IMAGES_OUTPUTDIR for > bootcycle-images > LANGTOOLS_OUTPUTDIR=$(BUILD_OUTPUT)/langtools > CORBA_OUTPUTDIR=$(BUILD_OUTPUT)/corba > JAXP_OUTPUTDIR=$(BUILD_OUTPUT)/jaxp > JAXWS_OUTPUTDIR=$(BUILD_OUTPUT)/jaxws > HOTSPOT_OUTPUTDIR=$(BUILD_OUTPUT)/hotspot > JDK_OUTPUTDIR=$(BUILD_OUTPUT)/jdk > NASHORN_OUTPUTDIR=$(BUILD_OUTPUT)/nashorn > IMAGES_OUTPUTDIR=$(BUILD_OUTPUT)/images > TESTMAKE_OUTPUTDIR=$(BUILD_OUTPUT)/testmake > > LANGTOOLS_DIST=$(LANGTOOLS_OUTPUTDIR)/dist > CORBA_DIST=$(CORBA_OUTPUTDIR)/dist > JAXP_DIST=$(JAXP_OUTPUTDIR)/dist > JAXWS_DIST=$(JAXWS_OUTPUTDIR)/dist > HOTSPOT_DIST=/scratch/jenkins/workspaces/jdk9/XRTSRJ9UFLOX/OS/linux/arch/x86-64/build/linux-x86_64-normal-server-release/hotspot/dist > NASHORN_DIST=$(NASHORN_OUTPUTDIR)/dist > > BUILD_HOTSPOT=true > > # The boot jdk to use > BOOT_JDK:=/usr/share/java-1.8.0 > BOOT_RTJAR:=/usr/share/java-1.8.0/jre/lib/rt.jar > BOOT_TOOLSJAR=$(BOOT_JDK)/lib/tools.jar > > # When compiling Java source to be run by the boot jdk > # use these extra flags, eg -source 6 -target 6 > BOOT_JDK_SOURCETARGET:=-source 8 -target 8 > > # Information about the build system > NUM_CORES:=8 > MEMORY_SIZE:=64301 > # Enable sjavac support = use a javac server, > # multi core javac compilation and dependency tracking. > ENABLE_SJAVAC:=no > # Store sjavac server synchronization files here, and > # the sjavac server log files. > SJAVAC_SERVER_DIR:= > > # Number of parallel jobs to use for compilation > JOBS?=7 > > FREETYPE_LIBS:=-lfreetype > FREETYPE_CFLAGS:=-I/usr/include/freetype2 > FREETYPE_BUNDLE_LIB_PATH= > CUPS_CFLAGS:= > ALSA_LIBS:=-lasound > ALSA_CFLAGS:=-I/usr/include/alsa > > PACKAGE_PATH=/opt/local > > # Source file for cacerts > CACERTS_FILE= > > # Enable unlimited crypto policy > UNLIMITED_CRYPTO=false > > # Enable RMIConnector IIOP transport > RMICONNECTOR_IIOP=false > > # Necessary additional compiler flags to compile X11 > X_CFLAGS:= > X_LIBS:= > > # The lowest required version of macosx to enforce compatiblity for > MACOSX_VERSION_MIN= > > # Toolchain type: gcc, clang, solstudio, lxc, microsoft... > TOOLCHAIN_TYPE:=gcc > > # Option used to tell the compiler whether to create 32- or 64-bit > executables > COMPILER_TARGET_BITS_FLAG:=-m > COMPILER_SUPPORTS_TARGET_BITS_FLAG=true > > CC_OUT_OPTION:=-o$(SPACE) > EXE_OUT_OPTION:=-o$(SPACE) > LD_OUT_OPTION:=-o$(SPACE) > AR_OUT_OPTION:=rcs$(SPACE) > > # Flags used for overriding the default opt setting for a C/C++ source file. > C_O_FLAG_HIGHEST:=-O3 > C_O_FLAG_HI:=-O3 > C_O_FLAG_NORM:=-O2 > C_O_FLAG_NONE:=-O0 > CXX_O_FLAG_HIGHEST:=-O3 > CXX_O_FLAG_HI:=-O3 > CXX_O_FLAG_NORM:=-O2 > CXX_O_FLAG_NONE:=-O0 > > C_FLAG_DEPS:=-MMD -MF > CXX_FLAG_DEPS:=-MMD -MF > > CFLAGS_WARNINGS_ARE_ERRORS:=-Werror > > # Tools that potentially need to be cross compilation aware. > CC:= /usr/bin/gcc > > # CFLAGS used to compile the jdk native libraries (C-code) > CFLAGS_JDKLIB:= -Wall -Wno-parentheses -Wextra -Wno-unused > -Wno-unused-parameter -Wformat=2 -pipe -D_GNU_SOURCE > -D_REENTRANT -D_LARGEFILE64_SOURCE -fno-omit-frame-pointer -D_LP64=1 > -D_LITTLE_ENDIAN -DLINUX -DARCH='"amd64"' -Damd64 -DNDEBUG > -DRELEASE='"$(RELEASE)"' > -I/scratch/jenkins/workspaces/jdk9/XRTSRJ9UFLOX/OS/linux/arch/x86-64/jdk/src/java.base/share/native/include > > -I/scratch/jenkins/workspaces/jdk9/XRTSRJ9UFLOX/OS/linux/arch/x86-64/jdk/src/java.base/linux/native/include > > -I/scratch/jenkins/workspaces/jdk9/XRTSRJ9UFLOX/OS/linux/arch/x86-64/jdk/src/java.base/unix/native/include > -fno-strict-aliasing -fPIC > CXXFLAGS_JDKLIB:= -Wall -Wno-parentheses -Wextra -Wno-unused > -Wno-unused-parameter -Wformat=2 -pipe -D_GNU_SOURCE > -D_REENTRANT -D_LARGEFILE64_SOURCE -fno-omit-frame-pointer -D_LP64=1 > -D_LITTLE_ENDIAN -DLINUX -DARCH='"amd64"' -Damd64 -DNDEBUG > -DRELEASE='"$(RELEASE)"' > -I/scratch/jenkins/workspaces/jdk9/XRTSRJ9UFLOX/OS/linux/arch/x86-64/jdk/src/java.base/share/native/include > > -I/scratch/jenkins/workspaces/jdk9/XRTSRJ9UFLOX/OS/linux/arch/x86-64/jdk/src/java.base/linux/native/include > > -I/scratch/jenkins/workspaces/jdk9/XRTSRJ9UFLOX/OS/linux/arch/x86-64/jdk/src/java.base/unix/native/include > -fPIC > > # CFLAGS used to compile the jdk native launchers (C-code) > CFLAGS_JDKEXE:= -Wall -Wno-parentheses -Wextra -Wno-unused > -Wno-unused-parameter -Wformat=2 -pipe -D_GNU_SOURCE > -D_REENTRANT -D_LARGEFILE64_SOURCE -fno-omit-frame-pointer -D_LP64=1 > -D_LITTLE_ENDIAN -DLINUX -DARCH='"amd64"' -Damd64 -DNDEBUG > -DRELEASE='"$(RELEASE)"' > -I/scratch/jenkins/workspaces/jdk9/XRTSRJ9UFLOX/OS/linux/arch/x86-64/jdk/src/java.base/share/native/include > > -I/scratch/jenkins/workspaces/jdk9/XRTSRJ9UFLOX/OS/linux/arch/x86-64/jdk/src/java.base/linux/native/include > > -I/scratch/jenkins/workspaces/jdk9/XRTSRJ9UFLOX/OS/linux/arch/x86-64/jdk/src/java.base/unix/native/include > -fno-strict-aliasing > CXXFLAGS_JDKEXE:= -Wall -Wno-parentheses -Wextra -Wno-unused > -Wno-unused-parameter -Wformat=2 -pipe -D_GNU_SOURCE > -D_REENTRANT -D_LARGEFILE64_SOURCE -fno-omit-frame-pointer -D_LP64=1 > -D_LITTLE_ENDIAN -DLINUX -DARCH='"amd64"' -Damd64 -DNDEBUG > -DRELEASE='"$(RELEASE)"' > -I/scratch/jenkins/workspaces/jdk9/XRTSRJ9UFLOX/OS/linux/arch/x86-64/jdk/src/java.base/share/native/include > > -I/scratch/jenkins/workspaces/jdk9/XRTSRJ9UFLOX/OS/linux/arch/x86-64/jdk/src/java.base/linux/native/include > > -I/scratch/jenkins/workspaces/jdk9/XRTSRJ9UFLOX/OS/linux/arch/x86-64/jdk/src/java.base/unix/native/include > > > CXX:= /usr/bin/g++ > #CXXFLAGS:= -I/usr/include/freetype2 > > OBJC:= > #OBJCFLAGS:= > > CPP:= /usr/bin/gcc -E > #CPPFLAGS:= > > # The linker can be gcc or ld on posix systems, or link.exe on windows > systems. > LD:= /usr/bin/gcc > > # Xcode SDK path > SDKROOT:= > > # The linker on older SuSE distros (e.g. on SLES 10) complains with: > # "Invalid version tag `SUNWprivate_1.1'. Only anonymous version tag is > allowed in executable." > # if feeded with a version script which contains named tags. > USING_BROKEN_SUSE_LD:=no > > # LDFLAGS used to link the jdk native libraries (C-code) > LDFLAGS_JDKLIB:= -Xlinker --hash-style=both -Xlinker -z -Xlinker defs > -Xlinker -O1 -shared > -L/scratch/jenkins/workspaces/jdk9/XRTSRJ9UFLOX/OS/linux/arch/x86-64/build/linux-x86_64-normal-server-release/jdk/lib/amd64 > -L/scratch/jenkins/workspaces/jdk9/XRTSRJ9UFLOX/OS/linux/arch/x86-64/build/linux-x86_64-normal-server-release/jdk/lib/amd64/server > LDFLAGS_JDKLIB_SUFFIX:=-ljava -ljvm > > # On some platforms the linker cannot be used to create executables, thus > # the need for a separate LDEXE command. > LDEXE:= /usr/bin/gcc > > # LDFLAGS used to link the jdk native launchers (C-code) > LDFLAGS_JDKEXE:= -Xlinker --hash-style=both -Xlinker -z -Xlinker defs > -Xlinker -O1 -Xlinker --allow-shlib-undefined > LDFLAGS_JDKEXE_SUFFIX:= > > # LDFLAGS specific to C++ linking. > LDFLAGS_CXX_JDK:= > > # Sometimes a different linker is needed for c++ libs > LDCXX:= /usr/bin/gcc > # The flags for linking libstdc++ linker. > LIBCXX:= -Wl,-Bstatic -lstdc++ -lgcc -Wl,-Bdynamic > > # Sometimes a different linker is needed for c++ executables > LDEXECXX:= /usr/bin/g++ > > # BUILD_CC/BUILD_LD is a compiler/linker that generates code that is > runnable on the > # build platform. > BUILD_CC:= /usr/bin/gcc > BUILD_LD:= /usr/bin/gcc > > AS:= /usr/bin/gcc -c > > # AR is used to create a static library (is ar in posix, lib.exe in windows) > AR:= /usr/bin/ar > ARFLAGS:= > > NM:=/usr/bin/nm > GNM:=/usr/bin/nm > STRIP:=/usr/bin/strip > MCS:= > > LIPO:= > > # Command to create a shared library > SHARED_LIBRARY_FLAGS:=-shared > > # Options to linker to specify a mapfile. > # (Note absence of := assignment, because we do not want to evaluate the > macro body here) > SET_SHARED_LIBRARY_MAPFILE=-Xlinker -version-script=$1 > > # Options for C/CXX compiler to be used if linking is performed > # using reorder file > C_FLAG_REORDER:= > CXX_FLAG_REORDER:= > > # > # Options for generating debug symbols > ENABLE_DEBUG_SYMBOLS:=true > CFLAGS_DEBUG_SYMBOLS:=-g > CXXFLAGS_DEBUG_SYMBOLS:=-g > ZIP_DEBUGINFO_FILES:=true > > # > # Compress (or not) jars > COMPRESS_JARS=false > > # Options to linker to specify the library name. > # (Note absence of := assignment, because we do not want to evaluate the > macro body here) > SET_SHARED_LIBRARY_NAME=-Xlinker -soname=$1 > > # Set origin using the linker, ie use the relative path to the dependent > library to find the dependees. > # (Note absence of := assignment, because we do not want to evaluate the > macro body here) > SET_SHARED_LIBRARY_ORIGIN=-Xlinker -z -Xlinker origin -Xlinker -rpath > -Xlinker \$$$$ORIGIN$1 > SET_EXECUTABLE_ORIGIN=-Xlinker -rpath -Xlinker \$$$$ORIGIN$1 > > # Different OS:es have different ways of naming shared libraries. > # The SHARED_LIBRARY macro takes "verify" as and argument and returns: > # "libverify.so" or "libverify.dylib" or "verify.dll" depending on > platform. > # (Note absence of := assignment, because we do not want to evaluate the > macro body here) > SHARED_LIBRARY=lib$1.so > STATIC_LIBRARY=lib$1.a > LIBRARY_PREFIX:=lib > SHARED_LIBRARY_SUFFIX:=.so > STATIC_LIBRARY_SUFFIX:=.a > EXE_SUFFIX:= > OBJ_SUFFIX:=.o > > POST_STRIP_CMD:=/usr/bin/strip -g > POST_MCS_CMD:= > > JAVA_FLAGS:= > JAVA_FLAGS_BIG:= -Xms64M -Xmx1600M -XX:ThreadStackSize=1536 > JAVA_FLAGS_SMALL:= -XX:+UseSerialGC -Xms32M -Xmx512M > JAVA_TOOL_FLAGS_SMALL:= -J-XX:+UseSerialGC -J-Xms32M -J-Xmx512M > > JAVA= /usr/share/java-1.8.0/bin/java $(JAVA_FLAGS_BIG) $(JAVA_FLAGS) > JAVA_SMALL= /usr/share/java-1.8.0/bin/java $(JAVA_FLAGS_SMALL) $(JAVA_FLAGS) > > JAVAC:= /usr/share/java-1.8.0/bin/javac > # Hotspot sets this variable before reading the SPEC when compiling > sa-jdi.jar. Avoid > # overriding that value by using ?=. > JAVAC_FLAGS?= > > JAVAH:= /usr/share/java-1.8.0/bin/javah > > JAR:= /usr/share/java-1.8.0/bin/jar > > NATIVE2ASCII:= /usr/share/java-1.8.0/bin/native2ascii > $(JAVA_TOOL_FLAGS_SMALL) > > JARSIGNER:= /usr/share/java-1.8.0/bin/jarsigner > > # You run the new javac using the boot jdk with $(BOOT_JDK)/bin/java > $(NEW_JAVAC) ... > INTERIM_LANGTOOLS_JAR := $(LANGTOOLS_OUTPUTDIR)/dist/interim_langtools.jar > INTERIM_LANGTOOLS_ARGS := "-Xbootclasspath/p:$(INTERIM_LANGTOOLS_JAR)" > -cp $(INTERIM_LANGTOOLS_JAR) > NEW_JAVAC = $(INTERIM_LANGTOOLS_ARGS) com.sun.tools.javac.Main > NEW_JAVADOC = $(INTERIM_LANGTOOLS_ARGS) com.sun.tools.javadoc.Main > > # The interim corba jar is needed for running rmic > INTERIM_CORBA_JAR := $(CORBA_OUTPUTDIR)/dist/interim_corba.jar > > # Base flags for RC > # Guarding this against resetting value. Legacy make files include spec > multiple > # times. > ifndef RC_FLAGS > RC_FLAGS:= > endif > > # A specific java binary with specific options can be used to run > # the long running background sjavac servers and other long running tasks. > SJAVAC_SERVER_JAVA:= /usr/share/java-1.8.0/bin/java -d64 -Xms512M -Xmx2048M > > # Tools adhering to a minimal and common standard of posix compliance. > AWK:=gawk > BASENAME:=/bin/basename > BASH:=/bin/bash > CAT:=/bin/cat > CCACHE:= > # CD is going away, but remains to cater for legacy makefiles. > CD:=cd > CHMOD:=/bin/chmod > CODESIGN:= > COMM:=/usr/bin/comm > CP:=/bin/cp > CPIO:=/bin/cpio > CUT:=/bin/cut > DATE:=/bin/date > DIFF:=/usr/bin/diff > DIRNAME:=/usr/bin/dirname > DSYMUTIL:= > FIND:=/bin/find > FIND_DELETE:=-delete > ECHO:=/bin/echo > EGREP:=/bin/grep -E > FGREP:=/bin/grep -F > GREP:=/bin/grep > HEAD:=/usr/bin/head > LS:=/bin/ls > LN:=/bin/ln > MKDIR:=/bin/mkdir > MV:=/bin/mv > NAWK:=/bin/gawk > PRINTF:=/usr/bin/printf > PWD:=@THEPWDCMD@ > RM:=/bin/rm -f > SED:=/bin/sed > SH:=/bin/sh > SORT:=/bin/sort > TAR:=/bin/tar > TAIL:=/usr/bin/tail > TEE:=/usr/bin/tee > TIME:=/usr/bin/time > IS_GNU_TIME:=yes > TR:=/usr/bin/tr > TOUCH:=/bin/touch > UNIQ:=/usr/bin/uniq > WC:=/usr/bin/wc > XARGS:=/usr/bin/xargs > ZIPEXE:=/usr/bin/zip > ZIP:=/usr/bin/zip > UNZIP:=/usr/bin/unzip > MT:= > RC:= > DUMPBIN:= > CYGPATH:= > LDD:=/usr/bin/ldd > OTOOL:=true > READELF:=/usr/bin/readelf > EXPR:=/usr/bin/expr > FILE:=/usr/bin/file > HG:=/usr/bin/hg > OBJCOPY:=/usr/bin/objcopy > SETFILE:= > XATTR:= > JT_HOME:= > JTREGEXE:= > XCODEBUILD= > FIXPATH:= > > # Where the build output is stored for your convenience. > BUILD_LOG:=$(OUTPUT_ROOT)/build.log > BUILD_LOG_PREVIOUS:=$(OUTPUT_ROOT)/build.log.old > # Disable the build log wrapper on sjavac+winapi until > # we have solved how to prevent the log wrapper to wait > # for the background sjavac server process. > ifeq (noXposix,yesXwinapi) > BUILD_LOG_WRAPPER:= > else > BUILD_LOG_WRAPPER:=$(BASH) $(SRC_ROOT)/common/bin/logger.sh $(BUILD_LOG) > endif > > # Build setup > ENABLE_JFR=@ENABLE_JFR@ > ENABLE_INTREE_EC=yes > USE_EXTERNAL_LIBJPEG:=false > USE_EXTERNAL_LIBGIF:=false > USE_EXTERNAL_LIBZ:=false > LIBZIP_CAN_USE_MMAP:=true > MSVCR_DLL:= > > > # ADD_SRCS takes a single argument with source roots > # and appends any corresponding source roots found > # below --with-add-source-root and below > # --with-override-source-root. It is the responsibility > # of the next macro to get rid of superfluous files. > ADD_SRCS=$1 > ifneq (,$(ADD_SRC_ROOT)) > # Append wildcard rule to pickup any matching source roots found below > ADD_SRC_ROOT > ADD_SRCS+=$(wildcard $(subst $(SRC_ROOT),$(ADD_SRC_ROOT),$1)) > endif > ifneq (,$(OVERRIDE_SRC_ROOT)) > # Append wildcard rule to pickup any matching source roots found below > OVERRIDE_SRC_ROOT > ADD_SRCS+=$(wildcard $(subst $(SRC_ROOT),$(OVERRIDE_SRC_ROOT),$1)) > endif > > # OVR_SRCS creates a filter expression to filter out sources in > # the original source directory that lie inside directories below > # --with-override-source-root. > # Use := here since we want to scan for these files here. To avoid > recomputation later. > # We cannot do the scan in configure, since that would force us to rerun > configure when > # we add overridden sources. > ifneq (,$(OVERRIDE_SRC_ROOT)) > OVR_SRCS:=$(addsuffix %,$(subst > $(OVERRIDE_SRC_ROOT),$(SRC_ROOT),$(sort $(dir $(shell $(FIND) > $(OVERRIDE_SRC_ROOT) -type f))))) > else > OVR_SRCS:= > endif > > #################################################### > # > # INSTALLATION > # > > # Common prefix for all installed files. Defaults to /usr/local, > # but /opt/myjdk is another common version. > INSTALL_PREFIX=/scratch/jenkins/workspaces/jdk9/XRTSRJ9UFLOX/OS/linux/arch/x86-64/staging > > # Directories containing architecture-dependent files should be relative > to exec_prefix > INSTALL_EXECPREFIX=/scratch/jenkins/workspaces/jdk9/XRTSRJ9UFLOX/OS/linux/arch/x86-64/staging > > # java,javac,javah,javap etc are installed here. > INSTALL_BINDIR=${exec_prefix}/bin > > # Read only architecture-independent data > INSTALL_DATADIR=${datarootdir} > > # Root of above. > INSTALL_DATAROOTDIR=${prefix}/share > > # Doc files, other than info and man. > INSTALL_DOCDIR=${datarootdir}/doc/${PACKAGE_TARNAME} > > # Html documentation > INSTALL_HTMLDIR=${docdir} > > # Installing C header files, JNI headers for example. > INSTALL_INCLUDEDIR=${prefix}/include > > # Installing library files.... > INSTALL_INCLUDEDIR=${exec_prefix}/lib > > # Executables that other programs run. > INSTALL_LIBEXECDIR=${exec_prefix}/libexec > > # Locale-dependent but architecture-independent data, such as message > catalogs. > INSTALL_LOCALEDIR=${datarootdir}/locale > > # Modifiable single-machine data > INSTALL_LOCALSTATEDIR=${prefix}/var > > # Man pages > INSTALL_MANDIR=${datarootdir}/man > > # Modifiable architecture-independent data. > INSTALL_SHAREDSTATEDIR=${prefix}/com > > # Read-only single-machine data > INSTALL_SYSCONFDIR=${prefix}/etc > > #################################################### > # > # Libraries > # > > USE_EXTERNAL_LCMS:=false > LCMS_CFLAGS:= > LCMS_LIBS:= > > USE_EXTERNAL_LIBPNG:=false > PNG_LIBS:= > PNG_CFLAGS:= > > > #################################################### > # > # Misc > # > > # Name of Service Agent library > SALIB_NAME=libsaproc.so > > INCLUDE_SA=true > > OS_VERSION_MAJOR:=2 > OS_VERSION_MINOR:=6 > OS_VERSION_MICRO:=39 > > # Images directory definitions > JDK_IMAGE_SUBDIR:=j2sdk-image > JRE_IMAGE_SUBDIR:=j2re-image > JDK_OVERLAY_IMAGE_SUBDIR:=j2sdk-overlay-image > JRE_OVERLAY_IMAGE_SUBDIR:=j2re-overlay-image > # Colon left out to be able to override output dir for bootcycle-images > JDK_IMAGE_DIR=$(IMAGES_OUTPUTDIR)/$(JDK_IMAGE_SUBDIR) > JRE_IMAGE_DIR=$(IMAGES_OUTPUTDIR)/$(JRE_IMAGE_SUBDIR) > JDK_OVERLAY_IMAGE_DIR=$(IMAGES_OUTPUTDIR)/$(JDK_OVERLAY_IMAGE_SUBDIR) > JRE_OVERLAY_IMAGE_DIR=$(IMAGES_OUTPUTDIR)/$(JRE_OVERLAY_IMAGE_SUBDIR) > > # Macosx bundles directory definitions > JDK_BUNDLE_SUBDIR=j2sdk-bundle/jdk$(JDK_VERSION).jdk/Contents > JRE_BUNDLE_SUBDIR=j2re-bundle/jre$(JDK_VERSION).jre/Contents > JDK_BUNDLE_DIR=$(IMAGES_OUTPUTDIR)/$(JDK_BUNDLE_SUBDIR) > JRE_BUNDLE_DIR=$(IMAGES_OUTPUTDIR)/$(JRE_BUNDLE_SUBDIR) > > # This macro is called to allow inclusion of closed source counterparts. > # Unless overridden in closed sources, it expands to nothing. > # Usage: This function is called in an open makefile, with the following > # arguments: > # $1 the name of the repo, or empty if the top-level repo. > # $2 the name of the makefile > define IncludeCustomExtension > endef > > # Include the custom-spec.gmk file if it exists > -include $(dir > /scratch/jenkins/workspaces/jdk9/XRTSRJ9UFLOX/OS/linux/arch/x86-64/build/linux-x86_64-normal-server-release/spec.gmk)/custom-spec.gmk >