diff --git a/.github/actions/upload-bundles/action.yml b/.github/actions/upload-bundles/action.yml index b35ee3a42e98c..4e974ae58ba6b 100644 --- a/.github/actions/upload-bundles/action.yml +++ b/.github/actions/upload-bundles/action.yml @@ -1,5 +1,5 @@ # -# Copyright (c) 2022, Oracle and/or its affiliates. All rights reserved. +# Copyright (c) 2022, 2024, 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 @@ -45,6 +45,7 @@ runs: jdk_bundle_tar_gz="$(ls build/*/bundles/jdk-*_bin${{ inputs.debug-suffix }}.tar.gz 2> /dev/null || true)" symbols_bundle="$(ls build/*/bundles/jdk-*_bin${{ inputs.debug-suffix }}-symbols.tar.gz 2> /dev/null || true)" tests_bundle="$(ls build/*/bundles/jdk-*_bin-tests${{ inputs.debug-suffix }}.tar.gz 2> /dev/null || true)" + static_libs_bundle="$(ls build/*/bundles/jdk-*_bin-static-libs${{ inputs.debug-suffix }}.tar.gz 2> /dev/null || true)" mkdir bundles @@ -60,8 +61,11 @@ runs: if [[ "$tests_bundle" != "" ]]; then mv "$tests_bundle" "bundles/tests-${{ inputs.platform }}${{ inputs.debug-suffix }}.tar.gz" fi + if [[ "$static_libs_bundle" != "" ]]; then + mv "$static_libs_bundle" "bundles/static-libs-${{ inputs.platform }}${{ inputs.debug-suffix }}.tar.gz" + fi - if [[ "$jdk_bundle_zip$jdk_bundle_tar_gz$symbols_bundle$tests_bundle" != "" ]]; then + if [[ "$jdk_bundle_zip$jdk_bundle_tar_gz$symbols_bundle$tests_bundle$static_libs_bundle" != "" ]]; then echo 'bundles-found=true' >> $GITHUB_OUTPUT else echo 'bundles-found=false' >> $GITHUB_OUTPUT diff --git a/.github/workflows/build-linux.yml b/.github/workflows/build-linux.yml index f3ea4e4fb6ad8..b1d4278f8b469 100644 --- a/.github/workflows/build-linux.yml +++ b/.github/workflows/build-linux.yml @@ -1,5 +1,5 @@ # -# Copyright (c) 2022, 2023, Oracle and/or its affiliates. All rights reserved. +# Copyright (c) 2022, 2024, 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 @@ -133,8 +133,12 @@ jobs: - name: 'Build' id: build uses: ./.github/actions/do-build + env: + # Only build static-libs-bundles for release builds. + # For debug builds, building static-libs often exceeds disk space. + STATIC_LIBS: ${{ matrix.debug-level == 'release' && 'static-libs-bundles' }} with: - make-target: '${{ inputs.make-target }} ${{ inputs.make-arguments }}' + make-target: '${{ inputs.make-target }} ${STATIC_LIBS} ${{ inputs.make-arguments }}' platform: ${{ inputs.platform }} debug-suffix: '${{ matrix.suffix }}' diff --git a/make/Bundles.gmk b/make/Bundles.gmk index 0901e415a8a1a..2ed04c1906421 100644 --- a/make/Bundles.gmk +++ b/make/Bundles.gmk @@ -284,7 +284,7 @@ ifneq ($(filter product-bundles% legacy-bundles, $(MAKECMDGOALS)), ) ifeq ($(MACOSX_CODESIGN_MODE), hardened) # Macosx release build and code signing available. - ################################################################################ + ############################################################################ # JDK bundle $(eval $(call SetupCopyFiles, CREATE_JDK_BUNDLE_DIR_SIGNED, \ SRC := $(JDK_IMAGE_DIR), \ @@ -313,7 +313,7 @@ ifneq ($(filter product-bundles% legacy-bundles, $(MAKECMDGOALS)), ) PRODUCT_TARGETS += $(BUILD_JDK_BUNDLE) - ################################################################################ + ############################################################################ # JRE bundle $(eval $(call SetupCopyFiles, CREATE_JRE_BUNDLE_DIR_SIGNED, \ SRC := $(JRE_IMAGE_DIR), \ diff --git a/make/CompileToolsJdk.gmk b/make/CompileToolsJdk.gmk index feba5d8a902d7..41a19f90ace77 100644 --- a/make/CompileToolsJdk.gmk +++ b/make/CompileToolsJdk.gmk @@ -52,8 +52,7 @@ $(eval $(call SetupJavaCompilation, BUILD_TOOLS_JDK, \ build/tools/deps \ build/tools/docs \ build/tools/jigsaw \ - build/tools/depend \ - , \ + build/tools/depend, \ BIN := $(BUILDTOOLS_OUTPUTDIR)/jdk_tools_classes, \ DISABLED_WARNINGS := dangling-doc-comments options, \ JAVAC_FLAGS := \ @@ -66,17 +65,19 @@ $(eval $(call SetupJavaCompilation, BUILD_TOOLS_JDK, \ TARGETS += $(BUILD_TOOLS_JDK) -$(eval $(call SetupCopyFiles,COPY_NIMBUS_TEMPLATES, \ +$(eval $(call SetupCopyFiles, COPY_NIMBUS_TEMPLATES, \ SRC := $(TOPDIR)/src/java.desktop/share/classes/javax/swing/plaf/nimbus, \ DEST := $(BUILDTOOLS_OUTPUTDIR)/jdk_tools_classes/build/tools/generatenimbus/resources, \ - FILES := $(wildcard $(TOPDIR)/src/java.desktop/share/classes/javax/swing/plaf/nimbus/*.template))) + FILES := $(wildcard $(TOPDIR)/src/java.desktop/share/classes/javax/swing/plaf/nimbus/*.template), \ +)) TARGETS += $(COPY_NIMBUS_TEMPLATES) -$(eval $(call SetupCopyFiles,COPY_CLDRCONVERTER_PROPERTIES, \ +$(eval $(call SetupCopyFiles, COPY_CLDRCONVERTER_PROPERTIES, \ SRC := $(TOPDIR)/make/jdk/src/classes/build/tools/cldrconverter, \ DEST := $(BUILDTOOLS_OUTPUTDIR)/jdk_tools_classes/build/tools/cldrconverter, \ - FILES := $(wildcard $(TOPDIR)/make/jdk/src/classes/build/tools/cldrconverter/*.properties))) + FILES := $(wildcard $(TOPDIR)/make/jdk/src/classes/build/tools/cldrconverter/*.properties), \ +)) TARGETS += $(COPY_CLDRCONVERTER_PROPERTIES) diff --git a/make/CopyInterimTZDB.gmk b/make/CopyInterimTZDB.gmk index ac390580aa911..e2704b3297568 100644 --- a/make/CopyInterimTZDB.gmk +++ b/make/CopyInterimTZDB.gmk @@ -30,7 +30,7 @@ include MakeBase.gmk include CopyFiles.gmk -########################################################################################## +################################################################################ ### TZDB tool needs files from java.time.zone package @@ -41,12 +41,13 @@ define tzdb_copyfiles < $(<) > $@ endef -$(eval $(call SetupCopyFiles,COPY_INTERIM_TZDB, \ +$(eval $(call SetupCopyFiles, COPY_INTERIM_TZDB, \ SRC := $(TOPDIR)/src/java.base/share/classes/java/time/zone, \ DEST := $(BUILDTOOLS_OUTPUTDIR)/interim_tzdb_classes/build/tools/tzdb, \ FILES := ZoneRules.java ZoneOffsetTransition.java ZoneOffsetTransitionRule.java Ser.java, \ - MACRO := tzdb_copyfiles)) + MACRO := tzdb_copyfiles, \ +)) -########################################################################################## +################################################################################ all: $(COPY_INTERIM_TZDB) diff --git a/make/Docs.gmk b/make/Docs.gmk index 08a9ac662cd2a..e6a98c4fbd21d 100644 --- a/make/Docs.gmk +++ b/make/Docs.gmk @@ -247,7 +247,7 @@ define create_overview_file \ \ # - ifneq ($$($1_GROUPS),) + ifneq ($$($1_GROUPS), ) $1_OVERVIEW_TEXT += \

This document is divided into \ $$(subst 2,two,$$(subst 3,three,$$(words $$($1_GROUPS)))) sections:

\ diff --git a/make/Global.gmk b/make/Global.gmk index 998ba4d2bda82..6b97b7ad05940 100644 --- a/make/Global.gmk +++ b/make/Global.gmk @@ -28,7 +28,7 @@ ### # Helper macro to allow $(info) to properly print strings beginning with spaces. -_:= +_ := help: $(info ) @@ -108,7 +108,7 @@ help: $(info $(_) TEST_OPTS="OPT1=x;..." # Generic control of all test harnesses) $(info $(_) TEST_VM_OPTS="ARG ..." # Same as setting TEST_OPTS to VM_OPTIONS="ARG ...") $(info ) - $(if $(all_confs), $(info Available configurations in $(build_dir):) $(foreach var,$(all_confs),$(info * $(var))),\ + $(if $(all_confs), $(info Available configurations in $(build_dir):) $(foreach var,$(all_confs),$(info * $(var))), \ $(info No configurations were found in $(build_dir).) $(info Run 'bash configure' to create a configuration.)) # We need a dummy rule otherwise make will complain @true diff --git a/make/Images.gmk b/make/Images.gmk index bfad1ad563c9b..5703a74afa590 100644 --- a/make/Images.gmk +++ b/make/Images.gmk @@ -134,11 +134,11 @@ CDS_DUMP_FLAGS = -Xmx128M -Xms128M # Param1 - VM variant (e.g., server, client, zero, ...) # Param2 - _nocoops, or empty define CreateCDSArchive - $1_$2_DUMP_EXTRA_ARG := $(if $(filter _nocoops, $2),-XX:-UseCompressedOops,) - $1_$2_DUMP_TYPE := $(if $(filter _nocoops, $2),-NOCOOPS,) + $1_$2_DUMP_EXTRA_ARG := $(if $(filter _nocoops, $2), -XX:-UseCompressedOops, ) + $1_$2_DUMP_TYPE := $(if $(filter _nocoops, $2), -NOCOOPS, ) # Only G1 supports dumping the shared heap, so explicitly use G1 if the JVM supports it. - $1_$2_CDS_DUMP_FLAGS := $(CDS_DUMP_FLAGS) $(if $(filter g1gc, $(JVM_FEATURES_$1)),-XX:+UseG1GC) + $1_$2_CDS_DUMP_FLAGS := $(CDS_DUMP_FLAGS) $(if $(filter g1gc, $(JVM_FEATURES_$1)), -XX:+UseG1GC) ifeq ($(OPENJDK_TARGET_OS), windows) $1_$2_CDS_ARCHIVE := bin/$1/classes$2.jsa @@ -235,7 +235,7 @@ endif ifeq ($(GCOV_ENABLED), true) - $(eval $(call SetupCopyFiles,COPY_GCOV_GCNO, \ + $(eval $(call SetupCopyFiles, COPY_GCOV_GCNO, \ SRC := $(OUTPUTDIR), \ DEST := $(SYMBOLS_IMAGE_DIR)/gcov, \ FILES := $(call FindFiles, $(HOTSPOT_OUTPUTDIR) \ diff --git a/make/Init.gmk b/make/Init.gmk index 61846217ecc34..8918de7d16e4b 100644 --- a/make/Init.gmk +++ b/make/Init.gmk @@ -37,7 +37,7 @@ default: # serially, regardless of -j. .NOTPARALLEL: -ifeq ($(HAS_SPEC),) +ifeq ($(HAS_SPEC), ) ############################################################################## # This is the default mode. We have not been recursively called with a SPEC. ############################################################################## @@ -168,7 +168,7 @@ ifeq ($(HAS_SPEC),) endif make-info: - ifneq ($(findstring $(LOG_LEVEL),info debug trace),) + ifneq ($(findstring $(LOG_LEVEL), info debug trace), ) $(info Running make as '$(strip $(MAKE) $(MFLAGS) \ $(COMMAND_LINE_VARIABLES) $(MAKECMDGOALS))') endif diff --git a/make/InitSupport.gmk b/make/InitSupport.gmk index 6dd29b1db1091..2471d82d6dbfb 100644 --- a/make/InitSupport.gmk +++ b/make/InitSupport.gmk @@ -32,7 +32,7 @@ ifndef _INITSUPPORT_GMK _INITSUPPORT_GMK := 1 -ifeq ($(HAS_SPEC),) +ifeq ($(HAS_SPEC), ) # COMMA is defined in spec.gmk, but that is not included yet COMMA := , @@ -74,13 +74,13 @@ ifeq ($(HAS_SPEC),) # Setup information about available configurations, if any. ifneq ($(CUSTOM_ROOT), ) - build_dir=$(CUSTOM_ROOT)/build + build_dir = $(CUSTOM_ROOT)/build else - build_dir=$(topdir)/build + build_dir = $(topdir)/build endif - all_spec_files=$(wildcard $(build_dir)/*/spec.gmk) + all_spec_files = $(wildcard $(build_dir)/*/spec.gmk) # Extract the configuration names from the path - all_confs=$(patsubst %/spec.gmk, %, $(patsubst $(build_dir)/%, %, $(all_spec_files))) + all_confs = $(patsubst %/spec.gmk, %, $(patsubst $(build_dir)/%, %, $(all_spec_files))) # Check for unknown command-line variables define CheckControlVariables @@ -128,7 +128,7 @@ ifeq ($(HAS_SPEC),) ifeq ($$(CONF_CHECK), ) # Default behavior is fail CONF_CHECK := fail - else ifneq ($$(filter-out auto fail ignore, $$(CONF_CHECK)),) + else ifneq ($$(filter-out auto fail ignore, $$(CONF_CHECK)), ) $$(info Error: CONF_CHECK must be one of: auto, fail or ignore.) $$(error Cannot continue) endif @@ -147,11 +147,11 @@ ifeq ($(HAS_SPEC),) $$(info Error: Cannot use CONF_NAME=$$(CONF_NAME) and SPEC=$$(SPEC) at the same time. Choose one.) $$(error Cannot continue) endif - ifeq ($$(wildcard $$(SPEC)),) + ifeq ($$(wildcard $$(SPEC)), ) $$(info Error: Cannot locate spec.gmk, given by SPEC=$$(SPEC).) $$(error Cannot continue) endif - ifeq ($$(filter /%, $$(SPEC)),) + ifeq ($$(filter /%, $$(SPEC)), ) # If given with relative path, make it absolute SPECS := $$(CURDIR)/$$(strip $$(SPEC)) else @@ -162,7 +162,7 @@ ifeq ($(HAS_SPEC),) override SPEC := else # Use spec.gmk files in the build output directory - ifeq ($$(all_spec_files),) + ifeq ($$(all_spec_files), ) ifneq ($(CUSTOM_ROOT), ) $$(info Error: No configurations found for $$(CUSTOM_ROOT).) else @@ -180,7 +180,7 @@ ifeq ($(HAS_SPEC),) $$(error Cannot continue) endif matching_conf := $$(strip $$(filter $$(CONF_NAME), $$(all_confs))) - ifeq ($$(matching_conf),) + ifeq ($$(matching_conf), ) $$(info Error: No configurations found matching CONF_NAME=$$(CONF_NAME).) $$(info Available configurations in $$(build_dir):) $$(foreach var, $$(all_confs), $$(info * $$(var))) @@ -197,12 +197,12 @@ ifeq ($(HAS_SPEC),) SPECS := $$(build_dir)/$$(matching_conf)/spec.gmk else ifneq ($$(origin CONF), undefined) # User have given a CONF= argument. - ifeq ($$(CONF),) + ifeq ($$(CONF), ) # If given CONF=, match all configurations matching_confs := $$(strip $$(all_confs)) else # Otherwise select those that contain the given CONF string - ifeq ($$(patsubst !%,,$$(CONF)),) + ifeq ($$(patsubst !%,,$$(CONF)), ) # A CONF starting with ! means we should negate the search term matching_confs := $$(strip $$(foreach var, $$(all_confs), \ $$(if $$(findstring $$(subst !,,$$(CONF)), $$(var)), ,$$(var)))) @@ -215,12 +215,12 @@ ifeq ($(HAS_SPEC),) matching_confs := $$(CONF) # Don't repeat this output on make restarts caused by including # generated files. - ifeq ($$(MAKE_RESTARTS),) + ifeq ($$(MAKE_RESTARTS), ) $$(info Using exact match for CONF=$$(CONF) (other matches are possible)) endif endif endif - ifeq ($$(matching_confs),) + ifeq ($$(matching_confs), ) $$(info Error: No configurations found matching CONF=$$(CONF).) $$(info Available configurations in $$(build_dir):) $$(foreach var, $$(all_confs), $$(info * $$(var))) @@ -228,9 +228,9 @@ ifeq ($(HAS_SPEC),) else # Don't repeat this output on make restarts caused by including # generated files. - ifeq ($$(MAKE_RESTARTS),) + ifeq ($$(MAKE_RESTARTS), ) ifeq ($$(words $$(matching_confs)), 1) - ifneq ($$(findstring $$(LOG_LEVEL), info debug trace),) + ifneq ($$(findstring $$(LOG_LEVEL), info debug trace), ) $$(info Building configuration '$$(matching_confs)' (matching CONF=$$(CONF))) endif else @@ -272,7 +272,7 @@ ifeq ($(HAS_SPEC),) # count. main_targets_file := $$(dir $(strip $2))make-support/main-targets.gmk - ifeq ($$(MAKE_RESTARTS),) + ifeq ($$(MAKE_RESTARTS), ) # Only do this if make has not been restarted, and if we do not force it. ifeq ($(strip $1), FORCE) $$(shell rm -f $$(main_targets_file)) @@ -316,9 +316,9 @@ else # $(HAS_SPEC)=true BUILD_LOG_PIPE_SIMPLE := | $(TEE) -a $(BUILD_LOG) ifneq ($(CUSTOM_ROOT), ) - topdir=$(CUSTOM_ROOT) + topdir = $(CUSTOM_ROOT) else - topdir=$(TOPDIR) + topdir = $(TOPDIR) endif # Setup the build environment to match the requested specification on @@ -349,39 +349,39 @@ else # $(HAS_SPEC)=true ifneq ($$(findstring :, $$(COMPARE_BUILD)), ) $$(foreach part, $$(subst :, , $$(COMPARE_BUILD)), \ $$(if $$(filter PATCH=%, $$(part)), \ - $$(eval COMPARE_BUILD_PATCH=$$(strip $$(patsubst PATCH=%, %, $$(part)))) \ + $$(eval COMPARE_BUILD_PATCH = $$(strip $$(patsubst PATCH=%, %, $$(part)))) \ ) \ $$(if $$(filter CONF=%, $$(part)), \ - $$(eval COMPARE_BUILD_CONF=$$(strip $$(subst +, , $$(patsubst CONF=%, %, $$(part))))) \ + $$(eval COMPARE_BUILD_CONF = $$(strip $$(subst +, , $$(patsubst CONF=%, %, $$(part))))) \ ) \ $$(if $$(filter MAKE=%, $$(part)), \ - $$(eval COMPARE_BUILD_MAKE=$$(strip $$(subst +, , $$(patsubst MAKE=%, %, $$(part))))) \ + $$(eval COMPARE_BUILD_MAKE = $$(strip $$(subst +, , $$(patsubst MAKE=%, %, $$(part))))) \ ) \ $$(if $$(filter COMP_OPTS=%, $$(part)), \ - $$(eval COMPARE_BUILD_COMP_OPTS=$$(strip $$(subst +, , $$(patsubst COMP_OPTS=%, %, $$(part))))) \ + $$(eval COMPARE_BUILD_COMP_OPTS = $$(strip $$(subst +, , $$(patsubst COMP_OPTS=%, %, $$(part))))) \ ) \ $$(if $$(filter COMP_DIR=%, $$(part)), \ - $$(eval COMPARE_BUILD_COMP_DIR=$$(strip $$(subst +, , $$(patsubst COMP_DIR=%, %, $$(part))))) \ + $$(eval COMPARE_BUILD_COMP_DIR = $$(strip $$(subst +, , $$(patsubst COMP_DIR=%, %, $$(part))))) \ ) \ $$(if $$(filter FAIL=%, $$(part)), \ - $$(eval COMPARE_BUILD_FAIL=$$(strip $$(subst +, , $$(patsubst FAIL=%, %, $$(part))))) \ + $$(eval COMPARE_BUILD_FAIL = $$(strip $$(subst +, , $$(patsubst FAIL=%, %, $$(part))))) \ ) \ $$(if $$(filter NODRYRUN=%, $$(part)), \ - $$(eval COMPARE_BUILD_NODRYRUN=$$(strip $$(subst +, , $$(patsubst NODRYRUN=%, %, $$(part))))) \ + $$(eval COMPARE_BUILD_NODRYRUN = $$(strip $$(subst +, , $$(patsubst NODRYRUN=%, %, $$(part))))) \ ) \ ) else # Separate handling for single field case, to allow for spaces in values. ifneq ($$(filter PATCH=%, $$(COMPARE_BUILD)), ) - COMPARE_BUILD_PATCH=$$(strip $$(patsubst PATCH=%, %, $$(COMPARE_BUILD))) + COMPARE_BUILD_PATCH = $$(strip $$(patsubst PATCH=%, %, $$(COMPARE_BUILD))) else ifneq ($$(filter CONF=%, $$(COMPARE_BUILD)), ) - COMPARE_BUILD_CONF=$$(strip $$(subst +, , $$(patsubst CONF=%, %, $$(COMPARE_BUILD)))) + COMPARE_BUILD_CONF = $$(strip $$(subst +, , $$(patsubst CONF=%, %, $$(COMPARE_BUILD)))) else ifneq ($$(filter --%, $$(COMPARE_BUILD)), ) # Assume CONF if value begins with -- - COMPARE_BUILD_CONF=$$(strip $$(subst +, , $$(COMPARE_BUILD))) + COMPARE_BUILD_CONF = $$(strip $$(subst +, , $$(COMPARE_BUILD))) else # Otherwise assume patch file - COMPARE_BUILD_PATCH=$$(strip $$(COMPARE_BUILD)) + COMPARE_BUILD_PATCH = $$(strip $$(COMPARE_BUILD)) endif endif ifneq ($$(COMPARE_BUILD_PATCH), ) @@ -531,7 +531,7 @@ else # $(HAS_SPEC)=true # used by build comparisons. define WaitForJavacServerFinish $(if $(JAVAC_SERVER_DIR), \ - sleep 5\ + sleep 5 \ ) endef else @@ -544,7 +544,7 @@ else # $(HAS_SPEC)=true ############################################################################## # Store the build times in this directory. - BUILDTIMESDIR=$(OUTPUTDIR)/make-support/build-times + BUILDTIMESDIR = $(OUTPUTDIR)/make-support/build-times # Record starting time for build of a sub repository. define RecordStartTime @@ -605,7 +605,7 @@ endif # HAS_SPEC # $1: The option to look for # $2: The variable to set to "true" if the option is found define ParseLogOption - ifneq ($$(findstring $1, $$(LOG)),) + ifneq ($$(findstring $1, $$(LOG)), ) override $2 := true # First try to remove ",