OpenJDK / amber / amber
changeset 50029:b2f943f73aee datum
manual merge with default
author | vromero |
---|---|
date | Tue, 10 Apr 2018 11:36:25 -0700 |
parents | 81ce218e677e 7b00ac6c11ab |
children | ecdaebab561f |
files | make/autoconf/spec.gmk.in make/hotspot/lib/CompileDtracePostJvm.gmk make/hotspot/lib/CompileDtracePreJvm.gmk make/hotspot/lib/CompileLibjsig.gmk make/hotspot/src/native/dtrace/generateJvmOffsets.h make/lib/SoundLibraries.gmk make/mapfiles/launchers/mapfile-ppc64 make/mapfiles/launchers/mapfile-ppc64.anonymous make/mapfiles/launchers/mapfile-sparc make/mapfiles/launchers/mapfile-sparcv9 make/mapfiles/launchers/mapfile-x86 make/mapfiles/launchers/mapfile-x86.anonymous make/mapfiles/launchers/mapfile-x86_64 make/mapfiles/launchers/mapfile-x86_64.anonymous make/mapfiles/libattach/mapfile-aix make/mapfiles/libattach/mapfile-linux make/mapfiles/libattach/mapfile-solaris make/mapfiles/libattach/reorder-windows-x86 make/mapfiles/libattach/reorder-windows-x86_64 make/mapfiles/libawt/mapfile-mawt-vers make/mapfiles/libawt/mapfile-vers make/mapfiles/libawt/mapfile-vers-linux make/mapfiles/libawt_headless/mapfile-vers make/mapfiles/libawt_headless/reorder-sparc make/mapfiles/libawt_headless/reorder-sparcv9 make/mapfiles/libawt_headless/reorder-x86 make/mapfiles/libawt_xawt/mapfile-vers make/mapfiles/libdt_socket/mapfile-vers make/mapfiles/libextnet/mapfile-linux make/mapfiles/libextnet/mapfile-solaris make/mapfiles/libfontmanager/mapfile-vers make/mapfiles/libinstrument/mapfile-vers make/mapfiles/libj2gss/mapfile-vers make/mapfiles/libj2pcsc/mapfile-vers make/mapfiles/libj2pkcs11/mapfile-vers make/mapfiles/libj2ucrypto/mapfile-vers make/mapfiles/libjaas/mapfile-vers make/mapfiles/libjava/mapfile-vers make/mapfiles/libjava/reorder-sparc make/mapfiles/libjava/reorder-sparcv9 make/mapfiles/libjava/reorder-x86 make/mapfiles/libjawt/mapfile-vers make/mapfiles/libjdwp/mapfile-vers make/mapfiles/libjimage/mapfile-vers make/mapfiles/libjli/mapfile-vers make/mapfiles/libjpeg/mapfile-vers make/mapfiles/libjpeg/reorder-sparc make/mapfiles/libjpeg/reorder-sparcv9 make/mapfiles/libjpeg/reorder-x86 make/mapfiles/libjsdt/mapfile-vers make/mapfiles/libjsig/mapfile-vers-solaris make/mapfiles/libjsoundalsa/mapfile-vers make/mapfiles/liblcms/mapfile-vers make/mapfiles/libmanagement/mapfile-vers make/mapfiles/libmanagement_agent/mapfile-vers make/mapfiles/libmanagement_ext/mapfile-vers make/mapfiles/libmlib_image/mapfile-vers make/mapfiles/libnet/mapfile-vers make/mapfiles/libnio/mapfile-aix make/mapfiles/libnio/mapfile-linux make/mapfiles/libnio/mapfile-macosx make/mapfiles/libnio/mapfile-solaris make/mapfiles/libnio/reorder-sparc make/mapfiles/libnio/reorder-sparcv9 make/mapfiles/libnio/reorder-x86 make/mapfiles/libprefs/mapfile-vers make/mapfiles/librmi/mapfile-vers make/mapfiles/libsaproc/mapfile-linux make/mapfiles/libsaproc/mapfile-macosx make/mapfiles/libsaproc/mapfile-solaris make/mapfiles/libsctp/mapfile-vers make/mapfiles/libsplashscreen/mapfile-vers make/mapfiles/libsunec/mapfile-vers make/mapfiles/libunpack/mapfile-vers make/mapfiles/libunpack/mapfile-vers-unpack200 make/mapfiles/libunpack/mapfile-vers-unpack200-solaris-sparc make/mapfiles/libunpack/mapfile-vers-unpack200-solaris-x86 make/mapfiles/libunpack/mapfile-vers-unpack200.anonymous make/mapfiles/libverify/mapfile-vers make/mapfiles/libverify/reorder-sparc make/mapfiles/libverify/reorder-sparcv9 make/mapfiles/libverify/reorder-x86 make/mapfiles/libzip/mapfile-vers make/mapfiles/libzip/reorder-sparc make/mapfiles/libzip/reorder-sparcv9 make/mapfiles/libzip/reorder-x86 src/bsd/doc/man/ja/javah.1 src/bsd/doc/man/javah.1 src/hotspot/share/gc/cms/parCardTableModRefBS.cpp src/hotspot/share/gc/g1/g1AllocationContext.hpp src/hotspot/share/gc/g1/g1Allocator_ext.cpp src/hotspot/share/gc/g1/g1CollectedHeap_ext.cpp src/hotspot/share/gc/g1/g1DefaultPolicy.cpp src/hotspot/share/gc/g1/g1DefaultPolicy.hpp src/hotspot/share/gc/g1/g1FullCollector_ext.cpp src/hotspot/share/gc/g1/g1ParScanThreadState_ext.cpp src/hotspot/share/gc/g1/g1RootClosures_ext.cpp src/hotspot/share/gc/g1/g1SATBCardTableModRefBS.cpp src/hotspot/share/gc/g1/g1SATBCardTableModRefBS.hpp src/hotspot/share/gc/g1/g1SATBCardTableModRefBS.inline.hpp src/hotspot/share/gc/shared/barrierSet.inline.hpp src/hotspot/share/gc/shared/cardTableModRefBS.cpp src/hotspot/share/gc/shared/cardTableModRefBS.hpp src/hotspot/share/gc/shared/cardTableModRefBS.inline.hpp src/hotspot/share/gc/shared/cardTableModRefBSForCTRS.hpp src/hotspot/share/memory/universe.inline.hpp src/hotspot/share/prims/jvmtiEnter.hpp src/hotspot/share/prims/whitebox_ext.cpp src/hotspot/share/runtime/interfaceSupport.hpp src/hotspot/share/runtime/thread_ext.cpp src/hotspot/share/runtime/thread_ext.hpp src/hotspot/share/runtime/vmStructs_ext.hpp src/hotspot/share/services/serviceUtil.hpp src/java.base/linux/classes/sun/nio/ch/EPollArrayWrapper.java src/java.base/linux/native/libnio/ch/EPollArrayWrapper.c src/java.base/linux/native/libnio/ch/EPollPort.c src/java.base/macosx/classes/sun/nio/ch/KQueueArrayWrapper.java src/java.base/macosx/native/libnio/ch/KQueueArrayWrapper.c src/java.base/macosx/native/libnio/ch/KQueuePort.c src/java.base/share/classes/module-info.java src/java.base/share/classes/sun/nio/ch/AbstractPollArrayWrapper.java src/java.base/share/classes/sun/nio/ch/AbstractPollSelectorImpl.java src/java.base/share/classes/sun/nio/ch/PollSelectorProvider.java src/java.base/share/classes/sun/nio/cs/FastCharsetProvider.java src/java.base/solaris/classes/sun/nio/ch/EventPortWrapper.java src/java.base/unix/classes/sun/nio/ch/PollArrayWrapper.java src/java.base/unix/native/libnio/ch/PollArrayWrapper.c src/java.desktop/unix/native/libjsound/PLATFORM_API_BsdOS_ALSA_CommonUtils.c src/java.desktop/unix/native/libjsound/PLATFORM_API_BsdOS_ALSA_CommonUtils.h src/java.desktop/unix/native/libjsound/PLATFORM_API_BsdOS_ALSA_MidiIn.c src/java.desktop/unix/native/libjsound/PLATFORM_API_BsdOS_ALSA_MidiOut.c src/java.desktop/unix/native/libjsound/PLATFORM_API_BsdOS_ALSA_MidiUtils.c src/java.desktop/unix/native/libjsound/PLATFORM_API_BsdOS_ALSA_MidiUtils.h src/java.desktop/unix/native/libjsound/PLATFORM_API_BsdOS_ALSA_PCM.c src/java.desktop/unix/native/libjsound/PLATFORM_API_BsdOS_ALSA_PCMUtils.c src/java.desktop/unix/native/libjsound/PLATFORM_API_BsdOS_ALSA_PCMUtils.h src/java.desktop/unix/native/libjsound/PLATFORM_API_BsdOS_ALSA_Ports.c src/java.desktop/unix/native/libjsound/PLATFORM_API_LinuxOS_ALSA_CommonUtils.c src/java.desktop/unix/native/libjsound/PLATFORM_API_LinuxOS_ALSA_CommonUtils.h src/java.desktop/unix/native/libjsound/PLATFORM_API_LinuxOS_ALSA_MidiIn.c src/java.desktop/unix/native/libjsound/PLATFORM_API_LinuxOS_ALSA_MidiOut.c src/java.desktop/unix/native/libjsound/PLATFORM_API_LinuxOS_ALSA_MidiUtils.c src/java.desktop/unix/native/libjsound/PLATFORM_API_LinuxOS_ALSA_MidiUtils.h src/java.desktop/unix/native/libjsound/PLATFORM_API_LinuxOS_ALSA_PCM.c src/java.desktop/unix/native/libjsound/PLATFORM_API_LinuxOS_ALSA_PCMUtils.c src/java.desktop/unix/native/libjsound/PLATFORM_API_LinuxOS_ALSA_PCMUtils.h src/java.desktop/unix/native/libjsound/PLATFORM_API_LinuxOS_ALSA_Ports.c src/java.desktop/unix/native/libjsound/PLATFORM_API_SolarisOS_PCM.c src/java.desktop/unix/native/libjsound/PLATFORM_API_SolarisOS_Ports.c src/java.desktop/unix/native/libjsound/PLATFORM_API_SolarisOS_Utils.c src/java.desktop/unix/native/libjsound/PLATFORM_API_SolarisOS_Utils.h src/jdk.compiler/share/classes/com/sun/tools/javac/code/Flags.java src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Check.java src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Lower.java src/jdk.compiler/share/classes/com/sun/tools/javac/jvm/Gen.java src/jdk.compiler/share/classes/com/sun/tools/javac/parser/JavacParser.java src/jdk.compiler/share/classes/com/sun/tools/javac/resources/compiler.properties src/jdk.hotspot.agent/linux/native/libsaproc/test.c src/jdk.hotspot.agent/macosx/native/libsaproc/BsdDebuggerLocal.c src/jdk.hotspot.agent/macosx/native/libsaproc/StubDebuggerLocal.c src/jdk.hotspot.agent/macosx/native/libsaproc/ps_proc.c src/jdk.hotspot.agent/macosx/native/libsaproc/salibelf.c src/jdk.hotspot.agent/macosx/native/libsaproc/test.c src/jdk.hotspot.agent/solaris/native/libsaproc/saproc_audit.cpp src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.core.common/src/org/graalvm/compiler/core/common/TraceInliningMode.java src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot.amd64/src/org/graalvm/compiler/hotspot/amd64/AMD64HotSpotArithmeticLIRGenerator.java src/linux/doc/man/ja/javah.1 src/linux/doc/man/javah.1 src/solaris/doc/sun/man/man1/ja/javah.1 src/solaris/doc/sun/man/man1/javah.1 test/hotspot/gtest/memory/test_chunkManager.cpp test/hotspot/gtest/runtime/test_threadstack_tracking.cpp test/hotspot/jtreg/compiler/aot/TEST.properties test/hotspot/jtreg/compiler/jvmci/compilerToVM/GetNextStackFrameTest.java test/jdk/java/io/ByteArrayOutputStream/WriteBounds.java test/jdk/java/lang/SecurityManager/DepMethodsRequireAllPerm.java test/jdk/java/nio/channels/DatagramChannel/SendToUnresolved.java test/jdk/java/nio/channels/SocketChannel/IsConnectable.java test/jdk/sun/security/mscapi/KeyStoreCompatibilityMode.sh test/jdk/sun/security/mscapi/KeytoolChangeAlias.sh test/jdk/sun/security/mscapi/PublicKeyInterop.sh test/jdk/sun/security/mscapi/RSAEncryptDecrypt.sh test/jdk/sun/security/mscapi/ShortRSAKey1024.sh test/jdk/sun/security/mscapi/SignUsingSHA2withRSA.sh test/jdk/sun/security/mscapi/nonUniqueAliases/NonUniqueAliases.sh test/langtools/tools/javac/TryWithResources/TwrShareCloseCode.java test/tools/javac/importChecks/ImportCanonicalSameName/ImportCanonicalSameName.java test/tools/javac/importChecks/ImportCanonicalSameName/ImportCanonicalSameName.out test/tools/javac/importChecks/ImportCanonicalSameName/p1/A.java test/tools/javac/importChecks/ImportCanonicalSameName/p2/A.java |
diffstat | 2409 files changed, 65393 insertions(+), 45310 deletions(-) [+] |
line wrap: on
line diff
--- a/.hgtags Fri Apr 06 15:25:59 2018 -0400 +++ b/.hgtags Tue Apr 10 11:36:25 2018 -0700 @@ -475,3 +475,7 @@ 4f96cf952e71cb8a127334494faf28880c26181b jdk-10+45 1fd4d6068f54561cfc67d54fc9ca84af7212c4f8 jdk-11+3 e59941f7247d451fa7df9eaef3fce0f492f8420c jdk-11+4 +d5c43e9f08fb9a7c74aae0d48daf17f2ad2afaef jdk-11+5 +3acb379b86725c47e7f33358cb22efa8752ae532 jdk-11+6 +f7363de371c9a1f668bd0a01b7df3d1ddb9cc58b jdk-11+7 +755e1b55a4dff510f9639cdb5c5e82549a7e09b3 jdk-11+8
--- a/doc/testing.html Fri Apr 06 15:25:59 2018 -0400 +++ b/doc/testing.html Tue Apr 10 11:36:25 2018 -0700 @@ -40,7 +40,7 @@ $ make run-test-jdk_lang JTREG="JOBS=8" $ make run-test TEST=jdk_lang $ make run-test-only TEST="gtest:LogTagSet gtest:LogTagSetDescriptions" GTEST="REPEAT=-1" -$ make run-test TEST="hotspot/test:hotspot_gc" JTREG="JOBS=1;TIMEOUT=8;VM_OTIONS=-XshowSettings -Xlog:gc+ref=debug" +$ make run-test TEST="hotspot/test:hotspot_gc" JTREG="JOBS=1;TIMEOUT=8;VM_OPTIONS=-XshowSettings -Xlog:gc+ref=debug" $ make run-test TEST="jtreg:hotspot/test:hotspot_gc hotspot/test/native_sanity/JniVersion.java" $ make exploded-run-test TEST=hotspot_tier1</code></pre> <h3 id="configuration">Configuration</h3> @@ -77,8 +77,8 @@ <h2 id="test-suite-control">Test suite control</h2> <p>It is possible to control various aspects of the test suites using make control variables.</p> <p>These variables use a keyword=value approach to allow multiple values to be set. So, for instance, <code>JTREG="JOBS=1;TIMEOUT=8"</code> will set the JTReg concurrency level to 1 and the timeout factor to 8. This is equivalent to setting <code>JTREG_JOBS=1 JTREG_TIMEOUT=8</code>, but using the keyword format means that the <code>JTREG</code> variable is parsed and verified for correctness, so <code>JTREG="TMIEOUT=8"</code> would give an error, while <code>JTREG_TMIEOUT=8</code> would just pass unnoticed.</p> -<p>To separate multiple keyword=value pairs, use <code>;</code> (semicolon). Since the shell normally eats <code>;</code>, the recommended usage is to write the assignment inside qoutes, e.g. <code>JTREG="...;..."</code>. This will also make sure spaces are preserved, as in <code>JTREG="VM_OTIONS=-XshowSettings -Xlog:gc+ref=debug"</code>.</p> -<p>(Other ways are possible, e.g. using backslash: <code>JTREG=JOBS=1\;TIMEOUT=8</code>. Also, as a special technique, the string <code>%20</code> will be replaced with space for certain options, e.g. <code>JTREG=VM_OTIONS=-XshowSettings%20-Xlog:gc+ref=debug</code>. This can be useful if you have layers of scripts and have trouble getting proper quoting of command line arguments through.)</p> +<p>To separate multiple keyword=value pairs, use <code>;</code> (semicolon). Since the shell normally eats <code>;</code>, the recommended usage is to write the assignment inside qoutes, e.g. <code>JTREG="...;..."</code>. This will also make sure spaces are preserved, as in <code>JTREG="VM_OPTIONS=-XshowSettings -Xlog:gc+ref=debug"</code>.</p> +<p>(Other ways are possible, e.g. using backslash: <code>JTREG=JOBS=1\;TIMEOUT=8</code>. Also, as a special technique, the string <code>%20</code> will be replaced with space for certain options, e.g. <code>JTREG=VM_OPTIONS=-XshowSettings%20-Xlog:gc+ref=debug</code>. This can be useful if you have layers of scripts and have trouble getting proper quoting of command line arguments through.)</p> <p>As far as possible, the names of the keywords have been standardized between test suites.</p> <h3 id="jtreg-keywords">JTReg keywords</h3> <h4 id="jobs">JOBS</h4>
--- a/doc/testing.md Fri Apr 06 15:25:59 2018 -0400 +++ b/doc/testing.md Tue Apr 10 11:36:25 2018 -0700 @@ -18,7 +18,7 @@ $ make run-test-jdk_lang JTREG="JOBS=8" $ make run-test TEST=jdk_lang $ make run-test-only TEST="gtest:LogTagSet gtest:LogTagSetDescriptions" GTEST="REPEAT=-1" - $ make run-test TEST="hotspot/test:hotspot_gc" JTREG="JOBS=1;TIMEOUT=8;VM_OTIONS=-XshowSettings -Xlog:gc+ref=debug" + $ make run-test TEST="hotspot/test:hotspot_gc" JTREG="JOBS=1;TIMEOUT=8;VM_OPTIONS=-XshowSettings -Xlog:gc+ref=debug" $ make run-test TEST="jtreg:hotspot/test:hotspot_gc hotspot/test/native_sanity/JniVersion.java" $ make exploded-run-test TEST=hotspot_tier1 @@ -140,11 +140,11 @@ To separate multiple keyword=value pairs, use `;` (semicolon). Since the shell normally eats `;`, the recommended usage is to write the assignment inside qoutes, e.g. `JTREG="...;..."`. This will also make sure spaces are preserved, -as in `JTREG="VM_OTIONS=-XshowSettings -Xlog:gc+ref=debug"`. +as in `JTREG="VM_OPTIONS=-XshowSettings -Xlog:gc+ref=debug"`. (Other ways are possible, e.g. using backslash: `JTREG=JOBS=1\;TIMEOUT=8`. Also, as a special technique, the string `%20` will be replaced with space for -certain options, e.g. `JTREG=VM_OTIONS=-XshowSettings%20-Xlog:gc+ref=debug`. +certain options, e.g. `JTREG=VM_OPTIONS=-XshowSettings%20-Xlog:gc+ref=debug`. This can be useful if you have layers of scripts and have trouble getting proper quoting of command line arguments through.)
--- a/make/CompileDemos.gmk Fri Apr 06 15:25:59 2018 -0400 +++ b/make/CompileDemos.gmk Tue Apr 10 11:36:25 2018 -0700 @@ -242,6 +242,13 @@ DEMO_SUBDIR := jfc, \ )) +$(eval $(call SetupBuildDemo, SwingSet2, \ + DEMO_SUBDIR := jfc, \ + EXTRA_COPY_TO_JAR := .java, \ + EXTRA_MANIFEST_ATTR := SplashScreen-Image: resources/images/splash.png, \ + DISABLE_SJAVAC := true, \ +)) + $(eval $(call SetupBuildDemo, Font2DTest, \ DEMO_SUBDIR := jfc, \ ))
--- a/make/CompileJavaModules.gmk Fri Apr 06 15:25:59 2018 -0400 +++ b/make/CompileJavaModules.gmk Tue Apr 10 11:36:25 2018 -0700 @@ -51,14 +51,6 @@ # data files and shouldn't go in the product java.base_EXCLUDE_FILES += sun/text/resources/BreakIteratorRules.java -ifneq ($(filter solaris macosx linux windows,$(OPENJDK_TARGET_OS)), ) - java.base_EXCLUDE_FILES += \ - sun/nio/ch/AbstractPollSelectorImpl.java \ - sun/nio/ch/PollSelectorImpl.java \ - sun/nio/ch/PollSelectorProvider.java \ - # -endif - ifneq ($(OPENJDK_TARGET_OS), solaris) java.base_EXCLUDE_FILES += \ SolarisLoginModule.java \
--- a/make/CompileToolsHotspot.gmk Fri Apr 06 15:25:59 2018 -0400 +++ b/make/CompileToolsHotspot.gmk Tue Apr 10 11:36:25 2018 -0700 @@ -120,6 +120,7 @@ SRC := \ $(SRC_DIR)/org.graalvm.word/src \ $(SRC_DIR)/org.graalvm.collections/src \ + $(SRC_DIR)/org.graalvm.compiler.bytecode/src \ $(SRC_DIR)/org.graalvm.compiler.replacements.verifier/src \ $(SRC_DIR)/org.graalvm.compiler.api.replacements/src \ $(SRC_DIR)/org.graalvm.compiler.code/src \
--- a/make/CreateJmods.gmk Fri Apr 06 15:25:59 2018 -0400 +++ b/make/CreateJmods.gmk Tue Apr 10 11:36:25 2018 -0700 @@ -80,10 +80,15 @@ DEPS += $(call CacheFind, $(MAN_DIR)) endif +# If a specific modules_legal dir exists for this module, only pick up files +# from there. These files were explicitly filtered or modified in <module>-copy +# targets. For the rest, just pick up everything from the source legal dirs. LEGAL_NOTICES := \ - $(call uniq, $(SUPPORT_OUTPUTDIR)/modules_legal/java.base \ - $(call FindModuleLegalDirs, $(MODULE))) \ - # + $(SUPPORT_OUTPUTDIR)/modules_legal/common \ + $(if $(wildcard $(SUPPORT_OUTPUTDIR)/modules_legal/$(MODULE)), \ + $(wildcard $(SUPPORT_OUTPUTDIR)/modules_legal/$(MODULE)), \ + $(call FindModuleLegalSrcDirs, $(MODULE)) \ + ) LEGAL_NOTICES_PATH := $(call PathList, $(LEGAL_NOTICES)) DEPS += $(call CacheFind, $(LEGAL_NOTICES))
--- a/make/Docs.gmk Fri Apr 06 15:25:59 2018 -0400 +++ b/make/Docs.gmk Tue Apr 10 11:36:25 2018 -0700 @@ -64,7 +64,7 @@ JAVADOC_BASE_URL := http://www.oracle.com/pls/topic/lookup?ctx=javase10&id=homepage BUG_SUBMIT_URL := http://bugreport.java.com/bugreport/ COPYRIGHT_URL := {@docroot}/../legal/copyright.html -LICENSE_URL := http://www.oracle.com/technetwork/java/javase/terms/license/java10speclicense.html +LICENSE_URL := http://www.oracle.com/technetwork/java/javase/terms/license/java$(VERSION_NUMBER)speclicense.html REDISTRIBUTION_URL := http://www.oracle.com/technetwork/java/redist-137594.html # In order to get a specific ordering it's necessary to specify the total @@ -108,7 +108,7 @@ # The initial set of options for javadoc JAVADOC_OPTIONS := -use -keywords -notimestamp \ -serialwarn -encoding ISO-8859-1 -docencoding UTF-8 -breakiterator \ - -splitIndex --system none -html5 -javafx --expand-requires transitive \ + -splitIndex --system none -javafx --expand-requires transitive \ --override-methods=summary # The reference options must stay stable to allow for comparisons across the
--- a/make/Main.gmk Fri Apr 06 15:25:59 2018 -0400 +++ b/make/Main.gmk Tue Apr 10 11:36:25 2018 -0700 @@ -266,14 +266,11 @@ $(foreach v, $(JVM_VARIANTS), $(eval $(call DeclareHotspotLibsRecipe,$v))) -hotspot-jsig: - +($(CD) $(TOPDIR)/make/hotspot && $(MAKE) $(MAKE_ARGS) -f lib/CompileLibjsig.gmk) - hotspot-ide-project: +($(CD) $(TOPDIR)/make/hotspot && $(MAKE) $(MAKE_ARGS) -f ide/CreateVSProject.gmk) ALL_TARGETS += $(HOTSPOT_VARIANT_TARGETS) $(HOTSPOT_VARIANT_GENSRC_TARGETS) \ - $(HOTSPOT_VARIANT_LIBS_TARGETS) hotspot-jsig hotspot-ide-project + $(HOTSPOT_VARIANT_LIBS_TARGETS) hotspot-ide-project ################################################################################ # Build demos targets @@ -909,9 +906,7 @@ buildtools: buildtools-langtools interim-langtools interim-rmic \ buildtools-jdk $(JVM_TOOLS_TARGETS) -hotspot: $(HOTSPOT_VARIANT_TARGETS) hotspot-jsig - -hotspot-libs: hotspot-jsig +hotspot: $(HOTSPOT_VARIANT_TARGETS) # Create targets hotspot-libs and hotspot-gensrc. $(foreach v, $(JVM_VARIANTS), \
--- a/make/autoconf/flags-cflags.m4 Fri Apr 06 15:25:59 2018 -0400 +++ b/make/autoconf/flags-cflags.m4 Tue Apr 10 11:36:25 2018 -0700 @@ -394,8 +394,6 @@ CFLAGS_OS_DEF_JVM="-D_WINDOWS -DWIN32 -D_JNI_IMPLEMENTATION_" fi - # Setup target OS define. Use OS target name but in upper case. - OPENJDK_TARGET_OS_UPPERCASE=`$ECHO $OPENJDK_TARGET_OS | $TR 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'` CFLAGS_OS_DEF_JDK="$CFLAGS_OS_DEF_JDK -D$OPENJDK_TARGET_OS_UPPERCASE" #### GLOBAL DEFINES
--- a/make/autoconf/flags-ldflags.m4 Fri Apr 06 15:25:59 2018 -0400 +++ b/make/autoconf/flags-ldflags.m4 Tue Apr 10 11:36:25 2018 -0700 @@ -81,7 +81,7 @@ elif test "x$TOOLCHAIN_TYPE" = xclang; then BASIC_LDFLAGS_JVM_ONLY="-mno-omit-leaf-frame-pointer -mstack-alignment=16 \ - -stdlib=libstdc++ -fPIC" + -stdlib=libc++ -fPIC" elif test "x$TOOLCHAIN_TYPE" = xsolstudio; then BASIC_LDFLAGS="-Wl,-z,defs" @@ -99,7 +99,7 @@ elif test "x$TOOLCHAIN_TYPE" = xmicrosoft; then BASIC_LDFLAGS="-nologo -opt:ref" BASIC_LDFLAGS_JDK_ONLY="-incremental:no" - BASIC_LDFLAGS_JVM_ONLY="-opt:icf,8 -subsystem:windows -base:0x8000000" + BASIC_LDFLAGS_JVM_ONLY="-opt:icf,8 -subsystem:windows" fi # Setup OS-dependent LDFLAGS
--- a/make/autoconf/flags.m4 Fri Apr 06 15:25:59 2018 -0400 +++ b/make/autoconf/flags.m4 Tue Apr 10 11:36:25 2018 -0700 @@ -116,7 +116,7 @@ # of the OS. It currently has a hard coded value. Setting this also limits # exposure to API changes in header files. Bumping this is likely to # require code changes to build. - MACOSX_VERSION_MIN=10.7.0 + MACOSX_VERSION_MIN=10.9.0 MACOSX_VERSION_MIN_NODOTS=${MACOSX_VERSION_MIN//\./} AC_SUBST(MACOSX_VERSION_MIN) @@ -237,7 +237,11 @@ MACHINE_FLAG="-q${OPENJDK_TARGET_CPU_BITS}" elif test "x$TOOLCHAIN_TYPE" != xmicrosoft; then if test "x$OPENJDK_TARGET_CPU" != xaarch64 && - test "x$OPENJDK_TARGET_CPU" != xarm; then + test "x$OPENJDK_TARGET_CPU" != xarm && + test "x$OPENJDK_TARGET_CPU" != xmips && + test "x$OPENJDK_TARGET_CPU" != xmipsel && + test "x$OPENJDK_TARGET_CPU" != xmips64 && + test "x$OPENJDK_TARGET_CPU" != xmips64el; then MACHINE_FLAG="-m${OPENJDK_TARGET_CPU_BITS}" fi fi @@ -321,22 +325,18 @@ if test "x$TOOLCHAIN_TYPE" = xmicrosoft; then CC_OUT_OPTION=-Fo - EXE_OUT_OPTION=-out: LD_OUT_OPTION=-out: AR_OUT_OPTION=-out: else # The option used to specify the target .o,.a or .so file. # When compiling, how to specify the to be created object file. CC_OUT_OPTION='-o$(SPACE)' - # When linking, how to specify the to be created executable. - EXE_OUT_OPTION='-o$(SPACE)' - # When linking, how to specify the to be created dynamically linkable library. + # When linking, how to specify the output LD_OUT_OPTION='-o$(SPACE)' # When archiving, how to specify the to be create static archive for object files. AR_OUT_OPTION='rcs$(SPACE)' fi AC_SUBST(CC_OUT_OPTION) - AC_SUBST(EXE_OUT_OPTION) AC_SUBST(LD_OUT_OPTION) AC_SUBST(AR_OUT_OPTION)
--- a/make/autoconf/hotspot.m4 Fri Apr 06 15:25:59 2018 -0400 +++ b/make/autoconf/hotspot.m4 Tue Apr 10 11:36:25 2018 -0700 @@ -343,11 +343,10 @@ fi INCLUDE_GRAAL="true" else - # By default enable graal build on linux-x64 or where AOT is available. + # By default enable graal build on x64 or where AOT is available. # graal build requires jvmci. if test "x$JVM_FEATURES_jvmci" = "xjvmci" && \ - (test "x$OPENJDK_TARGET_CPU" = "xx86_64" && \ - test "x$OPENJDK_TARGET_OS" = "xlinux" || \ + (test "x$OPENJDK_TARGET_CPU" = "xx86_64" || \ test "x$ENABLE_AOT" = "xtrue") ; then AC_MSG_RESULT([yes]) JVM_FEATURES_graal="graal"
--- a/make/autoconf/platform.m4 Fri Apr 06 15:25:59 2018 -0400 +++ b/make/autoconf/platform.m4 Tue Apr 10 11:36:25 2018 -0700 @@ -256,9 +256,12 @@ OPENJDK_TARGET_CPU_ARCH="$VAR_CPU_ARCH" OPENJDK_TARGET_CPU_BITS="$VAR_CPU_BITS" OPENJDK_TARGET_CPU_ENDIAN="$VAR_CPU_ENDIAN" + OPENJDK_TARGET_OS_UPPERCASE=`$ECHO $OPENJDK_TARGET_OS | $TR 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'` + AC_SUBST(OPENJDK_TARGET_OS) AC_SUBST(OPENJDK_TARGET_OS_TYPE) AC_SUBST(OPENJDK_TARGET_OS_ENV) + AC_SUBST(OPENJDK_TARGET_OS_UPPERCASE) AC_SUBST(OPENJDK_TARGET_CPU) AC_SUBST(OPENJDK_TARGET_CPU_ARCH) AC_SUBST(OPENJDK_TARGET_CPU_BITS)
--- a/make/autoconf/spec.gmk.in Fri Apr 06 15:25:59 2018 -0400 +++ b/make/autoconf/spec.gmk.in Tue Apr 10 11:36:25 2018 -0700 @@ -65,6 +65,7 @@ OPENJDK_TARGET_OS:=@OPENJDK_TARGET_OS@ OPENJDK_TARGET_OS_TYPE:=@OPENJDK_TARGET_OS_TYPE@ OPENJDK_TARGET_OS_ENV:=@OPENJDK_TARGET_OS_ENV@ +OPENJDK_TARGET_OS_UPPERCASE:=@OPENJDK_TARGET_OS_UPPERCASE@ OPENJDK_TARGET_CPU:=@OPENJDK_TARGET_CPU@ OPENJDK_TARGET_CPU_ARCH:=@OPENJDK_TARGET_CPU_ARCH@ @@ -394,7 +395,6 @@ COMPILER_BINDCMD_FILE_FLAG:=@COMPILER_BINDCMD_FILE_FLAG@ CC_OUT_OPTION:=@CC_OUT_OPTION@ -EXE_OUT_OPTION:=@EXE_OUT_OPTION@ LD_OUT_OPTION:=@LD_OUT_OPTION@ AR_OUT_OPTION:=@AR_OUT_OPTION@ @@ -459,11 +459,6 @@ # Xcode SDK path SDKROOT:=@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:=@USING_BROKEN_SUSE_LD@ - # LDFLAGS used to link the jdk native libraries (C-code) LDFLAGS_JDKLIB:=@LDFLAGS_JDKLIB@ JDKLIB_LIBS:=@JDKLIB_LIBS@ @@ -512,6 +507,8 @@ NM:=@NM@ GNM:=@GNM@ STRIP:=@STRIP@ +OBJDUMP:=@OBJDUMP@ +CXXFILT:=@CXXFILT@ LIPO:=@LIPO@ INSTALL_NAME_TOOL:=@INSTALL_NAME_TOOL@
--- a/make/autoconf/toolchain.m4 Fri Apr 06 15:25:59 2018 -0400 +++ b/make/autoconf/toolchain.m4 Tue Apr 10 11:36:25 2018 -0700 @@ -597,8 +597,9 @@ # solstudio cc requires us to have an existing file to pass as argument, # but it need not be a syntactically correct C file, so just use - # ourself. :) - LINKER_VERSION_STRING=`$LD -Wl,-V $TOPDIR/configure 2>&1 | $HEAD -n 1 | $SED -e 's/ld: //'` + # ourself. :) The intermediate 'cat' is needed to stop ld from leaving + # a lingering a.out (!). + LINKER_VERSION_STRING=`$LD -Wl,-V $TOPDIR/configure 2>&1 | $CAT | $HEAD -n 1 | $SED -e 's/ld: //'` # Extract version number [ LINKER_VERSION_NUMBER=`$ECHO $LINKER_VERSION_STRING | \ $SED -e 's/.* \([0-9][0-9]*\.[0-9][0-9]*\)-\([0-9][0-9]*\.[0-9][0-9]*\)/\1.\2/'` ] @@ -863,6 +864,14 @@ # bails if argument is missing. BASIC_FIXUP_EXECUTABLE(OBJDUMP) fi + + case $TOOLCHAIN_TYPE in + gcc|clang|solstudio) + BASIC_CHECK_TOOLS(CXXFILT, [c++filt]) + BASIC_CHECK_NONEMPTY(CXXFILT) + BASIC_FIXUP_EXECUTABLE(CXXFILT) + ;; + esac ]) # Setup the build tools (i.e, the compiler and linker used to build programs @@ -1013,24 +1022,6 @@ # This is later checked when setting flags. fi - # Check for broken SuSE 'ld' for which 'Only anonymous version tag is allowed - # in executable.' - USING_BROKEN_SUSE_LD=no - if test "x$OPENJDK_TARGET_OS" = xlinux && test "x$TOOLCHAIN_TYPE" = xgcc; then - AC_MSG_CHECKING([for broken SuSE 'ld' which only understands anonymous version tags in executables]) - $ECHO "SUNWprivate_1.1 { local: *; };" > version-script.map - $ECHO "int main() { }" > main.c - if $CXX -Wl,-version-script=version-script.map main.c 2>&AS_MESSAGE_LOG_FD >&AS_MESSAGE_LOG_FD; then - AC_MSG_RESULT(no) - USING_BROKEN_SUSE_LD=no - else - AC_MSG_RESULT(yes) - USING_BROKEN_SUSE_LD=yes - fi - $RM version-script.map main.c a.out - fi - AC_SUBST(USING_BROKEN_SUSE_LD) - # Setup hotspot lecagy names for toolchains HOTSPOT_TOOLCHAIN_TYPE=$TOOLCHAIN_TYPE if test "x$TOOLCHAIN_TYPE" = xclang; then
--- a/make/autoconf/version-numbers Fri Apr 06 15:25:59 2018 -0400 +++ b/make/autoconf/version-numbers Tue Apr 10 11:36:25 2018 -0700 @@ -29,7 +29,7 @@ DEFAULT_VERSION_INTERIM=0 DEFAULT_VERSION_UPDATE=0 DEFAULT_VERSION_PATCH=0 -DEFAULT_VERSION_DATE=2018-09-18 +DEFAULT_VERSION_DATE=2018-09-25 DEFAULT_VERSION_CLASSFILE_MAJOR=55 # "`$EXPR $DEFAULT_VERSION_FEATURE + 44`" DEFAULT_VERSION_CLASSFILE_MINOR=0 DEFAULT_ACCEPTABLE_BOOT_VERSIONS="9 10 11"
--- a/make/common/MakeBase.gmk Fri Apr 06 15:25:59 2018 -0400 +++ b/make/common/MakeBase.gmk Tue Apr 10 11:36:25 2018 -0700 @@ -67,6 +67,7 @@ # In GNU Make 4.0 and higher, there is a file function for writing to files. ifeq (4.0, $(firstword $(sort 4.0 $(MAKE_VERSION)))) HAS_FILE_FUNCTION := true + CORRECT_FUNCTION_IN_RECIPE_EVALUATION := true endif ##############################
--- a/make/common/Modules.gmk Fri Apr 06 15:25:59 2018 -0400 +++ b/make/common/Modules.gmk Tue Apr 10 11:36:25 2018 -0700 @@ -394,12 +394,11 @@ endif LEGAL_SUBDIRS += share/legal -# Find all legal dirs for a particular module +# Find all legal src dirs for a particular module # $1 - Module to find legal dirs for -FindModuleLegalDirs = \ +FindModuleLegalSrcDirs = \ $(strip $(wildcard \ - $(addsuffix /$(strip $1), $(SUPPORT_OUTPUTDIR)/modules_legal \ - $(IMPORT_MODULES_LEGAL)) \ + $(addsuffix /$(strip $1), $(IMPORT_MODULES_LEGAL)) \ $(foreach sub, $(LEGAL_SUBDIRS), $(addsuffix /$(strip $1)/$(sub), $(TOP_SRC_DIRS))) \ ))
--- a/make/common/NativeCompilation.gmk Fri Apr 06 15:25:59 2018 -0400 +++ b/make/common/NativeCompilation.gmk Tue Apr 10 11:36:25 2018 -0700 @@ -292,13 +292,12 @@ endif ifneq ($$(strip $$($1_CFLAGS) $$($1_CXXFLAGS) $$($1_OPTIMIZATION)), ) - $1_VARDEPS := $$($1_CFLAGS) $$($1_CXXFLAGS) $$($1_OPT_CFLAGS) \ - $$($1_OPT_CXXFLAGS) + $1_VARDEPS := $$($1_CFLAGS) $$($1_CXXFLAGS) $$($1_OPTIMIZATION) $1_VARDEPS_FILE := $$(call DependOnVariable, $1_VARDEPS, $$($1_OBJ).vardeps) endif $$($1_OBJ): $$($1_SRC_FILE) $$($$($1_BASE)_COMPILE_VARDEPS_FILE) \ - $$($1_VARDEPS_FILE) | $$($$($1_BASE)_BUILD_INFO) + $$($$($1_BASE)_EXTRA_DEPS) $$($1_VARDEPS_FILE) | $$($$($1_BASE)_BUILD_INFO) $$(call LogInfo, Compiling $$($1_FILENAME) (for $$($$($1_BASE)_BASENAME))) $$(call MakeDir, $$(@D)) ifneq ($(TOOLCHAIN_TYPE), microsoft) @@ -367,6 +366,7 @@ # EXCLUDE_PATTERN exclude files matching any of these substrings # EXTRA_FILES List of extra files not in any of the SRC dirs # EXTRA_OBJECT_FILES List of extra object files to include when linking +# EXTRA_DEPS List of extra dependencies to be added to each compiled file # VERSIONINFO_RESOURCE Input file for RC. Setting this implies that RC will be run # RC_FLAGS flags for RC. # EMBED_MANIFEST if true, embed manifest on Windows. @@ -798,10 +798,6 @@ "-map:$$($1_OUTPUT_DIR)/$$($1_NOSUFFIX).map" $1_DEBUGINFO_FILES := $$($1_OUTPUT_DIR)/$$($1_NOSUFFIX).pdb \ $$($1_OUTPUT_DIR)/$$($1_NOSUFFIX).map - # No separate command is needed for debuginfo on windows, instead - # touch target to make sure it has a later time stamp than the debug - # symbol files to avoid unnecessary relinking on rebuild. - $1_CREATE_DEBUGINFO_CMDS := $(TOUCH) $$($1_TARGET) else ifneq ($(findstring $(OPENJDK_TARGET_OS), linux solaris), ) $1_DEBUGINFO_FILES := $$($1_OUTPUT_DIR)/$$($1_NOSUFFIX).debuginfo @@ -816,15 +812,25 @@ $1_DEBUGINFO_FILES := \ $$($1_OUTPUT_DIR)/$$($1_BASENAME).dSYM/Contents/Info.plist \ $$($1_OUTPUT_DIR)/$$($1_BASENAME).dSYM/Contents/Resources/DWARF/$$($1_BASENAME) - # On Macosx, the debuginfo generation doesn't touch the linked binary, but - # to avoid always relinking, touch it anyway to force a later timestamp than - # the dSYM files. $1_CREATE_DEBUGINFO_CMDS := \ - $(DSYMUTIL) --out $$($1_OUTPUT_DIR)/$$($1_BASENAME).dSYM $$($1_TARGET) $$(NEWLINE) \ - $(TOUCH) $$($1_TARGET) + $(DSYMUTIL) --out $$($1_OUTPUT_DIR)/$$($1_BASENAME).dSYM $$($1_TARGET) endif # OPENJDK_TARGET_OS + # Since the link rule creates more than one file that we want to track, + # we have to use some tricks to get make to cooperate. To properly + # trigger downstream dependants of $$($1_DEBUGINFO_FILES), we must have + # a recipe in the rule below. To avoid rerunning the recipe every time + # have it touch the target. If a debuginfo file is deleted by something + # external, explicitly delete the TARGET to trigger a rebuild of both. + ifneq ($$(wildcard $$($1_DEBUGINFO_FILES)), $$($1_DEBUGINFO_FILES)) + $$(call LogDebug, Deleting $$($1_BASENAME) because debuginfo files are missing) + $$(shell $(RM) $$($1_TARGET)) + endif $$($1_DEBUGINFO_FILES): $$($1_TARGET) + $$(if $$(CORRECT_FUNCTION_IN_RECIPE_EVALUATION), \ + $$(if $$(wildcard $$@), , $$(error $$@ was not created for $$<)) \ + ) + $(TOUCH) $$@ $1 += $$($1_DEBUGINFO_FILES) @@ -855,22 +861,69 @@ endif endif - ifeq ($$($1_TYPE), LIBRARY) - # Generating a dynamic library. - $1_EXTRA_LDFLAGS += $$(call SET_SHARED_LIBRARY_NAME,$$($1_BASENAME)) - ifeq ($(OPENJDK_TARGET_OS), windows) - $1_EXTRA_LDFLAGS += "-implib:$$($1_OBJECT_DIR)/$$($1_NAME).lib" - # Create a rule for the import lib so that other rules may depend on it - $$($1_OBJECT_DIR)/$$($1_NAME).lib: $$($1_TARGET) + ifeq ($$($1_TYPE), STATIC_LIBRARY) + $1_VARDEPS := $$($1_AR) $$($1_ARFLAGS) $$($1_LIBS) \ + $$($1_EXTRA_LIBS) + $1_VARDEPS_FILE := $$(call DependOnVariable, $1_VARDEPS, \ + $$($1_OBJECT_DIR)/$$($1_NOSUFFIX).vardeps) + + # Generating a static library, ie object file archive. + ifeq ($(STATIC_BUILD), true) + ifeq ($$($1_USE_MAPFILE_FOR_SYMBOLS), true) + STATIC_MAPFILE_DEP := $$($1_MAPFILE) + endif endif - # Create loadmap on AIX. Helps in diagnosing some problems. - ifneq ($(COMPILER_BINDCMD_FILE_FLAG), ) - $1_EXTRA_LDFLAGS += $(COMPILER_BINDCMD_FILE_FLAG)$$($1_OBJECT_DIR)/$$($1_NOSUFFIX).loadmap + $$($1_TARGET): $$($1_ALL_OBJS) $$($1_RES) $$($1_VARDEPS_FILE) $$(STATIC_MAPFILE_DEP) + $$(call LogInfo, Building static library $$($1_BASENAME)) + $$(call ExecuteWithLog, $$($1_OBJECT_DIR)/$$($1_SAFE_NAME)_link, \ + $$($1_AR) $$($1_ARFLAGS) $(AR_OUT_OPTION)$$($1_TARGET) $$($1_ALL_OBJS) \ + $$($1_RES)) + ifeq ($(STATIC_BUILD), true) + ifeq ($$($1_USE_MAPFILE_FOR_SYMBOLS), true) + $(CP) $$($1_MAPFILE) $$(@D)/$$(basename $$(@F)).symbols + else + $(GetSymbols) + endif + endif + else + # A shared dynamic library or an executable binary has been specified + ifeq ($$($1_TYPE), LIBRARY) + # Generating a dynamic library. + $1_EXTRA_LDFLAGS += $$(call SET_SHARED_LIBRARY_NAME,$$($1_BASENAME)) + + # Create loadmap on AIX. Helps in diagnosing some problems. + ifneq ($(COMPILER_BINDCMD_FILE_FLAG), ) + $1_EXTRA_LDFLAGS += $(COMPILER_BINDCMD_FILE_FLAG)$$($1_OBJECT_DIR)/$$($1_NOSUFFIX).loadmap + endif + endif + + ifeq ($(OPENJDK_TARGET_OS), windows) + ifeq ($$($1_EMBED_MANIFEST), true) + $1_EXTRA_LDFLAGS += -manifest:embed + endif + + $1_IMPORT_LIBRARY := $$($1_OBJECT_DIR)/$$($1_NAME).lib + $1_EXTRA_LDFLAGS += "-implib:$$($1_IMPORT_LIBRARY)" + # To properly trigger downstream dependants of the import library, just as + # for debug files, we must have a recipe in the rule. To avoid rerunning + # the recipe every time have it touch the target. If an import library + # file is deleted by something external, explicitly delete the target to + # trigger a rebuild of both. + ifneq ($$(wildcard $$($1_IMPORT_LIBRARY)), $$($1_IMPORT_LIBRARY)) + $$(call LogDebug, Deleting $$($1_BASENAME) because import library is missing) + $$(shell $(RM) $$($1_TARGET)) + endif + $$($1_IMPORT_LIBRARY): $$($1_TARGET) + $$(if $$(CORRECT_FUNCTION_IN_RECIPE_EVALUATION), \ + $$(if $$(wildcard $$@), , $$(error $$@ was not created for $$<)) \ + ) + $(TOUCH) $$@ endif $1_VARDEPS := $$($1_LD) $$($1_SYSROOT_LDFLAGS) $$($1_LDFLAGS) $$($1_EXTRA_LDFLAGS) \ - $$(GLOBAL_LIBS) $$($1_LIBS) $$($1_EXTRA_LIBS) $$($1_CREATE_DEBUGINFO_CMDS) \ + $$(GLOBAL_LIBS) $$($1_LIBS) $$($1_EXTRA_LIBS) $$($1_MT) \ + $$($1_CODESIGN) $$($1_CREATE_DEBUGINFO_CMDS) $$($1_MANIFEST_VERSION) \ $$($1_STRIP_CMD) $1_VARDEPS_FILE := $$(call DependOnVariable, $1_VARDEPS, \ $$($1_OBJECT_DIR)/$$($1_NOSUFFIX).vardeps) @@ -909,8 +962,8 @@ endif endif - $$($1_TARGET): $$($1_ALL_OBJS) $$($1_RES) $$($1_REAL_MAPFILE) \ - $$($1_VARDEPS_FILE) + $$($1_TARGET): $$($1_ALL_OBJS) $$($1_RES) $$($1_MANIFEST) \ + $$($1_REAL_MAPFILE) $$($1_VARDEPS_FILE) ifneq ($$($1_OBJ_FILE_LIST), ) ifeq ($$($1_LINK_OBJS_RELATIVE), true) $$(eval $$(call ListPathsSafely, $1_ALL_OBJS_RELATIVE, $$($1_OBJ_FILE_LIST))) @@ -924,74 +977,21 @@ ifeq ($(OPENJDK_TARGET_OS), windows) $$(call ExecuteWithLog, $$($1_OBJECT_DIR)/$$($1_SAFE_NAME)_link, \ $$($1_LD) $$($1_LDFLAGS) $$($1_EXTRA_LDFLAGS) $$($1_SYSROOT_LDFLAGS) \ - $(LD_OUT_OPTION)$$@ $$($1_LD_OBJ_ARG) $$($1_RES) $$(GLOBAL_LIBS) \ - $$($1_LIBS) $$($1_EXTRA_LIBS)) \ + $(LD_OUT_OPTION)$$($1_TARGET) $$($1_LD_OBJ_ARG) $$($1_RES) $$(GLOBAL_LIBS) \ + $$($1_LIBS) $$($1_EXTRA_LIBS)) \ | $(GREP) -v "^ Creating library .*\.lib and object .*\.exp" || \ - test "$$$$?" = "1" ; \ + test "$$$$?" = "1" ; \ $$($1_CREATE_DEBUGINFO_CMDS) $$($1_STRIP_CMD) else $$(call ExecuteWithLog, $$($1_OBJECT_DIR)/$$($1_SAFE_NAME)_link, \ $$(if $$($1_LINK_OBJS_RELATIVE), $$(CD) $$(OUTPUTDIR) ; ) \ $$($1_LD) $$($1_LDFLAGS) $$($1_EXTRA_LDFLAGS) $$($1_SYSROOT_LDFLAGS) \ - $(LD_OUT_OPTION)$$@ $$($1_LD_OBJ_ARG) $$($1_RES) $$(GLOBAL_LIBS) \ - $$($1_LIBS) $$($1_EXTRA_LIBS)) ; \ + $(LD_OUT_OPTION)$$($1_TARGET) $$($1_LD_OBJ_ARG) $$($1_RES) $$(GLOBAL_LIBS) \ + $$($1_LIBS) $$($1_EXTRA_LIBS)) ; \ $$($1_CREATE_DEBUGINFO_CMDS) $$($1_STRIP_CMD) endif - - endif - - ifeq ($$($1_TYPE), STATIC_LIBRARY) - $1_VARDEPS := $$($1_AR) $$($1_ARFLAGS) $$($1_LIBS) \ - $$($1_EXTRA_LIBS) - $1_VARDEPS_FILE := $$(call DependOnVariable, $1_VARDEPS, \ - $$($1_OBJECT_DIR)/$$($1_NOSUFFIX).vardeps) - - # Generating a static library, ie object file archive. - ifeq ($(STATIC_BUILD), true) - ifeq ($$($1_USE_MAPFILE_FOR_SYMBOLS), true) - STATIC_MAPFILE_DEP := $$($1_MAPFILE) - endif - endif - - $$($1_TARGET): $$($1_ALL_OBJS) $$($1_RES) $$($1_VARDEPS_FILE) $$(STATIC_MAPFILE_DEP) - $$(call LogInfo, Building static library $$($1_BASENAME)) - $$(call ExecuteWithLog, $$($1_OBJECT_DIR)/$$($1_SAFE_NAME)_link, \ - $$($1_AR) $$($1_ARFLAGS) $(AR_OUT_OPTION)$$($1_TARGET) $$($1_ALL_OBJS) \ - $$($1_RES)) - ifeq ($(STATIC_BUILD), true) - ifeq ($$($1_USE_MAPFILE_FOR_SYMBOLS), true) - $(CP) $$($1_MAPFILE) $$(@D)/$$(basename $$(@F)).symbols - else - $(GetSymbols) - endif - endif - endif - - ifeq ($$($1_TYPE), EXECUTABLE) - # A executable binary has been specified, setup the target for it. - $1_VARDEPS := $$($1_LD) $$($1_SYSROOT_LDFLAGS) $$($1_LDFLAGS) $$($1_EXTRA_LDFLAGS) \ - $$(GLOBAL_LIBS) $$($1_LIBS) $$($1_EXTRA_LIBS) $$($1_MT) \ - $$($1_CODESIGN) $$($1_CREATE_DEBUGINFO_CMDS) $$($1_MANIFEST_VERSION) \ - $$($1_STRIP_CMD) - $1_VARDEPS_FILE := $$(call DependOnVariable, $1_VARDEPS, \ - $$($1_OBJECT_DIR)/$$($1_NOSUFFIX).vardeps) - - ifeq ($(OPENJDK_TARGET_OS), windows) - ifeq ($$($1_EMBED_MANIFEST), true) - $1_EXTRA_LDFLAGS += -manifest:embed - endif - endif - - $$($1_TARGET): $$($1_ALL_OBJS) $$($1_RES) $$($1_MANIFEST) \ - $$($1_VARDEPS_FILE) - $$(call LogInfo, Linking executable $$($1_BASENAME)) - $$(call ExecuteWithLog, $$($1_OBJECT_DIR)/$$($1_SAFE_NAME)_link, \ - $$($1_LD) $$($1_LDFLAGS) $$($1_EXTRA_LDFLAGS) $$($1_SYSROOT_LDFLAGS) \ - $(EXE_OUT_OPTION)$$($1_TARGET) \ - $$($1_ALL_OBJS) $$($1_RES) \ - $$(GLOBAL_LIBS) $$($1_LIBS) $$($1_EXTRA_LIBS)) ifeq ($(OPENJDK_TARGET_OS), windows) ifneq ($$($1_MANIFEST), ) $$($1_MT) -nologo -manifest $$($1_MANIFEST) -identity:"$$($1_NAME).exe, version=$$($1_MANIFEST_VERSION)" -outputresource:$$@;#1 @@ -1004,9 +1004,6 @@ $(CODESIGN) -s openjdk_codesign $$@ endif endif - $$($1_CREATE_DEBUGINFO_CMDS) - $$($1_STRIP_CMD) - endif endef
--- a/make/conf/jib-profiles.js Fri Apr 06 15:25:59 2018 -0400 +++ b/make/conf/jib-profiles.js Tue Apr 10 11:36:25 2018 -0700 @@ -432,7 +432,7 @@ target_cpu: "x64", dependencies: ["devkit", "autoconf"], configure_args: concat(common.configure_args_64bit, "--with-zlib=system", - "--with-macosx-version-max=10.7.0"), + "--with-macosx-version-max=10.9.0"), }, "solaris-x64": { @@ -472,7 +472,7 @@ build_cpu: "x64", dependencies: ["devkit", "autoconf", "build_devkit", "cups"], configure_args: [ - "--openjdk-target=aarch64-linux-gnu" + "--openjdk-target=aarch64-linux-gnu", "--with-freetype=bundled", ], }, @@ -816,7 +816,7 @@ var getJibProfilesDependencies = function (input, common) { var devkit_platform_revisions = { - linux_x64: "gcc4.9.2-OEL6.4+1.2", + linux_x64: "gcc7.3.0-OEL6.4+1.0", macosx_x64: "Xcode6.3-MacOSX10.9+1.0", solaris_x64: "SS12u4-Solaris11u1+1.0", solaris_sparcv9: "SS12u4-Solaris11u1+1.1",
--- a/make/copy/Copy-java.base.gmk Fri Apr 06 15:25:59 2018 -0400 +++ b/make/copy/Copy-java.base.gmk Tue Apr 10 11:36:25 2018 -0700 @@ -24,6 +24,7 @@ # include CopyCommon.gmk +include Modules.gmk include TextFileProcessing.gmk $(eval $(call IncludeCustomExtension, copy/Copy-java.base.gmk)) @@ -224,13 +225,28 @@ $(eval $(call SetupCopyFiles, COPY_JDK_NOTICES, \ FILES := $(JDK_LICENSE) $(JDK_NOTICE) $(JDK_ADDITIONAL_LICENSE_INFO), \ - DEST := $(LEGAL_DST_DIR), \ + DEST := $(COMMON_LEGAL_DST_DIR), \ FLATTEN := true, \ )) TARGETS += $(COPY_JDK_NOTICES) ################################################################################ +# +# Copy and filter the legal files depending on what 3rd party components are +# bundled or linked from the OS. +# +ifeq ($(USE_EXTERNAL_LIBZ), true) + LEGAL_EXCLUDES += zlib.md +endif + +$(eval $(call SetupCopyLegalFiles, COPY_LEGAL, \ + EXCLUDES := $(LEGAL_EXCLUDES), \ +)) + +TARGETS += $(COPY_LEGAL) + +################################################################################ # Optionally copy libffi.so.? into the the image ifeq ($(ENABLE_LIBFFI_BUNDLING), true)
--- a/make/copy/Copy-java.desktop.gmk Fri Apr 06 15:25:59 2018 -0400 +++ b/make/copy/Copy-java.desktop.gmk Tue Apr 10 11:36:25 2018 -0700 @@ -24,6 +24,7 @@ # include CopyCommon.gmk +include Modules.gmk $(eval $(call IncludeCustomExtension, copy/Copy-java.desktop.gmk)) @@ -48,3 +49,34 @@ TARGETS += $(PSFONTPROPFILE_TARGET_FILES) ################################################################################ +# +# Copy and filter the legal files depending on what 3rd party components are +# bundled or linked from the OS. +# +ifeq ($(USE_EXTERNAL_LIBJPEG), true) + LEGAL_EXCLUDES += jpeg.md +endif + +ifeq ($(USE_EXTERNAL_LIBGIF), true) + LEGAL_EXCLUDES += giflib.md +endif + +ifeq ($(USE_EXTERNAL_LIBPNG), true) + LEGAL_EXCLUDES += libpng.md +endif + +ifeq ($(USE_EXTERNAL_LCMS), true) + LEGAL_EXCLUDES += lcms.md +endif + +ifeq ($(FREETYPE_TO_USE), system) + LEGAL_EXCLUDES += freetype.md +endif + +$(eval $(call SetupCopyLegalFiles, COPY_LEGAL, \ + EXCLUDES := $(LEGAL_EXCLUDES), \ +)) + +TARGETS += $(COPY_LEGAL) + +################################################################################
--- a/make/copy/CopyCommon.gmk Fri Apr 06 15:25:59 2018 -0400 +++ b/make/copy/CopyCommon.gmk Tue Apr 10 11:36:25 2018 -0700 @@ -26,6 +26,7 @@ LIB_DST_DIR := $(SUPPORT_OUTPUTDIR)/modules_libs/$(MODULE) CONF_DST_DIR := $(SUPPORT_OUTPUTDIR)/modules_conf/$(MODULE) LEGAL_DST_DIR := $(SUPPORT_OUTPUTDIR)/modules_legal/$(MODULE) +COMMON_LEGAL_DST_DIR := $(SUPPORT_OUTPUTDIR)/modules_legal/common ################################################################################ # @@ -60,3 +61,24 @@ TARGETS += $(COPY_EXPORTED_INCLUDE_OS) endif + +################################################################################ +# Setup make rules for copying legal files. This is only needed if the files +# need to be filtered due to optional components being enabled/disabled. +# Otherwise CreateJmods.gmk will find the legal files in the original src dirs. +# +# Parameter 1 is the name of the rule. +# +# Remaining parameters are named arguments. These include: +# EXCLUDES : List of filenames to exclude from copy +SetupCopyLegalFiles = $(NamedParamsMacroTemplate) +define SetupCopyLegalFilesBody + $$(foreach f, $$(filter-out $$(addprefix %/, $$($1_EXCLUDES)), \ + $$(wildcard $$(addsuffix /*, $$(call FindModuleLegalSrcDirs, $$(MODULE))))), \ + $$(eval $$(call SetupCopyFiles, $1_$$(notdir $$f), \ + DEST := $$(LEGAL_DST_DIR), \ + FILES := $$f, \ + )) \ + $$(eval $1 += $$($1_$$(notdir $$f))) \ + ) +endef
--- a/make/data/tzdata/VERSION Fri Apr 06 15:25:59 2018 -0400 +++ b/make/data/tzdata/VERSION Tue Apr 10 11:36:25 2018 -0700 @@ -21,4 +21,4 @@ # or visit www.oracle.com if you need additional information or have any # questions. # -tzdata2018c +tzdata2018d
--- a/make/data/tzdata/africa Fri Apr 06 15:25:59 2018 -0400 +++ b/make/data/tzdata/africa Tue Apr 10 11:36:25 2018 -0700 @@ -138,13 +138,13 @@ # Cape Verde / Cabo Verde # +# From Paul Eggert (2018-02-16): # Shanks gives 1907 for the transition to +02. -# Perhaps the 1911-05-26 Portuguese decree -# https://dre.pt/pdf1sdip/1911/05/12500/23132313.pdf -# merely made it official? +# For now, ignore that and follow the 1911-05-26 Portuguese decree +# (see Europe/Lisbon). # # Zone NAME GMTOFF RULES FORMAT [UNTIL] -Zone Atlantic/Cape_Verde -1:34:04 - LMT 1907 # Praia +Zone Atlantic/Cape_Verde -1:34:04 - LMT 1912 Jan 01 2:00u # Praia -2:00 - -02 1942 Sep -2:00 1:00 -01 1945 Oct 15 -2:00 - -02 1975 Nov 25 2:00 @@ -393,15 +393,34 @@ # See Africa/Abidjan. # Ghana -# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S + +# From Paul Eggert (2018-01-30): # Whitman says DST was observed from 1931 to "the present"; -# Shanks & Pottenger say 1936 to 1942; -# and September 1 to January 1 is given by: -# Scott Keltie J, Epstein M (eds), The Statesman's Year-Book, -# 57th ed. Macmillan, London (1920), OCLC 609408015, pp xxviii. -# For lack of better info, assume DST was observed from 1920 to 1942. -Rule Ghana 1920 1942 - Sep 1 0:00 0:20 GHST -Rule Ghana 1920 1942 - Dec 31 0:00 0 GMT +# Shanks & Pottenger say 1936 to 1942 with 20 minutes of DST, +# with transitions on 09-01 and 12-31 at 00:00. +# Page 33 of Parish GCB, Colonial Reports - Annual. No. 1066. Gold +# Coast. Report for 1919. (March 1921), OCLC 784024077 +# http://libsysdigi.library.illinois.edu/ilharvest/africana/books2011-05/5530214/5530214_1919/5530214_1919_opt.pdf +# lists the Determination of the Time Ordinance, 1919, No. 18, +# "to advance the time observed locally by the space of twenty minutes +# during the last four months of each year; the object in view being +# to extend during those months the period of daylight-time available +# for evening recreation after office hours." +# Vanessa Ogle, The Global Transformation of Time, 1870-1950 (2015), p 33, +# writes "In 1919, the Gold Coast (Ghana as of 1957) made Greenwich +# time its legal time and simultaneously legalized a summer time of +# UTC - 00:20 minutes from March to October."; a footnote lists +# the ordinance as being dated 1919-11-24. +# The Crown Colonist, Volume 12 (1942), p 176, says "the Government +# intend advancing Gold Coast time half an hour ahead of G.M.T. +# The actual date of the alteration has not yet been announced." +# These sources are incomplete and contradictory. Possibly what is +# now Ghana observed different DST regimes in different years. For +# lack of better info, use Shanks except treat the minus sign as a +# typo, and assume DST started in 1920 not 1936. +# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S +Rule Ghana 1920 1942 - Sep 1 0:00 0:20 - +Rule Ghana 1920 1942 - Dec 31 0:00 0 - # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Africa/Accra -0:00:52 - LMT 1918 0:00 Ghana GMT/+0020 @@ -411,13 +430,13 @@ # Guinea-Bissau # +# From Paul Eggert (2018-02-16): # Shanks gives 1911-05-26 for the transition to WAT, # evidently confusing the date of the Portuguese decree -# https://dre.pt/pdf1sdip/1911/05/12500/23132313.pdf -# with the date that it took effect, namely 1912-01-01. +# (see Europe/Lisbon) with the date that it took effect. # # Zone NAME GMTOFF RULES FORMAT [UNTIL] -Zone Africa/Bissau -1:02:20 - LMT 1912 Jan 1 +Zone Africa/Bissau -1:02:20 - LMT 1912 Jan 1 1:00u -1:00 - -01 1975 0:00 - GMT @@ -613,9 +632,9 @@ # at 2am (or 02:00) local time..." # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S -Rule Mauritius 1982 only - Oct 10 0:00 1:00 S +Rule Mauritius 1982 only - Oct 10 0:00 1:00 - Rule Mauritius 1983 only - Mar 21 0:00 0 - -Rule Mauritius 2008 only - Oct lastSun 2:00 1:00 S +Rule Mauritius 2008 only - Oct lastSun 2:00 1:00 - Rule Mauritius 2009 only - Mar lastSun 2:00 0 - # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Indian/Mauritius 3:50:00 - LMT 1907 # Port Louis @@ -1060,6 +1079,8 @@ # São Tomé and Príncipe +# See Europe/Lisbon for info about the 1912 transition. + # From Steffen Thorsen (2018-01-08): # Multiple sources tell that São Tomé changed from UTC to UTC+1 as # they entered the year 2018. @@ -1068,7 +1089,7 @@ # http://www.mnec.gov.st/index.php/publicacoes/documentos/file/90-decreto-lei-n-25-2017 Zone Africa/Sao_Tome 0:26:56 - LMT 1884 - -0:36:45 - LMT 1912 # Lisbon Mean Time + -0:36:45 - LMT 1912 Jan 1 00:00u # Lisbon MT 0:00 - GMT 2018 Jan 1 01:00 1:00 - WAT
--- a/make/data/tzdata/antarctica Fri Apr 06 15:25:59 2018 -0400 +++ b/make/data/tzdata/antarctica Tue Apr 10 11:36:25 2018 -0700 @@ -98,7 +98,8 @@ 8:00 - +08 2011 Oct 28 2:00 11:00 - +11 2012 Feb 21 17:00u 8:00 - +08 2016 Oct 22 - 11:00 - +11 + 11:00 - +11 2018 Mar 11 4:00 + 8:00 - +08 Zone Antarctica/Davis 0 - -00 1957 Jan 13 7:00 - +07 1964 Nov 0 - -00 1969 Feb
--- a/make/data/tzdata/asia Fri Apr 06 15:25:59 2018 -0400 +++ b/make/data/tzdata/asia Tue Apr 10 11:36:25 2018 -0700 @@ -92,13 +92,13 @@ Rule EUAsia 1981 max - Mar lastSun 1:00u 1:00 S Rule EUAsia 1979 1995 - Sep lastSun 1:00u 0 - Rule EUAsia 1996 max - Oct lastSun 1:00u 0 - -Rule E-EurAsia 1981 max - Mar lastSun 0:00 1:00 S +Rule E-EurAsia 1981 max - Mar lastSun 0:00 1:00 - Rule E-EurAsia 1979 1995 - Sep lastSun 0:00 0 - Rule E-EurAsia 1996 max - Oct lastSun 0:00 0 - -Rule RussiaAsia 1981 1984 - Apr 1 0:00 1:00 S +Rule RussiaAsia 1981 1984 - Apr 1 0:00 1:00 - Rule RussiaAsia 1981 1983 - Oct 1 0:00 0 - Rule RussiaAsia 1984 1995 - Sep lastSun 2:00s 0 - -Rule RussiaAsia 1985 2010 - Mar lastSun 2:00s 1:00 S +Rule RussiaAsia 1985 2010 - Mar lastSun 2:00s 1:00 - Rule RussiaAsia 1996 2010 - Oct lastSun 2:00s 0 - # Afghanistan @@ -133,7 +133,7 @@ # (brief) # http://www.worldtimezone.com/dst_news/dst_news_armenia03.html # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S -Rule Armenia 2011 only - Mar lastSun 2:00s 1:00 S +Rule Armenia 2011 only - Mar lastSun 2:00s 1:00 - Rule Armenia 2011 only - Oct lastSun 2:00s 0 - # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Asia/Yerevan 2:58:00 - LMT 1924 May 2 @@ -159,7 +159,7 @@ # http://en.apa.az/xeber_azerbaijan_abolishes_daylight_savings_ti_240862.html # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S -Rule Azer 1997 2015 - Mar lastSun 4:00 1:00 S +Rule Azer 1997 2015 - Mar lastSun 4:00 1:00 - Rule Azer 1997 2015 - Oct lastSun 5:00 0 - # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Asia/Baku 3:19:24 - LMT 1924 May 2 @@ -246,7 +246,7 @@ # http://www.worldtimezone.com/dst_news/dst_news_bangladesh06.html # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S -Rule Dhaka 2009 only - Jun 19 23:00 1:00 S +Rule Dhaka 2009 only - Jun 19 23:00 1:00 - Rule Dhaka 2009 only - Dec 31 24:00 0 - # Zone NAME GMTOFF RULES FORMAT [UNTIL] @@ -787,8 +787,9 @@ Rule Macau 1975 1977 - Apr Sun>=15 3:30 1:00 D Rule Macau 1978 1980 - Apr Sun>=15 0:00 1:00 D Rule Macau 1978 1980 - Oct Sun>=15 0:00 0 S +# See Europe/Lisbon for info about the 1912 transition. # Zone NAME GMTOFF RULES FORMAT [UNTIL] -Zone Asia/Macau 7:34:20 - LMT 1912 Jan 1 +Zone Asia/Macau 7:34:20 - LMT 1911 Dec 31 16:00u 8:00 Macau C%sT @@ -1129,61 +1130,61 @@ # thirtieth day of Shahrivar. # # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S -Rule Iran 1978 1980 - Mar 21 0:00 1:00 D -Rule Iran 1978 only - Oct 21 0:00 0 S -Rule Iran 1979 only - Sep 19 0:00 0 S -Rule Iran 1980 only - Sep 23 0:00 0 S -Rule Iran 1991 only - May 3 0:00 1:00 D -Rule Iran 1992 1995 - Mar 22 0:00 1:00 D -Rule Iran 1991 1995 - Sep 22 0:00 0 S -Rule Iran 1996 only - Mar 21 0:00 1:00 D -Rule Iran 1996 only - Sep 21 0:00 0 S -Rule Iran 1997 1999 - Mar 22 0:00 1:00 D -Rule Iran 1997 1999 - Sep 22 0:00 0 S -Rule Iran 2000 only - Mar 21 0:00 1:00 D -Rule Iran 2000 only - Sep 21 0:00 0 S -Rule Iran 2001 2003 - Mar 22 0:00 1:00 D -Rule Iran 2001 2003 - Sep 22 0:00 0 S -Rule Iran 2004 only - Mar 21 0:00 1:00 D -Rule Iran 2004 only - Sep 21 0:00 0 S -Rule Iran 2005 only - Mar 22 0:00 1:00 D -Rule Iran 2005 only - Sep 22 0:00 0 S -Rule Iran 2008 only - Mar 21 0:00 1:00 D -Rule Iran 2008 only - Sep 21 0:00 0 S -Rule Iran 2009 2011 - Mar 22 0:00 1:00 D -Rule Iran 2009 2011 - Sep 22 0:00 0 S -Rule Iran 2012 only - Mar 21 0:00 1:00 D -Rule Iran 2012 only - Sep 21 0:00 0 S -Rule Iran 2013 2015 - Mar 22 0:00 1:00 D -Rule Iran 2013 2015 - Sep 22 0:00 0 S -Rule Iran 2016 only - Mar 21 0:00 1:00 D -Rule Iran 2016 only - Sep 21 0:00 0 S -Rule Iran 2017 2019 - Mar 22 0:00 1:00 D -Rule Iran 2017 2019 - Sep 22 0:00 0 S -Rule Iran 2020 only - Mar 21 0:00 1:00 D -Rule Iran 2020 only - Sep 21 0:00 0 S -Rule Iran 2021 2023 - Mar 22 0:00 1:00 D -Rule Iran 2021 2023 - Sep 22 0:00 0 S -Rule Iran 2024 only - Mar 21 0:00 1:00 D -Rule Iran 2024 only - Sep 21 0:00 0 S -Rule Iran 2025 2027 - Mar 22 0:00 1:00 D -Rule Iran 2025 2027 - Sep 22 0:00 0 S -Rule Iran 2028 2029 - Mar 21 0:00 1:00 D -Rule Iran 2028 2029 - Sep 21 0:00 0 S -Rule Iran 2030 2031 - Mar 22 0:00 1:00 D -Rule Iran 2030 2031 - Sep 22 0:00 0 S -Rule Iran 2032 2033 - Mar 21 0:00 1:00 D -Rule Iran 2032 2033 - Sep 21 0:00 0 S -Rule Iran 2034 2035 - Mar 22 0:00 1:00 D -Rule Iran 2034 2035 - Sep 22 0:00 0 S +Rule Iran 1978 1980 - Mar 21 0:00 1:00 - +Rule Iran 1978 only - Oct 21 0:00 0 - +Rule Iran 1979 only - Sep 19 0:00 0 - +Rule Iran 1980 only - Sep 23 0:00 0 - +Rule Iran 1991 only - May 3 0:00 1:00 - +Rule Iran 1992 1995 - Mar 22 0:00 1:00 - +Rule Iran 1991 1995 - Sep 22 0:00 0 - +Rule Iran 1996 only - Mar 21 0:00 1:00 - +Rule Iran 1996 only - Sep 21 0:00 0 - +Rule Iran 1997 1999 - Mar 22 0:00 1:00 - +Rule Iran 1997 1999 - Sep 22 0:00 0 - +Rule Iran 2000 only - Mar 21 0:00 1:00 - +Rule Iran 2000 only - Sep 21 0:00 0 - +Rule Iran 2001 2003 - Mar 22 0:00 1:00 - +Rule Iran 2001 2003 - Sep 22 0:00 0 - +Rule Iran 2004 only - Mar 21 0:00 1:00 - +Rule Iran 2004 only - Sep 21 0:00 0 - +Rule Iran 2005 only - Mar 22 0:00 1:00 - +Rule Iran 2005 only - Sep 22 0:00 0 - +Rule Iran 2008 only - Mar 21 0:00 1:00 - +Rule Iran 2008 only - Sep 21 0:00 0 - +Rule Iran 2009 2011 - Mar 22 0:00 1:00 - +Rule Iran 2009 2011 - Sep 22 0:00 0 - +Rule Iran 2012 only - Mar 21 0:00 1:00 - +Rule Iran 2012 only - Sep 21 0:00 0 - +Rule Iran 2013 2015 - Mar 22 0:00 1:00 - +Rule Iran 2013 2015 - Sep 22 0:00 0 - +Rule Iran 2016 only - Mar 21 0:00 1:00 - +Rule Iran 2016 only - Sep 21 0:00 0 - +Rule Iran 2017 2019 - Mar 22 0:00 1:00 - +Rule Iran 2017 2019 - Sep 22 0:00 0 - +Rule Iran 2020 only - Mar 21 0:00 1:00 - +Rule Iran 2020 only - Sep 21 0:00 0 - +Rule Iran 2021 2023 - Mar 22 0:00 1:00 - +Rule Iran 2021 2023 - Sep 22 0:00 0 - +Rule Iran 2024 only - Mar 21 0:00 1:00 - +Rule Iran 2024 only - Sep 21 0:00 0 - +Rule Iran 2025 2027 - Mar 22 0:00 1:00 - +Rule Iran 2025 2027 - Sep 22 0:00 0 - +Rule Iran 2028 2029 - Mar 21 0:00 1:00 - +Rule Iran 2028 2029 - Sep 21 0:00 0 - +Rule Iran 2030 2031 - Mar 22 0:00 1:00 - +Rule Iran 2030 2031 - Sep 22 0:00 0 - +Rule Iran 2032 2033 - Mar 21 0:00 1:00 - +Rule Iran 2032 2033 - Sep 21 0:00 0 - +Rule Iran 2034 2035 - Mar 22 0:00 1:00 - +Rule Iran 2034 2035 - Sep 22 0:00 0 - # # The following rules are approximations starting in the year 2038. # These are the best post-2037 approximations available, given the # restrictions of a single rule using a Gregorian-based data format. # At some point this table will need to be extended, though quite # possibly Iran will change the rules first. -Rule Iran 2036 max - Mar 21 0:00 1:00 D -Rule Iran 2036 max - Sep 21 0:00 0 S +Rule Iran 2036 max - Mar 21 0:00 1:00 - +Rule Iran 2036 max - Sep 21 0:00 0 - # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Asia/Tehran 3:25:44 - LMT 1916 @@ -1219,17 +1220,17 @@ # https://www.timeanddate.com/news/time/iraq-dumps-daylight-saving.html # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S -Rule Iraq 1982 only - May 1 0:00 1:00 D -Rule Iraq 1982 1984 - Oct 1 0:00 0 S -Rule Iraq 1983 only - Mar 31 0:00 1:00 D -Rule Iraq 1984 1985 - Apr 1 0:00 1:00 D -Rule Iraq 1985 1990 - Sep lastSun 1:00s 0 S -Rule Iraq 1986 1990 - Mar lastSun 1:00s 1:00 D +Rule Iraq 1982 only - May 1 0:00 1:00 - +Rule Iraq 1982 1984 - Oct 1 0:00 0 - +Rule Iraq 1983 only - Mar 31 0:00 1:00 - +Rule Iraq 1984 1985 - Apr 1 0:00 1:00 - +Rule Iraq 1985 1990 - Sep lastSun 1:00s 0 - +Rule Iraq 1986 1990 - Mar lastSun 1:00s 1:00 - # IATA SSIM (1991/1996) says Apr 1 12:01am UTC; guess the ':01' is a typo. # Shanks & Pottenger say Iraq did not observe DST 1992/1997; ignore this. # -Rule Iraq 1991 2007 - Apr 1 3:00s 1:00 D -Rule Iraq 1991 2007 - Oct 1 3:00s 0 S