Build problems on Jenkins prototypes

Eric McCorkle eric.mccorkle at oracle.com
Tue Sep 9 22:10:52 UTC 2014


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
>>



More information about the build-dev mailing list