Build problems on Jenkins prototypes
Eric McCorkle
eric.mccorkle at oracle.com
Tue Sep 9 20:50:11 UTC 2014
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
>
More information about the build-dev
mailing list