More investigation, the hotspot makefile seems to be getting executed with OS set to "linux", with a lower-case ell. That would be the cause of the problem.
What I'm not so sure about is why its getting executed that way, or how to fix it. On 09/09/14 16:50, Eric McCorkle wrote: > 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 >>