commit 68c5619dc3cf145425ba51403da5c8b48f7345be1bac18ad82e2d7c341a2eed0 Author: Fridrich Strba Date: Fri Jul 18 07:42:03 2014 +0000 osc copypac from project:Java:openjdk6:Factory package:java-1_8_0-openjdk revision:57 OBS-URL: https://build.opensuse.org/package/show/Java:Factory/java-1_8_0-openjdk?expand=0&rev=1 diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..9b03811 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,23 @@ +## Default LFS +*.7z filter=lfs diff=lfs merge=lfs -text +*.bsp filter=lfs diff=lfs merge=lfs -text +*.bz2 filter=lfs diff=lfs merge=lfs -text +*.gem filter=lfs diff=lfs merge=lfs -text +*.gz filter=lfs diff=lfs merge=lfs -text +*.jar filter=lfs diff=lfs merge=lfs -text +*.lz filter=lfs diff=lfs merge=lfs -text +*.lzma filter=lfs diff=lfs merge=lfs -text +*.obscpio filter=lfs diff=lfs merge=lfs -text +*.oxt filter=lfs diff=lfs merge=lfs -text +*.pdf filter=lfs diff=lfs merge=lfs -text +*.png filter=lfs diff=lfs merge=lfs -text +*.rpm filter=lfs diff=lfs merge=lfs -text +*.tbz filter=lfs diff=lfs merge=lfs -text +*.tbz2 filter=lfs diff=lfs merge=lfs -text +*.tgz filter=lfs diff=lfs merge=lfs -text +*.ttf filter=lfs diff=lfs merge=lfs -text +*.txz filter=lfs diff=lfs merge=lfs -text +*.whl filter=lfs diff=lfs merge=lfs -text +*.xz filter=lfs diff=lfs merge=lfs -text +*.zip filter=lfs diff=lfs merge=lfs -text +*.zst filter=lfs diff=lfs merge=lfs -text diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..57affb6 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +.osc diff --git a/1015432.patch b/1015432.patch new file mode 100644 index 0000000..615dd16 --- /dev/null +++ b/1015432.patch @@ -0,0 +1,23 @@ +--- jdk8/hotspot/src/os/linux/vm/os_linux.cpp Wed Oct 23 15:44:12 2013 -0700 ++++ jdk8/hotspot/src/os/linux/vm/os_linux.cpp Thu Dec 19 16:03:33 2013 +0000 +@@ -4797,9 +4797,19 @@ + // size. Add a page for compiler2 recursion in main thread. + // Add in 2*BytesPerWord times page size to account for VM stack during + // class initialization depending on 32 or 64 bit VM. ++ ++ + os::Linux::min_stack_allowed = MAX2(os::Linux::min_stack_allowed, + (size_t)(StackYellowPages+StackRedPages+StackShadowPages) * Linux::page_size() + +- (2*BytesPerWord COMPILER2_PRESENT(+1)) * Linux::vm_default_page_size()); ++ (2*BytesPerWord COMPILER2_PRESENT(+1)) ++ * ++#ifdef PPC ++ NOT_ZERO ( Linux::vm_default_page_size() ) ++ ZERO_ONLY ( Linux::page_size() ) ++#else ++ ( Linux::vm_default_page_size() ) ++#endif ++ ); + + size_t threadStackSizeInBytes = ThreadStackSize * K; + if (threadStackSizeInBytes != 0 && diff --git a/5c1d6da1445a.tar.bz2 b/5c1d6da1445a.tar.bz2 new file mode 100644 index 0000000..b2f0975 --- /dev/null +++ b/5c1d6da1445a.tar.bz2 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b24dd2918dd8e9093e6c7ea6d0bf8929cb1bec698dbaeaafdbca09a0d661222c +size 2353411 diff --git a/86856b2e3d18.tar.bz2 b/86856b2e3d18.tar.bz2 new file mode 100644 index 0000000..24d01b7 --- /dev/null +++ b/86856b2e3d18.tar.bz2 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6f77b58637ecb5f7460c1e9b5ef3b951209dce7f75b2555b6b1b805d851430e3 +size 1555314 diff --git a/919405d7316d.tar.bz2 b/919405d7316d.tar.bz2 new file mode 100644 index 0000000..8393548 --- /dev/null +++ b/919405d7316d.tar.bz2 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7abc0357f2389fae57e772abe19b250ce6d95e5055a800be3517264be5028921 +size 1017813 diff --git a/PStack-808293.patch b/PStack-808293.patch new file mode 100644 index 0000000..bb83c60 --- /dev/null +++ b/PStack-808293.patch @@ -0,0 +1,40 @@ +--- jdk8/hotspot/agent/src/share/classes/sun/jvm/hotspot/tools/PStack.java 2012-04-06 02:26:33.322164601 +0200 ++++ jdk8/hotspot/agent/src/share/classes/sun/jvm/hotspot/tools/PStack.java 2012-04-06 02:26:57.958514071 +0200 +@@ -1,5 +1,6 @@ + /* + * Copyright (c) 2003, 2013, Oracle and/or its affiliates. All rights reserved. ++ * Copyright (c) 2012, Red Hat Inc. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it +@@ -84,7 +85,8 @@ + out.print("----------------- "); + out.print(th); + out.println(" -----------------"); +- while (f != null) { ++ int maxStack = 256; ++ while (f != null && maxStack-- > 0) { + ClosestSymbol sym = f.closestSymbolToPC(); + Address pc = f.pc(); + out.print(pc + "\t"); +@@ -158,10 +160,19 @@ + } + } + } ++ Address oldPC = f.pc(); ++ Address oldFP = f.localVariableBase(); + f = f.sender(th); ++ if (f != null ++ && oldPC.equals(f.pc()) ++ && oldFP.equals(f.localVariableBase())) { ++ // We didn't make any progress ++ f = null; ++ } + } + } catch (Exception exp) { +- exp.printStackTrace(); ++ // exp.printStackTrace(); ++ out.println("bad stack: " + exp); + // continue, may be we can do a better job for other threads + } + if (concurrentLocks) { diff --git a/TestCryptoLevel.java b/TestCryptoLevel.java new file mode 100644 index 0000000..325a89c --- /dev/null +++ b/TestCryptoLevel.java @@ -0,0 +1,72 @@ +/* TestCryptoLevel -- Ensure unlimited crypto policy is in use. + Copyright (C) 2012 Red Hat, Inc. + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU Affero General Public License as +published by the Free Software Foundation, either version 3 of the +License, or (at your option) any later version. + +This program 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 Affero General Public License for more details. + +You should have received a copy of the GNU Affero General Public License +along with this program. If not, see . +*/ + +import java.lang.reflect.Field; +import java.lang.reflect.Method; +import java.lang.reflect.InvocationTargetException; + +import java.security.Permission; +import java.security.PermissionCollection; + +public class TestCryptoLevel +{ + public static void main(String[] args) + throws NoSuchFieldException, ClassNotFoundException, + IllegalAccessException, InvocationTargetException + { + Class cls = null; + Method def = null, exempt = null; + + try + { + cls = Class.forName("javax.crypto.JceSecurity"); + } + catch (ClassNotFoundException ex) + { + System.err.println("Running a non-Sun JDK."); + System.exit(0); + } + try + { + def = cls.getDeclaredMethod("getDefaultPolicy"); + exempt = cls.getDeclaredMethod("getExemptPolicy"); + } + catch (NoSuchMethodException ex) + { + System.err.println("Running IcedTea with the original crypto patch."); + System.exit(0); + } + def.setAccessible(true); + exempt.setAccessible(true); + PermissionCollection defPerms = (PermissionCollection) def.invoke(null); + PermissionCollection exemptPerms = (PermissionCollection) exempt.invoke(null); + Class apCls = Class.forName("javax.crypto.CryptoAllPermission"); + Field apField = apCls.getDeclaredField("INSTANCE"); + apField.setAccessible(true); + Permission allPerms = (Permission) apField.get(null); + if (defPerms.implies(allPerms) && (exemptPerms == null || exemptPerms.implies(allPerms))) + { + System.err.println("Running with the unlimited policy."); + System.exit(0); + } + else + { + System.err.println("WARNING: Running with a restricted crypto policy."); + System.exit(-1); + } + } +} diff --git a/aarch64-jni-update.patch b/aarch64-jni-update.patch new file mode 100644 index 0000000..fbba8aa --- /dev/null +++ b/aarch64-jni-update.patch @@ -0,0 +1,57 @@ +--- jdk8/hotspot/make/linux/makefiles/mapfile-vers-product 2014-06-23 13:56:33.000000000 -0400 ++++ jdk8/hotspot/make/linux/makefiles/mapfile-vers-product 2014-07-02 05:11:08.566464756 -0400 +@@ -163,6 +163,7 @@ + JVM_GetStackTraceElement; + JVM_GetSystemPackage; + JVM_GetSystemPackages; ++ JVM_GetTemporaryDirectory; + JVM_GetThreadStateNames; + JVM_GetThreadStateValues; + JVM_GetVersionInfo; +--- jdk8/hotspot/make/linux/makefiles/mapfile-vers-debug 2014-06-23 13:56:33.000000000 -0400 ++++ jdk8/hotspot/make/linux/makefiles/mapfile-vers-debug 2014-07-02 05:10:54.827654319 -0400 +@@ -163,6 +163,7 @@ + JVM_GetStackTraceElement; + JVM_GetSystemPackage; + JVM_GetSystemPackages; ++ JVM_GetTemporaryDirectory; + JVM_GetThreadStateNames; + JVM_GetThreadStateValues; + JVM_GetVersionInfo; +--- jdk8/hotspot/src/share/vm/prims/jvm.cpp 2014-06-23 13:56:33.000000000 -0400 ++++ jdk8/hotspot/src/share/vm/prims/jvm.cpp 2014-07-02 05:09:22.335662279 -0400 +@@ -391,6 +391,21 @@ + return properties; + JVM_END + ++/* ++ * Return the temporary directory that the VM uses for the attach ++ * and perf data files. ++ * ++ * It is important that this directory is well-known and the ++ * same for all VM instances. It cannot be affected by configuration ++ * variables such as java.io.tmpdir. ++ */ ++JVM_ENTRY(jstring, JVM_GetTemporaryDirectory(JNIEnv *env)) ++ JVMWrapper("JVM_GetTemporaryDirectory"); ++ HandleMark hm(THREAD); ++ const char* temp_dir = os::get_temp_directory(); ++ Handle h = java_lang_String::create_from_platform_dependent_str(temp_dir, CHECK_NULL); ++ return (jstring) JNIHandles::make_local(env, h()); ++JVM_END + + // java.lang.Runtime ///////////////////////////////////////////////////////////////////////// + +--- jdk8/hotspot/src/share/vm/prims/jvm.h 2014-06-23 13:56:33.000000000 -0400 ++++ jdk8/hotspot/src/share/vm/prims/jvm.h 2014-07-02 05:07:41.524389758 -0400 +@@ -1490,6 +1490,9 @@ + JNIEXPORT jobject JNICALL + JVM_InitAgentProperties(JNIEnv *env, jobject agent_props); + ++JNIEXPORT jstring JNICALL ++JVM_GetTemporaryDirectory(JNIEnv *env); ++ + /* Generics reflection support. + * + * Returns information about the given class's EnclosingMethod + diff --git a/aarch64-misc.patch b/aarch64-misc.patch new file mode 100644 index 0000000..6fab43e --- /dev/null +++ b/aarch64-misc.patch @@ -0,0 +1,205 @@ +--- jdk8/common/autoconf/generated-configure.sh 2014-06-18 21:34:07.000000000 +0200 ++++ jdk8/common/autoconf/generated-configure.sh 2014-07-09 16:02:13.342878150 +0200 +@@ -6818,6 +6818,12 @@ + VAR_CPU_BITS=32 + VAR_CPU_ENDIAN=little + ;; ++ aarch64) ++ VAR_CPU=aarch64 ++ VAR_CPU_ARCH=aarch64 ++ VAR_CPU_BITS=64 ++ VAR_CPU_ENDIAN=little ++ ;; + powerpc) + VAR_CPU=ppc + VAR_CPU_ARCH=ppc +@@ -6949,6 +6955,12 @@ + VAR_CPU_BITS=32 + VAR_CPU_ENDIAN=little + ;; ++ aarch64) ++ VAR_CPU=aarch64 ++ VAR_CPU_ARCH=aarch64 ++ VAR_CPU_BITS=64 ++ VAR_CPU_ENDIAN=little ++ ;; + powerpc) + VAR_CPU=ppc + VAR_CPU_ARCH=ppc +@@ -7909,11 +7921,6 @@ + JVM_VARIANT_ZEROSHARK=`$ECHO "$JVM_VARIANTS" | $SED -e '/,zeroshark,/!s/.*/false/g' -e '/,zeroshark,/s/.*/true/g'` + JVM_VARIANT_CORE=`$ECHO "$JVM_VARIANTS" | $SED -e '/,core,/!s/.*/false/g' -e '/,core,/s/.*/true/g'` + +- if test "x$JVM_VARIANT_CLIENT" = xtrue; then +- if test "x$OPENJDK_TARGET_CPU_BITS" = x64; then +- as_fn_error $? "You cannot build a client JVM for a 64-bit machine." "$LINENO" 5 +- fi +- fi + if test "x$JVM_VARIANT_KERNEL" = xtrue; then + if test "x$OPENJDK_TARGET_CPU_BITS" = x64; then + as_fn_error $? "You cannot build a kernel JVM for a 64-bit machine." "$LINENO" 5 +@@ -7953,6 +7960,9 @@ + if test "x$VAR_CPU" = xppc64 ; then + INCLUDE_SA=false + fi ++ if test "x$OPENJDK_TARGET_CPU" = xaarch64; then ++ INCLUDE_SA=false ++ fi + + + if test "x$OPENJDK_TARGET_OS" = "xmacosx"; then +@@ -29712,7 +29722,7 @@ + # + case $COMPILER_NAME in + gcc ) +- CCXXFLAGS_JDK="$CCXXFLAGS $CCXXFLAGS_JDK -W -Wall -Wno-unused -Wno-parentheses \ ++ CCXXFLAGS_JDK="$CCXXFLAGS $CCXXFLAGS_JDK -W -Wall -Wno-unused -Wno-unused-parameter -Wno-parentheses \ + -pipe \ + -D_GNU_SOURCE -D_REENTRANT -D_LARGEFILE64_SOURCE" + case $OPENJDK_TARGET_CPU_ARCH in +@@ -29957,6 +29967,9 @@ + s390) + ZERO_ARCHFLAG="${COMPILER_TARGET_BITS_FLAG}31" + ;; ++ aarch64) ++ ZERO_ARCHFLAG="" ++ ;; + *) + ZERO_ARCHFLAG="${COMPILER_TARGET_BITS_FLAG}${OPENJDK_TARGET_CPU_BITS}" + esac +--- jdk8/common/autoconf/jdk-options.m4 2014-06-18 21:34:07.000000000 +0200 ++++ jdk8/common/autoconf/jdk-options.m4 2014-07-09 16:03:01.156813855 +0200 +@@ -117,11 +117,6 @@ + JVM_VARIANT_ZEROSHARK=`$ECHO "$JVM_VARIANTS" | $SED -e '/,zeroshark,/!s/.*/false/g' -e '/,zeroshark,/s/.*/true/g'` + JVM_VARIANT_CORE=`$ECHO "$JVM_VARIANTS" | $SED -e '/,core,/!s/.*/false/g' -e '/,core,/s/.*/true/g'` + +- if test "x$JVM_VARIANT_CLIENT" = xtrue; then +- if test "x$OPENJDK_TARGET_CPU_BITS" = x64; then +- AC_MSG_ERROR([You cannot build a client JVM for a 64-bit machine.]) +- fi +- fi + if test "x$JVM_VARIANT_KERNEL" = xtrue; then + if test "x$OPENJDK_TARGET_CPU_BITS" = x64; then + AC_MSG_ERROR([You cannot build a kernel JVM for a 64-bit machine.]) +@@ -161,6 +156,9 @@ + if test "x$VAR_CPU" = xppc64 ; then + INCLUDE_SA=false + fi ++ if test "x$OPENJDK_TARGET_CPU" = xaarch64; then ++ INCLUDE_SA=false ++ fi + AC_SUBST(INCLUDE_SA) + + if test "x$OPENJDK_TARGET_OS" = "xmacosx"; then +--- jdk8/common/autoconf/platform.m4 2014-06-18 21:34:07.000000000 +0200 ++++ jdk8/common/autoconf/platform.m4 2014-07-09 16:02:13.345878082 +0200 +@@ -48,6 +48,12 @@ + VAR_CPU_BITS=32 + VAR_CPU_ENDIAN=little + ;; ++ aarch64) ++ VAR_CPU=aarch64 ++ VAR_CPU_ARCH=aarch64 ++ VAR_CPU_BITS=64 ++ VAR_CPU_ENDIAN=little ++ ;; + powerpc) + VAR_CPU=ppc + VAR_CPU_ARCH=ppc +--- jdk8/common/autoconf/toolchain.m4 2014-06-18 21:34:07.000000000 +0200 ++++ jdk8/common/autoconf/toolchain.m4 2014-07-09 16:02:13.345878082 +0200 +@@ -878,7 +878,7 @@ + # + case $COMPILER_NAME in + gcc ) +- CCXXFLAGS_JDK="$CCXXFLAGS $CCXXFLAGS_JDK -W -Wall -Wno-unused -Wno-parentheses \ ++ CCXXFLAGS_JDK="$CCXXFLAGS $CCXXFLAGS_JDK -W -Wall -Wno-unused -Wno-unused-parameter -Wno-parentheses \ + -pipe \ + -D_GNU_SOURCE -D_REENTRANT -D_LARGEFILE64_SOURCE" + case $OPENJDK_TARGET_CPU_ARCH in +@@ -1158,6 +1158,9 @@ + s390) + ZERO_ARCHFLAG="${COMPILER_TARGET_BITS_FLAG}31" + ;; ++ aarch64) ++ ZERO_ARCHFLAG="" ++ ;; + *) + ZERO_ARCHFLAG="${COMPILER_TARGET_BITS_FLAG}${OPENJDK_TARGET_CPU_BITS}" + esac +--- jdk8/jdk/make/gensrc/GensrcMisc.gmk 2014-06-23 01:01:34.000000000 +0200 ++++ jdk8/jdk/make/gensrc/GensrcMisc.gmk 2014-07-09 16:02:13.346878060 +0200 +@@ -95,7 +95,7 @@ + INCLUDE_FILES := $(GENSRC_SOR_SRC_FILE), \ + LANG := C, \ + CC := $(BUILD_CC), \ +- LDEXE := $(BUILD_LD), \ ++ LDEXE := $(BUILD_CC), \ + OBJECT_DIR := $(GENSRC_SOR_BIN), \ + OUTPUT_DIR := $(GENSRC_SOR_BIN), \ + PROGRAM := genSocketOptionRegistry)) +--- jdk8/jdk/make/lib/SoundLibraries.gmk 2014-06-23 01:01:34.000000000 +0200 ++++ jdk8/jdk/make/lib/SoundLibraries.gmk 2014-07-09 16:02:13.346878060 +0200 +@@ -139,6 +139,10 @@ + ifeq ($(OPENJDK_TARGET_CPU), ppc64) + LIBJSOUND_CFLAGS += -DX_ARCH=X_PPC64 + endif ++ ++ ifeq ($(OPENJDK_TARGET_CPU), aarch64) ++ LIBJSOUND_CFLAGS += -DX_ARCH=X_AARCH64 ++ endif + endif + + LIBJSOUND_CFLAGS += -DEXTRA_SOUND_JNI_LIBS='"$(EXTRA_SOUND_JNI_LIBS)"' +--- jdk8/jdk/src/share/native/com/sun/media/sound/SoundDefs.h 2014-06-23 01:01:34.000000000 +0200 ++++ jdk8/jdk/src/share/native/com/sun/media/sound/SoundDefs.h 2014-07-09 16:02:13.346878060 +0200 +@@ -43,6 +43,7 @@ + #define X_ZERO 6 + #define X_ARM 7 + #define X_PPC 8 ++#define X_AARCH64 9 + + // ********************************** + // Make sure you set X_PLATFORM and X_ARCH defines correctly. +--- jdk8/jdk/src/solaris/bin/aarch64/jvm.cfg 1970-01-01 01:00:00.000000000 +0100 ++++ jdk8/jdk/src/solaris/bin/aarch64/jvm.cfg 2014-07-09 16:02:13.346878060 +0200 +@@ -0,0 +1,39 @@ ++# Copyright (c) 2011, 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. ++# ++# List of JVMs that can be used as an option to java, javac, etc. ++# Order is important -- first in this list is the default JVM. ++# NOTE that this both this file and its format are UNSUPPORTED and ++# WILL GO AWAY in a future release. ++# ++# You may also select a JVM in an arbitrary location with the ++# "-XXaltjvm=" option, but that too is unsupported ++# and may not be available in a future release. ++# ++# n.b. server must be first so it is used as the default ++-server KNOWN ++-minimal ERROR ++-cacao ERROR ++-zero KNOWN ++-shark ERROR ++-jamvm ERROR diff --git a/ad36f9454ce3.tar.bz2 b/ad36f9454ce3.tar.bz2 new file mode 100644 index 0000000..a46310d --- /dev/null +++ b/ad36f9454ce3.tar.bz2 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4f60f9d22d3ab6118ed0e93e41ef449d029486fab41327724a5ce5983349f029 +size 2602994 diff --git a/adlc-parser.patch b/adlc-parser.patch new file mode 100644 index 0000000..fdb113c --- /dev/null +++ b/adlc-parser.patch @@ -0,0 +1,10 @@ +--- jdk8/hotspot/src/share/vm/adlc/formsopt.cpp 2014-07-03 21:56:12.000000000 +0200 ++++ jdk8/hotspot/src/share/vm/adlc/formsopt.cpp 2014-07-14 11:43:21.900408570 +0200 +@@ -347,6 +347,7 @@ + _return_value = NULL; + _c_return_value = NULL; + _interpreter_frame_pointer_reg = NULL; ++ _cisc_spilling_operand_name = NULL; + } + + FrameForm::~FrameForm() { diff --git a/applet-hole.patch b/applet-hole.patch new file mode 100644 index 0000000..1fb4098 --- /dev/null +++ b/applet-hole.patch @@ -0,0 +1,108 @@ +diff --git jdk8/jdk/src/share/classes/sun/applet/AppletPanel.java jdk8/jdk/src/share/classes/sun/applet/AppletPanel.java +--- jdk8/jdk/src/share/classes/sun/applet/AppletPanel.java ++++ jdk8/jdk/src/share/classes/sun/applet/AppletPanel.java +@@ -68,7 +68,7 @@ + /** + * The applet (if loaded). + */ +- Applet applet; ++ protected Applet applet; + + /** + * Applet will allow initialization. Should be +@@ -162,7 +162,8 @@ + * Creates a thread to run the applet. This method is called + * each time an applet is loaded and reloaded. + */ +- synchronized void createAppletThread() { ++ //Overridden by NetxPanel. ++ protected synchronized void createAppletThread() { + // Create a thread group for the applet, and start a new + // thread to load the applet. + String nm = "applet-" + getCode(); +@@ -306,7 +307,7 @@ + /** + * Get an event from the queue. + */ +- synchronized AppletEvent getNextEvent() throws InterruptedException { ++ protected synchronized AppletEvent getNextEvent() throws InterruptedException { + while (queue == null || queue.isEmpty()) { + wait(); + } +@@ -692,7 +693,8 @@ + * applet event processing so that it can be gracefully interrupted from + * things like HotJava. + */ +- private void runLoader() { ++ //Overridden by NetxPanel. ++ protected void runLoader() { + if (status != APPLET_DISPOSE) { + showAppletStatus("notdisposed"); + return; +diff --git jdk8/jdk/src/share/classes/sun/applet/AppletViewerPanel.java jdk8/jdk/src/share/classes/sun/applet/AppletViewerPanel.java +--- jdk8/jdk/src/share/classes/sun/applet/AppletViewerPanel.java ++++ jdk8/jdk/src/share/classes/sun/applet/AppletViewerPanel.java +@@ -42,25 +42,25 @@ + * + * @author Arthur van Hoff + */ +-class AppletViewerPanel extends AppletPanel { ++public class AppletViewerPanel extends AppletPanel { + + /* Are we debugging? */ +- static boolean debug = false; ++ protected static boolean debug = false; + + /** + * The document url. + */ +- URL documentURL; ++ protected URL documentURL; + + /** + * The base url. + */ +- URL baseURL; ++ protected URL baseURL; + + /** + * The attributes of the applet. + */ +- Hashtable atts; ++ protected Hashtable atts; + + /* + * JDK 1.1 serialVersionUID +@@ -70,7 +70,7 @@ + /** + * Construct an applet viewer and start the applet. + */ +- AppletViewerPanel(URL documentURL, Hashtable atts) { ++ protected AppletViewerPanel(URL documentURL, Hashtable atts) { + this.documentURL = documentURL; + this.atts = atts; + +@@ -106,7 +106,7 @@ + * Get an applet parameter. + */ + public String getParameter(String name) { +- return (String)atts.get(name.toLowerCase()); ++ return atts.get(name.toLowerCase()); + } + + /** +@@ -202,12 +202,12 @@ + return (AppletContext)getParent(); + } + +- static void debug(String s) { ++ protected static void debug(String s) { + if(debug) + System.err.println("AppletViewerPanel:::" + s); + } + +- static void debug(String s, Throwable t) { ++ protected static void debug(String s, Throwable t) { + if(debug) { + t.printStackTrace(); + debug(s); diff --git a/b14daf2459c5.tar.bz2 b/b14daf2459c5.tar.bz2 new file mode 100644 index 0000000..2b0f925 --- /dev/null +++ b/b14daf2459c5.tar.bz2 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:09adf4f910a15b6050df464b3e007f117fa0a56d6ef6d8911ff0ce372842086e +size 392479 diff --git a/be30cb2a3088.tar.bz2 b/be30cb2a3088.tar.bz2 new file mode 100644 index 0000000..dcc7c89 --- /dev/null +++ b/be30cb2a3088.tar.bz2 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ac07f4be8984617fee929cd7cc70cd052686659e6beb638595319d6d34f8193d +size 45323541 diff --git a/c5b8254a0fe2.tar.bz2 b/c5b8254a0fe2.tar.bz2 new file mode 100644 index 0000000..c81c4cb --- /dev/null +++ b/c5b8254a0fe2.tar.bz2 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3ce74dcb33fdf0b29b146b6ae25f700506f5d5963a5dc23b18cbcb168f15f19f +size 7931673 diff --git a/compare-pointer-with-literal.patch b/compare-pointer-with-literal.patch new file mode 100644 index 0000000..ca60a10 --- /dev/null +++ b/compare-pointer-with-literal.patch @@ -0,0 +1,11 @@ +--- jdk8/jdk/src/solaris/native/sun/awt/awt_Font.c 2014-06-23 01:01:34.000000000 +0200 ++++ jdk8/jdk/src/solaris/native/sun/awt/awt_Font.c 2014-07-08 23:22:33.235559628 +0200 +@@ -502,7 +502,7 @@ + jio_snprintf(fdata->flist[i].xlfd, strlen(nativename) + 10, + nativename, size * 10); + +- if (nativename != NULL && nativename != "") ++ if (nativename && !strcmp(nativename, "")) + JNU_ReleaseStringPlatformChars(env, fontDescriptorName, (const char *) nativename); + + /* diff --git a/config.guess b/config.guess new file mode 100644 index 0000000..93a3934 --- /dev/null +++ b/config.guess @@ -0,0 +1,1578 @@ +#! /bin/sh +# Attempt to guess a canonical system name. +# Copyright 1992-2013 Free Software Foundation, Inc. + +timestamp='2013-11-29' + +# This file is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program 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 for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, see . +# +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program that contains a +# configuration script generated by Autoconf, you may include it under +# the same distribution terms that you use for the rest of that +# program. This Exception is an additional permission under section 7 +# of the GNU General Public License, version 3 ("GPLv3"). +# +# Originally written by Per Bothner. +# +# You can get the latest version of this script from: +# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD +# +# Please send patches with a ChangeLog entry to config-patches@gnu.org. + + +me=`echo "$0" | sed -e 's,.*/,,'` + +usage="\ +Usage: $0 [OPTION] + +Output the configuration name of the system \`$me' is run on. + +Operation modes: + -h, --help print this help, then exit + -t, --time-stamp print date of last modification, then exit + -v, --version print version number, then exit + +Report bugs and patches to ." + +version="\ +GNU config.guess ($timestamp) + +Originally written by Per Bothner. +Copyright 1992-2013 Free Software Foundation, Inc. + +This is free software; see the source for copying conditions. There is NO +warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." + +help=" +Try \`$me --help' for more information." + +# Parse command line +while test $# -gt 0 ; do + case $1 in + --time-stamp | --time* | -t ) + echo "$timestamp" ; exit ;; + --version | -v ) + echo "$version" ; exit ;; + --help | --h* | -h ) + echo "$usage"; exit ;; + -- ) # Stop option processing + shift; break ;; + - ) # Use stdin as input. + break ;; + -* ) + echo "$me: invalid option $1$help" >&2 + exit 1 ;; + * ) + break ;; + esac +done + +if test $# != 0; then + echo "$me: too many arguments$help" >&2 + exit 1 +fi + +trap 'exit 1' 1 2 15 + +# CC_FOR_BUILD -- compiler used by this script. Note that the use of a +# compiler to aid in system detection is discouraged as it requires +# temporary files to be created and, as you can see below, it is a +# headache to deal with in a portable fashion. + +# Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still +# use `HOST_CC' if defined, but it is deprecated. + +# Portable tmp directory creation inspired by the Autoconf team. + +set_cc_for_build=' +trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ; +trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ; +: ${TMPDIR=/tmp} ; + { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } || + { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } || + { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } || + { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ; +dummy=$tmp/dummy ; +tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ; +case $CC_FOR_BUILD,$HOST_CC,$CC in + ,,) echo "int x;" > $dummy.c ; + for c in cc gcc c89 c99 ; do + if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then + CC_FOR_BUILD="$c"; break ; + fi ; + done ; + if test x"$CC_FOR_BUILD" = x ; then + CC_FOR_BUILD=no_compiler_found ; + fi + ;; + ,,*) CC_FOR_BUILD=$CC ;; + ,*,*) CC_FOR_BUILD=$HOST_CC ;; +esac ; set_cc_for_build= ;' + +# This is needed to find uname on a Pyramid OSx when run in the BSD universe. +# (ghazi@noc.rutgers.edu 1994-08-24) +if (test -f /.attbin/uname) >/dev/null 2>&1 ; then + PATH=$PATH:/.attbin ; export PATH +fi + +UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown +UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown +UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown +UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown + +case "${UNAME_SYSTEM}" in +Linux|GNU|GNU/*) + # If the system lacks a compiler, then just pick glibc. + # We could probably try harder. + LIBC=gnu + + eval $set_cc_for_build + cat <<-EOF > $dummy.c + #include + #if defined(__UCLIBC__) + LIBC=uclibc + #elif defined(__dietlibc__) + LIBC=dietlibc + #else + LIBC=gnu + #endif + EOF + eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC'` + ;; +esac + +case "${UNAME_MACHINE}" in + i?86) + test -z "$VENDOR" && VENDOR=pc + ;; + *) + test -z "$VENDOR" && VENDOR=unknown + ;; +esac +test -f /etc/SuSE-release -o -f /.buildenv && VENDOR=suse + +# Note: order is significant - the case branches are not exclusive. + +case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in + *:NetBSD:*:*) + # NetBSD (nbsd) targets should (where applicable) match one or + # more of the tuples: *-*-netbsdelf*, *-*-netbsdaout*, + # *-*-netbsdecoff* and *-*-netbsd*. For targets that recently + # switched to ELF, *-*-netbsd* would select the old + # object file format. This provides both forward + # compatibility and a consistent mechanism for selecting the + # object file format. + # + # Note: NetBSD doesn't particularly care about the vendor + # portion of the name. We always set it to "unknown". + sysctl="sysctl -n hw.machine_arch" + UNAME_MACHINE_ARCH=`(/sbin/$sysctl 2>/dev/null || \ + /usr/sbin/$sysctl 2>/dev/null || echo unknown)` + case "${UNAME_MACHINE_ARCH}" in + armeb) machine=armeb-unknown ;; + arm*) machine=arm-unknown ;; + sh3el) machine=shl-unknown ;; + sh3eb) machine=sh-unknown ;; + sh5el) machine=sh5le-unknown ;; + *) machine=${UNAME_MACHINE_ARCH}-unknown ;; + esac + # The Operating System including object format, if it has switched + # to ELF recently, or will in the future. + case "${UNAME_MACHINE_ARCH}" in + arm*|i386|m68k|ns32k|sh3*|sparc|vax) + eval $set_cc_for_build + if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \ + | grep -q __ELF__ + then + # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout). + # Return netbsd for either. FIX? + os=netbsd + else + os=netbsdelf + fi + ;; + *) + os=netbsd + ;; + esac + # The OS release + # Debian GNU/NetBSD machines have a different userland, and + # thus, need a distinct triplet. However, they do not need + # kernel version information, so it can be replaced with a + # suitable tag, in the style of linux-gnu. + case "${UNAME_VERSION}" in + Debian*) + release='-gnu' + ;; + *) + release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'` + ;; + esac + # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM: + # contains redundant information, the shorter form: + # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. + echo "${machine}-${os}${release}" + exit ;; + *:Bitrig:*:*) + UNAME_MACHINE_ARCH=`arch | sed 's/Bitrig.//'` + echo ${UNAME_MACHINE_ARCH}-${VENDOR}-bitrig${UNAME_RELEASE} + exit ;; + *:OpenBSD:*:*) + UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'` + echo ${UNAME_MACHINE_ARCH}-${VENDOR}-openbsd${UNAME_RELEASE} + exit ;; + *:ekkoBSD:*:*) + echo ${UNAME_MACHINE}-${VENDOR}-ekkobsd${UNAME_RELEASE} + exit ;; + *:SolidBSD:*:*) + echo ${UNAME_MACHINE}-${VENDOR}-solidbsd${UNAME_RELEASE} + exit ;; + macppc:MirBSD:*:*) + echo powerpc-${VENDOR}-mirbsd${UNAME_RELEASE} + exit ;; + *:MirBSD:*:*) + echo ${UNAME_MACHINE}-${VENDOR}-mirbsd${UNAME_RELEASE} + exit ;; + alpha:OSF1:*:*) + case $UNAME_RELEASE in + *4.0) + UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'` + ;; + *5.*) + UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'` + ;; + esac + # According to Compaq, /usr/sbin/psrinfo has been available on + # OSF/1 and Tru64 systems produced since 1995. I hope that + # covers most systems running today. This code pipes the CPU + # types through head -n 1, so we only detect the type of CPU 0. + ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1` + case "$ALPHA_CPU_TYPE" in + "EV4 (21064)") + UNAME_MACHINE="alpha" ;; + "EV4.5 (21064)") + UNAME_MACHINE="alpha" ;; + "LCA4 (21066/21068)") + UNAME_MACHINE="alpha" ;; + "EV5 (21164)") + UNAME_MACHINE="alphaev5" ;; + "EV5.6 (21164A)") + UNAME_MACHINE="alphaev56" ;; + "EV5.6 (21164PC)") + UNAME_MACHINE="alphapca56" ;; + "EV5.7 (21164PC)") + UNAME_MACHINE="alphapca57" ;; + "EV6 (21264)") + UNAME_MACHINE="alphaev6" ;; + "EV6.7 (21264A)") + UNAME_MACHINE="alphaev67" ;; + "EV6.8CB (21264C)") + UNAME_MACHINE="alphaev68" ;; + "EV6.8AL (21264B)") + UNAME_MACHINE="alphaev68" ;; + "EV6.8CX (21264D)") + UNAME_MACHINE="alphaev68" ;; + "EV6.9A (21264/EV69A)") + UNAME_MACHINE="alphaev69" ;; + "EV7 (21364)") + UNAME_MACHINE="alphaev7" ;; + "EV7.9 (21364A)") + UNAME_MACHINE="alphaev79" ;; + esac + # A Pn.n version is a patched version. + # A Vn.n version is a released version. + # A Tn.n version is a released field test version. + # A Xn.n version is an unreleased experimental baselevel. + # 1.2 uses "1.2" for uname -r. + echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` + # Reset EXIT trap before exiting to avoid spurious non-zero exit code. + exitcode=$? + trap '' 0 + exit $exitcode ;; + Alpha\ *:Windows_NT*:*) + # How do we know it's Interix rather than the generic POSIX subsystem? + # Should we change UNAME_MACHINE based on the output of uname instead + # of the specific Alpha model? + echo alpha-pc-interix + exit ;; + 21064:Windows_NT:50:3) + echo alpha-dec-winnt3.5 + exit ;; + Amiga*:UNIX_System_V:4.0:*) + echo m68k-${VENDOR}-sysv4 + exit ;; + *:[Aa]miga[Oo][Ss]:*:*) + echo ${UNAME_MACHINE}-${VENDOR}-amigaos + exit ;; + *:[Mm]orph[Oo][Ss]:*:*) + echo ${UNAME_MACHINE}-${VENDOR}-morphos + exit ;; + *:OS/390:*:*) + echo i370-ibm-openedition + exit ;; + *:z/VM:*:*) + echo s390-ibm-zvmoe + exit ;; + *:OS400:*:*) + echo powerpc-ibm-os400 + exit ;; + arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) + echo arm-acorn-riscix${UNAME_RELEASE} + exit ;; + arm*:riscos:*:*|arm*:RISCOS:*:*) + echo arm-${VENDOR}-riscos + exit ;; + SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*) + echo hppa1.1-hitachi-hiuxmpp + exit ;; + Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*) + # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE. + if test "`(/bin/universe) 2>/dev/null`" = att ; then + echo pyramid-pyramid-sysv3 + else + echo pyramid-pyramid-bsd + fi + exit ;; + NILE*:*:*:dcosx) + echo pyramid-pyramid-svr4 + exit ;; + DRS?6000:unix:4.0:6*) + echo sparc-icl-nx6 + exit ;; + DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*) + case `/usr/bin/uname -p` in + sparc) echo sparc-icl-nx7; exit ;; + esac ;; + s390x:SunOS:*:*) + echo ${UNAME_MACHINE}-ibm-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + exit ;; + sun4H:SunOS:5.*:*) + echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + exit ;; + sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) + echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + exit ;; + i86pc:AuroraUX:5.*:* | i86xen:AuroraUX:5.*:*) + echo i386-pc-auroraux${UNAME_RELEASE} + exit ;; + i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*) + eval $set_cc_for_build + SUN_ARCH="i386" + # If there is a compiler, see if it is configured for 64-bit objects. + # Note that the Sun cc does not turn __LP64__ into 1 like gcc does. + # This test works for both compilers. + if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then + if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \ + (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \ + grep IS_64BIT_ARCH >/dev/null + then + SUN_ARCH="x86_64" + fi + fi + echo ${SUN_ARCH}-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + exit ;; + sun4*:SunOS:6*:*) + # According to config.sub, this is the proper way to canonicalize + # SunOS6. Hard to guess exactly what SunOS6 will be like, but + # it's likely to be more like Solaris than SunOS4. + echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + exit ;; + sun4*:SunOS:*:*) + case "`/usr/bin/arch -k`" in + Series*|S4*) + UNAME_RELEASE=`uname -v` + ;; + esac + # Japanese Language versions have a version number like `4.1.3-JL'. + echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'` + exit ;; + sun3*:SunOS:*:*) + echo m68k-sun-sunos${UNAME_RELEASE} + exit ;; + sun*:*:4.2BSD:*) + UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null` + test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3 + case "`/bin/arch`" in + sun3) + echo m68k-sun-sunos${UNAME_RELEASE} + ;; + sun4) + echo sparc-sun-sunos${UNAME_RELEASE} + ;; + esac + exit ;; + aushp:SunOS:*:*) + echo sparc-auspex-sunos${UNAME_RELEASE} + exit ;; + # The situation for MiNT is a little confusing. The machine name + # can be virtually everything (everything which is not + # "atarist" or "atariste" at least should have a processor + # > m68000). The system name ranges from "MiNT" over "FreeMiNT" + # to the lowercase version "mint" (or "freemint"). Finally + # the system name "TOS" denotes a system which is actually not + # MiNT. But MiNT is downward compatible to TOS, so this should + # be no problem. + atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*) + echo m68k-atari-mint${UNAME_RELEASE} + exit ;; + atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*) + echo m68k-atari-mint${UNAME_RELEASE} + exit ;; + *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*) + echo m68k-atari-mint${UNAME_RELEASE} + exit ;; + milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*) + echo m68k-milan-mint${UNAME_RELEASE} + exit ;; + hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*) + echo m68k-hades-mint${UNAME_RELEASE} + exit ;; + *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) + echo m68k-${VENDOR}-mint${UNAME_RELEASE} + exit ;; + m68k:machten:*:*) + echo m68k-apple-machten${UNAME_RELEASE} + exit ;; + powerpc:machten:*:*) + echo powerpc-apple-machten${UNAME_RELEASE} + exit ;; + RISC*:Mach:*:*) + echo mips-dec-mach_bsd4.3 + exit ;; + RISC*:ULTRIX:*:*) + echo mips-dec-ultrix${UNAME_RELEASE} + exit ;; + VAX*:ULTRIX*:*:*) + echo vax-dec-ultrix${UNAME_RELEASE} + exit ;; + 2020:CLIX:*:* | 2430:CLIX:*:*) + echo clipper-intergraph-clix${UNAME_RELEASE} + exit ;; + mips:*:*:UMIPS | mips:*:*:RISCos) + eval $set_cc_for_build + sed 's/^ //' << EOF >$dummy.c +#ifdef __cplusplus +#include /* for printf() prototype */ + int main (int argc, char *argv[]) { +#else + int main (argc, argv) int argc; char *argv[]; { +#endif + #if defined (host_mips) && defined (MIPSEB) + #if defined (SYSTYPE_SYSV) + printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0); + #endif + #if defined (SYSTYPE_SVR4) + printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0); + #endif + #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD) + printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0); + #endif + #endif + exit (-1); + } +EOF + $CC_FOR_BUILD -o $dummy $dummy.c && + dummyarg=`echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` && + SYSTEM_NAME=`$dummy $dummyarg` && + { echo "$SYSTEM_NAME"; exit; } + echo mips-mips-riscos${UNAME_RELEASE} + exit ;; + Motorola:PowerMAX_OS:*:*) + echo powerpc-motorola-powermax + exit ;; + Motorola:*:4.3:PL8-*) + echo powerpc-harris-powermax + exit ;; + Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*) + echo powerpc-harris-powermax + exit ;; + Night_Hawk:Power_UNIX:*:*) + echo powerpc-harris-powerunix + exit ;; + m88k:CX/UX:7*:*) + echo m88k-harris-cxux7 + exit ;; + m88k:*:4*:R4*) + echo m88k-motorola-sysv4 + exit ;; + m88k:*:3*:R3*) + echo m88k-motorola-sysv3 + exit ;; + AViiON:dgux:*:*) + # DG/UX returns AViiON for all architectures + UNAME_PROCESSOR=`/usr/bin/uname -p` + if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ] + then + if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \ + [ ${TARGET_BINARY_INTERFACE}x = x ] + then + echo m88k-dg-dgux${UNAME_RELEASE} + else + echo m88k-dg-dguxbcs${UNAME_RELEASE} + fi + else + echo i586-dg-dgux${UNAME_RELEASE} + fi + exit ;; + M88*:DolphinOS:*:*) # DolphinOS (SVR3) + echo m88k-dolphin-sysv3 + exit ;; + M88*:*:R3*:*) + # Delta 88k system running SVR3 + echo m88k-motorola-sysv3 + exit ;; + XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3) + echo m88k-tektronix-sysv3 + exit ;; + Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD) + echo m68k-tektronix-bsd + exit ;; + *:IRIX*:*:*) + echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'` + exit ;; + ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX. + echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id + exit ;; # Note that: echo "'`uname -s`'" gives 'AIX ' + i*86:AIX:*:*) + echo i386-ibm-aix + exit ;; + ia64:AIX:*:*) + if [ -x /usr/bin/oslevel ] ; then + IBM_REV=`/usr/bin/oslevel` + else + IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} + fi + echo ${UNAME_MACHINE}-ibm-aix${IBM_REV} + exit ;; + *:AIX:2:3) + if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then + eval $set_cc_for_build + sed 's/^ //' << EOF >$dummy.c + #include + + main() + { + if (!__power_pc()) + exit(1); + puts("powerpc-ibm-aix3.2.5"); + exit(0); + } +EOF + if $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` + then + echo "$SYSTEM_NAME" + else + echo rs6000-ibm-aix3.2.5 + fi + elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then + echo rs6000-ibm-aix3.2.4 + else + echo rs6000-ibm-aix3.2 + fi + exit ;; + *:AIX:*:[4567]) + IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'` + if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then + IBM_ARCH=rs6000 + else + IBM_ARCH=powerpc + fi + if [ -x /usr/bin/oslevel ] ; then + IBM_REV=`/usr/bin/oslevel` + else + IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} + fi + echo ${IBM_ARCH}-ibm-aix${IBM_REV} + exit ;; + *:AIX:*:*) + echo rs6000-ibm-aix + exit ;; + ibmrt:4.4BSD:*|romp-ibm:BSD:*) + echo romp-ibm-bsd4.4 + exit ;; + ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and + echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to + exit ;; # report: romp-ibm BSD 4.3 + *:BOSX:*:*) + echo rs6000-bull-bosx + exit ;; + DPX/2?00:B.O.S.:*:*) + echo m68k-bull-sysv3 + exit ;; + 9000/[34]??:4.3bsd:1.*:*) + echo m68k-hp-bsd + exit ;; + hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*) + echo m68k-hp-bsd4.4 + exit ;; + 9000/[34678]??:HP-UX:*:*) + HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` + case "${UNAME_MACHINE}" in + 9000/31? ) HP_ARCH=m68000 ;; + 9000/[34]?? ) HP_ARCH=m68k ;; + 9000/[678][0-9][0-9]) + if [ -x /usr/bin/getconf ]; then + sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null` + sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null` + case "${sc_cpu_version}" in + 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0 + 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1 + 532) # CPU_PA_RISC2_0 + case "${sc_kernel_bits}" in + 32) HP_ARCH="hppa2.0n" ;; + 64) HP_ARCH="hppa2.0w" ;; + '') HP_ARCH="hppa2.0" ;; # HP-UX 10.20 + esac ;; + esac + fi + if [ "${HP_ARCH}" = "" ]; then + eval $set_cc_for_build + sed 's/^ //' << EOF >$dummy.c + + #define _HPUX_SOURCE + #include + #include + + int main () + { + #if defined(_SC_KERNEL_BITS) + long bits = sysconf(_SC_KERNEL_BITS); + #endif + long cpu = sysconf (_SC_CPU_VERSION); + + switch (cpu) + { + case CPU_PA_RISC1_0: puts ("hppa1.0"); break; + case CPU_PA_RISC1_1: puts ("hppa1.1"); break; + case CPU_PA_RISC2_0: + #if defined(_SC_KERNEL_BITS) + switch (bits) + { + case 64: puts ("hppa2.0w"); break; + case 32: puts ("hppa2.0n"); break; + default: puts ("hppa2.0"); break; + } break; + #else /* !defined(_SC_KERNEL_BITS) */ + puts ("hppa2.0"); break; + #endif + default: puts ("hppa1.0"); break; + } + exit (0); + } +EOF + (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy` + test -z "$HP_ARCH" && HP_ARCH=hppa + fi ;; + esac + if [ ${HP_ARCH} = "hppa2.0w" ] + then + eval $set_cc_for_build + + # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating + # 32-bit code. hppa64-hp-hpux* has the same kernel and a compiler + # generating 64-bit code. GNU and HP use different nomenclature: + # + # $ CC_FOR_BUILD=cc ./config.guess + # => hppa2.0w-hp-hpux11.23 + # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess + # => hppa64-hp-hpux11.23 + + if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | + grep -q __LP64__ + then + HP_ARCH="hppa2.0w" + else + HP_ARCH="hppa64" + fi + fi + echo ${HP_ARCH}-hp-hpux${HPUX_REV} + exit ;; + ia64:HP-UX:*:*) + HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` + echo ia64-hp-hpux${HPUX_REV} + exit ;; + 3050*:HI-UX:*:*) + eval $set_cc_for_build + sed 's/^ //' << EOF >$dummy.c + #include + int + main () + { + long cpu = sysconf (_SC_CPU_VERSION); + /* The order matters, because CPU_IS_HP_MC68K erroneously returns + true for CPU_PA_RISC1_0. CPU_IS_PA_RISC returns correct + results, however. */ + if (CPU_IS_PA_RISC (cpu)) + { + switch (cpu) + { + case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break; + case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break; + case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break; + default: puts ("hppa-hitachi-hiuxwe2"); break; + } + } + else if (CPU_IS_HP_MC68K (cpu)) + puts ("m68k-hitachi-hiuxwe2"); + else puts ("unknown-hitachi-hiuxwe2"); + exit (0); + } +EOF + $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` && + { echo "$SYSTEM_NAME"; exit; } + echo unknown-hitachi-hiuxwe2 + exit ;; + 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* ) + echo hppa1.1-hp-bsd + exit ;; + 9000/8??:4.3bsd:*:*) + echo hppa1.0-hp-bsd + exit ;; + *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*) + echo hppa1.0-hp-mpeix + exit ;; + hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* ) + echo hppa1.1-hp-osf + exit ;; + hp8??:OSF1:*:*) + echo hppa1.0-hp-osf + exit ;; + i*86:OSF1:*:*) + if [ -x /usr/sbin/sysversion ] ; then + echo ${UNAME_MACHINE}-${VENDOR}-osf1mk + else + echo ${UNAME_MACHINE}-${VENDOR}-osf1 + fi + exit ;; + parisc*:Lites*:*:*) + echo hppa1.1-hp-lites + exit ;; + C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*) + echo c1-convex-bsd + exit ;; + C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*) + if getsysinfo -f scalar_acc + then echo c32-convex-bsd + else echo c2-convex-bsd + fi + exit ;; + C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*) + echo c34-convex-bsd + exit ;; + C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*) + echo c38-convex-bsd + exit ;; + C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*) + echo c4-convex-bsd + exit ;; + CRAY*Y-MP:*:*:*) + echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + exit ;; + CRAY*[A-Z]90:*:*:*) + echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \ + | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \ + -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \ + -e 's/\.[^.]*$/.X/' + exit ;; + CRAY*TS:*:*:*) + echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + exit ;; + CRAY*T3E:*:*:*) + echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + exit ;; + CRAY*SV1:*:*:*) + echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + exit ;; + *:UNICOS/mp:*:*) + echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + exit ;; + F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*) + FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` + FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` + FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'` + echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" + exit ;; + 5000:UNIX_System_V:4.*:*) + FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` + FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'` + echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" + exit ;; + i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) + echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE} + exit ;; + sparc*:BSD/OS:*:*) + echo sparc-${VENDOR}-bsdi${UNAME_RELEASE} + exit ;; + *:BSD/OS:*:*) + echo ${UNAME_MACHINE}-${VENDOR}-bsdi${UNAME_RELEASE} + exit ;; + *:FreeBSD:*:*) + UNAME_PROCESSOR=`/usr/bin/uname -p` + case ${UNAME_PROCESSOR} in + amd64) + echo x86_64-${VENDOR}-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; + *) + echo ${UNAME_PROCESSOR}-${VENDOR}-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; + esac + exit ;; + i*:CYGWIN*:*) + echo ${UNAME_MACHINE}-pc-cygwin + exit ;; + *:MINGW64*:*) + echo ${UNAME_MACHINE}-pc-mingw64 + exit ;; + *:MINGW*:*) + echo ${UNAME_MACHINE}-pc-mingw32 + exit ;; + i*:MSYS*:*) + echo ${UNAME_MACHINE}-pc-msys + exit ;; + i*:windows32*:*) + # uname -m includes "-pc" on this system. + echo ${UNAME_MACHINE}-mingw32 + exit ;; + i*:PW*:*) + echo ${UNAME_MACHINE}-pc-pw32 + exit ;; + *:Interix*:*) + case ${UNAME_MACHINE} in + x86) + echo i586-pc-interix${UNAME_RELEASE} + exit ;; + authenticamd | genuineintel | EM64T) + echo x86_64-${VENDOR}-interix${UNAME_RELEASE} + exit ;; + IA64) + echo ia64-${VENDOR}-interix${UNAME_RELEASE} + exit ;; + esac ;; + [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*) + echo i${UNAME_MACHINE}-pc-mks + exit ;; + 8664:Windows_NT:*) + echo x86_64-pc-mks + exit ;; + i*:Windows_NT*:* | Pentium*:Windows_NT*:*) + # How do we know it's Interix rather than the generic POSIX subsystem? + # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we + # UNAME_MACHINE based on the output of uname instead of i386? + echo i586-pc-interix + exit ;; + i*:UWIN*:*) + echo ${UNAME_MACHINE}-pc-uwin + exit ;; + amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*) + echo x86_64-${VENDOR}-cygwin + exit ;; + p*:CYGWIN*:*) + echo powerpcle-${VENDOR}-cygwin + exit ;; + prep*:SunOS:5.*:*) + echo powerpcle-${VENDOR}-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + exit ;; + *:GNU:*:*) + # the GNU system + echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-${VENDOR}-${LIBC}`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'` + exit ;; + *:GNU/*:*:*) + # other systems with GNU libc and userland + echo ${UNAME_MACHINE}-${VENDOR}-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-${LIBC} + exit ;; + i*86:Minix:*:*) + echo ${UNAME_MACHINE}-pc-minix + exit ;; + aarch64:Linux:*:*) + echo ${UNAME_MACHINE}-${VENDOR}-linux-${LIBC} + exit ;; + aarch64_be:Linux:*:*) + UNAME_MACHINE=aarch64_be + echo ${UNAME_MACHINE}-${VENDOR}-linux-${LIBC} + exit ;; + alpha:Linux:*:*) + case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in + EV5) UNAME_MACHINE=alphaev5 ;; + EV56) UNAME_MACHINE=alphaev56 ;; + PCA56) UNAME_MACHINE=alphapca56 ;; + PCA57) UNAME_MACHINE=alphapca56 ;; + EV6) UNAME_MACHINE=alphaev6 ;; + EV67) UNAME_MACHINE=alphaev67 ;; + EV68*) UNAME_MACHINE=alphaev68 ;; + esac + objdump --private-headers /bin/sh | grep -q ld.so.1 + if test "$?" = 0 ; then LIBC="gnulibc1" ; fi + echo ${UNAME_MACHINE}-${VENDOR}-linux-${LIBC} + exit ;; + arc:Linux:*:* | arceb:Linux:*:*) + echo ${UNAME_MACHINE}-${VENDOR}-linux-${LIBC} + exit ;; + arm*:Linux:*:*) + eval $set_cc_for_build + if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \ + | grep -q __ARM_EABI__ + then + echo ${UNAME_MACHINE}-${VENDOR}-linux-${LIBC} + else + if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \ + | grep -q __ARM_PCS_VFP + then + echo ${UNAME_MACHINE}-${VENDOR}-linux-${LIBC}eabi + else + echo ${UNAME_MACHINE}-${VENDOR}-linux-${LIBC}eabihf + fi + fi + exit ;; + avr32*:Linux:*:*) + echo ${UNAME_MACHINE}-${VENDOR}-linux-${LIBC} + exit ;; + cris:Linux:*:*) + echo ${UNAME_MACHINE}-axis-linux-${LIBC} + exit ;; + crisv32:Linux:*:*) + echo ${UNAME_MACHINE}-axis-linux-${LIBC} + exit ;; + frv:Linux:*:*) + echo ${UNAME_MACHINE}-${VENDOR}-linux-${LIBC} + exit ;; + hexagon:Linux:*:*) + echo ${UNAME_MACHINE}-${VENDOR}-linux-${LIBC} + exit ;; + i*86:Linux:*:*) + echo ${UNAME_MACHINE}-pc-linux-${LIBC} + exit ;; + ia64:Linux:*:*) + echo ${UNAME_MACHINE}-${VENDOR}-linux-${LIBC} + exit ;; + m32r*:Linux:*:*) + echo ${UNAME_MACHINE}-${VENDOR}-linux-${LIBC} + exit ;; + m68*:Linux:*:*) + echo ${UNAME_MACHINE}-${VENDOR}-linux-${LIBC} + exit ;; + mips:Linux:*:* | mips64:Linux:*:*) + eval $set_cc_for_build + sed 's/^ //' << EOF >$dummy.c + #undef CPU + #undef ${UNAME_MACHINE} + #undef ${UNAME_MACHINE}el + #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) + CPU=${UNAME_MACHINE}el + #else + #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) + CPU=${UNAME_MACHINE} + #else + CPU= + #endif + #endif +EOF + eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^CPU'` + test x"${CPU}" != x && { echo "${CPU}-${VENDOR}-linux-${LIBC}"; exit; } + ;; + or1k:Linux:*:*) + echo ${UNAME_MACHINE}-${VENDOR}-linux-${LIBC} + exit ;; + or32:Linux:*:*) + echo ${UNAME_MACHINE}-${VENDOR}-linux-${LIBC} + exit ;; + padre:Linux:*:*) + echo sparc-${VENDOR}-linux-${LIBC} + exit ;; + parisc64:Linux:*:* | hppa64:Linux:*:*) + echo hppa64-${VENDOR}-linux-${LIBC} + exit ;; + parisc:Linux:*:* | hppa:Linux:*:*) + # Look for CPU level + case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in + PA7*) echo hppa1.1-${VENDOR}-linux-${LIBC} ;; + PA8*) echo hppa2.0-${VENDOR}-linux-${LIBC} ;; + *) echo hppa-${VENDOR}-linux-${LIBC} ;; + esac + exit ;; + ppc64:Linux:*:*) + echo powerpc64-${VENDOR}-linux-${LIBC} + exit ;; + ppc:Linux:*:*) + echo powerpc-${VENDOR}-linux-${LIBC} + exit ;; + ppc64le:Linux:*:*) + echo powerpc64le-${VENDOR}-linux-${LIBC} + exit ;; + ppcle:Linux:*:*) + echo powerpcle-${VENDOR}-linux-${LIBC} + exit ;; + s390:Linux:*:* | s390x:Linux:*:*) + echo ${UNAME_MACHINE}-ibm-linux-${LIBC} + exit ;; + sh64*:Linux:*:*) + echo ${UNAME_MACHINE}-${VENDOR}-linux-${LIBC} + exit ;; + sh*:Linux:*:*) + echo ${UNAME_MACHINE}-${VENDOR}-linux-${LIBC} + exit ;; + sparc:Linux:*:* | sparc64:Linux:*:*) + echo ${UNAME_MACHINE}-${VENDOR}-linux-${LIBC} + exit ;; + tile*:Linux:*:*) + echo ${UNAME_MACHINE}-${VENDOR}-linux-${LIBC} + exit ;; + vax:Linux:*:*) + echo ${UNAME_MACHINE}-dec-linux-${LIBC} + exit ;; + x86_64:Linux:*:*) + echo ${UNAME_MACHINE}-${VENDOR}-linux-${LIBC} + exit ;; + xtensa*:Linux:*:*) + echo ${UNAME_MACHINE}-${VENDOR}-linux-${LIBC} + exit ;; + i*86:DYNIX/ptx:4*:*) + # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. + # earlier versions are messed up and put the nodename in both + # sysname and nodename. + echo i386-sequent-sysv4 + exit ;; + i*86:UNIX_SV:4.2MP:2.*) + # Unixware is an offshoot of SVR4, but it has its own version + # number series starting with 2... + # I am not positive that other SVR4 systems won't match this, + # I just have to hope. -- rms. + # Use sysv4.2uw... so that sysv4* matches it. + echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION} + exit ;; + i*86:OS/2:*:*) + # If we were able to find `uname', then EMX Unix compatibility + # is probably installed. + echo ${UNAME_MACHINE}-pc-os2-emx + exit ;; + i*86:XTS-300:*:STOP) + echo ${UNAME_MACHINE}-${VENDOR}-stop + exit ;; + i*86:atheos:*:*) + echo ${UNAME_MACHINE}-${VENDOR}-atheos + exit ;; + i*86:syllable:*:*) + echo ${UNAME_MACHINE}-pc-syllable + exit ;; + i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.[02]*:*) + echo i386-${VENODR}-lynxos${UNAME_RELEASE} + exit ;; + i*86:*DOS:*:*) + echo ${UNAME_MACHINE}-pc-msdosdjgpp + exit ;; + i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*) + UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'` + if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then + echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL} + else + echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL} + fi + exit ;; + i*86:*:5:[678]*) + # UnixWare 7.x, OpenUNIX and OpenServer 6. + case `/bin/uname -X | grep "^Machine"` in + *486*) UNAME_MACHINE=i486 ;; + *Pentium) UNAME_MACHINE=i586 ;; + *Pent*|*Celeron) UNAME_MACHINE=i686 ;; + esac + echo ${UNAME_MACHINE}-${VENDOR}-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION} + exit ;; + i*86:*:3.2:*) + if test -f /usr/options/cb.name; then + UNAME_REL=`sed -n 's/.*Version //p' /dev/null >/dev/null ; then + UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')` + (/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486 + (/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \ + && UNAME_MACHINE=i586 + (/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \ + && UNAME_MACHINE=i686 + (/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \ + && UNAME_MACHINE=i686 + echo ${UNAME_MACHINE}-pc-sco$UNAME_REL + else + echo ${UNAME_MACHINE}-pc-sysv32 + fi + exit ;; + pc:*:*:*) + # Left here for compatibility: + # uname -m prints for DJGPP always 'pc', but it prints nothing about + # the processor, so we play safe by assuming i586. + # Note: whatever this is, it MUST be the same as what config.sub + # prints for the "djgpp" host, or else GDB configury will decide that + # this is a cross-build. + echo i586-pc-msdosdjgpp + exit ;; + Intel:Mach:3*:*) + echo i386-pc-mach3 + exit ;; + paragon:*:*:*) + echo i860-intel-osf1 + exit ;; + i860:*:4.*:*) # i860-SVR4 + if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then + echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4 + else # Add other i860-SVR4 vendors below as they are discovered. + echo i860-${VENODR}-sysv${UNAME_RELEASE} # Unknown i860-SVR4 + fi + exit ;; + mini*:CTIX:SYS*5:*) + # "miniframe" + echo m68010-convergent-sysv + exit ;; + mc68k:UNIX:SYSTEM5:3.51m) + echo m68k-convergent-sysv + exit ;; + M680?0:D-NIX:5.3:*) + echo m68k-diab-dnix + exit ;; + M68*:*:R3V[5678]*:*) + test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;; + 3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*:4.0:3.0) + OS_REL='' + test -r /etc/.relid \ + && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` + /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ + && { echo i486-ncr-sysv4.3${OS_REL}; exit; } + /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ + && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; + 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*) + /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ + && { echo i486-ncr-sysv4; exit; } ;; + NCR*:*:4.2:* | MPRAS*:*:4.2:*) + OS_REL='.3' + test -r /etc/.relid \ + && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` + /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ + && { echo i486-ncr-sysv4.3${OS_REL}; exit; } + /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ + && { echo i586-ncr-sysv4.3${OS_REL}; exit; } + /bin/uname -p 2>/dev/null | /bin/grep pteron >/dev/null \ + && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; + m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*) + echo m68k-${VENDOR}-lynxos${UNAME_RELEASE} + exit ;; + mc68030:UNIX_System_V:4.*:*) + echo m68k-atari-sysv4 + exit ;; + TSUNAMI:LynxOS:2.*:*) + echo sparc-${VENDOR}-lynxos${UNAME_RELEASE} + exit ;; + rs6000:LynxOS:2.*:*) + echo rs6000-${VENDOR}-lynxos${UNAME_RELEASE} + exit ;; + PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.[02]*:*) + echo powerpc-${VENDOR}-lynxos${UNAME_RELEASE} + exit ;; + SM[BE]S:UNIX_SV:*:*) + echo mips-dde-sysv${UNAME_RELEASE} + exit ;; + RM*:ReliantUNIX-*:*:*) + echo mips-sni-sysv4 + exit ;; + RM*:SINIX-*:*:*) + echo mips-sni-sysv4 + exit ;; + *:SINIX-*:*:*) + if uname -p 2>/dev/null >/dev/null ; then + UNAME_MACHINE=`(uname -p) 2>/dev/null` + echo ${UNAME_MACHINE}-sni-sysv4 + else + echo ns32k-sni-sysv + fi + exit ;; + PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort + # says + echo i586-unisys-sysv4 + exit ;; + *:UNIX_System_V:4*:FTX*) + # From Gerald Hewes . + # How about differentiating between stratus architectures? -djm + echo hppa1.1-stratus-sysv4 + exit ;; + *:*:*:FTX*) + # From seanf@swdc.stratus.com. + echo i860-stratus-sysv4 + exit ;; + i*86:VOS:*:*) + # From Paul.Green@stratus.com. + echo ${UNAME_MACHINE}-stratus-vos + exit ;; + *:VOS:*:*) + # From Paul.Green@stratus.com. + echo hppa1.1-stratus-vos + exit ;; + mc68*:A/UX:*:*) + echo m68k-apple-aux${UNAME_RELEASE} + exit ;; + news*:NEWS-OS:6*:*) + echo mips-sony-newsos6 + exit ;; + R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*) + if [ -d /usr/nec ]; then + echo mips-nec-sysv${UNAME_RELEASE} + else + echo mips-${VENDOR}-sysv${UNAME_RELEASE} + fi + exit ;; + BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only. + echo powerpc-be-beos + exit ;; + BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only. + echo powerpc-apple-beos + exit ;; + BePC:BeOS:*:*) # BeOS running on Intel PC compatible. + echo i586-pc-beos + exit ;; + BePC:Haiku:*:*) # Haiku running on Intel PC compatible. + echo i586-pc-haiku + exit ;; + x86_64:Haiku:*:*) + echo x86_64-${VENDOR}-haiku + exit ;; + SX-4:SUPER-UX:*:*) + echo sx4-nec-superux${UNAME_RELEASE} + exit ;; + SX-5:SUPER-UX:*:*) + echo sx5-nec-superux${UNAME_RELEASE} + exit ;; + SX-6:SUPER-UX:*:*) + echo sx6-nec-superux${UNAME_RELEASE} + exit ;; + SX-7:SUPER-UX:*:*) + echo sx7-nec-superux${UNAME_RELEASE} + exit ;; + SX-8:SUPER-UX:*:*) + echo sx8-nec-superux${UNAME_RELEASE} + exit ;; + SX-8R:SUPER-UX:*:*) + echo sx8r-nec-superux${UNAME_RELEASE} + exit ;; + Power*:Rhapsody:*:*) + echo powerpc-apple-rhapsody${UNAME_RELEASE} + exit ;; + *:Rhapsody:*:*) + echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE} + exit ;; + *:Darwin:*:*) + UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown + eval $set_cc_for_build + if test "$UNAME_PROCESSOR" = unknown ; then + UNAME_PROCESSOR=powerpc + fi + if test `echo "$UNAME_RELEASE" | sed -e 's/\..*//'` -le 10 ; then + if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then + if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \ + (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \ + grep IS_64BIT_ARCH >/dev/null + then + case $UNAME_PROCESSOR in + i386) UNAME_PROCESSOR=x86_64 ;; + powerpc) UNAME_PROCESSOR=powerpc64 ;; + esac + fi + fi + elif test "$UNAME_PROCESSOR" = i386 ; then + # Avoid executing cc on OS X 10.9, as it ships with a stub + # that puts up a graphical alert prompting to install + # developer tools. Any system running Mac OS X 10.7 or + # later (Darwin 11 and later) is required to have a 64-bit + # processor. This is not true of the ARM version of Darwin + # that Apple uses in portable devices. + UNAME_PROCESSOR=x86_64 + fi + echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE} + exit ;; + *:procnto*:*:* | *:QNX:[0123456789]*:*) + UNAME_PROCESSOR=`uname -p` + if test "$UNAME_PROCESSOR" = "x86"; then + UNAME_PROCESSOR=i386 + UNAME_MACHINE=pc + fi + echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE} + exit ;; + *:QNX:*:4*) + echo i386-pc-qnx + exit ;; + NEO-?:NONSTOP_KERNEL:*:*) + echo neo-tandem-nsk${UNAME_RELEASE} + exit ;; + NSE-*:NONSTOP_KERNEL:*:*) + echo nse-tandem-nsk${UNAME_RELEASE} + exit ;; + NSR-?:NONSTOP_KERNEL:*:*) + echo nsr-tandem-nsk${UNAME_RELEASE} + exit ;; + *:NonStop-UX:*:*) + echo mips-compaq-nonstopux + exit ;; + BS2000:POSIX*:*:*) + echo bs2000-siemens-sysv + exit ;; + DS/*:UNIX_System_V:*:*) + echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE} + exit ;; + *:Plan9:*:*) + # "uname -m" is not consistent, so use $cputype instead. 386 + # is converted to i386 for consistency with other x86 + # operating systems. + if test "$cputype" = "386"; then + UNAME_MACHINE=i386 + else + UNAME_MACHINE="$cputype" + fi + echo ${UNAME_MACHINE}-${VENDOR}-plan9 + exit ;; + *:TOPS-10:*:*) + echo pdp10-${VENDOR}-tops10 + exit ;; + *:TENEX:*:*) + echo pdp10-${VENDOR}-tenex + exit ;; + KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*) + echo pdp10-dec-tops20 + exit ;; + XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*) + echo pdp10-xkl-tops20 + exit ;; + *:TOPS-20:*:*) + echo pdp10-${VENDOR}-tops20 + exit ;; + *:ITS:*:*) + echo pdp10-${VENDOR}-its + exit ;; + SEI:*:*:SEIUX) + echo mips-sei-seiux${UNAME_RELEASE} + exit ;; + *:DragonFly:*:*) + echo ${UNAME_MACHINE}-${VENDOR}-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` + exit ;; + *:*VMS:*:*) + UNAME_MACHINE=`(uname -p) 2>/dev/null` + case "${UNAME_MACHINE}" in + A*) echo alpha-dec-vms ; exit ;; + I*) echo ia64-dec-vms ; exit ;; + V*) echo vax-dec-vms ; exit ;; + esac ;; + *:XENIX:*:SysV) + echo i386-pc-xenix + exit ;; + i*86:skyos:*:*) + echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE}` | sed -e 's/ .*$//' + exit ;; + i*86:rdos:*:*) + echo ${UNAME_MACHINE}-pc-rdos + exit ;; + i*86:AROS:*:*) + echo ${UNAME_MACHINE}-pc-aros + exit ;; + x86_64:VMkernel:*:*) + echo ${UNAME_MACHINE}-${VENDOR}-esx + exit ;; +esac + +eval $set_cc_for_build +cat >$dummy.c < +# include +#endif +main () +{ +#if defined (sony) +#if defined (MIPSEB) + /* BFD wants "bsd" instead of "newsos". Perhaps BFD should be changed, + I don't know.... */ + printf ("mips-sony-bsd\n"); exit (0); +#else +#include + printf ("m68k-sony-newsos%s\n", +#ifdef NEWSOS4 + "4" +#else + "" +#endif + ); exit (0); +#endif +#endif + +#if defined (__arm) && defined (__acorn) && defined (__unix) + printf ("arm-acorn-riscix\n"); exit (0); +#endif + +#if defined (hp300) && !defined (hpux) + printf ("m68k-hp-bsd\n"); exit (0); +#endif + +#if defined (NeXT) +#if !defined (__ARCHITECTURE__) +#define __ARCHITECTURE__ "m68k" +#endif + int version; + version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`; + if (version < 4) + printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version); + else + printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version); + exit (0); +#endif + +#if defined (MULTIMAX) || defined (n16) +#if defined (UMAXV) + printf ("ns32k-encore-sysv\n"); exit (0); +#else +#if defined (CMU) + printf ("ns32k-encore-mach\n"); exit (0); +#else + printf ("ns32k-encore-bsd\n"); exit (0); +#endif +#endif +#endif + +#if defined (__386BSD__) + printf ("i386-pc-bsd\n"); exit (0); +#endif + +#if defined (sequent) +#if defined (i386) + printf ("i386-sequent-dynix\n"); exit (0); +#endif +#if defined (ns32000) + printf ("ns32k-sequent-dynix\n"); exit (0); +#endif +#endif + +#if defined (_SEQUENT_) + struct utsname un; + + uname(&un); + + if (strncmp(un.version, "V2", 2) == 0) { + printf ("i386-sequent-ptx2\n"); exit (0); + } + if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */ + printf ("i386-sequent-ptx1\n"); exit (0); + } + printf ("i386-sequent-ptx\n"); exit (0); + +#endif + +#if defined (vax) +# if !defined (ultrix) +# include +# if defined (BSD) +# if BSD == 43 + printf ("vax-dec-bsd4.3\n"); exit (0); +# else +# if BSD == 199006 + printf ("vax-dec-bsd4.3reno\n"); exit (0); +# else + printf ("vax-dec-bsd\n"); exit (0); +# endif +# endif +# else + printf ("vax-dec-bsd\n"); exit (0); +# endif +# else + printf ("vax-dec-ultrix\n"); exit (0); +# endif +#endif + +#if defined (alliant) && defined (i860) + printf ("i860-alliant-bsd\n"); exit (0); +#endif + + exit (1); +} +EOF + +$CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && SYSTEM_NAME=`$dummy` && + { echo "$SYSTEM_NAME"; exit; } + +# Apollos put the system type in the environment. + +test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit; } + +# Convex versions that predate uname can use getsysinfo(1) + +if [ -x /usr/convex/getsysinfo ] +then + case `getsysinfo -f cpu_type` in + c1*) + echo c1-convex-bsd + exit ;; + c2*) + if getsysinfo -f scalar_acc + then echo c32-convex-bsd + else echo c2-convex-bsd + fi + exit ;; + c34*) + echo c34-convex-bsd + exit ;; + c38*) + echo c38-convex-bsd + exit ;; + c4*) + echo c4-convex-bsd + exit ;; + esac +fi + +cat >&2 < in order to provide the needed +information to handle your system. + +config.guess timestamp = $timestamp + +uname -m = `(uname -m) 2>/dev/null || echo unknown` +uname -r = `(uname -r) 2>/dev/null || echo unknown` +uname -s = `(uname -s) 2>/dev/null || echo unknown` +uname -v = `(uname -v) 2>/dev/null || echo unknown` + +/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null` +/bin/uname -X = `(/bin/uname -X) 2>/dev/null` + +hostinfo = `(hostinfo) 2>/dev/null` +/bin/universe = `(/bin/universe) 2>/dev/null` +/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null` +/bin/arch = `(/bin/arch) 2>/dev/null` +/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null` +/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null` + +UNAME_MACHINE = ${UNAME_MACHINE} +UNAME_RELEASE = ${UNAME_RELEASE} +UNAME_SYSTEM = ${UNAME_SYSTEM} +UNAME_VERSION = ${UNAME_VERSION} +EOF + +exit 1 + +# Local variables: +# eval: (add-hook 'write-file-hooks 'time-stamp) +# time-stamp-start: "timestamp='" +# time-stamp-format: "%:y-%02m-%02d" +# time-stamp-end: "'" +# End: diff --git a/config.sub b/config.sub new file mode 100644 index 0000000..b9b4f4b --- /dev/null +++ b/config.sub @@ -0,0 +1,1793 @@ +#! /bin/sh +# Configuration validation subroutine script. +# Copyright 1992-2013 Free Software Foundation, Inc. + +timestamp='2013-10-01' + +# This file is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program 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 for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, see . +# +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program that contains a +# configuration script generated by Autoconf, you may include it under +# the same distribution terms that you use for the rest of that +# program. This Exception is an additional permission under section 7 +# of the GNU General Public License, version 3 ("GPLv3"). + + +# Please send patches with a ChangeLog entry to config-patches@gnu.org. +# +# Configuration subroutine to validate and canonicalize a configuration type. +# Supply the specified configuration type as an argument. +# If it is invalid, we print an error message on stderr and exit with code 1. +# Otherwise, we print the canonical config type on stdout and succeed. + +# You can get the latest version of this script from: +# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD + +# This file is supposed to be the same for all GNU packages +# and recognize all the CPU types, system types and aliases +# that are meaningful with *any* GNU software. +# Each package is responsible for reporting which valid configurations +# it does not support. The user should be able to distinguish +# a failure to support a valid configuration from a meaningless +# configuration. + +# The goal of this file is to map all the various variations of a given +# machine specification into a single specification in the form: +# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM +# or in some cases, the newer four-part form: +# CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM +# It is wrong to echo any other type of specification. + +me=`echo "$0" | sed -e 's,.*/,,'` + +usage="\ +Usage: $0 [OPTION] CPU-MFR-OPSYS + $0 [OPTION] ALIAS + +Canonicalize a configuration name. + +Operation modes: + -h, --help print this help, then exit + -t, --time-stamp print date of last modification, then exit + -v, --version print version number, then exit + +Report bugs and patches to ." + +version="\ +GNU config.sub ($timestamp) + +Copyright 1992-2013 Free Software Foundation, Inc. + +This is free software; see the source for copying conditions. There is NO +warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." + +help=" +Try \`$me --help' for more information." + +# Parse command line +while test $# -gt 0 ; do + case $1 in + --time-stamp | --time* | -t ) + echo "$timestamp" ; exit ;; + --version | -v ) + echo "$version" ; exit ;; + --help | --h* | -h ) + echo "$usage"; exit ;; + -- ) # Stop option processing + shift; break ;; + - ) # Use stdin as input. + break ;; + -* ) + echo "$me: invalid option $1$help" + exit 1 ;; + + *local*) + # First pass through any local machine types. + echo $1 + exit ;; + + * ) + break ;; + esac +done + +case $# in + 0) echo "$me: missing argument$help" >&2 + exit 1;; + 1) ;; + *) echo "$me: too many arguments$help" >&2 + exit 1;; +esac + +# Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any). +# Here we must recognize all the valid KERNEL-OS combinations. +maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` +case $maybe_os in + nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc | linux-newlib* | \ + linux-musl* | linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | \ + knetbsd*-gnu* | netbsd*-gnu* | \ + kopensolaris*-gnu* | \ + storm-chaos* | os2-emx* | rtmk-nova*) + os=-$maybe_os + basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` + ;; + android-linux) + os=-linux-android + basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`-unknown + ;; + *) + basic_machine=`echo $1 | sed 's/-[^-]*$//'` + if [ $basic_machine != $1 ] + then os=`echo $1 | sed 's/.*-/-/'` + else os=; fi + ;; +esac + +### Let's recognize common machines as not being operating systems so +### that things like config.sub decstation-3100 work. We also +### recognize some manufacturers as not being operating systems, so we +### can provide default operating systems below. +case $os in + -sun*os*) + # Prevent following clause from handling this invalid input. + ;; + -dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \ + -att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \ + -unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \ + -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\ + -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \ + -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \ + -apple | -axis | -knuth | -cray | -microblaze*) + os= + basic_machine=$1 + ;; + -bluegene*) + os=-cnk + ;; + -sim | -cisco | -oki | -wec | -winbond) + os= + basic_machine=$1 + ;; + -scout) + ;; + -wrs) + os=-vxworks + basic_machine=$1 + ;; + -chorusos*) + os=-chorusos + basic_machine=$1 + ;; + -chorusrdb) + os=-chorusrdb + basic_machine=$1 + ;; + -hiux*) + os=-hiuxwe2 + ;; + -sco6) + os=-sco5v6 + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -sco5) + os=-sco3.2v5 + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -sco4) + os=-sco3.2v4 + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -sco3.2.[4-9]*) + os=`echo $os | sed -e 's/sco3.2./sco3.2v/'` + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -sco3.2v[4-9]*) + # Don't forget version if it is 3.2v4 or newer. + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -sco5v6*) + # Don't forget version if it is 3.2v4 or newer. + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -sco*) + os=-sco3.2v2 + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -udk*) + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -isc) + os=-isc2.2 + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -clix*) + basic_machine=clipper-intergraph + ;; + -isc*) + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -lynx*178) + os=-lynxos178 + ;; + -lynx*5) + os=-lynxos5 + ;; + -lynx*) + os=-lynxos + ;; + -ptx*) + basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'` + ;; + -windowsnt*) + os=`echo $os | sed -e 's/windowsnt/winnt/'` + ;; + -psos*) + os=-psos + ;; + -mint | -mint[0-9]*) + basic_machine=m68k-atari + os=-mint + ;; +esac + +# Decode aliases for certain CPU-COMPANY combinations. +case $basic_machine in + # Recognize the basic CPU types without company name. + # Some are omitted here because they have special meanings below. + 1750a | 580 \ + | a29k \ + | aarch64 | aarch64_be \ + | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \ + | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \ + | am33_2.0 \ + | arc | arceb \ + | arm | arm[bl]e | arme[lb] | armv[2-8] | armv[3-8][lb] | armv7[arm] \ + | avr | avr32 \ + | be32 | be64 \ + | bfin \ + | c4x | c8051 | clipper \ + | d10v | d30v | dlx | dsp16xx \ + | epiphany \ + | fido | fr30 | frv \ + | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ + | hexagon \ + | i370 | i860 | i960 | ia64 \ + | ip2k | iq2000 \ + | k1om \ + | le32 | le64 \ + | lm32 \ + | m32c | m32r | m32rle | m68000 | m68k | m88k \ + | maxq | mb | microblaze | microblazeel | mcore | mep | metag \ + | mips | mipsbe | mipseb | mipsel | mipsle \ + | mips16 \ + | mips64 | mips64el \ + | mips64octeon | mips64octeonel \ + | mips64orion | mips64orionel \ + | mips64r5900 | mips64r5900el \ + | mips64vr | mips64vrel \ + | mips64vr4100 | mips64vr4100el \ + | mips64vr4300 | mips64vr4300el \ + | mips64vr5000 | mips64vr5000el \ + | mips64vr5900 | mips64vr5900el \ + | mipsisa32 | mipsisa32el \ + | mipsisa32r2 | mipsisa32r2el \ + | mipsisa64 | mipsisa64el \ + | mipsisa64r2 | mipsisa64r2el \ + | mipsisa64sb1 | mipsisa64sb1el \ + | mipsisa64sr71k | mipsisa64sr71kel \ + | mipsr5900 | mipsr5900el \ + | mipstx39 | mipstx39el \ + | mn10200 | mn10300 \ + | moxie \ + | mt \ + | msp430 \ + | nds32 | nds32le | nds32be \ + | nios | nios2 | nios2eb | nios2el \ + | ns16k | ns32k \ + | open8 \ + | or1k | or32 \ + | pdp10 | pdp11 | pj | pjl \ + | powerpc | powerpc64 | powerpc64le | powerpcle \ + | pyramid \ + | rl78 | rx \ + | score \ + | sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \ + | sh64 | sh64le \ + | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \ + | sparcv8 | sparcv9 | sparcv9b | sparcv9v \ + | spu \ + | tahoe | tic4x | tic54x | tic55x | tic6x | tic80 | tron \ + | ubicom32 \ + | v850 | v850e | v850e1 | v850e2 | v850es | v850e2v3 \ + | we32k \ + | x86 | xc16x | xstormy16 | xtensa \ + | z8k | z80) + basic_machine=$basic_machine-unknown + ;; + c54x) + basic_machine=tic54x-unknown + ;; + c55x) + basic_machine=tic55x-unknown + ;; + c6x) + basic_machine=tic6x-unknown + ;; + m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x | nvptx | picochip) + basic_machine=$basic_machine-unknown + os=-none + ;; + m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k) + ;; + ms1) + basic_machine=mt-unknown + ;; + + strongarm | thumb | xscale) + basic_machine=arm-unknown + ;; + xgate) + basic_machine=$basic_machine-unknown + os=-none + ;; + xscaleeb) + basic_machine=armeb-unknown + ;; + + xscaleel) + basic_machine=armel-unknown + ;; + + # We use `pc' rather than `unknown' + # because (1) that's what they normally are, and + # (2) the word "unknown" tends to confuse beginning users. + i*86 | x86_64) + basic_machine=$basic_machine-pc + ;; + # Object if more than one company name word. + *-*-*) + echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 + exit 1 + ;; + # Recognize the basic CPU types with company name. + 580-* \ + | a29k-* \ + | aarch64-* | aarch64_be-* \ + | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \ + | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \ + | alphapca5[67]-* | alpha64pca5[67]-* | arc-* | arceb-* \ + | arm-* | armbe-* | armle-* | armeb-* | armv*-* \ + | avr-* | avr32-* \ + | be32-* | be64-* \ + | bfin-* | bs2000-* \ + | c[123]* | c30-* | [cjt]90-* | c4x-* \ + | c8051-* | clipper-* | craynv-* | cydra-* \ + | d10v-* | d30v-* | dlx-* \ + | elxsi-* \ + | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \ + | h8300-* | h8500-* \ + | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \ + | hexagon-* \ + | i*86-* | i860-* | i960-* | ia64-* \ + | ip2k-* | iq2000-* \ + | k1om-* \ + | le32-* | le64-* \ + | lm32-* \ + | m32c-* | m32r-* | m32rle-* \ + | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \ + | m88110-* | m88k-* | maxq-* | mcore-* | metag-* \ + | microblaze-* | microblazeel-* \ + | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \ + | mips16-* \ + | mips64-* | mips64el-* \ + | mips64octeon-* | mips64octeonel-* \ + | mips64orion-* | mips64orionel-* \ + | mips64r5900-* | mips64r5900el-* \ + | mips64vr-* | mips64vrel-* \ + | mips64vr4100-* | mips64vr4100el-* \ + | mips64vr4300-* | mips64vr4300el-* \ + | mips64vr5000-* | mips64vr5000el-* \ + | mips64vr5900-* | mips64vr5900el-* \ + | mipsisa32-* | mipsisa32el-* \ + | mipsisa32r2-* | mipsisa32r2el-* \ + | mipsisa64-* | mipsisa64el-* \ + | mipsisa64r2-* | mipsisa64r2el-* \ + | mipsisa64sb1-* | mipsisa64sb1el-* \ + | mipsisa64sr71k-* | mipsisa64sr71kel-* \ + | mipsr5900-* | mipsr5900el-* \ + | mipstx39-* | mipstx39el-* \ + | mmix-* \ + | mt-* \ + | msp430-* \ + | nds32-* | nds32le-* | nds32be-* \ + | nios-* | nios2-* | nios2eb-* | nios2el-* \ + | none-* | np1-* | ns16k-* | ns32k-* \ + | open8-* \ + | orion-* \ + | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ + | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* \ + | pyramid-* \ + | rl78-* | romp-* | rs6000-* | rx-* \ + | sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \ + | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ + | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \ + | sparclite-* \ + | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | sv1-* | sx?-* \ + | tahoe-* \ + | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \ + | tile*-* \ + | tron-* \ + | ubicom32-* \ + | v850-* | v850e-* | v850e1-* | v850es-* | v850e2-* | v850e2v3-* \ + | vax-* \ + | we32k-* \ + | x86-* | x86_64-* | xc16x-* | xps100-* \ + | xstormy16-* | xtensa*-* \ + | ymp-* \ + | z8k-* | z80-*) + ;; + # Recognize the basic CPU types without company name, with glob match. + xtensa*) + basic_machine=$basic_machine-unknown + ;; + # Recognize the various machine names and aliases which stand + # for a CPU type and a company and sometimes even an OS. + 386bsd) + basic_machine=i386-unknown + os=-bsd + ;; + 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc) + basic_machine=m68000-att + ;; + 3b*) + basic_machine=we32k-att + ;; + a29khif) + basic_machine=a29k-amd + os=-udi + ;; + abacus) + basic_machine=abacus-unknown + ;; + adobe68k) + basic_machine=m68010-adobe + os=-scout + ;; + alliant | fx80) + basic_machine=fx80-alliant + ;; + altos | altos3068) + basic_machine=m68k-altos + ;; + am29k) + basic_machine=a29k-none + os=-bsd + ;; + amd64) + basic_machine=x86_64-pc + ;; + amd64-*) + basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + amdahl) + basic_machine=580-amdahl + os=-sysv + ;; + amiga | amiga-*) + basic_machine=m68k-unknown + ;; + amigaos | amigados) + basic_machine=m68k-unknown + os=-amigaos + ;; + amigaunix | amix) + basic_machine=m68k-unknown + os=-sysv4 + ;; + apollo68) + basic_machine=m68k-apollo + os=-sysv + ;; + apollo68bsd) + basic_machine=m68k-apollo + os=-bsd + ;; + aros) + basic_machine=i386-pc + os=-aros + ;; + aux) + basic_machine=m68k-apple + os=-aux + ;; + balance) + basic_machine=ns32k-sequent + os=-dynix + ;; + blackfin) + basic_machine=bfin-unknown + os=-linux + ;; + blackfin-*) + basic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'` + os=-linux + ;; + bluegene*) + basic_machine=powerpc-ibm + os=-cnk + ;; + c54x-*) + basic_machine=tic54x-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + c55x-*) + basic_machine=tic55x-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + c6x-*) + basic_machine=tic6x-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + c90) + basic_machine=c90-cray + os=-unicos + ;; + cegcc) + basic_machine=arm-unknown + os=-cegcc + ;; + convex-c1) + basic_machine=c1-convex + os=-bsd + ;; + convex-c2) + basic_machine=c2-convex + os=-bsd + ;; + convex-c32) + basic_machine=c32-convex + os=-bsd + ;; + convex-c34) + basic_machine=c34-convex + os=-bsd + ;; + convex-c38) + basic_machine=c38-convex + os=-bsd + ;; + cray | j90) + basic_machine=j90-cray + os=-unicos + ;; + craynv) + basic_machine=craynv-cray + os=-unicosmp + ;; + cr16 | cr16-*) + basic_machine=cr16-unknown + os=-elf + ;; + crds | unos) + basic_machine=m68k-crds + ;; + crisv32 | crisv32-* | etraxfs*) + basic_machine=crisv32-axis + ;; + cris | cris-* | etrax*) + basic_machine=cris-axis + ;; + crx) + basic_machine=crx-unknown + os=-elf + ;; + da30 | da30-*) + basic_machine=m68k-da30 + ;; + decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn) + basic_machine=mips-dec + ;; + decsystem10* | dec10*) + basic_machine=pdp10-dec + os=-tops10 + ;; + decsystem20* | dec20*) + basic_machine=pdp10-dec + os=-tops20 + ;; + delta | 3300 | motorola-3300 | motorola-delta \ + | 3300-motorola | delta-motorola) + basic_machine=m68k-motorola + ;; + delta88) + basic_machine=m88k-motorola + os=-sysv3 + ;; + dicos) + basic_machine=i686-pc + os=-dicos + ;; + djgpp) + basic_machine=i586-pc + os=-msdosdjgpp + ;; + dpx20 | dpx20-*) + basic_machine=rs6000-bull + os=-bosx + ;; + dpx2* | dpx2*-bull) + basic_machine=m68k-bull + os=-sysv3 + ;; + ebmon29k) + basic_machine=a29k-amd + os=-ebmon + ;; + elxsi) + basic_machine=elxsi-elxsi + os=-bsd + ;; + encore | umax | mmax) + basic_machine=ns32k-encore + ;; + es1800 | OSE68k | ose68k | ose | OSE) + basic_machine=m68k-ericsson + os=-ose + ;; + fx2800) + basic_machine=i860-alliant + ;; + genix) + basic_machine=ns32k-ns + ;; + gmicro) + basic_machine=tron-gmicro + os=-sysv + ;; + go32) + basic_machine=i386-pc + os=-go32 + ;; + h3050r* | hiux*) + basic_machine=hppa1.1-hitachi + os=-hiuxwe2 + ;; + h8300hms) + basic_machine=h8300-hitachi + os=-hms + ;; + h8300xray) + basic_machine=h8300-hitachi + os=-xray + ;; + h8500hms) + basic_machine=h8500-hitachi + os=-hms + ;; + harris) + basic_machine=m88k-harris + os=-sysv3 + ;; + hp300-*) + basic_machine=m68k-hp + ;; + hp300bsd) + basic_machine=m68k-hp + os=-bsd + ;; + hp300hpux) + basic_machine=m68k-hp + os=-hpux + ;; + hp3k9[0-9][0-9] | hp9[0-9][0-9]) + basic_machine=hppa1.0-hp + ;; + hp9k2[0-9][0-9] | hp9k31[0-9]) + basic_machine=m68000-hp + ;; + hp9k3[2-9][0-9]) + basic_machine=m68k-hp + ;; + hp9k6[0-9][0-9] | hp6[0-9][0-9]) + basic_machine=hppa1.0-hp + ;; + hp9k7[0-79][0-9] | hp7[0-79][0-9]) + basic_machine=hppa1.1-hp + ;; + hp9k78[0-9] | hp78[0-9]) + # FIXME: really hppa2.0-hp + basic_machine=hppa1.1-hp + ;; + hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893) + # FIXME: really hppa2.0-hp + basic_machine=hppa1.1-hp + ;; + hp9k8[0-9][13679] | hp8[0-9][13679]) + basic_machine=hppa1.1-hp + ;; + hp9k8[0-9][0-9] | hp8[0-9][0-9]) + basic_machine=hppa1.0-hp + ;; + hppa-next) + os=-nextstep3 + ;; + hppaosf) + basic_machine=hppa1.1-hp + os=-osf + ;; + hppro) + basic_machine=hppa1.1-hp + os=-proelf + ;; + i370-ibm* | ibm*) + basic_machine=i370-ibm + ;; + i*86v32) + basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` + os=-sysv32 + ;; + i*86v4*) + basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` + os=-sysv4 + ;; + i*86v) + basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` + os=-sysv + ;; + i*86sol2) + basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` + os=-solaris2 + ;; + i386mach) + basic_machine=i386-mach + os=-mach + ;; + i386-vsta | vsta) + basic_machine=i386-unknown + os=-vsta + ;; + iris | iris4d) + basic_machine=mips-sgi + case $os in + -irix*) + ;; + *) + os=-irix4 + ;; + esac + ;; + isi68 | isi) + basic_machine=m68k-isi + os=-sysv + ;; + m68knommu) + basic_machine=m68k-unknown + os=-linux + ;; + m68knommu-*) + basic_machine=m68k-`echo $basic_machine | sed 's/^[^-]*-//'` + os=-linux + ;; + m88k-omron*) + basic_machine=m88k-omron + ;; + magnum | m3230) + basic_machine=mips-mips + os=-sysv + ;; + merlin) + basic_machine=ns32k-utek + os=-sysv + ;; + microblaze*) + basic_machine=microblaze-xilinx + ;; + mingw64) + basic_machine=x86_64-pc + os=-mingw64 + ;; + mingw32) + basic_machine=i686-pc + os=-mingw32 + ;; + mingw32ce) + basic_machine=arm-unknown + os=-mingw32ce + ;; + miniframe) + basic_machine=m68000-convergent + ;; + *mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*) + basic_machine=m68k-atari + os=-mint + ;; + mips3*-*) + basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'` + ;; + mips3*) + basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown + ;; + monitor) + basic_machine=m68k-rom68k + os=-coff + ;; + morphos) + basic_machine=powerpc-unknown + os=-morphos + ;; + msdos) + basic_machine=i386-pc + os=-msdos + ;; + ms1-*) + basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'` + ;; + msys) + basic_machine=i686-pc + os=-msys + ;; + mvs) + basic_machine=i370-ibm + os=-mvs + ;; + nacl) + basic_machine=le32-unknown + os=-nacl + ;; + ncr3000) + basic_machine=i486-ncr + os=-sysv4 + ;; + netbsd386) + basic_machine=i386-unknown + os=-netbsd + ;; + netwinder) + basic_machine=armv4l-rebel + os=-linux + ;; + news | news700 | news800 | news900) + basic_machine=m68k-sony + os=-newsos + ;; + news1000) + basic_machine=m68030-sony + os=-newsos + ;; + news-3600 | risc-news) + basic_machine=mips-sony + os=-newsos + ;; + necv70) + basic_machine=v70-nec + os=-sysv + ;; + next | m*-next ) + basic_machine=m68k-next + case $os in + -nextstep* ) + ;; + -ns2*) + os=-nextstep2 + ;; + *) + os=-nextstep3 + ;; + esac + ;; + nh3000) + basic_machine=m68k-harris + os=-cxux + ;; + nh[45]000) + basic_machine=m88k-harris + os=-cxux + ;; + nindy960) + basic_machine=i960-intel + os=-nindy + ;; + mon960) + basic_machine=i960-intel + os=-mon960 + ;; + nonstopux) + basic_machine=mips-compaq + os=-nonstopux + ;; + np1) + basic_machine=np1-gould + ;; + neo-tandem) + basic_machine=neo-tandem + ;; + nse-tandem) + basic_machine=nse-tandem + ;; + nsr-tandem) + basic_machine=nsr-tandem + ;; + op50n-* | op60c-*) + basic_machine=hppa1.1-oki + os=-proelf + ;; + openrisc | openrisc-*) + basic_machine=or32-unknown + ;; + os400) + basic_machine=powerpc-ibm + os=-os400 + ;; + OSE68000 | ose68000) + basic_machine=m68000-ericsson + os=-ose + ;; + os68k) + basic_machine=m68k-none + os=-os68k + ;; + pa-hitachi) + basic_machine=hppa1.1-hitachi + os=-hiuxwe2 + ;; + paragon) + basic_machine=i860-intel + os=-osf + ;; + parisc) + basic_machine=hppa-unknown + os=-linux + ;; + parisc-*) + basic_machine=hppa-`echo $basic_machine | sed 's/^[^-]*-//'` + os=-linux + ;; + pbd) + basic_machine=sparc-tti + ;; + pbb) + basic_machine=m68k-tti + ;; + pc532 | pc532-*) + basic_machine=ns32k-pc532 + ;; + pc98) + basic_machine=i386-pc + ;; + pc98-*) + basic_machine=i386-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + pentium | p5 | k5 | k6 | nexgen | viac3) + basic_machine=i586-pc + ;; + pentiumpro | p6 | 6x86 | athlon | athlon_*) + basic_machine=i686-pc + ;; + pentiumii | pentium2 | pentiumiii | pentium3) + basic_machine=i686-pc + ;; + pentium4) + basic_machine=i786-pc + ;; + pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*) + basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + pentiumpro-* | p6-* | 6x86-* | athlon-*) + basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*) + basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + pentium4-*) + basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + pn) + basic_machine=pn-gould + ;; + power) basic_machine=power-ibm + ;; + ppc | ppcbe) basic_machine=powerpc-unknown + ;; + ppc-* | ppcbe-*) + basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + ppcle | powerpclittle | ppc-le | powerpc-little) + basic_machine=powerpcle-unknown + ;; + ppcle-* | powerpclittle-*) + basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + ppc64) basic_machine=powerpc64-unknown + ;; + ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + ppc64le | powerpc64little | ppc64-le | powerpc64-little) + basic_machine=powerpc64le-unknown + ;; + ppc64le-* | powerpc64little-*) + basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + ps2) + basic_machine=i386-ibm + ;; + pw32) + basic_machine=i586-unknown + os=-pw32 + ;; + rdos | rdos64) + basic_machine=x86_64-pc + os=-rdos + ;; + rdos32) + basic_machine=i386-pc + os=-rdos + ;; + rom68k) + basic_machine=m68k-rom68k + os=-coff + ;; + rm[46]00) + basic_machine=mips-siemens + ;; + rtpc | rtpc-*) + basic_machine=romp-ibm + ;; + s390 | s390-*) + basic_machine=s390-ibm + ;; + s390x | s390x-*) + basic_machine=s390x-ibm + ;; + sa29200) + basic_machine=a29k-amd + os=-udi + ;; + sb1) + basic_machine=mipsisa64sb1-unknown + ;; + sb1el) + basic_machine=mipsisa64sb1el-unknown + ;; + sde) + basic_machine=mipsisa32-sde + os=-elf + ;; + sei) + basic_machine=mips-sei + os=-seiux + ;; + sequent) + basic_machine=i386-sequent + ;; + sh) + basic_machine=sh-hitachi + os=-hms + ;; + sh5el) + basic_machine=sh5le-unknown + ;; + sh64) + basic_machine=sh64-unknown + ;; + sparclite-wrs | simso-wrs) + basic_machine=sparclite-wrs + os=-vxworks + ;; + sps7) + basic_machine=m68k-bull + os=-sysv2 + ;; + spur) + basic_machine=spur-unknown + ;; + st2000) + basic_machine=m68k-tandem + ;; + stratus) + basic_machine=i860-stratus + os=-sysv4 + ;; + strongarm-* | thumb-*) + basic_machine=arm-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + sun2) + basic_machine=m68000-sun + ;; + sun2os3) + basic_machine=m68000-sun + os=-sunos3 + ;; + sun2os4) + basic_machine=m68000-sun + os=-sunos4 + ;; + sun3os3) + basic_machine=m68k-sun + os=-sunos3 + ;; + sun3os4) + basic_machine=m68k-sun + os=-sunos4 + ;; + sun4os3) + basic_machine=sparc-sun + os=-sunos3 + ;; + sun4os4) + basic_machine=sparc-sun + os=-sunos4 + ;; + sun4sol2) + basic_machine=sparc-sun + os=-solaris2 + ;; + sun3 | sun3-*) + basic_machine=m68k-sun + ;; + sun4) + basic_machine=sparc-sun + ;; + sun386 | sun386i | roadrunner) + basic_machine=i386-sun + ;; + sv1) + basic_machine=sv1-cray + os=-unicos + ;; + symmetry) + basic_machine=i386-sequent + os=-dynix + ;; + t3e) + basic_machine=alphaev5-cray + os=-unicos + ;; + t90) + basic_machine=t90-cray + os=-unicos + ;; + tile*) + basic_machine=$basic_machine-unknown + os=-linux-gnu + ;; + tx39) + basic_machine=mipstx39-unknown + ;; + tx39el) + basic_machine=mipstx39el-unknown + ;; + toad1) + basic_machine=pdp10-xkl + os=-tops20 + ;; + tower | tower-32) + basic_machine=m68k-ncr + ;; + tpf) + basic_machine=s390x-ibm + os=-tpf + ;; + udi29k) + basic_machine=a29k-amd + os=-udi + ;; + ultra3) + basic_machine=a29k-nyu + os=-sym1 + ;; + v810 | necv810) + basic_machine=v810-nec + os=-none + ;; + vaxv) + basic_machine=vax-dec + os=-sysv + ;; + vms) + basic_machine=vax-dec + os=-vms + ;; + vpp*|vx|vx-*) + basic_machine=f301-fujitsu + ;; + vxworks960) + basic_machine=i960-wrs + os=-vxworks + ;; + vxworks68) + basic_machine=m68k-wrs + os=-vxworks + ;; + vxworks29k) + basic_machine=a29k-wrs + os=-vxworks + ;; + w65*) + basic_machine=w65-wdc + os=-none + ;; + w89k-*) + basic_machine=hppa1.1-winbond + os=-proelf + ;; + xbox) + basic_machine=i686-pc + os=-mingw32 + ;; + xps | xps100) + basic_machine=xps100-honeywell + ;; + xscale-* | xscalee[bl]-*) + basic_machine=`echo $basic_machine | sed 's/^xscale/arm/'` + ;; + ymp) + basic_machine=ymp-cray + os=-unicos + ;; + z8k-*-coff) + basic_machine=z8k-unknown + os=-sim + ;; + z80-*-coff) + basic_machine=z80-unknown + os=-sim + ;; + none) + basic_machine=none-none + os=-none + ;; + +# Here we handle the default manufacturer of certain CPU types. It is in +# some cases the only manufacturer, in others, it is the most popular. + w89k) + basic_machine=hppa1.1-winbond + ;; + op50n) + basic_machine=hppa1.1-oki + ;; + op60c) + basic_machine=hppa1.1-oki + ;; + romp) + basic_machine=romp-ibm + ;; + mmix) + basic_machine=mmix-knuth + ;; + rs6000) + basic_machine=rs6000-ibm + ;; + vax) + basic_machine=vax-dec + ;; + pdp10) + # there are many clones, so DEC is not a safe bet + basic_machine=pdp10-unknown + ;; + pdp11) + basic_machine=pdp11-dec + ;; + we32k) + basic_machine=we32k-att + ;; + sh[1234] | sh[24]a | sh[24]aeb | sh[34]eb | sh[1234]le | sh[23]ele) + basic_machine=sh-unknown + ;; + sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v) + basic_machine=sparc-sun + ;; + cydra) + basic_machine=cydra-cydrome + ;; + orion) + basic_machine=orion-highlevel + ;; + orion105) + basic_machine=clipper-highlevel + ;; + mac | mpw | mac-mpw) + basic_machine=m68k-apple + ;; + pmac | pmac-mpw) + basic_machine=powerpc-apple + ;; + *-unknown) + # Make sure to match an already-canonicalized machine name. + ;; + *) + echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 + exit 1 + ;; +esac + +# Here we canonicalize certain aliases for manufacturers. +case $basic_machine in + *-digital*) + basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'` + ;; + *-commodore*) + basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'` + ;; + *) + ;; +esac + +# Decode manufacturer-specific aliases for certain operating systems. + +if [ x"$os" != x"" ] +then +case $os in + # First match some system type aliases + # that might get confused with valid system types. + # -solaris* is a basic system type, with this one exception. + -auroraux) + os=-auroraux + ;; + -solaris1 | -solaris1.*) + os=`echo $os | sed -e 's|solaris1|sunos4|'` + ;; + -solaris) + os=-solaris2 + ;; + -svr4*) + os=-sysv4 + ;; + -unixware*) + os=-sysv4.2uw + ;; + -gnu/linux*) + os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'` + ;; + # First accept the basic system types. + # The portable systems comes first. + # Each alternative MUST END IN A *, to match a version number. + # -sysv* is not here because it comes later, after sysvr4. + -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \ + | -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\ + | -hpux* | -unos* | -osf* | -luna* | -dgux* | -auroraux* | -solaris* \ + | -sym* | -kopensolaris* | -plan9* \ + | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \ + | -aos* | -aros* \ + | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ + | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ + | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \ + | -bitrig* | -openbsd* | -solidbsd* \ + | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \ + | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ + | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ + | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ + | -chorusos* | -chorusrdb* | -cegcc* \ + | -cygwin* | -msys* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ + | -mingw32* | -mingw64* | -linux-gnu* | -linux-android* \ + | -linux-newlib* | -linux-musl* | -linux-uclibc* \ + | -uxpv* | -beos* | -mpeix* | -udk* \ + | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \ + | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \ + | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \ + | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \ + | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \ + | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \ + | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es*) + # Remember, each alternative MUST END IN *, to match a version number. + ;; + -qnx*) + case $basic_machine in + x86-* | i*86-*) + ;; + *) + os=-nto$os + ;; + esac + ;; + -nto-qnx*) + ;; + -nto*) + os=`echo $os | sed -e 's|nto|nto-qnx|'` + ;; + -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \ + | -windows* | -osx | -abug | -netware* | -os9* | -beos* | -haiku* \ + | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*) + ;; + -mac*) + os=`echo $os | sed -e 's|mac|macos|'` + ;; + -linux-dietlibc) + os=-linux-dietlibc + ;; + -linux*) + os=`echo $os | sed -e 's|linux|linux-gnu|'` + ;; + -sunos5*) + os=`echo $os | sed -e 's|sunos5|solaris2|'` + ;; + -sunos6*) + os=`echo $os | sed -e 's|sunos6|solaris3|'` + ;; + -opened*) + os=-openedition + ;; + -os400*) + os=-os400 + ;; + -wince*) + os=-wince + ;; + -osfrose*) + os=-osfrose + ;; + -osf*) + os=-osf + ;; + -utek*) + os=-bsd + ;; + -dynix*) + os=-bsd + ;; + -acis*) + os=-aos + ;; + -atheos*) + os=-atheos + ;; + -syllable*) + os=-syllable + ;; + -386bsd) + os=-bsd + ;; + -ctix* | -uts*) + os=-sysv + ;; + -nova*) + os=-rtmk-nova + ;; + -ns2 ) + os=-nextstep2 + ;; + -nsk*) + os=-nsk + ;; + # Preserve the version number of sinix5. + -sinix5.*) + os=`echo $os | sed -e 's|sinix|sysv|'` + ;; + -sinix*) + os=-sysv4 + ;; + -tpf*) + os=-tpf + ;; + -triton*) + os=-sysv3 + ;; + -oss*) + os=-sysv3 + ;; + -svr4) + os=-sysv4 + ;; + -svr3) + os=-sysv3 + ;; + -sysvr4) + os=-sysv4 + ;; + # This must come after -sysvr4. + -sysv*) + ;; + -ose*) + os=-ose + ;; + -es1800*) + os=-ose + ;; + -xenix) + os=-xenix + ;; + -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) + os=-mint + ;; + -aros*) + os=-aros + ;; + -zvmoe) + os=-zvmoe + ;; + -dicos*) + os=-dicos + ;; + -nacl*) + ;; + -none) + ;; + *) + # Get rid of the `-' at the beginning of $os. + os=`echo $os | sed 's/[^-]*-//'` + echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2 + exit 1 + ;; +esac +else + +# Here we handle the default operating systems that come with various machines. +# The value should be what the vendor currently ships out the door with their +# machine or put another way, the most popular os provided with the machine. + +# Note that if you're going to try to match "-MANUFACTURER" here (say, +# "-sun"), then you have to tell the case statement up towards the top +# that MANUFACTURER isn't an operating system. Otherwise, code above +# will signal an error saying that MANUFACTURER isn't an operating +# system, and we'll never get to this point. + +case $basic_machine in + score-*) + os=-elf + ;; + spu-*) + os=-elf + ;; + *-acorn) + os=-riscix1.2 + ;; + arm*-rebel) + os=-linux + ;; + arm*-semi) + os=-aout + ;; + c4x-* | tic4x-*) + os=-coff + ;; + c8051-*) + os=-elf + ;; + hexagon-*) + os=-elf + ;; + tic54x-*) + os=-coff + ;; + tic55x-*) + os=-coff + ;; + tic6x-*) + os=-coff + ;; + # This must come before the *-dec entry. + pdp10-*) + os=-tops20 + ;; + pdp11-*) + os=-none + ;; + *-dec | vax-*) + os=-ultrix4.2 + ;; + m68*-apollo) + os=-domain + ;; + i386-sun) + os=-sunos4.0.2 + ;; + m68000-sun) + os=-sunos3 + ;; + m68*-cisco) + os=-aout + ;; + mep-*) + os=-elf + ;; + mips*-cisco) + os=-elf + ;; + mips*-*) + os=-elf + ;; + or1k-*) + os=-elf + ;; + or32-*) + os=-coff + ;; + *-tti) # must be before sparc entry or we get the wrong os. + os=-sysv3 + ;; + sparc-* | *-sun) + os=-sunos4.1.1 + ;; + *-be) + os=-beos + ;; + *-haiku) + os=-haiku + ;; + *-ibm) + os=-aix + ;; + *-knuth) + os=-mmixware + ;; + *-wec) + os=-proelf + ;; + *-winbond) + os=-proelf + ;; + *-oki) + os=-proelf + ;; + *-hp) + os=-hpux + ;; + *-hitachi) + os=-hiux + ;; + i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent) + os=-sysv + ;; + *-cbm) + os=-amigaos + ;; + *-dg) + os=-dgux + ;; + *-dolphin) + os=-sysv3 + ;; + m68k-ccur) + os=-rtu + ;; + m88k-omron*) + os=-luna + ;; + *-next ) + os=-nextstep + ;; + *-sequent) + os=-ptx + ;; + *-crds) + os=-unos + ;; + *-ns) + os=-genix + ;; + i370-*) + os=-mvs + ;; + *-next) + os=-nextstep3 + ;; + *-gould) + os=-sysv + ;; + *-highlevel) + os=-bsd + ;; + *-encore) + os=-bsd + ;; + *-sgi) + os=-irix + ;; + *-siemens) + os=-sysv4 + ;; + *-masscomp) + os=-rtu + ;; + f30[01]-fujitsu | f700-fujitsu) + os=-uxpv + ;; + *-rom68k) + os=-coff + ;; + *-*bug) + os=-coff + ;; + *-apple) + os=-macos + ;; + *-atari*) + os=-mint + ;; + *) + os=-none + ;; +esac +fi + +# Here we handle the case where we know the os, and the CPU type, but not the +# manufacturer. We pick the logical manufacturer. +vendor=unknown +case $basic_machine in + *-unknown) + case $os in + -riscix*) + vendor=acorn + ;; + -sunos*) + vendor=sun + ;; + -cnk*|-aix*) + vendor=ibm + ;; + -beos*) + vendor=be + ;; + -hpux*) + vendor=hp + ;; + -mpeix*) + vendor=hp + ;; + -hiux*) + vendor=hitachi + ;; + -unos*) + vendor=crds + ;; + -dgux*) + vendor=dg + ;; + -luna*) + vendor=omron + ;; + -genix*) + vendor=ns + ;; + -mvs* | -opened*) + vendor=ibm + ;; + -os400*) + vendor=ibm + ;; + -ptx*) + vendor=sequent + ;; + -tpf*) + vendor=ibm + ;; + -vxsim* | -vxworks* | -windiss*) + vendor=wrs + ;; + -aux*) + vendor=apple + ;; + -hms*) + vendor=hitachi + ;; + -mpw* | -macos*) + vendor=apple + ;; + -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) + vendor=atari + ;; + -vos*) + vendor=stratus + ;; + esac + basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"` + ;; +esac + +echo $basic_machine$os +exit + +# Local variables: +# eval: (add-hook 'write-file-hooks 'time-stamp) +# time-stamp-start: "timestamp='" +# time-stamp-format: "%:y-%02m-%02d" +# time-stamp-end: "'" +# End: diff --git a/d6ded60cfdc5.tar.bz2 b/d6ded60cfdc5.tar.bz2 new file mode 100644 index 0000000..7ef7bdb --- /dev/null +++ b/d6ded60cfdc5.tar.bz2 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9bd5ed2d68221ad15ec0301a959a46050c74ee0b829f67ab34da9623de738e40 +size 2729164 diff --git a/disable-doclint-by-default.patch b/disable-doclint-by-default.patch new file mode 100644 index 0000000..ee0e3ba --- /dev/null +++ b/disable-doclint-by-default.patch @@ -0,0 +1,58 @@ +Disable doclint by default + +OpenJDK 8 adds and enables doclint by default. This catches issues in +javadoc comments. It is too strict, breaks javadoc compilation and, in +general, breaks the build for old code known to build with previous +versions of OpenJDK. + +See: http://blog.joda.org/2014/02/turning-off-doclint-in-jdk-8-javadoc.html +See: https://lists.fedoraproject.org/pipermail/java-devel/2014-February/005150.html + +Author: Andrew John Hughes +Author: Emmanuel Bourg +--- jdk8/langtools/src/share/classes/com/sun/tools/javadoc/DocEnv.java ++++ jdk8/langtools/src/share/classes/com/sun/tools/javadoc/DocEnv.java +@@ -811,10 +811,9 @@ + doclintOpts.add(opt == null ? DocLint.XMSGS_OPTION : DocLint.XMSGS_CUSTOM_PREFIX + opt); + } + +- if (doclintOpts.isEmpty()) { +- doclintOpts.add(DocLint.XMSGS_OPTION); +- } else if (doclintOpts.size() == 1 +- && doclintOpts.get(0).equals(DocLint.XMSGS_CUSTOM_PREFIX + "none")) { ++ if (doclintOpts.isEmpty() || ++ (doclintOpts.size() == 1 ++ && doclintOpts.get(0).equals(DocLint.XMSGS_CUSTOM_PREFIX + "none"))) { + return; + } + +--- jdk8/langtools/test/tools/javadoc/doclint/DocLintTest.java ++++ jdk8/langtools/test/tools/javadoc/doclint/DocLintTest.java +@@ -130,12 +130,12 @@ + }; + + test(Collections.emptyList(), +- Main.Result.ERROR, +- EnumSet.of(Message.DL_ERR9A, Message.DL_WRN12A)); ++ Main.Result.OK, ++ EnumSet.of(Message.JD_WRN10, Message.JD_WRN13)); + + test(Arrays.asList(rawDiags), +- Main.Result.ERROR, +- EnumSet.of(Message.DL_ERR9, Message.DL_WRN12)); ++ Main.Result.OK, ++ EnumSet.of(Message.JD_WRN10, Message.JD_WRN13)); + + test(Arrays.asList("-Xdoclint:none"), + Main.Result.OK, +@@ -158,8 +158,8 @@ + EnumSet.of(Message.DL_WRN12)); + + test(Arrays.asList(rawDiags, "-private"), +- Main.Result.ERROR, +- EnumSet.of(Message.DL_ERR6, Message.DL_ERR9, Message.DL_WRN12)); ++ Main.Result.OK, ++ EnumSet.of(Message.JD_WRN10, Message.JD_WRN13)); + + test(Arrays.asList(rawDiags, "-Xdoclint:syntax", "-private"), + Main.Result.ERROR, diff --git a/f09d1f6a401e.tar.bz2 b/f09d1f6a401e.tar.bz2 new file mode 100644 index 0000000..88dfec7 --- /dev/null +++ b/f09d1f6a401e.tar.bz2 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ec2264126452aa473974a56df3b0f09a38a90bad19b24903f6ce7aceece14050 +size 7639132 diff --git a/f3bf1b270fea.tar.bz2 b/f3bf1b270fea.tar.bz2 new file mode 100644 index 0000000..7494d7f --- /dev/null +++ b/f3bf1b270fea.tar.bz2 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7ba997612fcd561dd360679b11c569a318a3af93731675501bff6bc9c5befc93 +size 2527024 diff --git a/hotspot-build-j-directive.patch b/hotspot-build-j-directive.patch new file mode 100644 index 0000000..e95a590 --- /dev/null +++ b/hotspot-build-j-directive.patch @@ -0,0 +1,19 @@ +# HG changeset patch +# User andrew +# Date 1398183426 -3600 +# Node ID b4ea3a87f707e674a144e805084bda0f72ad4e38 +# Parent 00aa9f5a26b9e2c7bdca547201106f76e23a8c01 +Don't substitute 'j' for '-j' inside -I directives + +--- jdk8/hotspot/make/linux/makefiles/adjust-mflags.sh Tue Apr 22 17:15:43 2014 +0100 ++++ jdk8/hotspot/make/linux/makefiles/adjust-mflags.sh Tue Apr 22 17:17:06 2014 +0100 +@@ -64,7 +64,7 @@ + echo "$MFLAGS" \ + | sed ' + s/^-/ -/ +- s/ -\([^ ][^ ]*\)j/ -\1 -j/ ++ s/ -\([^ I][^ ]*\)j/ -\1 -j/ + s/ -j[0-9][0-9]*/ -j/ + s/ -j\([^ ]\)/ -j -\1/ + s/ -j/ -j'${HOTSPOT_BUILD_JOBS:-${default_build_jobs}}'/ + diff --git a/implicit-pointer-decl.patch b/implicit-pointer-decl.patch new file mode 100644 index 0000000..5cec608 --- /dev/null +++ b/implicit-pointer-decl.patch @@ -0,0 +1,17 @@ +--- jdk8/jdk/src/share/instrument/JarFacade.c 2014-07-03 00:01:31.000000000 +0200 ++++ jdk8/jdk/src/share/instrument/JarFacade.c 2014-07-15 08:45:35.144295472 +0200 +@@ -23,14 +23,7 @@ + * questions. + */ + +-#ifdef _WIN32 +-/* +- * Win* needs this include. However, Linux and Solaris do not. +- * Having this include on Solaris SPARC breaks having non US-ASCII +- * characters in the value of the Premain-Class attribute. +- */ + #include +-#endif /* _WIN32 */ + #include + #include + diff --git a/include-all-srcs.patch b/include-all-srcs.patch new file mode 100644 index 0000000..16abb45 --- /dev/null +++ b/include-all-srcs.patch @@ -0,0 +1,54 @@ +--- jdk8/jdk/make/CreateJars.gmk ++++ jdk8/jdk/make/CreateJars.gmk +@@ -569,38 +569,12 @@ + ########################################################################################## + + SRC_ZIP_INCLUDES = \ +- com/sun/corba \ +- com/sun/image/codec/jpeg \ +- com/sun/imageio \ +- com/sun/java_cup \ +- com/sun/javadoc \ +- com/sun/java/swing \ +- com/sun/jmx \ +- com/sun/naming \ +- com/sun/org/apache \ +- com/sun/security/auth \ +- com/sun/security/jgss \ +- com/sun/source \ ++ com \ + java \ +- javax/accessibility \ +- javax/annotation \ +- javax/imageio \ +- javax/lang \ +- javax/management \ +- javax/naming \ +- javax/print \ +- javax/rmi \ +- javax/script \ +- javax/security \ +- javax/sound \ +- javax/sql \ +- javax/swing \ +- javax/tools \ +- javax/xml \ +- org/ietf \ +- org/omg \ +- org/w3c/dom \ +- org/xml/sax \ ++ javax \ ++ jdk \ ++ org \ ++ sun \ + # + + SRC_ZIP_SRCS = $(JDK_TOPDIR)/src/share/classes $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/classes +@@ -632,7 +606,6 @@ + $(eval $(call SetupZipArchive,BUILD_SRC_ZIP, \ + SRC := $(SRC_ZIP_SRCS) $(IMAGES_OUTPUTDIR)/src, \ + INCLUDES := $(SRC_ZIP_INCLUDES) launcher, \ +- EXCLUDES := javax/swing/beaninfo, \ + SUFFIXES := .java .c .h, \ + ZIP := $(IMAGES_OUTPUTDIR)/src.zip, \ + EXTRA_DEPS := $(LAUNCHER_ZIP_SRC))) diff --git a/java-1_8_0-openjdk.changes b/java-1_8_0-openjdk.changes new file mode 100644 index 0000000..af832f8 --- /dev/null +++ b/java-1_8_0-openjdk.changes @@ -0,0 +1,48 @@ +------------------------------------------------------------------- +Fri Jul 18 07:21:20 UTC 2014 - fstrba@suse.com + +- Upgrade to upstream tag jdk8u20-b23 + * Security updates from 15 July 2014 +- Removed patch: voidreturn.patch + * Integrated upstream +- Re-diffed patch: java-atk-wrapper-security.patch + * Re-diff to correspond to the new changes +- Modify accessibility post script to actually create the + corresponding symlinks + +------------------------------------------------------------------- +Tue Jul 15 08:03:53 UTC 2014 - fstrba@suse.com + +- Initial package built from upstream OpenJDK + * Version 1.8.0.20~b22 + * Sources from http://hg.openjdk.java.net/jdk8u/jdk8u20/ + tag jdk8u20-b22 +- Initial bug-/build-fix patches + * 1015432.patch + * aarch64-jni-update.patch + * aarch64-misc.patch + * adlc-parser.patch + * applet-hole.patch + * compare-pointer-with-literal.patch + * disable-doclint-by-default.patch + * hotspot-build-j-directive.patch + * implicit-pointer-decl.patch + * include-all-srcs.patch + * java-atk-wrapper-security.patch + * link-with-as-needed.patch + * memory-limits.patch + * multiple-pkcs11-library-init.patch + * ppc-zero-hotspot.patch + * PStack-808293.patch + * s390-java-opts.patch + * s390-size_t.patch + * system-giflib5.patch + * system-lcms.patch + * system-libjpeg.patch + * system-libpng.patch + * voidreturn.patch +- Added aarch64 hotspot from the tip of + http://hg.openjdk.java.net/aarch64-port/jdk8/hotspot +- Added pulseaudio provider from the tip of + http://icedtea.classpath.org/hg/icedtea-sound/ + diff --git a/java-1_8_0-openjdk.spec b/java-1_8_0-openjdk.spec new file mode 100644 index 0000000..b92528e --- /dev/null +++ b/java-1_8_0-openjdk.spec @@ -0,0 +1,1174 @@ +# +# spec file for package java-1_8_0-openjdk +# +# Copyright (c) 2014 SUSE LINUX Products GmbH, Nuernberg, Germany. +# +# All modifications and additions to the file contributed by third parties +# remain the property of their copyright owners, unless otherwise agreed +# upon. The license for this file, and modifications and additions to the +# file, is the same license as for the pristine package itself (unless the +# license for the pristine package is not an Open Source License, in which +# case the license is the MIT License). An "Open Source License" is a +# license that conforms to the Open Source Definition (Version 1.9) +# published by the Open Source Initiative. + +# Please submit bugfixes or comments via http://bugs.opensuse.org/ +# + + +%global debug 0 +%global bootcycle 1 +%global jit_arches %ix86 x86_64 aarch64 ppc64 ppc64le +%global buildoutputdir build +# Convert an absolute path to a relative path. Each symbolic link is +# specified relative to the directory in which it is installed so that +# it will resolve properly within chrooted installations. +%global script 'use File::Spec; print File::Spec->abs2rel($ARGV[0], $ARGV[1])' +%global abs2rel perl -e %{script} +%global syslibdir %{_libdir} +%global archname %{name} +# Standard JPackage naming and versioning defines. +%global updatever 20 +%global buildver b23 +%global root_project jdk8u +%global root_repository jdk8u20 +%global root_revision b14daf2459c5 +%global corba_revision 919405d7316d +%global hotspot_revision f09d1f6a401e +%global jaxp_revision d6ded60cfdc5 +%global jaxws_revision f3bf1b270fea +%global jdk_revision be30cb2a3088 +%global langtools_revision 5c1d6da1445a +%global nashorn_revision ad36f9454ce3 +%global aarch64_project aarch64-port +%global aarch64_repository jdk8 +%global aarch64_hotspot_revision c5b8254a0fe2 +%global icedtea_sound_revision 86856b2e3d18 +# priority must be 6 digits in total +%global priority 180%{updatever} +%global javaver 1.8.0 +# Standard JPackage directories and symbolic links. +%global sdklnk java-%{javaver}-openjdk +%global archname %{sdklnk} +%global jrelnk jre-%{javaver}-openjdk +%global sdkdir %{sdklnk}-%{javaver} +%global jredir %{sdkdir}/jre +%global sdkbindir %{_jvmdir}/%{sdklnk}/bin +%global jrebindir %{_jvmdir}/%{jrelnk}/bin +%global jvmjardir %{_jvmjardir}/%{sdkdir} +%global jvmjarlink %{_jvmjardir}/%{sdklnk} +# Prevent brp-java-repack-jars from being run. +%global __jar_repack 0 +# cacert symlink +%global cacerts %{_jvmdir}/%{jredir}/lib/security/cacerts +# real file made by update-ca-certificates +%global javacacerts %{_var}/lib/ca-certificates/java-cacerts +%ifarch x86_64 +%global archinstall amd64 +%endif +%ifarch ppc +%global archinstall ppc +%endif +%ifarch ppc64 ppc64le +%global archinstall ppc64 +%endif +%ifarch %ix86 +%global archinstall i386 +%endif +%ifarch ia64 +%global archinstall ia64 +%endif +%ifarch s390 +%global archinstall s390 +%endif +%ifarch s390x +%global archinstall s390x +%endif +%ifarch %{arm} +%global archinstall arm +%endif +%ifarch %{aarch64} +%global archinstall aarch64 +%endif +# 32 bit sparc, optimized for v9 +%ifarch sparcv9 +%global archinstall sparc +%endif +# 64 bit sparc +%ifarch sparc64 +%global archinstall sparcv9 +%endif +%ifnarch %{jit_arches} +%global archinstall %{_arch} +%endif +%if %{debug} +%global debugbuild slowdebug +%else +%global debugbuild release +%endif +%if %{bootcycle} +%global imagesdir bootcycle-build/images +%global imagestarget bootcycle-images +%else +%global imagesdir images +%global imagestarget images +%endif +%ifarch %{jit_arches} +%global with_systemtap 1 +%else +%global with_systemtap 0 +%endif +%if 0%{?suse_version} >= 1140 +%global with_pulseaudio 1 +%else +%global with_pulseaudio 0 +%endif +%if %{with_systemtap} +# Where to install systemtap tapset (links) +# We would like these to be in a package specific subdir, +# but currently systemtap doesn't support that, so we have to +# use the root tapset dir for now. To distinquish between 64 +# and 32 bit architectures we place the tapsets under the arch +# specific dir (note that systemtap will only pickup the tapset +# for the primary arch for now). Systemtap uses the machine name +# aka build_cpu as architecture specific directory name. +%global tapsetroot %{_datadir}/systemtap +%global tapsetdir %{tapsetroot}/tapset/%{_build_cpu} +%endif +Name: java-1_8_0-openjdk +Version: %{javaver}.%{updatever}~%{buildver} +Release: 0 +Summary: OpenJDK Runtime Environment +License: Apache-1.1 and Apache-2.0 and GPL-1.0+ and GPL-2.0 and GPL-2.0-with-classpath-exception and LGPL-2.0 and MPL-1.0 and MPL-1.1 and SUSE-Public-Domain and W3C +Group: Development/Languages +Url: http://openjdk.java.net/ +# Sources from upstream OpenJDK8 project. +Source0: http://hg.openjdk.java.net/%{root_project}/%{root_repository}/archive/%{root_revision}.tar.bz2 +Source1: http://hg.openjdk.java.net/%{root_project}/%{root_repository}/corba/archive/%{corba_revision}.tar.bz2 +Source2: http://hg.openjdk.java.net/%{root_project}/%{root_repository}/hotspot/archive/%{hotspot_revision}.tar.bz2 +Source3: http://hg.openjdk.java.net/%{root_project}/%{root_repository}/jaxp/archive/%{jaxp_revision}.tar.bz2 +Source4: http://hg.openjdk.java.net/%{root_project}/%{root_repository}/jaxws/archive/%{jaxws_revision}.tar.bz2 +Source5: http://hg.openjdk.java.net/%{root_project}/%{root_repository}/jdk/archive/%{jdk_revision}.tar.bz2 +Source6: http://hg.openjdk.java.net/%{root_project}/%{root_repository}/langtools/archive/%{langtools_revision}.tar.bz2 +Source7: http://hg.openjdk.java.net/%{root_project}/%{root_repository}/nashorn/archive/%{nashorn_revision}.tar.bz2 +# Hotspot version from aarch64-port repository (using the _tip_ of the http://hg.openjdk.java.net/%{aarch64_project}/%{aarch64_repository}/hotspot) +Source8: http://hg.openjdk.java.net/%{aarch64_project}/%{aarch64_repository}/hotspot/archive/%{aarch64_hotspot_revision}.tar.bz2 +# Pulseaudio plugin +Source9: http://icedtea.classpath.org/hg/icedtea-sound/archive/%{icedtea_sound_revision}.tar.bz2 +# Systemtap tapsets. Zipped up to keep it small. +Source10: systemtap-tapset.tar.gz +# Desktop files. Adapated from IcedTea. +Source11: jconsole.desktop.in +Source12: policytool.desktop.in +# nss configuration file +Source13: nss.cfg +# Ensure we aren't using the limited crypto policy +Source14: TestCryptoLevel.java +# New versions of config files with aarch64 support. This is not upstream yet. +Source100: config.guess +Source101: config.sub +# RPM/distribution specific patches +# Backport JVM_GetTemporaryDirectory jni export for aarch64 +Patch0: aarch64-jni-update.patch +# RHBZ 1015432 +Patch2: 1015432.patch +# Restrict access to java-atk-wrapper classes +Patch3: java-atk-wrapper-security.patch +# RHBZ 808293 +Patch4: PStack-808293.patch +# Allow multiple initialization of PKCS11 libraries +Patch5: multiple-pkcs11-library-init.patch +# Disable doclint for compatibility +Patch6: disable-doclint-by-default.patch +# Include all sources in src.zip +Patch7: include-all-srcs.patch +# Fix expression compares a char* pointer with a string literal +Patch8: compare-pointer-with-literal.patch +# Add missing build bits for AArch64 from the AArch64 branch +Patch9: aarch64-misc.patch +# From icedtea: Increase default memory limits +Patch10: memory-limits.patch +# Problem discovered with make 4.0 +Patch11: hotspot-build-j-directive.patch +# Fix use of unintialized memory in adlc parser +Patch12: adlc-parser.patch +# Fix: implicit-pointer-decl +Patch13: implicit-pointer-decl.patch +# +# OpenJDK specific patches +# +# Allow icedtea-web to build +Patch99: applet-hole.patch +# JVM heap size changes for s390 (thanks to aph) +Patch100: s390-java-opts.patch +Patch101: s390-size_t.patch +# Patch for PPC/PPC64 +Patch103: ppc-zero-hotspot.patch +# Patches for system libraries +Patch201: system-libjpeg.patch +Patch202: system-libpng.patch +Patch203: system-lcms.patch +Patch204: system-giflib5.patch +Patch205: link-with-as-needed.patch +BuildRequires: alsa-lib-devel +BuildRequires: autoconf +BuildRequires: automake +BuildRequires: binutils +BuildRequires: cups-devel +BuildRequires: desktop-file-utils +BuildRequires: fdupes +BuildRequires: fontconfig +BuildRequires: freetype-devel +BuildRequires: gcc-c++ +BuildRequires: giflib-devel +BuildRequires: gtk2-devel +%if %{bootcycle} +BuildRequires: java-devel >= 1.6.0 +%else +BuildRequires: java-devel >= %{javaver} +%endif +BuildRequires: libX11-devel +BuildRequires: libXi-devel +BuildRequires: libXinerama-devel +BuildRequires: libXt-devel +BuildRequires: libXtst-devel +BuildRequires: libjpeg-devel +BuildRequires: liblcms2-devel +BuildRequires: libpng-devel +BuildRequires: libxslt +BuildRequires: pkgconfig +BuildRequires: unzip +BuildRequires: update-desktop-files +BuildRequires: xorg-x11-proto-devel +BuildRequires: zip +# Requires rest of java +Requires: %{name}-headless = %{version}-%{release} +Requires: fontconfig +# mozilla-nss has to be installed to prevent +# java.security.ProviderException: Could not initialize NSS +# ... +# java.io.FileNotFoundException: /usr/lib64/libnss3.so +#was bnc#634793 +Requires: mozilla-nss +# Standard JPackage base provides. +Provides: java = %{javaver} +Provides: java-%{javaver} = %{version}-%{release} +Provides: java-openjdk = %{version}-%{release} +Provides: jre = %{javaver} +Provides: jre-%{javaver} = %{version}-%{release} +Provides: jre-%{javaver}-openjdk = %{version}-%{release} +Provides: jre-openjdk = %{version}-%{release} +# Standard JPackage extensions provides. +Provides: java-fonts = %{version} +BuildRoot: %{_tmppath}/%{name}-%{version}-build +%{!?aarch64:%global aarch64 aarch64 arm64 armv8} +# Zero-assembler build requirement. +%ifnarch %{jit_arches} +BuildRequires: libffi-devel +%endif +# runtime certificates generation available in 11.3+ - bnc#596177 +%if 0%{?suse_version} >= 1130 +BuildRequires: java-ca-certificates +Requires(post): file +Requires(post): java-ca-certificates +%else +BuildRequires: openssl-certs +# the certificates will converted in a prep to standard keystore file - cacerts +# The openssl requirment seems to be necessary for build only. +Requires: openssl +%endif +%if %{with_systemtap} +BuildRequires: systemtap-sdt-devel +%endif +# pulse audio requirements +%if %{with_pulseaudio} +BuildRequires: libpulse-devel >= 0.9.11 +BuildRequires: pulseaudio >= 0.9.11 +%endif + +%description +The OpenJDK runtime environment. + +%package headless +Summary: OpenJDK Runtime Environment +Group: Development/Languages +# Require jpackage-utils for ownership of /usr/lib/jvm/ +Requires: jpackage-utils +# Require zoneinfo data provided by tzdata-java subpackage. +Requires: tzdata-java +# Post requires update-alternatives to install tool update-alternatives. +Requires(post): update-alternatives +# Postun requires update-alternatives to uninstall tool update-alternatives. +Requires(postun): update-alternatives +# Standard JPackage base provides. +Provides: java-%{javaver}-headless = %{version}-%{release} +Provides: java-headless = %{javaver} +Provides: java-openjdk-headless = %{version}-%{release} +Provides: jre-%{javaver}-headless = %{version}-%{release} +Provides: jre-%{javaver}-openjdk-headless = %{version}-%{release} +Provides: jre-headless = %{javaver} +Provides: jre-openjdk-headless = %{version}-%{release} +# Standard JPackage extensions provides. +Provides: jaas = %{version} +Provides: java-sasl = %{version} +Provides: jce = %{version} +Provides: jdbc-stdext = 4.1 +Provides: jndi = %{version} +Provides: jndi-cos = %{version} +Provides: jndi-dns = %{version} +Provides: jndi-ldap = %{version} +Provides: jndi-rmi = %{version} +Provides: jsse = %{version} + +%description headless +The OpenJDK runtime environment without audio and video support. + +%package devel +Summary: OpenJDK Development Environment +Group: Development/Tools +# Require base package. +Requires: %{name} = %{version}-%{release} +# Post requires update-alternatives to install tool update-alternatives. +Requires(post): update-alternatives +# Postun requires update-alternatives to uninstall tool update-alternatives. +Requires(postun): update-alternatives +# Standard JPackage devel provides. +Provides: java-%{javaver}-devel = %{version} +Provides: java-devel = %{javaver} +Provides: java-devel-openjdk = %{version} +Provides: java-sdk = %{javaver} +Provides: java-sdk-%{javaver} = %{version} +Provides: java-sdk-%{javaver}-openjdk = %{version} +Provides: java-sdk-openjdk = %{version} + +%description devel +The OpenJDK development tools. + +%package demo +Summary: OpenJDK Demos +Group: Development/Languages +Requires: %{name} = %{version}-%{release} + +%description demo +The OpenJDK demos. + +%package src +Summary: OpenJDK Source Bundle +Group: Development/Languages +Requires: %{name} = %{version}-%{release} + +%description src +The OpenJDK source bundle. + +%package javadoc +Summary: OpenJDK API Documentation +Group: Documentation +Requires: jpackage-utils +# Post requires update-alternatives to install javadoc alternative. +Requires(post): update-alternatives +# Postun requires update-alternatives to uninstall javadoc alternative. +Requires(postun): update-alternatives +# Standard JPackage javadoc provides. +Provides: java-%{javaver}-javadoc = %{version}-%{release} +Provides: java-javadoc = %{version}-%{release} +BuildArch: noarch + +%description javadoc +The OpenJDK API documentation. + +%package accessibility +Summary: OpenJDK accessibility connector +Group: Development/Languages +Requires: %{name} = %{version}-%{release} +Requires: java-atk-wrapper + +%description accessibility +Enables accessibility support in OpenJDK by using java-atk-wrapper. This allows +compatible at-spi2 based accessibility programs to work for AWT and Swing-based +programs. + +Please note, the java-atk-wrapper is still in beta, and OpenJDK itself is still +being tuned to be working with accessibility features. There are known issues +with accessibility on, so please do not install this package unless you really +need to. + +%prep +%setup -q -n %{root_repository}-%{root_revision} +%setup -q -D -n %{root_repository}-%{root_revision} -T -a 1 +%ifarch %{aarch64} +%setup -q -D -n %{root_repository}-%{root_revision} -T -a 8 +%else +%setup -q -D -n %{root_repository}-%{root_revision} -T -a 2 +%endif +%setup -q -D -n %{root_repository}-%{root_revision} -T -a 3 +%setup -q -D -n %{root_repository}-%{root_revision} -T -a 4 +%setup -q -D -n %{root_repository}-%{root_revision} -T -a 5 +%setup -q -D -n %{root_repository}-%{root_revision} -T -a 6 +%setup -q -D -n %{root_repository}-%{root_revision} -T -a 7 +%if %{with_pulseaudio} +%setup -q -D -n %{root_repository}-%{root_revision} -T -a 9 +%endif + +# Set up the build tree using the subrepository tarballs +pwd +mv corba-%{corba_revision} corba +%ifarch %{aarch64} +mv hotspot-%{aarch64_hotspot_revision} hotspot +%else +mv hotspot-%{hotspot_revision} hotspot +%endif +mv jaxp-%{jaxp_revision} jaxp +mv jaxws-%{jaxws_revision} jaxws +mv jdk-%{jdk_revision} jdk +mv langtools-%{langtools_revision} langtools +mv nashorn-%{nashorn_revision} nashorn +%if %{with_pulseaudio} +mv icedtea-sound-%{icedtea_sound_revision} icedtea-sound +%endif + +# replace outdated configure guess script +# +# the configure macro will do this too, but it also passes a few flags not +# supported by openjdk configure script +cp %{SOURCE100} common/autoconf/build-aux/ +cp %{SOURCE101} common/autoconf/build-aux/ + +# Remove libraries that are linked +rm -rvf jdk/src/share/native/java/util/zip/zlib-* +find jdk/src/share/native/sun/awt/image/jpeg ! -name imageioJPEG.c ! -name jpegdecoder.c -type f -delete +rm -rvf jdk/src/share/native/sun/awt/libpng +rm -rvf jdk/src/share/native/sun/awt/giflib +rm -rvf jdk/src/share/native/sun/java2d/cmm/lcms/cms* +rm -rvf jdk/src/share/native/sun/java2d/cmm/lcms/lcms2* + +%patch201 -p1 +%patch202 -p1 +%patch203 -p1 +%patch204 -p1 +%patch205 -p1 + +%ifarch %{aarch64} +%patch0 -p1 +%endif +%patch2 -p1 +%patch3 -p1 +%patch4 -p1 +%patch5 -p1 +%patch6 -p1 +%patch7 -p1 +%patch8 -p1 +%patch9 -p1 +%patch10 -p1 +%patch11 -p1 +%patch12 -p1 +%patch13 -p1 + +%patch99 -p1 + +# s390 build fixes +%ifarch s390 +%patch100 -p1 +%patch101 -p1 +%endif + +%ifarch ppc ppc64 ppc64le +# PPC fixes +%patch103 -p1 +%endif + +# Extract systemtap tapsets +%if %{with_systemtap} + +tar xzf %{SOURCE10} + +for file in tapset/*.in; do + + OUTPUT_FILE=`echo $file | sed -e s:\.in$::g` + sed -e s:@ABS_SERVER_LIBJVM_SO@:%{_jvmdir}/%{jredir}/lib/%{archinstall}/server/libjvm.so:g $file > $file.1 +# TODO find out which architectures other than ix86 have a client vm +%ifarch %ix86 + sed -e s:@ABS_CLIENT_LIBJVM_SO@:%{_jvmdir}/%{jredir}/lib/%{archinstall}/client/libjvm.so:g $file.1 > $OUTPUT_FILE +%else + sed -e '/@ABS_CLIENT_LIBJVM_SO@/d' $file.1 > $OUTPUT_FILE +%endif + sed -i -e s:@ABS_JAVA_HOME_DIR@:%{_jvmdir}/%{sdkdir}:g $OUTPUT_FILE + sed -i -e s:@INSTALL_ARCH_DIR@:%{archinstall}:g $OUTPUT_FILE + +done + +%endif + +# Prepare desktop files +for file in %{SOURCE11} %{SOURCE12} ; do + OUTPUT_FILE=`basename $file | sed -e s:\.in$::g` + sed -e s:@JAVA_HOME@:%{_jvmdir}/%{sdkdir}:g $file > $OUTPUT_FILE + sed -i -e s:@VERSION@:%{javaver}.%{_arch}:g $OUTPUT_FILE +done + +%build +# How many cpu's do we have? +export NUM_PROC=`%{_bindir}/getconf _NPROCESSORS_ONLN 2> /dev/null || :` +export NUM_PROC=${NUM_PROC:-1} + +# handle zlib packages without pkg-config file +%if 0%{?suse_version} <= 1130 +export ZLIB_CFLAGS=" " +export ZLIB_LIBS="-L/%{_lib} -lz" +%endif + +# Build IcedTea and OpenJDK. +%ifarch s390x sparc64 alpha ppc64 ppc64le %{aarch64} +export ARCH_DATA_MODEL=64 +%endif +%ifarch alpha +export CFLAGS="$CFLAGS -mieee" +%endif + +(cd common/autoconf + bash ./autogen.sh +) + +mkdir -p %{buildoutputdir} + +pushd %{buildoutputdir} + +bash ../configure \ +%ifnarch %{jit_arches} + --with-jvm-variants=zero \ +%endif + --disable-zip-debug-info \ + --with-milestone="fcs" \ + --with-update-version=%{updatever} \ + --with-build-number=%{buildver} \ + --with-debug-level=%{debugbuild} \ + --enable-unlimited-crypto \ + --with-zlib=system \ + --with-libjpeg=system \ + --with-giflib=system \ + --with-libpng=system \ + --with-lcms=system \ + --with-stdc++lib=dynamic \ +%ifnarch %{arm} + --with-num-cores="$NUM_PROC" \ +%endif +%ifarch ppc64le + --with-jvm-interpreter=cpp \ +%endif + --with-extra-cflags="-fno-devirtualize" \ + --with-extra-cxxflags="-fno-devirtualize" + +# The combination of FULL_DEBUG_SYMBOLS=0 and ALT_OBJCOPY=/does_not_exist +# disables FDS for all build configs and reverts to pre-FDS make logic. +# STRIP_POLICY=none says don't do any stripping. DEBUG_BINARIES=true says +# ignore all the other logic about which debug options and just do '-g'. + +make \ + DEBUG_BINARIES=true \ + FULL_DEBUG_SYMBOLS=0 \ + ZIP_DEBUGINFO_FILES=0 \ + STRIP_POLICY=none \ + POST_STRIP_CMD=true \ + ALT_OBJCOPY=/does_not_exist \ + LOG=debug \ + %{imagestarget} docs + +# remove redundant *diz and *debuginfo files +find %{imagesdir}/j2sdk-image -iname '*.diz' -exec rm {} \; +find %{imagesdir}/j2sdk-image -iname '*.debuginfo' -exec rm {} \; + +popd >& /dev/null + +export JAVA_HOME=$(pwd)/%{buildoutputdir}/%{imagesdir}/j2sdk-image + +# cacerts are generated in runtime in openSUSE +if [ -f %{buildoutputdir}/%{imagesdir}/j2sdk-image/jre/lib/security/cacerts ]; then + rm %{buildoutputdir}/%{imagesdir}/j2sdk-image/jre/lib/security/cacerts +fi +%if 0%{?suse_version} < 1130 +# ========== a default keystore ========== +# a cacerts generation - 11.3+ use java-ca-certificates package +for PEM in %{_sysconfdir}/ssl/certs/*.pem; do + ALIAS=$(basename ${PEM} .pem) + awk '/-----BEGIN CERTIFICATE-----/,/-----END CERTIFICATE-----/{ print $0; }' ${PEM} > ${ALIAS}.pem + + yes | $JAVA_HOME/jre/bin/keytool -import -alias ${ALIAS} -keystore %{buildoutputdir}/%{imagesdir}/j2sdk-image/jre/lib/security/cacerts -storepass 'changeit' -file ${ALIAS}.pem || : + rm ${ALIAS}.pem +done +%endif + +%if %{with_pulseaudio} +# Build the pulseaudio plugin +pushd icedtea-sound +./autogen.sh +%configure \ + --with-jdk-home=$JAVA_HOME \ + --disable-docs +make %{?_smp_mflags} +cp pulse-java.jar $JAVA_HOME/jre/lib/ext/ +cp pulseaudio.build/native/libpulse-java.so $JAVA_HOME/jre/lib/%{archinstall}/ +echo "#Config file to enable PulseAudio support" > $JAVA_HOME/jre/lib/pulseaudio.properties +echo "" >> $JAVA_HOME/jre/lib/pulseaudio.properties +echo "javax.sound.sampled.Clip=org.classpath.icedtea.pulseaudio.PulseAudioMixerProvider" >> $JAVA_HOME/jre/lib/pulseaudio.properties +echo "javax.sound.sampled.Port=org.classpath.icedtea.pulseaudio.PulseAudioMixerProvider" >> $JAVA_HOME/jre/lib/pulseaudio.properties +echo "javax.sound.sampled.SourceDataLine=org.classpath.icedtea.pulseaudio.PulseAudioMixerProvider" >> $JAVA_HOME/jre/lib/pulseaudio.properties +echo "javax.sound.sampled.TargetDataLine=org.classpath.icedtea.pulseaudio.PulseAudioMixerProvider" >> $JAVA_HOME/jre/lib/pulseaudio.properties +echo "" >> $JAVA_HOME/jre/lib/pulseaudio.properties +popd +%endif + +# Check unlimited policy has been used +$JAVA_HOME/bin/javac -d . %{SOURCE14} +$JAVA_HOME/bin/java TestCryptoLevel + +# Check debug symbols are present and can identify code +SERVER_JVM="$JAVA_HOME/jre/lib/%{archinstall}/server/libjvm.so" +if [ -f "$SERVER_JVM" ] ; then + nm -aCl "$SERVER_JVM" | grep javaCalls.cpp +fi +CLIENT_JVM="$JAVA_HOME/jre/lib/%{archinstall}/client/libjvm.so" +if [ -f "$CLIENT_JVM" ] ; then + nm -aCl "$CLIENT_JVM" | grep javaCalls.cpp +fi +ZERO_JVM="$JAVA_HOME/jre/lib/%{archinstall}/zero/libjvm.so" +if [ -f "$ZERO_JVM" ] ; then + nm -aCl "$ZERO_JVM" | grep javaCalls.cpp +fi + +%install +STRIP_KEEP_SYMTAB=libjvm* + +%if %{with_systemtap} + # Install systemtap support files. + install -dm 755 %{buildroot}%{_jvmdir}/%{sdkdir}/tapset + cp -a tapset/*.stp %{buildroot}%{_jvmdir}/%{sdkdir}/tapset/ + install -d -m 755 %{buildroot}%{tapsetdir} + pushd %{buildroot}%{tapsetdir} + RELATIVE=$(%{abs2rel} %{_jvmdir}/%{sdkdir}/tapset %{tapsetdir}) + ln -sf $RELATIVE/*.stp . + popd +%endif + +pushd %{buildoutputdir}/%{imagesdir}/j2sdk-image + + # Install main files. + install -d -m 755 %{buildroot}%{_jvmdir}/%{sdkdir} + cp -a bin include lib src.zip %{buildroot}%{_jvmdir}/%{sdkdir} + install -d -m 755 %{buildroot}%{_jvmdir}/%{jredir} + cp -a jre/bin jre/lib %{buildroot}%{_jvmdir}/%{jredir} + + # Install extension symlinks. + install -d -m 755 %{buildroot}%{jvmjardir} + pushd %{buildroot}%{jvmjardir} + RELATIVE=$(%{abs2rel} %{_jvmdir}/%{jredir}/lib %{jvmjardir}) + ln -sf $RELATIVE/jsse.jar jsse-%{version}.jar + ln -sf $RELATIVE/jce.jar jce-%{version}.jar + ln -sf $RELATIVE/rt.jar jndi-%{version}.jar + ln -sf $RELATIVE/rt.jar jndi-ldap-%{version}.jar + ln -sf $RELATIVE/rt.jar jndi-cos-%{version}.jar + ln -sf $RELATIVE/rt.jar jndi-rmi-%{version}.jar + ln -sf $RELATIVE/rt.jar jaas-%{version}.jar + ln -sf $RELATIVE/rt.jar jdbc-stdext-%{version}.jar + ln -sf jdbc-stdext-%{version}.jar jdbc-stdext-3.0.jar + ln -sf $RELATIVE/rt.jar sasl-%{version}.jar + for jar in *-%{version}.jar + do + if [ x%{version} != x%{javaver} ] + then + ln -sf $jar $(echo $jar | sed "s|-%{version}.jar|-%{javaver}.jar|g") + fi + ln -sf $jar $(echo $jar | sed "s|-%{version}.jar|.jar|g") + done + popd + + # Install JCE policy symlinks. + install -d -m 755 %{buildroot}%{_jvmprivdir}/%{archname}/jce/vanilla + + # Install versionless symlinks. + pushd %{buildroot}%{_jvmdir} + ln -sf %{jredir} %{jrelnk} + ln -sf %{sdkdir} %{sdklnk} + popd + + pushd %{buildroot}%{_jvmjardir} + ln -sf %{sdkdir} %{jrelnk} + ln -sf %{sdkdir} %{sdklnk} + popd + + # Remove javaws man page + rm -f man/man1/javaws* + + # Install man pages. + install -d -m 755 %{buildroot}%{_mandir}/man1 + for manpage in man/man1/* + do + # Convert man pages to UTF8 encoding. + iconv -f ISO_8859-1 -t UTF8 $manpage -o $manpage.tmp + mv -f $manpage.tmp $manpage + install -m 644 -p $manpage %{buildroot}%{_mandir}/man1/$(basename \ + $manpage .1)-%{sdklnk}.1 + done + + # Install demos and samples. + cp -a demo %{buildroot}%{_jvmdir}/%{sdkdir} + # enable short-circuit + mkdir -p sample/rmi + [ -f bin/java-rmi.cgi ] && mv bin/java-rmi.cgi sample/rmi + cp -a sample %{buildroot}%{_jvmdir}/%{sdkdir} + +popd + +# Install nss.cfg +install -m 644 %{SOURCE13} %{buildroot}%{_jvmdir}/%{jredir}/lib/security/ + +# Install Javadoc documentation. +install -d -m 755 %{buildroot}%{_javadocdir} +cp -a %{buildoutputdir}/docs %{buildroot}%{_javadocdir}/%{sdklnk} + +# Install icons and menu entries. +for s in 16 24 32 48 ; do + install -D -p -m 644 \ + jdk/src/solaris/classes/sun/awt/X11/java-icon${s}.png \ + %{buildroot}%{_datadir}/icons/hicolor/${s}x${s}/apps/java-%{javaver}.png +done + +# Install desktop files. +install -d -m 0755 %{buildroot}%{_datadir}/{applications,pixmaps} +install -d -m 0755 %{buildroot}/%{_jvmdir}/%{jredir}/lib/desktop/ +for d in jconsole policytool; do + install -m 0644 $d.desktop %{buildroot}/%{_jvmdir}/%{jredir}/lib/desktop/ + %suse_update_desktop_file %{buildroot}/%{_jvmdir}/%{jredir}/lib/desktop/$d.desktop +done + +# Find JRE directories. +find %{buildroot}%{_jvmdir}/%{jredir} -type d \ + | grep -v jre/lib/security \ + | sed 's|'%{buildroot}'|%dir |' \ + > %{name}.files.headless +# Find JRE files. +find %{buildroot}%{_jvmdir}/%{jredir} -type f -o -type l \ + | grep -v jre/lib/security \ + | sed 's|'%{buildroot}'||' \ + >> %{name}.files.all +#split %{name}.files to %{name}.files-headless and %{name}.files +#see https://bugzilla.redhat.com/show_bug.cgi?id=875408 +NOT_HEADLESS=\ +"%{_jvmdir}/%{jredir}/lib/%{archinstall}/libjsoundalsa.so +%{_jvmdir}/%{jredir}/lib/%{archinstall}/libpulse-java.so +%{_jvmdir}/%{jredir}/lib/%{archinstall}/libsplashscreen.so +%{_jvmdir}/%{jredir}/lib/%{archinstall}/libawt_xawt.so +%{_jvmdir}/%{jredir}/lib/%{archinstall}/libjawt.so" +#filter %{name}.files from %{name}.files.all to %{name}.files-headless +ALL=`cat %{name}.files.all` +for file in $ALL ; do + INLCUDE="NO" ; + for blacklist in $NOT_HEADLESS ; do + # we can not match normally, because rpmbuild will evaluate !0 result as script failure + q=`expr match "$file" "$blacklist"` || : + l=`expr length "$blacklist"` || : + if [ $q -eq $l ]; then + INLCUDE="YES" ; + fi; +done +if [ "x$INLCUDE" = "xNO" ]; then + echo "$file" >> %{name}.files-headless +else + echo "$file" >> %{name}.files +fi +done +# Find demo directories. +find %{buildroot}%{_jvmdir}/%{sdkdir}/demo \ + %{buildroot}%{_jvmdir}/%{sdkdir}/sample -type d \ + | sed 's|'%{buildroot}'|%dir |' \ + > %{name}-demo.files + +# FIXME: remove SONAME entries from demo DSOs. See +# https://bugzilla.redhat.com/show_bug.cgi?id=436497 + +# Find non-documentation demo files. +find %{buildroot}%{_jvmdir}/%{sdkdir}/demo \ + %{buildroot}%{_jvmdir}/%{sdkdir}/sample \ + -type f -o -type l | sort \ + | grep -v README \ + | sed 's|'%{buildroot}'||' \ + >> %{name}-demo.files +# Find documentation demo files. +find %{buildroot}%{_jvmdir}/%{sdkdir}/demo \ + %{buildroot}%{_jvmdir}/%{sdkdir}/sample \ + -type f -o -type l | sort \ + | grep README \ + | sed 's|'%{buildroot}'||' \ + | sed 's|^|%doc |' \ + >> %{name}-demo.files + +# Create links which leads to separately installed java-atk-bridge and allow configuration +# links points to java-atk-wrapper - an dependence +# mvyskocil: links are handled in post, lets make ghost files there + touch %{buildroot}/%{_jvmdir}/%{jredir}/lib/%{archinstall}/libatk-wrapper.so + touch %{buildroot}/%{_jvmdir}/%{jredir}/lib/ext/java-atk-wrapper.jar + pushd %{buildroot}/%{_jvmdir}/%{jredir}/lib/ + echo "#Config file to enable java-atk-wrapper" > accessibility.properties + echo "" >> accessibility.properties + echo "assistive_technologies=org.GNOME.Accessibility.AtkWrapper" >> accessibility.properties + echo "" >> accessibility.properties + popd + +# fdupes links the files from JDK to JRE, so it breaks a JRE +# use it carefully :)) +%fdupes -s %{buildroot}/%{_jvmdir}/%{jredir}/ +%fdupes -s %{buildroot}/%{_jvmdir}/%{sdkdir}/demo +%fdupes -s %{buildroot}%{_javadocdir}/%{sdklnk} + +%if 0%{?suse_version} <= 1130 +# bnc496378 - check the size of installed cacerts +# 32 bytes means a default empty one +if [[ $(stat -c "%{s}" %{buildroot}/%{cacerts}) == "32" ]]; then + echo "ERROR: Default keystore seems empty" + exit 1 +fi +%endif + +%post headless +ext=.gz +update-alternatives \ + --install %{_bindir}/java java %{jrebindir}/java %{priority} \ + --slave %{_jvmdir}/jre jre %{_jvmdir}/%{jrelnk} \ + --slave %{_jvmjardir}/jre jre_exports %{_jvmjardir}/%{jrelnk} \ + --slave %{_bindir}/keytool keytool %{jrebindir}/keytool \ + --slave %{_bindir}/orbd orbd %{jrebindir}/orbd \ + --slave %{_bindir}/policytool policytool %{jrebindir}/policytool \ + --slave %{_bindir}/rmid rmid %{jrebindir}/rmid \ + --slave %{_bindir}/rmiregistry rmiregistry %{jrebindir}/rmiregistry \ + --slave %{_bindir}/servertool servertool %{jrebindir}/servertool \ + --slave %{_bindir}/tnameserv tnameserv %{jrebindir}/tnameserv \ + --slave %{_mandir}/man1/java.1$ext java.1$ext \ + %{_mandir}/man1/java-%{sdklnk}.1$ext \ + --slave %{_mandir}/man1/keytool.1$ext keytool.1$ext \ + %{_mandir}/man1/keytool-%{sdklnk}.1$ext \ + --slave %{_mandir}/man1/orbd.1$ext orbd.1$ext \ + %{_mandir}/man1/orbd-%{sdklnk}.1$ext \ + --slave %{_mandir}/man1/policytool.1$ext policytool.1$ext \ + %{_mandir}/man1/policytool-%{sdklnk}.1$ext \ + --slave %{_mandir}/man1/rmid.1$ext rmid.1$ext \ + %{_mandir}/man1/rmid-%{sdklnk}.1$ext \ + --slave %{_mandir}/man1/rmiregistry.1$ext rmiregistry.1$ext \ + %{_mandir}/man1/rmiregistry-%{sdklnk}.1$ext \ + --slave %{_mandir}/man1/servertool.1$ext servertool.1$ext \ + %{_mandir}/man1/servertool-%{sdklnk}.1$ext \ + --slave %{_mandir}/man1/tnameserv.1$ext tnameserv.1$ext \ + %{_mandir}/man1/tnameserv-%{sdklnk}.1$ext \ + --slave %{_datadir}/applications/policytool.desktop policytool.desktop \ + %{_jvmdir}/%{jredir}/lib/desktop/policytool.desktop + +update-alternatives \ + --install %{_jvmdir}/jre-openjdk \ + jre_openjdk %{_jvmdir}/%{jrelnk} %{priority} \ + --slave %{_jvmjardir}/jre-openjdk \ + jre_openjdk_exports %{_jvmjardir}/%{jrelnk} +update-alternatives \ + --install %{_jvmdir}/jre-%{javaver} \ + jre_%{javaver} %{_jvmdir}/%{jrelnk} %{priority} \ + --slave %{_jvmjardir}/jre-%{javaver} \ + jre_%{javaver}_exports %{_jvmjardir}/%{jrelnk} + +%postun headless +if [ $1 -eq 0 ] +then + if test -f /proc/sys/fs/binfmt_misc/jarexec + then + echo '-1' > /proc/sys/fs/binfmt_misc/jarexec + fi + update-alternatives --remove java %{jrebindir}/java + update-alternatives --remove jre_openjdk %{_jvmdir}/%{jrelnk} + update-alternatives --remove jre_%{javaver} %{_jvmdir}/%{jrelnk} +fi + +%if 0%{?suse_version} >= 1130 + +%posttrans headless +# bnc#781690#c11: don't trust user defined JAVA_HOME and use the current VM +# XXX: this might conflict between various versions of openjdk +export JAVA_HOME=%{_jvmdir}/%{jrelnk} + +# check if the java-cacerts is a valid keystore (bnc#781690) +if [ X"`%{_bindir}/file --mime-type -b %{javacacerts}`" \ + != "Xapplication/x-java-keystore;" ]; then +%if 0%{?suse_version} <= 1310 + # workaround for bnc#847952 - pre 13.1 keyring.jar attempts to load invalid keystore and fail on it + rm -f "%{javacacerts}" +%endif + %{_sbindir}/update-ca-certificates +fi + +# remove the default empty cacert file, if it's installed +if [ 0`stat -c "%{s}" %{cacerts} 2>/dev/null` = "032" ] ; then + rm -f %{cacerts} +fi + +# if cacerts does exists, neither does not contain/point to a +# valid keystore (bnc#781690) ... +if [ X"`%{_bindir}/file --mime-type -b -L %{cacerts}`" \ + != "Xapplication/x-java-keystore;" ]; then + # bnc#727223 + rm -f %{cacerts} + ln -s %{javacacerts} %{cacerts} +fi +%endif + +%post devel +ext=.gz +update-alternatives \ + --install %{_bindir}/javac javac %{sdkbindir}/javac %{priority} \ + --slave %{_jvmdir}/java java_sdk %{_jvmdir}/%{sdklnk} \ + --slave %{_jvmjardir}/java java_sdk_exports %{jvmjarlink} \ + --slave %{_bindir}/appletviewer appletviewer %{sdkbindir}/appletviewer \ + --slave %{_bindir}/extcheck extcheck %{sdkbindir}/extcheck \ + --slave %{_bindir}/jar jar %{sdkbindir}/jar \ + --slave %{_bindir}/jarsigner jarsigner %{sdkbindir}/jarsigner \ + --slave %{_bindir}/javadoc javadoc %{sdkbindir}/javadoc \ + --slave %{_bindir}/javah javah %{sdkbindir}/javah \ + --slave %{_bindir}/javap javap %{sdkbindir}/javap \ + --slave %{_bindir}/jconsole jconsole %{sdkbindir}/jconsole \ + --slave %{_bindir}/pack200 pack200 %{sdkbindir}/pack200 \ + --slave %{_bindir}/unpack200 unpack200 %{sdkbindir}/unpack200 \ + --slave %{_bindir}/jdb jdb %{sdkbindir}/jdb \ + --slave %{_bindir}/jhat jhat %{sdkbindir}/jhat \ + --slave %{_bindir}/jinfo jinfo %{sdkbindir}/jinfo \ + --slave %{_bindir}/jmap jmap %{sdkbindir}/jmap \ + --slave %{_bindir}/jps jps %{sdkbindir}/jps \ + --slave %{_bindir}/jrunscript jrunscript %{sdkbindir}/jrunscript \ + --slave %{_bindir}/jsadebugd jsadebugd %{sdkbindir}/jsadebugd \ + --slave %{_bindir}/jstack jstack %{sdkbindir}/jstack \ + --slave %{_bindir}/jstat jstat %{sdkbindir}/jstat \ + --slave %{_bindir}/jstatd jstatd %{sdkbindir}/jstatd \ + --slave %{_bindir}/native2ascii native2ascii %{sdkbindir}/native2ascii \ + --slave %{_bindir}/rmic rmic %{sdkbindir}/rmic \ + --slave %{_bindir}/schemagen schemagen %{sdkbindir}/schemagen \ + --slave %{_bindir}/serialver serialver %{sdkbindir}/serialver \ + --slave %{_bindir}/wsgen wsgen %{sdkbindir}/wsgen \ + --slave %{_bindir}/wsimport wsimport %{sdkbindir}/wsimport \ + --slave %{_bindir}/xjc xjc %{sdkbindir}/xjc \ + --slave %{_mandir}/man1/appletviewer.1$ext appletviewer.1$ext \ + %{_mandir}/man1/appletviewer-%{sdklnk}.1$ext \ + --slave %{_mandir}/man1/extcheck.1$ext extcheck.1$ext \ + %{_mandir}/man1/extcheck-%{sdklnk}.1$ext \ + --slave %{_mandir}/man1/jar.1$ext jar.1$ext \ + %{_mandir}/man1/jar-%{sdklnk}.1$ext \ + --slave %{_mandir}/man1/jarsigner.1$ext jarsigner.1$ext \ + %{_mandir}/man1/jarsigner-%{sdklnk}.1$ext \ + --slave %{_mandir}/man1/javac.1$ext javac.1$ext \ + %{_mandir}/man1/javac-%{sdklnk}.1$ext \ + --slave %{_mandir}/man1/javadoc.1$ext javadoc.1$ext \ + %{_mandir}/man1/javadoc-%{sdklnk}.1$ext \ + --slave %{_mandir}/man1/javah.1$ext javah.1$ext \ + %{_mandir}/man1/javah-%{sdklnk}.1$ext \ + --slave %{_mandir}/man1/javap.1$ext javap.1$ext \ + %{_mandir}/man1/javap-%{sdklnk}.1$ext \ + --slave %{_mandir}/man1/jconsole.1$ext jconsole.1$ext \ + %{_mandir}/man1/jconsole-%{sdklnk}.1$ext \ + --slave %{_mandir}/man1/jcmd.1$ext jcmd.1$ext \ + %{_mandir}/man1/jcmd-%{sdklnk}.1$ext \ + --slave %{_mandir}/man1/jdb.1$ext jdb.1$ext \ + %{_mandir}/man1/jdb-%{sdklnk}.1$ext \ + --slave %{_mandir}/man1/pack200.1$ext pack200.1$ext \ + %{_mandir}/man1/pack200-%{sdklnk}.1$ext \ + --slave %{_mandir}/man1/unpack200.1$ext unpack200.1$ext \ + %{_mandir}/man1/unpack200-%{sdklnk}.1$ext \ + --slave %{_mandir}/man1/jhat.1$ext jhat.1$ext \ + %{_mandir}/man1/jhat-%{sdklnk}.1$ext \ + --slave %{_mandir}/man1/jinfo.1$ext jinfo.1$ext \ + %{_mandir}/man1/jinfo-%{sdklnk}.1$ext \ + --slave %{_mandir}/man1/jmap.1$ext jmap.1$ext \ + %{_mandir}/man1/jmap-%{sdklnk}.1$ext \ + --slave %{_mandir}/man1/jps.1$ext jps.1$ext \ + %{_mandir}/man1/jps-%{sdklnk}.1$ext \ + --slave %{_mandir}/man1/jrunscript.1$ext jrunscript.1$ext \ + %{_mandir}/man1/jrunscript-%{sdklnk}.1$ext \ + --slave %{_mandir}/man1/jsadebugd.1$ext jsadebugd.1$ext \ + %{_mandir}/man1/jsadebugd-%{sdklnk}.1$ext \ + --slave %{_mandir}/man1/jstack.1$ext jstack.1$ext \ + %{_mandir}/man1/jstack-%{sdklnk}.1$ext \ + --slave %{_mandir}/man1/jstat.1$ext jstat.1$ext \ + %{_mandir}/man1/jstat-%{sdklnk}.1$ext \ + --slave %{_mandir}/man1/jstatd.1$ext jstatd.1$ext \ + %{_mandir}/man1/jstatd-%{sdklnk}.1$ext \ + --slave %{_mandir}/man1/native2ascii.1$ext native2ascii.1$ext \ + %{_mandir}/man1/native2ascii-%{sdklnk}.1$ext \ + --slave %{_mandir}/man1/rmic.1$ext rmic.1$ext \ + %{_mandir}/man1/rmic-%{sdklnk}.1$ext \ + --slave %{_mandir}/man1/schemagen.1$ext schemagen.1$ext \ + %{_mandir}/man1/schemagen-%{sdklnk}.1$ext \ + --slave %{_mandir}/man1/serialver.1$ext serialver.1$ext \ + %{_mandir}/man1/serialver-%{sdklnk}.1$ext \ + --slave %{_mandir}/man1/wsgen.1$ext wsgen.1$ext \ + %{_mandir}/man1/wsgen-%{sdklnk}.1$ext \ + --slave %{_mandir}/man1/wsimport.1$ext wsimport.1$ext \ + %{_mandir}/man1/wsimport-%{sdklnk}.1$ext \ + --slave %{_mandir}/man1/xjc.1$ext xjc.1$ext \ + %{_mandir}/man1/xjc-%{sdklnk}.1$ext \ + --slave %{_datadir}/applications/jconsole.desktop jconsole.desktop \ + %{_jvmdir}/%{jredir}/lib/desktop/jconsole.desktop + +update-alternatives \ + --install %{_jvmdir}/java-openjdk \ + java_sdk_openjdk %{_jvmdir}/%{sdklnk} %{priority} \ + --slave %{_jvmjardir}/java-openjdk \ + java_sdk_openjdk_exports %{jvmjarlink} +update-alternatives \ + --install %{_jvmdir}/java-%{javaver} \ + java_sdk_%{javaver} %{_jvmdir}/%{sdklnk} %{priority} \ + --slave %{_jvmjardir}/java-%{javaver} \ + java_sdk_%{javaver}_exports %{jvmjarlink} + +%postun devel +if [ $1 -eq 0 ] +then + update-alternatives --remove javac %{sdkbindir}/javac + update-alternatives --remove java_sdk_openjdk %{_jvmdir}/%{sdklnk} + update-alternatives --remove java_sdk_%{javaver} %{_jvmdir}/%{sdklnk} +fi + +%post javadoc +update-alternatives \ + --install %{_javadocdir}/java javadocdir %{_javadocdir}/%{sdklnk}/api \ + %{priority} + +%postun javadoc +if [ $1 -eq 0 ] +then + update-alternatives --remove javadocdir %{_javadocdir}/%{sdklnk}/api +fi + +%post accessibility +# create links to java-atk-wrapper +if [ ! -e %{_jvmdir}/%{jredir}/lib/%{archinstall}/libatk-wrapper.so ]; then + ln -sf %{_libdir}/java-atk-wrapper/libatk-wrapper.so.0 %{_jvmdir}/%{jredir}/lib/%{archinstall}/libatk-wrapper.so +fi +if [ ! -e %{_jvmdir}/%{jredir}/lib/ext/java-atk-wrapper.jar ]; then + ln -sf %{_libdir}/java-atk-wrapper/java-atk-wrapper.jar %{_jvmdir}/%{jredir}/lib/ext/java-atk-wrapper.jar +fi + +%files -f %{name}.files +%defattr(-,root,root) +%dir %{_jvmdir}/%{jredir}/lib/%{archinstall} +%dir %{_datadir}/icons/hicolor +%{_datadir}/icons/hicolor/*x*/apps/java-%{javaver}.png + +%files headless -f %{name}.files-headless +%defattr(-,root,root,-) +%dir %{_jvmdir} +%dir %{_jvmdir}/%{jredir}/ +%dir %{_jvmdir}/%{jredir}/bin +%dir %{_jvmdir}/%{jredir}/lib +%dir %{_jvmdir}/%{jredir}/lib/%{archinstall} +%dir %{_jvmdir}/%{jredir}/lib/%{archinstall}/jli +%dir %{_jvmdir}/%{jredir}/lib/%{archinstall}/server +%dir %{_jvmdir}/%{jredir}/lib/cmm +%dir %{_jvmdir}/%{jredir}/lib/desktop +%dir %{_jvmdir}/%{jredir}/lib/ext +%dir %{_jvmdir}/%{jredir}/lib/images +%dir %{_jvmdir}/%{jredir}/lib/images/cursors +%dir %{_jvmdir}/%{jredir}/lib/management +%dir %{_jvmdir}/%{jredir}/lib/security +%dir %{_libdir}/jvm-exports +%dir %{_libdir}/jvm-private + +%doc %{buildoutputdir}/%{imagesdir}/j2sdk-image/jre/ASSEMBLY_EXCEPTION +%doc %{buildoutputdir}/%{imagesdir}/j2sdk-image/jre/LICENSE +%doc %{buildoutputdir}/%{imagesdir}/j2sdk-image/jre/THIRD_PARTY_README + +%dir %{_jvmdir}/%{sdkdir} +%{_jvmdir}/%{jrelnk} +%{_jvmjardir}/%{jrelnk} +%{_jvmprivdir}/* +%{jvmjardir} +%if 0%{?suse_version} <= 1130 +%config(noreplace) %{cacerts} +%endif +%config(noreplace) %{_jvmdir}/%{jredir}/lib/security/java.policy +%config(noreplace) %{_jvmdir}/%{jredir}/lib/security/java.security +%config(noreplace) %{_jvmdir}/%{jredir}/lib/security/blacklisted.certs +%{_mandir}/man1/java-%{sdklnk}.1* +%{_mandir}/man1/jjs-%{sdklnk}.1* +%{_mandir}/man1/keytool-%{sdklnk}.1* +%{_mandir}/man1/orbd-%{sdklnk}.1* +%{_mandir}/man1/pack200-%{sdklnk}.1* +%{_mandir}/man1/rmid-%{sdklnk}.1* +%{_mandir}/man1/rmiregistry-%{sdklnk}.1* +%{_mandir}/man1/servertool-%{sdklnk}.1* +%{_mandir}/man1/tnameserv-%{sdklnk}.1* +%{_mandir}/man1/unpack200-%{sdklnk}.1* +%{_jvmdir}/%{jredir}/lib/security/nss.cfg +%{_jvmdir}/%{jredir}/lib/security/US_export_policy.jar +%{_jvmdir}/%{jredir}/lib/security/local_policy.jar + +%files devel +%defattr(-,root,root,-) +%dir %{_jvmdir}/%{sdkdir}/bin +%dir %{_jvmdir}/%{sdkdir}/include +%dir %{_jvmdir}/%{sdkdir}/lib +%if %{with_systemtap} +%dir %{_jvmdir}/%{sdkdir}/tapset +%endif +%{_jvmdir}/%{sdkdir}/bin/* +%{_jvmdir}/%{sdkdir}/include/* +%{_jvmdir}/%{sdkdir}/lib/* +%if %{with_systemtap} +%{_jvmdir}/%{sdkdir}/tapset/*.stp +%endif +%{_jvmdir}/%{sdklnk} +%{_jvmjardir}/%{sdklnk} +%{_mandir}/man1/appletviewer-%{sdklnk}.1* +%{_mandir}/man1/extcheck-%{sdklnk}.1* +%{_mandir}/man1/idlj-%{sdklnk}.1* +%{_mandir}/man1/jar-%{sdklnk}.1* +%{_mandir}/man1/jarsigner-%{sdklnk}.1* +%{_mandir}/man1/javac-%{sdklnk}.1* +%{_mandir}/man1/javadoc-%{sdklnk}.1* +%{_mandir}/man1/javah-%{sdklnk}.1* +%{_mandir}/man1/javap-%{sdklnk}.1* +%{_mandir}/man1/jconsole-%{sdklnk}.1* +%{_mandir}/man1/jcmd-%{sdklnk}.1* +%{_mandir}/man1/jdb-%{sdklnk}.1* +%{_mandir}/man1/jdeps-%{sdklnk}.1* +%{_mandir}/man1/jhat-%{sdklnk}.1* +%{_mandir}/man1/jinfo-%{sdklnk}.1* +%{_mandir}/man1/jmap-%{sdklnk}.1* +%{_mandir}/man1/jps-%{sdklnk}.1* +%{_mandir}/man1/jrunscript-%{sdklnk}.1* +%{_mandir}/man1/jsadebugd-%{sdklnk}.1* +%{_mandir}/man1/jstack-%{sdklnk}.1* +%{_mandir}/man1/jstat-%{sdklnk}.1* +%{_mandir}/man1/jstatd-%{sdklnk}.1* +%{_mandir}/man1/native2ascii-%{sdklnk}.1* +%{_mandir}/man1/policytool-%{sdklnk}.1* +%{_mandir}/man1/rmic-%{sdklnk}.1* +%{_mandir}/man1/schemagen-%{sdklnk}.1* +%{_mandir}/man1/serialver-%{sdklnk}.1* +%{_mandir}/man1/wsgen-%{sdklnk}.1* +%{_mandir}/man1/wsimport-%{sdklnk}.1* +%{_mandir}/man1/xjc-%{sdklnk}.1* +%if %{with_systemtap} +%{tapsetroot} +%endif + +%files demo -f %{name}-demo.files +%defattr(-,root,root,-) + +%files src +%defattr(-,root,root,-) +%{_jvmdir}/%{sdkdir}/src.zip + +%files javadoc +%defattr(0644,root,root,0755) +%dir %{_javadocdir} +%dir %{_javadocdir}/%{sdklnk} +%{_javadocdir}/%{sdklnk}/* + +%files accessibility +%defattr(-,root,root) +%dir %{_jvmdir}/%{jredir}/lib/ext +%config(noreplace) %{_jvmdir}/%{jredir}/lib/accessibility.properties +%ghost %{_jvmdir}/%{jredir}/lib/%{archinstall}/libatk-wrapper.so +%ghost %{_jvmdir}/%{jredir}/lib/ext/java-atk-wrapper.jar + +%changelog diff --git a/java-atk-wrapper-security.patch b/java-atk-wrapper-security.patch new file mode 100644 index 0000000..e298396 --- /dev/null +++ b/java-atk-wrapper-security.patch @@ -0,0 +1,24 @@ +--- jdk8/jdk/src/share/lib/security/java.security-linux 2014-07-15 23:08:27.000000000 +0200 ++++ jdk8/jdk/src/share/lib/security/java.security-linux 2014-07-18 09:04:45.127566697 +0200 +@@ -211,7 +211,9 @@ + jdk.internal.,\ + jdk.nashorn.internal.,\ + jdk.nashorn.tools.,\ +- com.sun.activation.registries. ++ com.sun.activation.registries.,\ ++ org.GNOME.Accessibility.,\ ++ org.GNOME.Bonobo. + + # + # List of comma-separated packages that start with or equal this string +@@ -258,7 +260,9 @@ + jdk.internal.,\ + jdk.nashorn.internal.,\ + jdk.nashorn.tools.,\ +- com.sun.activation.registries. ++ com.sun.activation.registries.,\ ++ org.GNOME.Accessibility.,\ ++ org.GNOME.Bonobo. + + # + # Determines whether this properties file can be appended to diff --git a/jconsole.desktop.in b/jconsole.desktop.in new file mode 100644 index 0000000..27e9e0f --- /dev/null +++ b/jconsole.desktop.in @@ -0,0 +1,11 @@ +[Desktop Entry] +Name=OpenJDK 8 Monitoring & Management Console +GenericName=OpenJDK Monitoring & Management Console +Comment=Monitor and manage OpenJDK applications for @VERSION@ +Exec=@JAVA_HOME@/bin/jconsole +Icon=java +Terminal=false +Type=Application +StartupWMClass=sun-tools-jconsole-JConsole +Categories=Development;Profiling; +Version=1.0 diff --git a/link-with-as-needed.patch b/link-with-as-needed.patch new file mode 100644 index 0000000..880336c --- /dev/null +++ b/link-with-as-needed.patch @@ -0,0 +1,38 @@ +--- jdk8/jdk/make/CompileLaunchers.gmk ++++ jdk8/jdk/make/CompileLaunchers.gmk +@@ -427,7 +427,7 @@ + # binary (at least on linux) which causes the size to differ between old and new build. + ifeq ($(USE_EXTERNAL_LIBZ), true) + UNPACKEXE_CFLAGS := -DSYSTEM_ZLIB +- UNPACKEXE_ZIPOBJS := -lz ++ UNPACKEXE_LIBS := -lz + else + UNPACKEXE_CFLAGS := -I$(JDK_TOPDIR)/src/share/native/java/util/zip/zlib-1.2.8 + UNPACKEXE_ZIPOBJS := $(JDK_OUTPUTDIR)/objs/libzip/zcrc32$(OBJ_SUFFIX) \ +@@ -488,9 +488,9 @@ + LDFLAGS_posix := $(LDFLAGS_JDKEXE) $(LDFLAGS_CXX_JDK) \ + $(call SET_SHARED_LIBRARY_NAME,$(LIBRARY_PREFIX)unpack$(SHARED_LIBRARY_SUFFIX)) \ + $(call SET_SHARED_LIBRARY_ORIGIN), \ +- LDFLAGS_linux := -lc, \ ++ LDFLAGS_linux := , \ + LDFLAGS_solaris := $(UNPACKEXE_LDFLAGS_solaris) -lc, \ +- LDFLAGS_SUFFIX := $(LIBCXX), \ ++ LDFLAGS_SUFFIX := $(UNPACKEXE_LIBS) $(LIBCXX), \ + OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/unpackexe$(OUTPUT_SUBDIR), \ + OUTPUT_DIR := $(JDK_OUTPUTDIR)/objs/unpackexe$(OUTPUT_SUBDIR), \ + PROGRAM := unpack200, \ +--- jdk8/jdk/make/lib/Awt2dLibraries.gmk ++++ jdk8/jdk/make/lib/Awt2dLibraries.gmk +@@ -762,10 +762,10 @@ + $(BUILD_LIBJAVAJPEG_CLOSED_INCLUDES) \ + $(BUILD_LIBJAVAJPEG_HEADERS), \ + MAPFILE := $(BUILD_LIBJAVAJPEG_MAPFILE), \ +- LDFLAGS := $(LDFLAGS_JDKLIB) $(LIBJPEG_LIBS) \ ++ LDFLAGS := $(LDFLAGS_JDKLIB) \ + $(call SET_SHARED_LIBRARY_ORIGIN), \ + LDFLAGS_windows := $(WIN_JAVA_LIB) jvm.lib, \ +- LDFLAGS_SUFFIX := $(LDFLAGS_JDKLIB_SUFFIX), \ ++ LDFLAGS_SUFFIX := $(LIBJPEG_LIBS) $(LDFLAGS_JDKLIB_SUFFIX), \ + VERSIONINFO_RESOURCE := $(JDK_TOPDIR)/src/windows/resource/version.rc, \ + RC_FLAGS := $(RC_FLAGS) \ + -D "JDK_FNAME=javajpeg.dll" \ diff --git a/memory-limits.patch b/memory-limits.patch new file mode 100644 index 0000000..6d1fb08 --- /dev/null +++ b/memory-limits.patch @@ -0,0 +1,11 @@ +--- jdk8/hotspot/src/share/vm/runtime/globals.hpp 2014-04-23 22:06:29.000000000 +0100 ++++ jdk8/hotspot/src/share/vm/runtime/globals.hpp 2014-05-12 20:42:01.633428300 +0100 +@@ -3113,7 +3113,7 @@ + product(uintx, InitialHeapSize, 0, \ + "Initial heap size (in bytes); zero means use ergonomics") \ + \ +- product(uintx, MaxHeapSize, ScaleForWordSize(96*M), \ ++ product(uintx, MaxHeapSize, ScaleForWordSize(512*M), \ + "Maximum heap size (in bytes)") \ + \ + product(uintx, OldSize, ScaleForWordSize(4*M), \ diff --git a/multiple-pkcs11-library-init.patch b/multiple-pkcs11-library-init.patch new file mode 100644 index 0000000..15175de --- /dev/null +++ b/multiple-pkcs11-library-init.patch @@ -0,0 +1,74 @@ +# HG changeset patch +# User andrew +# Date 1352129932 0 +# Node ID e9c857dcb964dbfa5eef3a3590244cb4d999cf7a +# Parent 1406789608b76d0906881979335d685855f44190 +Allow multiple PKCS11 library initialisation to be a non-critical error. + +diff -r 1406789608b7 -r e9c857dcb964 src/share/classes/sun/security/pkcs11/Config.java +--- jdk8/jdk/src/share/classes/sun/security/pkcs11/Config.java Tue Oct 30 13:05:14 2012 +0000 ++++ jdk8/jdk/src/share/classes/sun/security/pkcs11/Config.java Mon Nov 05 15:38:52 2012 +0000 +@@ -52,6 +52,7 @@ + static final int ERR_HALT = 1; + static final int ERR_IGNORE_ALL = 2; + static final int ERR_IGNORE_LIB = 3; ++ static final int ERR_IGNORE_MULTI_INIT = 4; + + // same as allowSingleThreadedModules but controlled via a system property + // and applied to all providers. if set to false, no SunPKCS11 instances +@@ -980,6 +981,8 @@ + handleStartupErrors = ERR_IGNORE_LIB; + } else if (val.equals("halt")) { + handleStartupErrors = ERR_HALT; ++ } else if (val.equals("ignoreMultipleInitialisation")) { ++ handleStartupErrors = ERR_IGNORE_MULTI_INIT; + } else { + throw excToken("Invalid value for handleStartupErrors:"); + } +diff -r 1406789608b7 -r e9c857dcb964 src/share/classes/sun/security/pkcs11/SunPKCS11.java +--- jdk8/jdk/src/share/classes/sun/security/pkcs11/SunPKCS11.java Tue Oct 30 13:05:14 2012 +0000 ++++ jdk8/jdk/src/share/classes/sun/security/pkcs11/SunPKCS11.java Mon Nov 05 15:38:52 2012 +0000 +@@ -168,26 +168,37 @@ + String nssLibraryDirectory = config.getNssLibraryDirectory(); + String nssSecmodDirectory = config.getNssSecmodDirectory(); + boolean nssOptimizeSpace = config.getNssOptimizeSpace(); ++ int errorHandling = config.getHandleStartupErrors(); + + if (secmod.isInitialized()) { + if (nssSecmodDirectory != null) { + String s = secmod.getConfigDir(); + if ((s != null) && + (s.equals(nssSecmodDirectory) == false)) { +- throw new ProviderException("Secmod directory " +- + nssSecmodDirectory +- + " invalid, NSS already initialized with " +- + s); ++ String msg = "Secmod directory " + nssSecmodDirectory ++ + " invalid, NSS already initialized with " + s; ++ if (errorHandling == Config.ERR_IGNORE_MULTI_INIT || ++ errorHandling == Config.ERR_IGNORE_ALL) { ++ throw new UnsupportedOperationException(msg); ++ } else { ++ throw new ProviderException(msg); ++ } + } + } + if (nssLibraryDirectory != null) { + String s = secmod.getLibDir(); + if ((s != null) && + (s.equals(nssLibraryDirectory) == false)) { +- throw new ProviderException("NSS library directory " ++ String msg = "NSS library directory " + + nssLibraryDirectory + + " invalid, NSS already initialized with " +- + s); ++ + s; ++ if (errorHandling == Config.ERR_IGNORE_MULTI_INIT || ++ errorHandling == Config.ERR_IGNORE_ALL) { ++ throw new UnsupportedOperationException(msg); ++ } else { ++ throw new ProviderException(msg); ++ } + } + } + } else { diff --git a/nss.cfg b/nss.cfg new file mode 100644 index 0000000..74d461d --- /dev/null +++ b/nss.cfg @@ -0,0 +1,4 @@ +name = NSS +nssLibraryDirectory = +nssDbMode = noDb +attributes = compatibility diff --git a/policytool.desktop.in b/policytool.desktop.in new file mode 100644 index 0000000..aca7f77 --- /dev/null +++ b/policytool.desktop.in @@ -0,0 +1,11 @@ +[Desktop Entry] +Name=OpenJDK 8 Policy Tool +GenericName=OpenJDK Policy Tool +Comment=Manage OpenJDK policy files (@VERSION@) +Exec=@JAVA_HOME@/bin/policytool +Icon=java +Terminal=false +Type=Application +StartupWMClass=sun-security-tools-PolicyTool +Categories=Settings;DesktopSettings;Security; +Version=1.0 diff --git a/ppc-zero-hotspot.patch b/ppc-zero-hotspot.patch new file mode 100644 index 0000000..19d86bb --- /dev/null +++ b/ppc-zero-hotspot.patch @@ -0,0 +1,22 @@ +diff -up jdk8/hotspot/src/os_cpu/linux_zero/vm/globals_linux_zero.hpp.ppc64 jdk8/hotspot/src/os_cpu/linux_zero/vm/globals_linux_zero.hpp +--- jdk8/hotspot/src/os_cpu/linux_zero/vm/globals_linux_zero.hpp.ppc64 2013-02-22 19:02:06.000000000 +0100 ++++ jdk8/hotspot/src/os_cpu/linux_zero/vm/globals_linux_zero.hpp 2013-04-18 16:21:24.897403406 +0200 +@@ -32,11 +32,15 @@ + // + + define_pd_global(bool, DontYieldALot, false); +-define_pd_global(intx, ThreadStackSize, 1536); ++define_pd_global(intx, ThreadStackSize, 1664); + #ifdef _LP64 +-define_pd_global(intx, VMThreadStackSize, 1024); ++#if defined (_LITTLE_ENDIAN) && defined (__powerpc64__) ++define_pd_global(intx, VMThreadStackSize, 1920); + #else +-define_pd_global(intx, VMThreadStackSize, 512); ++define_pd_global(intx, VMThreadStackSize, 1280); ++#endif ++#else ++define_pd_global(intx, VMThreadStackSize, 640); + #endif // _LP64 + define_pd_global(intx, CompilerThreadStackSize, 0); + define_pd_global(uintx, JVMInvokeMethodSlack, 8192); diff --git a/s390-java-opts.patch b/s390-java-opts.patch new file mode 100644 index 0000000..1367c3d --- /dev/null +++ b/s390-java-opts.patch @@ -0,0 +1,17 @@ +--- jdk8/common/autoconf/boot-jdk.m4 2014-06-18 21:34:07.000000000 +0200 ++++ jdk8/common/autoconf/boot-jdk.m4 2014-07-09 22:00:05.272599977 +0200 +@@ -315,12 +315,12 @@ + fi + + # Minimum amount of heap memory. +- ADD_JVM_ARG_IF_OK([-Xms64M],boot_jdk_jvmargs,[$JAVA]) ++ ADD_JVM_ARG_IF_OK([-Xms256M],boot_jdk_jvmargs,[$JAVA]) + if test "x$OPENJDK_TARGET_OS" = "xmacosx" || test "x$OPENJDK_TARGET_CPU" = "xppc64" ; then + # Why does macosx need more heap? Its the huge JDK batch. + ADD_JVM_ARG_IF_OK([-Xmx1600M],boot_jdk_jvmargs,[$JAVA]) + else +- ADD_JVM_ARG_IF_OK([-Xmx1100M],boot_jdk_jvmargs,[$JAVA]) ++ ADD_JVM_ARG_IF_OK([-Xmx768M],boot_jdk_jvmargs,[$JAVA]) + fi + # When is adding -client something that speeds up the JVM? + # ADD_JVM_ARG_IF_OK([-client],boot_jdk_jvmargs,[$JAVA]) diff --git a/s390-size_t.patch b/s390-size_t.patch new file mode 100644 index 0000000..6ae455f --- /dev/null +++ b/s390-size_t.patch @@ -0,0 +1,297 @@ +--- jdk8/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/compactibleFreeListSpace.cpp 2014-07-03 21:56:12.000000000 +0200 ++++ jdk8/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/compactibleFreeListSpace.cpp 2014-07-11 13:41:53.568013676 +0200 +@@ -2686,7 +2686,7 @@ + if (ResizeOldPLAB && CMSOldPLABResizeQuicker) { + size_t multiple = _num_blocks[word_sz]/(CMSOldPLABToleranceFactor*CMSOldPLABNumRefills*n_blks); + n_blks += CMSOldPLABReactivityFactor*multiple*n_blks; +- n_blks = MIN2(n_blks, CMSOldPLABMax); ++ n_blks = MIN2(n_blks, (size_t)CMSOldPLABMax); + } + assert(n_blks > 0, "Error"); + _cfls->par_get_chunk_of_blocks(word_sz, n_blks, fl); +--- jdk8/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.cpp 2014-07-03 21:56:12.000000000 +0200 ++++ jdk8/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.cpp 2014-07-11 13:58:22.740341755 +0200 +@@ -950,7 +950,7 @@ + if (free_percentage < desired_free_percentage) { + size_t desired_capacity = (size_t)(used() / ((double) 1 - desired_free_percentage)); + assert(desired_capacity >= capacity(), "invalid expansion size"); +- size_t expand_bytes = MAX2(desired_capacity - capacity(), MinHeapDeltaBytes); ++ size_t expand_bytes = MAX2(desired_capacity - capacity(), (size_t)MinHeapDeltaBytes); + if (PrintGCDetails && Verbose) { + size_t desired_capacity = (size_t)(used() / ((double) 1 - desired_free_percentage)); + gclog_or_tty->print_cr("\nFrom compute_new_size: "); +@@ -6559,7 +6559,7 @@ + HeapWord* curAddr = _markBitMap.startWord(); + while (curAddr < _markBitMap.endWord()) { + size_t remaining = pointer_delta(_markBitMap.endWord(), curAddr); +- MemRegion chunk(curAddr, MIN2(CMSBitMapYieldQuantum, remaining)); ++ MemRegion chunk(curAddr, MIN2((size_t)CMSBitMapYieldQuantum, remaining)); + _markBitMap.clear_large_range(chunk); + if (ConcurrentMarkSweepThread::should_yield() && + !foregroundGCIsActive() && +@@ -6858,7 +6858,7 @@ + return; + } + // Double capacity if possible +- size_t new_capacity = MIN2(_capacity*2, MarkStackSizeMax); ++ size_t new_capacity = MIN2(_capacity*2, (size_t)MarkStackSizeMax); + // Do not give up existing stack until we have managed to + // get the double capacity that we desired. + ReservedSpace rs(ReservedSpace::allocation_align_size_up( +--- jdk8/hotspot/src/share/vm/gc_implementation/g1/concurrentMark.cpp 2014-07-03 21:56:12.000000000 +0200 ++++ jdk8/hotspot/src/share/vm/gc_implementation/g1/concurrentMark.cpp 2014-07-11 13:57:11.817966591 +0200 +@@ -3767,7 +3767,7 @@ + // of things to do) or totally (at the very end). + size_t target_size; + if (partially) { +- target_size = MIN2((size_t)_task_queue->max_elems()/3, GCDrainStackTargetSize); ++ target_size = MIN2((size_t)(_task_queue->max_elems()/3), (size_t)GCDrainStackTargetSize); + } else { + target_size = 0; + } +--- jdk8/hotspot/src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp 2014-07-03 21:56:12.000000000 +0200 ++++ jdk8/hotspot/src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp 2014-07-11 13:41:53.582013356 +0200 +@@ -1730,7 +1730,7 @@ + + verify_region_sets_optional(); + +- size_t expand_bytes = MAX2(word_size * HeapWordSize, MinHeapDeltaBytes); ++ size_t expand_bytes = MAX2(word_size * HeapWordSize, (size_t)MinHeapDeltaBytes); + ergo_verbose1(ErgoHeapSizing, + "attempt heap expansion", + ergo_format_reason("allocation request failed") +--- jdk8/hotspot/src/share/vm/gc_implementation/g1/g1StringDedupQueue.cpp 2014-07-03 21:56:12.000000000 +0200 ++++ jdk8/hotspot/src/share/vm/gc_implementation/g1/g1StringDedupQueue.cpp 2014-07-11 15:59:18.899087161 +0200 +@@ -38,7 +38,7 @@ + _cancel(false), + _empty(true), + _dropped(0) { +- _nqueues = MAX2(ParallelGCThreads, (size_t)1); ++ _nqueues = MAX2((size_t)ParallelGCThreads, (size_t)1); + _queues = NEW_C_HEAP_ARRAY(G1StringDedupWorkerQueue, _nqueues, mtGC); + for (size_t i = 0; i < _nqueues; i++) { + new (_queues + i) G1StringDedupWorkerQueue(G1StringDedupWorkerQueue::default_segment_size(), _max_cache_size, _max_size); +--- jdk8/hotspot/src/share/vm/gc_implementation/g1/g1StringDedupTable.cpp 2014-07-03 21:56:12.000000000 +0200 ++++ jdk8/hotspot/src/share/vm/gc_implementation/g1/g1StringDedupTable.cpp 2014-07-11 16:09:06.970540320 +0200 +@@ -110,7 +110,7 @@ + }; + + G1StringDedupEntryCache::G1StringDedupEntryCache() { +- _nlists = MAX2(ParallelGCThreads, (size_t)1); ++ _nlists = MAX2((size_t)ParallelGCThreads, (size_t)1); + _lists = PaddedArray::create_unfreeable((uint)_nlists); + } + +--- jdk8/hotspot/src/share/vm/gc_implementation/g1/heapRegion.cpp 2014-07-03 21:56:12.000000000 +0200 ++++ jdk8/hotspot/src/share/vm/gc_implementation/g1/heapRegion.cpp 2014-07-11 13:41:53.582013356 +0200 +@@ -160,7 +160,7 @@ + if (FLAG_IS_DEFAULT(G1HeapRegionSize)) { + size_t average_heap_size = (initial_heap_size + max_heap_size) / 2; + region_size = MAX2(average_heap_size / TARGET_REGION_NUMBER, +- (uintx) MIN_REGION_SIZE); ++ (size_t) MIN_REGION_SIZE); + } + + int region_size_log = log2_long((jlong) region_size); +--- jdk8/hotspot/src/share/vm/gc_implementation/parallelScavenge/parMarkBitMap.cpp 2014-07-03 21:56:12.000000000 +0200 ++++ jdk8/hotspot/src/share/vm/gc_implementation/parallelScavenge/parMarkBitMap.cpp 2014-07-11 17:39:05.464946601 +0200 +@@ -71,7 +71,7 @@ + if (_virtual_space != NULL && _virtual_space->expand_by(_reserved_byte_size)) { + _region_start = covered_region.start(); + _region_size = covered_region.word_size(); +- idx_t* map = (idx_t*)_virtual_space->reserved_low_addr(); ++ BitMap::bm_word_t* map = (BitMap::bm_word_t*)_virtual_space->reserved_low_addr(); + _beg_bits.set_map(map); + _beg_bits.set_size(bits / 2); + _end_bits.set_map(map + words / 2); +--- jdk8/hotspot/src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.cpp 2014-07-03 21:56:12.000000000 +0200 ++++ jdk8/hotspot/src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.cpp 2014-07-11 13:41:53.584013310 +0200 +@@ -910,8 +910,8 @@ + void PSParallelCompact::initialize_dead_wood_limiter() + { + const size_t max = 100; +- _dwl_mean = double(MIN2(ParallelOldDeadWoodLimiterMean, max)) / 100.0; +- _dwl_std_dev = double(MIN2(ParallelOldDeadWoodLimiterStdDev, max)) / 100.0; ++ _dwl_mean = double(MIN2((size_t)ParallelOldDeadWoodLimiterMean, max)) / 100.0; ++ _dwl_std_dev = double(MIN2((size_t)ParallelOldDeadWoodLimiterStdDev, max)) / 100.0; + _dwl_first_term = 1.0 / (sqrt(2.0 * M_PI) * _dwl_std_dev); + DEBUG_ONLY(_dwl_initialized = true;) + _dwl_adjustment = normal_distribution(1.0); +--- jdk8/hotspot/src/share/vm/gc_implementation/parNew/parNewGeneration.cpp 2014-07-03 21:56:12.000000000 +0200 ++++ jdk8/hotspot/src/share/vm/gc_implementation/parNew/parNewGeneration.cpp 2014-07-11 13:41:53.585013287 +0200 +@@ -194,7 +194,7 @@ + const size_t num_overflow_elems = of_stack->size(); + const size_t space_available = queue->max_elems() - queue->size(); + const size_t num_take_elems = MIN3(space_available / 4, +- ParGCDesiredObjsFromOverflowList, ++ (size_t)ParGCDesiredObjsFromOverflowList, + num_overflow_elems); + // Transfer the most recent num_take_elems from the overflow + // stack to our work queue. +--- jdk8/hotspot/src/share/vm/memory/collectorPolicy.cpp 2014-07-03 21:56:12.000000000 +0200 ++++ jdk8/hotspot/src/share/vm/memory/collectorPolicy.cpp 2014-07-11 13:38:14.060047977 +0200 +@@ -389,7 +389,7 @@ + uintx calculated_size = NewSize + OldSize; + double shrink_factor = (double) MaxHeapSize / calculated_size; + uintx smaller_new_size = align_size_down((uintx)(NewSize * shrink_factor), _gen_alignment); +- FLAG_SET_ERGO(uintx, NewSize, MAX2(young_gen_size_lower_bound(), smaller_new_size)); ++ FLAG_SET_ERGO(uintx, NewSize, MAX2(young_gen_size_lower_bound(), (size_t)smaller_new_size)); + _initial_gen0_size = NewSize; + + // OldSize is already aligned because above we aligned MaxHeapSize to +@@ -437,7 +437,7 @@ + // yield a size that is too small) and bound it by MaxNewSize above. + // Ergonomics plays here by previously calculating the desired + // NewSize and MaxNewSize. +- max_new_size = MIN2(MAX2(max_new_size, NewSize), MaxNewSize); ++ max_new_size = MIN2(MAX2(max_new_size, (size_t)NewSize), (size_t)MaxNewSize); + } + assert(max_new_size > 0, "All paths should set max_new_size"); + +@@ -459,23 +459,23 @@ + // lower limit. + _min_gen0_size = NewSize; + desired_new_size = NewSize; +- max_new_size = MAX2(max_new_size, NewSize); ++ max_new_size = MAX2(max_new_size, (size_t)NewSize); + } else if (FLAG_IS_ERGO(NewSize)) { + // If NewSize is set ergonomically, we should use it as a lower + // limit, but use NewRatio to calculate the initial size. + _min_gen0_size = NewSize; + desired_new_size = +- MAX2(scale_by_NewRatio_aligned(_initial_heap_byte_size), NewSize); +- max_new_size = MAX2(max_new_size, NewSize); ++ MAX2(scale_by_NewRatio_aligned(_initial_heap_byte_size), (size_t)NewSize); ++ max_new_size = MAX2(max_new_size, (size_t)NewSize); + } else { + // For the case where NewSize is the default, use NewRatio + // to size the minimum and initial generation sizes. + // Use the default NewSize as the floor for these values. If + // NewRatio is overly large, the resulting sizes can be too + // small. +- _min_gen0_size = MAX2(scale_by_NewRatio_aligned(_min_heap_byte_size), NewSize); ++ _min_gen0_size = MAX2(scale_by_NewRatio_aligned(_min_heap_byte_size), (size_t)NewSize); + desired_new_size = +- MAX2(scale_by_NewRatio_aligned(_initial_heap_byte_size), NewSize); ++ MAX2(scale_by_NewRatio_aligned(_initial_heap_byte_size), (size_t)NewSize); + } + + assert(_min_gen0_size > 0, "Sanity check"); +@@ -577,7 +577,7 @@ + } else { + // It's been explicitly set on the command line. Use the + // OldSize and then determine the consequences. +- _min_gen1_size = MIN2(OldSize, _min_heap_byte_size - _min_gen0_size); ++ _min_gen1_size = MIN2((size_t)OldSize, _min_heap_byte_size - _min_gen0_size); + _initial_gen1_size = OldSize; + + // If the user has explicitly set an OldSize that is inconsistent +--- jdk8/hotspot/src/share/vm/memory/metaspace.cpp 2014-07-03 21:56:12.000000000 +0200 ++++ jdk8/hotspot/src/share/vm/memory/metaspace.cpp 2014-07-11 16:19:00.043879052 +0200 +@@ -1431,7 +1431,7 @@ + + void MetaspaceGC::post_initialize() { + // Reset the high-water mark once the VM initialization is done. +- _capacity_until_GC = MAX2(MetaspaceAux::committed_bytes(), MetaspaceSize); ++ _capacity_until_GC = MAX2(MetaspaceAux::committed_bytes(), (size_t)MetaspaceSize); + } + + bool MetaspaceGC::can_expand(size_t word_size, bool is_class) { +@@ -1491,7 +1491,7 @@ + (size_t)MIN2(min_tmp, double(max_uintx)); + // Don't shrink less than the initial generation size + minimum_desired_capacity = MAX2(minimum_desired_capacity, +- MetaspaceSize); ++ (size_t)MetaspaceSize); + + if (PrintGCDetails && Verbose) { + gclog_or_tty->print_cr("\nMetaspaceGC::compute_new_size: "); +@@ -1546,7 +1546,7 @@ + const double max_tmp = used_after_gc / minimum_used_percentage; + size_t maximum_desired_capacity = (size_t)MIN2(max_tmp, double(max_uintx)); + maximum_desired_capacity = MAX2(maximum_desired_capacity, +- MetaspaceSize); ++ (size_t)MetaspaceSize); + if (PrintGCDetails && Verbose) { + gclog_or_tty->print_cr(" " + " maximum_free_percentage: %6.2f" +@@ -3197,7 +3197,7 @@ + // on the medium chunk list. The next chunk will be small and progress + // from there. This size calculated by -version. + _first_class_chunk_word_size = MIN2((size_t)MediumChunk*6, +- (CompressedClassSpaceSize/BytesPerWord)*2); ++ (size_t)(CompressedClassSpaceSize/BytesPerWord)*2); + _first_class_chunk_word_size = align_word_size_up(_first_class_chunk_word_size); + // Arbitrarily set the initial virtual space to a multiple + // of the boot class loader size. +--- jdk8/hotspot/src/share/vm/memory/threadLocalAllocBuffer.cpp 2014-07-03 21:56:12.000000000 +0200 ++++ jdk8/hotspot/src/share/vm/memory/threadLocalAllocBuffer.cpp 2014-07-11 17:50:56.051695703 +0200 +@@ -238,7 +238,7 @@ + size_t init_sz; + + if (TLABSize > 0) { +- init_sz = MIN2(TLABSize / HeapWordSize, max_size()); ++ init_sz = MIN2((size_t)(TLABSize / HeapWordSize), max_size()); + } else if (global_stats() == NULL) { + // Startup issue - main thread initialized before heap initialized. + init_sz = min_size(); +--- jdk8/hotspot/src/share/vm/oops/objArrayKlass.inline.hpp 2014-07-03 21:56:12.000000000 +0200 ++++ jdk8/hotspot/src/share/vm/oops/objArrayKlass.inline.hpp 2014-07-11 13:41:56.743940848 +0200 +@@ -48,7 +48,7 @@ + const size_t beg_index = size_t(index); + assert(beg_index < len || len == 0, "index too large"); + +- const size_t stride = MIN2(len - beg_index, ObjArrayMarkingStride); ++ const size_t stride = MIN2(len - beg_index, (size_t)ObjArrayMarkingStride); + const size_t end_index = beg_index + stride; + T* const base = (T*)a->base(); + T* const beg = base + beg_index; +@@ -82,7 +82,7 @@ + const size_t beg_index = size_t(index); + assert(beg_index < len || len == 0, "index too large"); + +- const size_t stride = MIN2(len - beg_index, ObjArrayMarkingStride); ++ const size_t stride = MIN2(len - beg_index, (size_t)ObjArrayMarkingStride); + const size_t end_index = beg_index + stride; + T* const base = (T*)a->base(); + T* const beg = base + beg_index; +--- jdk8/hotspot/src/share/vm/runtime/arguments.cpp 2014-07-03 21:56:12.000000000 +0200 ++++ jdk8/hotspot/src/share/vm/runtime/arguments.cpp 2014-07-11 11:47:11.845740259 +0200 +@@ -1244,7 +1244,7 @@ + // NewSize was set on the command line and it is larger than + // preferred_max_new_size. + if (!FLAG_IS_DEFAULT(NewSize)) { // NewSize explicitly set at command-line +- FLAG_SET_ERGO(uintx, MaxNewSize, MAX2(NewSize, preferred_max_new_size)); ++ FLAG_SET_ERGO(uintx, MaxNewSize, MAX2((size_t)NewSize, preferred_max_new_size)); + } else { + FLAG_SET_ERGO(uintx, MaxNewSize, preferred_max_new_size); + } +@@ -1269,8 +1269,8 @@ + // Unless explicitly requested otherwise, make young gen + // at least min_new, and at most preferred_max_new_size. + if (FLAG_IS_DEFAULT(NewSize)) { +- FLAG_SET_ERGO(uintx, NewSize, MAX2(NewSize, min_new)); +- FLAG_SET_ERGO(uintx, NewSize, MIN2(preferred_max_new_size, NewSize)); ++ FLAG_SET_ERGO(uintx, NewSize, MAX2((size_t)NewSize, min_new)); ++ FLAG_SET_ERGO(uintx, NewSize, MIN2(preferred_max_new_size, (size_t)NewSize)); + if (PrintGCDetails && Verbose) { + // Too early to use gclog_or_tty + tty->print_cr("CMS ergo set NewSize: " SIZE_FORMAT, NewSize); +@@ -1280,7 +1280,7 @@ + // so it's NewRatio x of NewSize. + if (FLAG_IS_DEFAULT(OldSize)) { + if (max_heap > NewSize) { +- FLAG_SET_ERGO(uintx, OldSize, MIN2(NewRatio*NewSize, max_heap - NewSize)); ++ FLAG_SET_ERGO(uintx, OldSize, MIN2((unsigned long)(NewRatio*NewSize), max_heap - NewSize)); + if (PrintGCDetails && Verbose) { + // Too early to use gclog_or_tty + tty->print_cr("CMS ergo set OldSize: " SIZE_FORMAT, OldSize); +@@ -1401,7 +1401,7 @@ + return true; + } + +-uintx Arguments::max_heap_for_compressed_oops() { ++size_t Arguments::max_heap_for_compressed_oops() { + // Avoid sign flip. + assert(OopEncodingHeapMax > (uint64_t)os::vm_page_size(), "Unusual page size"); + // We need to fit both the NULL page and the heap into the memory budget, while diff --git a/system-giflib5.patch b/system-giflib5.patch new file mode 100644 index 0000000..486ddd5 --- /dev/null +++ b/system-giflib5.patch @@ -0,0 +1,21 @@ +--- jdk8/jdk/src/share/native/sun/awt/splashscreen/splashscreen_gif.c ++++ jdk8/jdk/src/share/native/sun/awt/splashscreen/splashscreen_gif.c +@@ -316,9 +316,18 @@ + int + SplashDecodeGifStream(Splash * splash, SplashStream * stream) + { ++#ifdef GIFLIB_MAJOR >= 5 ++ int error = 0; ++ GifFileType *gif = DGifOpen((void *) stream, SplashStreamGifInputFunc, &error); ++ ++ if (error) ++ return 0; ++#else + GifFileType *gif = DGifOpen((void *) stream, SplashStreamGifInputFunc); + + if (!gif) + return 0; ++#endif ++ + return SplashDecodeGif(splash, gif); + } diff --git a/system-lcms.patch b/system-lcms.patch new file mode 100644 index 0000000..f09a0fe --- /dev/null +++ b/system-lcms.patch @@ -0,0 +1,107 @@ +# DP: taken from http://icedtea.classpath.org/wiki/IcedTea_Patches_for_OpenJDK_8 + +Index: b/common/autoconf/libraries.m4 +=================================================================== +--- jdk8/common/autoconf/libraries.m4 ++++ jdk8/common/autoconf/libraries.m4 +@@ -679,6 +679,46 @@ AC_DEFUN_ONCE([LIB_SETUP_MISC_LIBS], + + ############################################################################### + # ++ # Check for the lcms2 library ++ # ++ ++ AC_ARG_WITH(lcms, [AS_HELP_STRING([--with-lcms], ++ [use lcms2 from build system or OpenJDK source (system, bundled) @<:@bundled@:>@])]) ++ ++ AC_CHECK_LIB(lcms2, cmsOpenProfileFromFile, ++ [ LCMS_FOUND=yes ], ++ [ LCMS_FOUND=no ]) ++ ++ AC_MSG_CHECKING([for which lcms to use]) ++ ++ DEFAULT_LCMS=bundled ++ ++ # ++ # If user didn't specify, use DEFAULT_LCMS ++ # ++ if test "x${with_lcms}" = "x"; then ++ with_lcms=${DEFAULT_LCMS} ++ fi ++ ++ if test "x${with_lcms}" = "xbundled"; then ++ USE_EXTERNAL_LCMS=false ++ AC_MSG_RESULT([bundled]) ++ elif test "x${with_lcms}" = "xsystem"; then ++ if test "x${LCMS_FOUND}" = "xyes"; then ++ USE_EXTERNAL_LCMS=true ++ AC_MSG_RESULT([system]) ++ else ++ AC_MSG_RESULT([system not found]) ++ AC_MSG_ERROR([--with-lcms=system specified, but no lcms found!]) ++ fi ++ else ++ AC_MSG_ERROR([Invalid value for --with-lcms: ${with_lcms}, use 'system' or 'bundled']) ++ fi ++ ++ AC_SUBST(USE_EXTERNAL_LCMS) ++ ++ ############################################################################### ++ # + # Check for the png library + # + +Index: b/jdk/make/lib/Awt2dLibraries.gmk +=================================================================== +--- jdk8/jdk/make/lib/Awt2dLibraries.gmk ++++ jdk8/jdk/make/lib/Awt2dLibraries.gmk +@@ -670,8 +670,8 @@ endif + ########################################################################################## + + # TODO: Update awt lib path when awt is converted +-$(eval $(call SetupNativeCompilation,BUILD_LIBLCMS, \ +- LIBRARY := lcms, \ ++$(eval $(call SetupNativeCompilation,BUILD_LIBJAVALCMS, \ ++ LIBRARY := javalcms, \ + OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \ + SRC := $(JDK_TOPDIR)/src/share/native/sun/java2d/cmm/lcms, \ + LANG := C, \ +@@ -689,19 +689,19 @@ $(eval $(call SetupNativeCompilation,BUI + LDFLAGS_windows := $(WIN_AWT_LIB) $(WIN_JAVA_LIB), \ + LDFLAGS_SUFFIX_solaris := -lawt -ljava -ljvm -lc, \ + LDFLAGS_SUFFIX_macosx := $(LIBM) -lawt -ljava -ljvm, \ +- LDFLAGS_SUFFIX_linux := -lm -lawt -ljava -ljvm, \ ++ LDFLAGS_SUFFIX_linux := -lm -lawt -ljava -ljvm -llcms2, \ + LDFLAGS_SUFFIX_aix := -lm -lawt -ljava -ljvm,\ + VERSIONINFO_RESOURCE := $(JDK_TOPDIR)/src/windows/resource/version.rc, \ + RC_FLAGS := $(RC_FLAGS) \ +- -D "JDK_FNAME=lcms.dll" \ +- -D "JDK_INTERNAL_NAME=lcms" \ ++ -D "JDK_FNAME=javalcms.dll" \ ++ -D "JDK_INTERNAL_NAME=javalcms" \ + -D "JDK_FTYPE=0x2L", \ +- OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/liblcms, \ ++ OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/libjavalcms, \ + DEBUG_SYMBOLS := $(DEBUG_ALL_BINARIES))) + +-BUILD_LIBRARIES += $(BUILD_LIBLCMS) ++BUILD_LIBRARIES += $(BUILD_LIBJAVALCMS) + +-$(BUILD_LIBLCMS): $(BUILD_LIBAWT) ++$(BUILD_LIBJAVALCMS): $(BUILD_LIBAWT) + + ########################################################################################## + +Index: b/jdk/src/share/classes/sun/java2d/cmm/lcms/LCMS.java +=================================================================== +--- jdk8/jdk/src/share/classes/sun/java2d/cmm/lcms/LCMS.java ++++ jdk8/jdk/src/share/classes/sun/java2d/cmm/lcms/LCMS.java +@@ -207,7 +207,7 @@ public class LCMS implements PCMM { + * disposer frameworks + */ + System.loadLibrary("awt"); +- System.loadLibrary("lcms"); ++ System.loadLibrary("javalcms"); + return null; + } + }); diff --git a/system-libjpeg.patch b/system-libjpeg.patch new file mode 100644 index 0000000..5329923 --- /dev/null +++ b/system-libjpeg.patch @@ -0,0 +1,374 @@ +--- jdk8/common/autoconf/generated-configure.sh 2014-06-18 21:34:07.000000000 +0200 ++++ jdk8/common/autoconf/generated-configure.sh 2014-07-08 18:47:15.372657941 +0200 +@@ -1058,6 +1058,7 @@ + with_alsa + with_alsa_include + with_alsa_lib ++with_libjpeg + with_giflib + with_zlib + with_stdc__lib +@@ -1828,6 +1829,8 @@ + headers under PATH/include) + --with-alsa-include specify directory for the alsa include files + --with-alsa-lib specify directory for the alsa library ++ --with-libjpeg use libjpeg from build system or OpenJDK source ++ (system, bundled) [bundled] + --with-giflib use giflib from build system or OpenJDK source + (system, bundled) [bundled] + --with-zlib use zlib from build system or OpenJDK source +@@ -3868,7 +3871,7 @@ + #CUSTOM_AUTOCONF_INCLUDE + + # Do not change or remove the following line, it is needed for consistency checks: +-DATE_WHEN_GENERATED=1397150809 ++DATE_WHEN_GENERATED=1404288415 + + ############################################################################### + # +@@ -34911,10 +34919,43 @@ + # Check for the jpeg library + # + +- USE_EXTERNAL_LIBJPEG=true +- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for main in -ljpeg" >&5 +-$as_echo_n "checking for main in -ljpeg... " >&6; } +-if ${ac_cv_lib_jpeg_main+:} false; then : ++ ++# Check whether --with-libjpeg was given. ++if test "${with_libjpeg+set}" = set; then : ++ withval=$with_libjpeg; ++fi ++ ++ ++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for which libjpeg to use" >&5 ++$as_echo_n "checking for which libjpeg to use... " >&6; } ++ ++ # default is bundled ++ DEFAULT_LIBJPEG=bundled ++ ++ # ++ # if user didn't specify, use DEFAULT_LIBJPEG ++ # ++ if test "x${with_libjpeg}" = "x"; then ++ with_libjpeg=${DEFAULT_LIBJPEG} ++ fi ++ ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${with_libjpeg}" >&5 ++$as_echo "${with_libjpeg}" >&6; } ++ ++ if test "x${with_libjpeg}" = "xbundled"; then ++ USE_EXTERNAL_LIBJPEG=false ++ elif test "x${with_libjpeg}" = "xsystem"; then ++ ac_fn_cxx_check_header_mongrel "$LINENO" "jpeglib.h" "ac_cv_header_jpeglib_h" "$ac_includes_default" ++if test "x$ac_cv_header_jpeglib_h" = xyes; then : ++ ++else ++ as_fn_error $? "--with-libjpeg=system specified, but jpeglib.h not found!" "$LINENO" 5 ++fi ++ ++ ++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for jpeg_CreateDecompress in -ljpeg" >&5 ++$as_echo_n "checking for jpeg_CreateDecompress in -ljpeg... " >&6; } ++if ${ac_cv_lib_jpeg_jpeg_CreateDecompress+:} false; then : + $as_echo_n "(cached) " >&6 + else + ac_check_lib_save_LIBS=$LIBS +@@ -34922,27 +34963,33 @@ + cat confdefs.h - <<_ACEOF >conftest.$ac_ext + /* end confdefs.h. */ + +- ++/* Override any GCC internal prototype to avoid an error. ++ Use char because int might match the return type of a GCC ++ builtin and then its argument prototype would still apply. */ ++#ifdef __cplusplus ++extern "C" ++#endif ++char jpeg_CreateDecompress (); + int + main () + { +-return main (); ++return jpeg_CreateDecompress (); + ; + return 0; + } + _ACEOF + if ac_fn_cxx_try_link "$LINENO"; then : +- ac_cv_lib_jpeg_main=yes ++ ac_cv_lib_jpeg_jpeg_CreateDecompress=yes + else +- ac_cv_lib_jpeg_main=no ++ ac_cv_lib_jpeg_jpeg_CreateDecompress=no + fi + rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + LIBS=$ac_check_lib_save_LIBS + fi +-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_jpeg_main" >&5 +-$as_echo "$ac_cv_lib_jpeg_main" >&6; } +-if test "x$ac_cv_lib_jpeg_main" = xyes; then : ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_jpeg_jpeg_CreateDecompress" >&5 ++$as_echo "$ac_cv_lib_jpeg_jpeg_CreateDecompress" >&6; } ++if test "x$ac_cv_lib_jpeg_jpeg_CreateDecompress" = xyes; then : + cat >>confdefs.h <<_ACEOF + #define HAVE_LIBJPEG 1 + _ACEOF +@@ -34950,10 +34997,13 @@ + LIBS="-ljpeg $LIBS" + + else +- USE_EXTERNAL_LIBJPEG=false +- { $as_echo "$as_me:${as_lineno-$LINENO}: Will use jpeg decoder bundled with the OpenJDK source" >&5 +-$as_echo "$as_me: Will use jpeg decoder bundled with the OpenJDK source" >&6;} ++ as_fn_error $? "--with-libjpeg=system specified, but no libjpeg found" "$LINENO" 5 ++fi ++ + ++ USE_EXTERNAL_LIBJPEG=true ++ else ++ as_fn_error $? "Invalid use of --with-libjpeg: ${with_libjpeg}, use 'system' or 'bundled'" "$LINENO" 5 + fi + + +--- jdk8/common/autoconf/libraries.m4 2014-06-18 21:34:07.000000000 +0200 ++++ jdk8/common/autoconf/libraries.m4 2014-07-08 18:47:15.372657941 +0200 +@@ -608,11 +608,36 @@ + # Check for the jpeg library + # + ++ AC_ARG_WITH(libjpeg, [AS_HELP_STRING([--with-libjpeg], ++ [use libjpeg from build system or OpenJDK source (system, bundled) @<:@bundled@:>@])]) ++ ++ AC_MSG_CHECKING([for which libjpeg to use]) ++ ++ # default is bundled ++ DEFAULT_LIBJPEG=bundled ++ ++ # ++ # if user didn't specify, use DEFAULT_LIBJPEG ++ # ++ if test "x${with_libjpeg}" = "x"; then ++ with_libjpeg=${DEFAULT_LIBJPEG} ++ fi ++ ++ AC_MSG_RESULT(${with_libjpeg}) ++ ++ if test "x${with_libjpeg}" = "xbundled"; then ++ USE_EXTERNAL_LIBJPEG=false ++ elif test "x${with_libjpeg}" = "xsystem"; then ++ AC_CHECK_HEADER(jpeglib.h, [], ++ [ AC_MSG_ERROR([--with-libjpeg=system specified, but jpeglib.h not found!])]) ++ AC_CHECK_LIB(jpeg, jpeg_CreateDecompress, [], ++ [ AC_MSG_ERROR([--with-libjpeg=system specified, but no libjpeg found])]) ++ + USE_EXTERNAL_LIBJPEG=true +- AC_CHECK_LIB(jpeg, main, [], +- [ USE_EXTERNAL_LIBJPEG=false +- AC_MSG_NOTICE([Will use jpeg decoder bundled with the OpenJDK source]) +- ]) ++ else ++ AC_MSG_ERROR([Invalid use of --with-libjpeg: ${with_libjpeg}, use 'system' or 'bundled']) ++ fi ++ + AC_SUBST(USE_EXTERNAL_LIBJPEG) + + ############################################################################### +--- jdk8/jdk/make/lib/Awt2dLibraries.gmk 2014-06-23 01:01:34.000000000 +0200 ++++ jdk8/jdk/make/lib/Awt2dLibraries.gmk 2014-07-08 18:47:15.373657942 +0200 +@@ -705,18 +705,20 @@ + + ########################################################################################## + ++BUILD_LIBJAVAJPEG_DIR := $(JDK_TOPDIR)/src/share/native/sun/awt/image/jpeg ++ + ifdef OPENJDK +- BUILD_LIBJPEG_MAPFILE := $(JDK_TOPDIR)/make/mapfiles/libjpeg/mapfile-vers ++ BUILD_LIBJAVAJPEG_MAPFILE := $(JDK_TOPDIR)/make/mapfiles/libjpeg/mapfile-vers + else +- BUILD_LIBJPEG_MAPFILE := $(JDK_TOPDIR)/make/mapfiles/libjpeg/mapfile-vers-closed +- BUILD_LIBJPEG_CLOSED_SRC := $(JDK_TOPDIR)/src/closed/share/native/sun/awt/image/jpeg +- BUILD_LIBJPEG_CLOSED_INCLUDES := -I$(BUILD_LIBJPEG_CLOSED_SRC) ++ BUILD_LIBJAVAJPEG_MAPFILE := $(JDK_TOPDIR)/make/mapfiles/libjpeg/mapfile-vers-closed ++ BUILD_LIBJAVAJPEG_CLOSED_SRC := $(JDK_TOPDIR)/src/closed/share/native/sun/awt/image/jpeg ++ BUILD_LIBJAVAJPEG_CLOSED_INCLUDES := -I$(BUILD_LIBJAVAJPEG_CLOSED_SRC) + endif + +-BUILD_LIBJPEG_REORDER := ++BUILD_LIBJAVAJPEG_REORDER := + ifeq ($(OPENJDK_TARGET_OS), solaris) + ifneq ($(OPENJDK_TARGET_CPU), x86_64) +- BUILD_LIBJPEG_REORDER := $(JDK_TOPDIR)/make/mapfiles/libjpeg/reorder-$(OPENJDK_TARGET_CPU) ++ BUILD_LIBJAVAJPEG_REORDER := $(JDK_TOPDIR)/make/mapfiles/libjpeg/reorder-$(OPENJDK_TARGET_CPU) + endif + endif + +@@ -731,37 +733,50 @@ + # $(shell $(EXPR) $(CC_MAJORVER) \> 4 \| \ + # \( $(CC_MAJORVER) = 4 \& $(CC_MINORVER) \>= 3 \) ) + # ifeq ($(CC_43_OR_NEWER), 1) +-# BUILD_LIBJPEG_CFLAGS_linux += -Wno-clobbered ++# BUILD_LIBJAVAJPEG_CFLAGS_linux += -Wno-clobbered + # endif + #endif + +-$(eval $(call SetupNativeCompilation,BUILD_LIBJPEG, \ +- LIBRARY := jpeg, \ ++ifeq ($(USE_EXTERNAL_LIBJPEG), true) ++ LIBJPEG_LIBS := -ljpeg ++ BUILD_LIBJAVAJPEG_INCLUDE_FILES := \ ++ imageIOJPEG.c \ ++ jpegdecoder.c ++ BUILD_LIBJAVAJPEG_HEADERS := ++else ++ LIBJPEG_LIBS := ++ BUILD_LIBJAVAJPEG_INCLUDE_FILES := ++ BUILD_LIBJAVAJPEG_HEADERS := -I$(BUILD_LIBJAVAJPEG_DIR) ++endif ++ ++$(eval $(call SetupNativeCompilation,BUILD_LIBJAVAJPEG, \ ++ LIBRARY := javajpeg, \ + OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \ +- SRC := $(BUILD_LIBJPEG_CLOSED_SRC) \ +- $(JDK_TOPDIR)/src/share/native/sun/awt/image/jpeg, \ ++ SRC := $(BUILD_LIBJAVAJPEG_CLOSED_SRC) \ ++ $(BUILD_LIBJAVAJPEG_DIR), \ ++ INCLUDE_FILES := $(BUILD_LIBJAVAJPEG_INCLUDE_FILES), \ + LANG := C, \ + OPTIMIZATION := HIGHEST, \ + CFLAGS := $(CFLAGS_JDKLIB) \ +- $(BUILD_LIBJPEG_CLOSED_INCLUDES) \ +- -I$(JDK_TOPDIR)/src/share/native/sun/awt/image/jpeg, \ +- MAPFILE := $(BUILD_LIBJPEG_MAPFILE), \ +- LDFLAGS := $(LDFLAGS_JDKLIB) \ ++ $(BUILD_LIBJAVAJPEG_CLOSED_INCLUDES) \ ++ $(BUILD_LIBJAVAJPEG_HEADERS), \ ++ MAPFILE := $(BUILD_LIBJAVAJPEG_MAPFILE), \ ++ LDFLAGS := $(LDFLAGS_JDKLIB) $(LIBJPEG_LIBS) \ + $(call SET_SHARED_LIBRARY_ORIGIN), \ + LDFLAGS_windows := $(WIN_JAVA_LIB) jvm.lib, \ + LDFLAGS_SUFFIX := $(LDFLAGS_JDKLIB_SUFFIX), \ + VERSIONINFO_RESOURCE := $(JDK_TOPDIR)/src/windows/resource/version.rc, \ + RC_FLAGS := $(RC_FLAGS) \ +- -D "JDK_FNAME=jpeg.dll" \ +- -D "JDK_INTERNAL_NAME=jpeg" \ ++ -D "JDK_FNAME=javajpeg.dll" \ ++ -D "JDK_INTERNAL_NAME=javajpeg" \ + -D "JDK_FTYPE=0x2L", \ +- REORDER := $(BUILD_LIBJPEG_REORDER), \ ++ REORDER := $(BUILD_LIBJAVAJPEG_REORDER), \ + OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/libjpeg, \ + DEBUG_SYMBOLS := $(DEBUG_ALL_BINARIES))) + +-$(BUILD_LIBJPEG): $(BUILD_LIBJAVA) ++$(BUILD_LIBJAVAJPEG): $(BUILD_LIBJAVA) + +-BUILD_LIBRARIES += $(BUILD_LIBJPEG) ++BUILD_LIBRARIES += $(BUILD_LIBJAVAJPEG) + + ########################################################################################## + +@@ -1207,6 +1222,13 @@ + GIFLIB_CFLAGS := -I$(JDK_TOPDIR)/src/share/native/sun/awt/giflib + endif + ++ ifeq ($(USE_EXTERNAL_LIBJPEG), true) ++ LIBJPEG_LDFLAGS := -ljpeg ++ else ++ LIBSPLASHSCREEN_DIRS += $(JDK_TOPDIR)/src/share/native/sun/awt/image/jpeg ++ LIBJPEG_CFLAGS := -I$(JDK_TOPDIR)/src/share/native/sun/awt/image/jpeg ++ endif ++ + ifneq ($(OPENJDK_TARGET_OS), macosx) + LIBSPLASHSCREEN_DIRS += $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/awt/splashscreen + else +@@ -1269,11 +1291,13 @@ + EXCLUDE_FILES := imageioJPEG.c jpegdecoder.c pngtest.c, \ + LANG := C, \ + OPTIMIZATION := LOW, \ +- CFLAGS := $(LIBSPLASHSCREEN_CFLAGS) $(CFLAGS_JDKLIB) $(GIFLIB_CFLAGS), \ ++ CFLAGS := $(LIBSPLASHSCREEN_CFLAGS) $(CFLAGS_JDKLIB) \ ++ $(GIFLIB_CFLAGS) $(LIBJPEG_CFLAGS), \ + MAPFILE := $(JDK_TOPDIR)/make/mapfiles/libsplashscreen/mapfile-vers, \ + LDFLAGS := $(LDFLAGS_JDKLIB) \ + $(call SET_SHARED_LIBRARY_ORIGIN), \ +- LDFLAGS_SUFFIX := $(LIBSPLASHSCREEN_LDFLAGS_SUFFIX) $(LIBZ) $(GIFLIB_LDFLAGS), \ ++ LDFLAGS_SUFFIX := $(LIBSPLASHSCREEN_LDFLAGS_SUFFIX) $(LIBZ) \ ++ $(GIFLIB_LDFLAGS) $(LIBJPEG_LDFLAGS), \ + LDFLAGS_SUFFIX_solaris := -lc, \ + VERSIONINFO_RESOURCE := $(JDK_TOPDIR)/src/windows/resource/version.rc, \ + RC_FLAGS := $(RC_FLAGS) \ +--- jdk8/jdk/src/share/classes/com/sun/imageio/plugins/jpeg/JPEGImageReader.java 2014-06-23 01:01:34.000000000 +0200 ++++ jdk8/jdk/src/share/classes/com/sun/imageio/plugins/jpeg/JPEGImageReader.java 2014-07-08 18:47:15.373657942 +0200 +@@ -89,7 +89,7 @@ + java.security.AccessController.doPrivileged( + new java.security.PrivilegedAction() { + public Void run() { +- System.loadLibrary("jpeg"); ++ System.loadLibrary("javajpeg"); + return null; + } + }); +--- jdk8/jdk/src/share/classes/com/sun/imageio/plugins/jpeg/JPEGImageWriter.java 2014-06-23 01:01:34.000000000 +0200 ++++ jdk8/jdk/src/share/classes/com/sun/imageio/plugins/jpeg/JPEGImageWriter.java 2014-07-08 18:47:15.374657940 +0200 +@@ -179,7 +179,7 @@ + java.security.AccessController.doPrivileged( + new java.security.PrivilegedAction() { + public Void run() { +- System.loadLibrary("jpeg"); ++ System.loadLibrary("javajpeg"); + return null; + } + }); +--- jdk8/jdk/src/share/classes/sun/awt/image/JPEGImageDecoder.java 2014-06-23 01:01:34.000000000 +0200 ++++ jdk8/jdk/src/share/classes/sun/awt/image/JPEGImageDecoder.java 2014-07-08 18:47:15.374657940 +0200 +@@ -56,7 +56,7 @@ + java.security.AccessController.doPrivileged( + new java.security.PrivilegedAction() { + public Void run() { +- System.loadLibrary("jpeg"); ++ System.loadLibrary("javajpeg"); + return null; + } + }); +--- jdk8/jdk/src/share/native/sun/awt/image/jpeg/imageioJPEG.c 2014-06-23 01:01:34.000000000 +0200 ++++ jdk8/jdk/src/share/native/sun/awt/image/jpeg/imageioJPEG.c 2014-07-08 18:47:15.374657940 +0200 +@@ -51,7 +51,7 @@ + + /* headers from the JPEG library */ + #include +-#include "jerror.h" ++#include + + #undef MAX + #define MAX(a,b) ((a) > (b) ? (a) : (b)) +--- jdk8/jdk/src/share/native/sun/awt/splashscreen/splashscreen_jpeg.c 2014-06-23 01:01:34.000000000 +0200 ++++ jdk8/jdk/src/share/native/sun/awt/splashscreen/splashscreen_jpeg.c 2014-07-08 19:15:42.773049037 +0200 +@@ -25,9 +25,9 @@ + + #include "splashscreen_impl.h" + +-#include "jinclude.h" +-#include "jpeglib.h" +-#include "jerror.h" ++#include ++#include ++#include + + #include + +@@ -107,11 +107,11 @@ + if (cinfo->src == NULL) { /* first time for this JPEG object? */ + cinfo->src = (struct jpeg_source_mgr *) + (*cinfo->mem->alloc_small) ((j_common_ptr) cinfo, +- JPOOL_PERMANENT, SIZEOF(stream_source_mgr)); ++ JPOOL_PERMANENT, sizeof(stream_source_mgr)); + src = (stream_src_ptr) cinfo->src; + src->buffer = (JOCTET *) + (*cinfo->mem->alloc_small) ((j_common_ptr) cinfo, +- JPOOL_PERMANENT, INPUT_BUF_SIZE * SIZEOF(JOCTET)); ++ JPOOL_PERMANENT, INPUT_BUF_SIZE * sizeof(JOCTET)); + } + + src = (stream_src_ptr) cinfo->src; diff --git a/system-libpng.patch b/system-libpng.patch new file mode 100644 index 0000000..f461026 --- /dev/null +++ b/system-libpng.patch @@ -0,0 +1,111 @@ +--- jdk8/common/autoconf/libraries.m4 ++++ jdk8/common/autoconf/libraries.m4 +@@ -679,6 +679,47 @@ AC_DEFUN_ONCE([LIB_SETUP_MISC_LIBS], + + ############################################################################### + # ++ # Check for the png library ++ # ++ ++ AC_ARG_WITH(libpng, [AS_HELP_STRING([--with-libpng], ++ [use libpng from build system or OpenJDK source (system, bundled) @<:@bundled@:>@])]) ++ ++ AC_CHECK_LIB(png, png_sig_cmp, ++ [ LIBPNG_FOUND=yes ], ++ [ LIBPNG_FOUND=no ]) ++ ++ AC_MSG_CHECKING([for which libpng to use]) ++ ++ # default is bundled ++ DEFAULT_LIBPNG=bundled ++ ++ # ++ # if user didn't specify, use DEFAULT_LIBPNG ++ # ++ if test "x${with_libpng}" = "x"; then ++ with_libpng=${DEFAULT_libpng} ++ fi ++ ++ ++ if test "x${with_libpng}" = "xbundled"; then ++ USE_EXTERNAL_LIBPNG=false ++ AC_MSG_RESULT([bundled]) ++ elif test "x${with_libpng}" = "xsystem"; then ++ if test "x${LIBPNG_FOUND}" = "xyes"; then ++ USE_EXTERNAL_LIBPNG=true ++ AC_MSG_RESULT([system]) ++ else ++ AC_MSG_RESULT([system not found]) ++ AC_MSG_ERROR([--with-libpng=system specified, but no libpng found!]) ++ fi ++ else ++ AC_MSG_ERROR([Invalid value of --with-libpng: ${with_libpng}, use 'system' or 'bundled']) ++ fi ++ AC_SUBST(USE_EXTERNAL_LIBPNG) ++ ++ ############################################################################### ++ # + # Check for the zlib library + # + +--- jdk8/common/autoconf/spec.gmk.in ++++ jdk8/common/autoconf/spec.gmk.in +@@ -555,6 +555,7 @@ endif + ENABLE_JFR=@ENABLE_JFR@ + ENABLE_INTREE_EC=@ENABLE_INTREE_EC@ + USE_EXTERNAL_LIBJPEG:=@USE_EXTERNAL_LIBJPEG@ ++USE_EXTERNAL_LIBPNG:=@USE_EXTERNAL_LIBPNG@ + USE_EXTERNAL_LIBGIF:=@USE_EXTERNAL_LIBGIF@ + USE_EXTERNAL_LIBZ:=@USE_EXTERNAL_LIBZ@ + LIBZIP_CAN_USE_MMAP:=@LIBZIP_CAN_USE_MMAP@ +--- jdk8/jdk/make/lib/Awt2dLibraries.gmk ++++ jdk8/jdk/make/lib/Awt2dLibraries.gmk +@@ -1213,7 +1213,6 @@ endif + ifndef BUILD_HEADLESS_ONLY + LIBSPLASHSCREEN_DIRS := \ + $(JDK_TOPDIR)/src/share/native/sun/awt/image/jpeg \ +- $(JDK_TOPDIR)/src/share/native/sun/awt/libpng \ + $(JDK_TOPDIR)/src/share/native/sun/awt/splashscreen + + ifeq ($(USE_EXTERNAL_LIBGIF), true) +@@ -1230,6 +1229,13 @@ ifndef BUILD_HEADLESS_ONLY + LIBJPEG_CFLAGS := -I$(JDK_TOPDIR)/src/share/native/sun/awt/image/jpeg + endif + ++ ifeq ($(USE_EXTERNAL_LIBPNG), true) ++ LIBPNG_LDFLAGS := -lpng ++ else ++ LIBSPLASHSCREEN_DIRS += $(JDK_TOPDIR)/src/share/native/sun/awt/image/libpng ++ LIBPNG_CFLAGS := -I$(JDK_TOPDIR)/src/share/native/sun/awt/libpng ++ endif ++ + ifneq ($(OPENJDK_TARGET_OS), macosx) + LIBSPLASHSCREEN_DIRS += $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/awt/splashscreen + else +@@ -1293,12 +1299,12 @@ ifndef BUILD_HEADLESS_ONLY + LANG := C, \ + OPTIMIZATION := LOW, \ + CFLAGS := $(LIBSPLASHSCREEN_CFLAGS) $(CFLAGS_JDKLIB) \ +- $(GIFLIB_CFLAGS) $(LIBJPEG_CFLAGS), \ ++ $(GIFLIB_CFLAGS) $(LIBJPEG_CFLAGS) $(LIBPNG_CFLAGS), \ + MAPFILE := $(JDK_TOPDIR)/make/mapfiles/libsplashscreen/mapfile-vers, \ + LDFLAGS := $(LDFLAGS_JDKLIB) \ + $(call SET_SHARED_LIBRARY_ORIGIN), \ + LDFLAGS_SUFFIX := $(LIBSPLASHSCREEN_LDFLAGS_SUFFIX) $(LIBZ) \ +- $(GIFLIB_LDFLAGS) $(LIBJPEG_LDFLAGS), \ ++ $(GIFLIB_LDFLAGS) $(LIBJPEG_LDFLAGS) $(LIBPNG_LDFLAGS), \ + LDFLAGS_SUFFIX_solaris := -lc, \ + VERSIONINFO_RESOURCE := $(JDK_TOPDIR)/src/windows/resource/version.rc, \ + RC_FLAGS := $(RC_FLAGS) \ +--- jdk8/jdk/src/share/native/sun/awt/splashscreen/splashscreen_png.c ++++ jdk8/jdk/src/share/native/sun/awt/splashscreen/splashscreen_png.c +@@ -25,8 +25,7 @@ + + #include "splashscreen_impl.h" + +-#include "../libpng/png.h" +- ++#include + #include + + #define SIG_BYTES 8 diff --git a/systemtap-tapset.tar.gz b/systemtap-tapset.tar.gz new file mode 100644 index 0000000..62cfb0d --- /dev/null +++ b/systemtap-tapset.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2f3a47f150b94421f8a64a9d73deea5f60a11fae2c48636fe4533197f91573a4 +size 26712