Build problems on Jenkins prototypes

Eric McCorkle eric.mccorkle at oracle.com
Tue Sep 9 19:51:45 UTC 2014


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