Build problems on Jenkins prototypes

David Holmes david.holmes at oracle.com
Wed Sep 10 02:39:27 UTC 2014


On 10/09/2014 8:10 AM, Eric McCorkle wrote:
> 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.

Check if $OS is already set in the environment.

Check if it is coming in via the generated hotspot-spec.gmk

Check if the build host actually reports "linux" instead of "Linux" for 
uname.

Cheers,
David

> 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