From patchwork Tue Feb 6 14:39:49 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Thomas De Schampheleire X-Patchwork-Id: 869804 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=busybox.net (client-ip=140.211.166.138; helo=whitealder.osuosl.org; envelope-from=buildroot-bounces@busybox.net; receiver=) Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=nokia.onmicrosoft.com header.i=@nokia.onmicrosoft.com header.b="Idt03loF"; dkim-atps=neutral Received: from whitealder.osuosl.org (smtp1.osuosl.org [140.211.166.138]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 3zbRvz173tz9sP9 for ; Wed, 7 Feb 2018 01:40:46 +1100 (AEDT) Received: from localhost (localhost [127.0.0.1]) by whitealder.osuosl.org (Postfix) with ESMTP id 23D12883B1; Tue, 6 Feb 2018 14:40:45 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Received: from whitealder.osuosl.org ([127.0.0.1]) by localhost (.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id Wb07auVlgCAS; Tue, 6 Feb 2018 14:40:37 +0000 (UTC) Received: from ash.osuosl.org (ash.osuosl.org [140.211.166.34]) by whitealder.osuosl.org (Postfix) with ESMTP id D85CC88393; Tue, 6 Feb 2018 14:40:36 +0000 (UTC) X-Original-To: buildroot@lists.busybox.net Delivered-To: buildroot@osuosl.org Received: from silver.osuosl.org (smtp3.osuosl.org [140.211.166.136]) by ash.osuosl.org (Postfix) with ESMTP id B61B41CF04F for ; Tue, 6 Feb 2018 14:40:32 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by silver.osuosl.org (Postfix) with ESMTP id B169F2FF72 for ; Tue, 6 Feb 2018 14:40:32 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Received: from silver.osuosl.org ([127.0.0.1]) by localhost (.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id pWYPuSbrSdvx for ; Tue, 6 Feb 2018 14:40:29 +0000 (UTC) X-Greylist: from auto-whitelisted by SQLgrey-1.7.6 Received: from EUR01-VE1-obe.outbound.protection.outlook.com (mail-ve1eur01hn0244.outbound.protection.outlook.com [104.47.1.244]) by silver.osuosl.org (Postfix) with ESMTPS id 01C372F558 for ; Tue, 6 Feb 2018 14:40:28 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nokia.onmicrosoft.com; s=selector1-nokia-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=TSe4tXZ7h5oui+c6Yc2xGgMMW8YVEQBWSYLbxmddGp8=; b=Idt03loFCOOAenWFqDtcERCQ1G+2jNo8uNjJLJHgOzlLsyscSDwgqJ8Lehhlw52v1M/9qepIj4wbCGSfcLsoLLOWIz7wB4jk33IbOICaG7bqibIV9Z0EHImi90AI925lZptBLYw4ZOAs4PMsy98hce1zwFqgW8bsM6EcbLbGFy0= Received: from australia.vpn.alcatel-lucent.com (2620:0:1055:fd00:7a10:f49f:78c7:5bac) by AM4PR07MB3108.eurprd07.prod.outlook.com (2603:10a6:205:7::29) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.485.3; Tue, 6 Feb 2018 14:40:25 +0000 From: Thomas De Schampheleire To: buildroot@buildroot.org Date: Tue, 6 Feb 2018 15:39:49 +0100 Message-Id: <20180206143952.12332-2-thomas.de_schampheleire@nokia.com> X-Mailer: git-send-email 2.13.6 In-Reply-To: <20180206143952.12332-1-thomas.de_schampheleire@nokia.com> References: <20180206143952.12332-1-thomas.de_schampheleire@nokia.com> MIME-Version: 1.0 X-Originating-IP: [2620:0:1055:fd00:7a10:f49f:78c7:5bac] X-ClientProxiedBy: DB6PR07CA0100.eurprd07.prod.outlook.com (2603:10a6:6:2c::14) To AM4PR07MB3108.eurprd07.prod.outlook.com (2603:10a6:205:7::29) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-HT: Tenant X-MS-Office365-Filtering-Correlation-Id: ee2029e3-e788-41b0-17e0-08d56d6f8f49 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(7020095)(4652020)(4534165)(4627221)(201703031133081)(201702281549075)(48565401081)(5600026)(4604075)(2017052603307)(7193020); SRVR:AM4PR07MB3108; X-Microsoft-Exchange-Diagnostics: 1; AM4PR07MB3108; 3:V5dE3LCu4OWTG65Kg8edloZ/hDBIXmAALuZRfr/3lEYMgu+EJToB7wJWeIydXmnYk/w5WXGdmv361VTQy5NOw/zwSarRsj+lPh7HYRkvINspRPFS+46HUyVOfDjuhaqcX/kGwinpxyNSMMK/WJd7eoQMjOz03Dw+qNUqNhVwR4vrcmpgrgL8MjYt3sF8oyqd4A5I7uXEJodGxwWkcGIrw+I4B78TA7hO8cvPI4tRqMCHSY/NHjREjGZ2y6f121xZ; 25:yRF1iVMsPo1/c5u3B3hBm98O3wmIISSroIbgowtHHKNxH94TkxzEuuauxFUlnt9vR4l9S+JmhonAsYGtsY20qBNm47TVzWNhDX3QjokURD9rGozvyrc9I2H9EOrbME9uuhrqJ+MwcCDHy9dFpYbb3YDW42gD0giEDZ/9KHyk/Pjap+541eyFQlT5DlcZRL9kZkZ8lsG1hg37C1zVB1S88KwxUXaJw1AhwqzfPm7qaKpcJv1AFir/duqGrKCFndIso2S4kClJaTcvaZic6cy/3eX4M/Tzxs09gF5zZBD5/1F+qHIQUAHxKPUieVKkwhF2ncipVZsIms89yabJbdkvTw==; 31:Z9rMOnxq0zW9G/Hy5x/39OQ9TnxEwWUWlu0342+dV/3U1obKSkxsGuZi4/GGhMi34pJyS3IOLrmh+ewU3DfPlyAnE7vRgOXMskyTg9m5iDBBM9oVE92XHUrXyd4al7Nd23+1ltawjfcYgoZnPC7XAsYdyxOgoLxm74dnXz5yVUNoWhVCNz+I6NOXsue9tk77HvbgMdNAONiApLXaDfCqOhc6sgOYVNjPt8PtNVIqqJQ= X-MS-TrafficTypeDiagnostic: AM4PR07MB3108: X-Microsoft-Exchange-Diagnostics: 1; AM4PR07MB3108; 20:fp1pzZoCCgKisbutjg2x4nEdPjH1tylWdcDO6jsQ2PVbtgCHqHQYVDkGfH0w+4p+vmVnzWc+FUgMncv+2m0q6YH+byezxWnNkynJAiK85e3JXUvd4+j0Z6XLLds7tf2J7547KfDw1B8s+sJibDvFE6sYD/uY+RpvqzFjfrzDj46gNE0P7k+jQvVC9JqFbOmtdiSUcPweh7vsRdJfpHSJFO02+DNTwGYLqRLKN89TXQL75IhYptMYCOKJS4G7D4WKPyY5CAx2Z1WyQs6rjxGXdbedf8pp224KH0XCTUkiI4neFgm0f8Yy3GaWQ6QqOVWQRuBWEKkzZBin7S5LR16/r322X2Zxn6UTfQw/S2fazCqZ88iLnx45aqeafxp+S3cGhju+/2u6FLkSuGmad9AfFQatBufZY4CPUWEm4mJ44QRSGltL9TAZArZKs3tsj9l0dgo6w33RhwQ7s9iB+YlN9lRWZRgfywRFS8c/XqdvA5bjpPS+/K9YONZW/rvKUfWa; 4:Pe/v/l0A7LgNOEagNXoKdw72iXgMAzni7wePtFVJZzuvIIlhpq7xSm7PlegDHP3BGNHRdh58e7dDAEf2dSxkbxHC6hkbDhwkDppxeg+2DSEWm7iqQHwRjmzhM6TqlYmoDeNY5BrPCkDfba5wcBzN4w4I1QvQP9s4t2sJyFhRE9lL6rKW1JN9AxHtNlx1o2H8cDdU3QSCysVWP0bfyX96XClHRNVP2s8/G8xitSCkFH7tep+Fu+iKzYQOEFtIpEWpw9UkavpRvJF/MPneyFhLRTHrizmoUbJjuUHrZAbyOaMiAu/LRrRCjOHUtqkHTPA091flO/nbd0w6qZPkR7zTiByvwp/9ESYqw+8d+s8SgYofvfalBiqckJ3sZ8Mn/0PN X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(82608151540597)(73538370219878)(228905959029699); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6040501)(2401047)(5005006)(8121501046)(3231101)(11241501184)(806099)(2232076)(944501161)(3002001)(93006095)(93001095)(10201501046)(6055026)(6041288)(20161123562045)(20161123564045)(20161123560045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123558120)(6072148)(201708071742011); SRVR:AM4PR07MB3108; BCL:0; PCL:0; RULEID:; SRVR:AM4PR07MB3108; X-Forefront-PRVS: 0575F81B58 X-Forefront-Antispam-Report: SFV:SPM; SFS:(10019020)(346002)(39380400002)(39860400002)(376002)(366004)(396003)(377424004)(189003)(199004)(2950100002)(50226002)(6916009)(1076002)(6346003)(36756003)(8936002)(16526019)(186003)(97736004)(4001150100001)(2351001)(6666003)(2361001)(59450400001)(106356001)(316002)(5660300001)(105586002)(47776003)(2870700001)(966005)(81166006)(305945005)(7736002)(2906002)(478600001)(6506007)(76176011)(386003)(6116002)(50466002)(6306002)(25786009)(81156014)(6486002)(68736007)(4326008)(23676004)(52396003)(52116002)(575784001)(86362001)(6512007)(107886003)(8676002)(53936002)(59010400001)(19627235001); DIR:OUT; SFP:1501; SCL:5; SRVR:AM4PR07MB3108; H:australia.vpn.alcatel-lucent.com; FPR:; SPF:None; PTR:InfoNoRecords; MX:1; A:1; LANG:en; Received-SPF: None (protection.outlook.com: nokia.com does not designate permitted sender hosts) Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=thomas.de_schampheleire@nokia.com; X-Microsoft-Exchange-Diagnostics: =?utf-8?q?1=3BAM4PR07MB3108=3B23=3Ay3rm?= =?utf-8?q?Quzr2pk0jZ2HL/nxEUs/J4mXvQLB/CZM8qbWOO+sgCTuXZRnGJnD23+Q?= =?utf-8?q?jwvKsZI5Xy+7nD9aX2ghWiu91n9xY7aYHCBgQnWn9DhDCStQfLhLvbBA?= =?utf-8?q?yZURly+k5RkCwWKgwseIGc6RaryuuBDq9gOTAuZX+gf8dQa52fqxQDay?= =?utf-8?q?bnlkwaXq5Rxp7e0v991LsGnQk/S6Lory58xJ8JpC01Mwti/fM/wGf/rs?= =?utf-8?q?GMGpYEfmKqZbN8MrNQ+jFgDP9YxyDTGrONYoMR402GSDqml0/pM8NKMJ?= =?utf-8?q?QE1apsoMZuNij99u1Q0PtcZRXgvBXKHEf7LlFh7WEnkeMt8TpASkbhzs?= =?utf-8?q?KFC3b5pNE1xv3Ku9PYccEdj+KjjWCSo4VI+THAw11350QjPWst34kCDI?= =?utf-8?q?n+PLy+9sOYlHI9GMZ32MrdExcxRSxdsoXu0d8pNaFL70s5AeGsty8h5K?= =?utf-8?q?QUWk2lP5iBvB70QH+zvhG4aM9vljTvTl1Rgok2O8GvUulbjdJN19EfON?= =?utf-8?q?+VbePPAnPLvruDLUFrl7fNAUIyHONbDlcX0Tc7BxjNog4hchLXDva9Bc?= =?utf-8?q?R0ACr+l66Wn+JWffDAvASzAx8QTnnABH0uVcLTzM6dZHo/1SnQrDVjwj?= =?utf-8?q?nwuW1/tV86/2PnoCnF+/AMBt+1KUlo4cHvJY8r8nlwbFcS4iJDN7m6fq?= =?utf-8?q?X5XCpPx2i/lS+CxwzSMjINPLKb7FhR2LbjqVJI0Hmxf+69ay+nYifJK9?= =?utf-8?q?Ce7MpWGljECMFewYUw1aUKHkM8e6OGoHlzZd7hJ5VOM3T7ldjFEuITu+?= =?utf-8?q?H7dWguq2CKPRUsh6LqjOEV+/dlCagTElflZP8FUzRHUmyft/DVFP4wQ/?= =?utf-8?q?LqhVwHAsrqGZNywRClQ81Nl/q8LSHakuqQWAEJVMW7IITcnG1xT5F9Bv?= =?utf-8?q?g7HEE7L8K6lgIvZQa2cV4oszig0BByav5z2m5Yk6aekp4i3JrF/kqFkH?= =?utf-8?q?QSv9NQeqYHuSwW+CG3hR1B0CClVO4tRWCbXNoMVqEYwiiYBQGs2NP+lE?= =?utf-8?q?dJkyT2a4q2Vu4ACpwgKCbfn+J56yPMW+QFEnZwbSJMpmNuXwBtN+MXxV?= =?utf-8?q?/evp6AO7iwqCZpiOiB3n9tX5lN9o3bDIUjmPdD2MeE1lip9bo79Qdhg2?= =?utf-8?q?DDlO8nLbUCSFKrvi75oQdbgiYijlAbv8pcEeI53x6PnQ8e22FjV9WQK1?= =?utf-8?q?yqxOfmKD5nnPKFb+GThXEum+UiTKF739xPePkOYpwcnMkvZiUMO3Ltfv?= =?utf-8?q?dUVr3VxXrDk9KoCoUPNb70O9xd8fDwz5NT4JzYr7RwARlR4xIpLGQp59?= =?utf-8?q?QPGzX/SdUfdx20YfzezhzzWkRfB13xZTmQoKoAkeV7hCO9sGytrMLEJx?= =?utf-8?q?1KfahxcKt0BNZ/7+5S6YSb+KqdDee9yJuvf2D2U=3D?= X-Microsoft-Antispam-Message-Info: QYm/vXZjAGW2+kHAb3hcp7Qh7QclZsWvSgouW3DMoirsk0ZQD18SqnA/QHdAhLdMgOOZIMUzguISCQAfhhC1hoJCdHJXGKidQMJmkOB4CJgwDEWiuj3pcHd8eO2cRoTmBl715tAQMCDzTnONdPBJqQGJ294UEbGzmIog7jd29UxcPW232onE1MFl0eU+Rbs5HYOcUeR3hWRdTNU1VMMEpA== X-Microsoft-Exchange-Diagnostics: 1; AM4PR07MB3108; 6:fOwzNIF8oSjUehM2UmHao1Mf0CY0uNP7MCHGzCrdmzgh4IGyX6Z4IVo+DRMvU3458Zeg6cO/Q7RBFu2N3FfnsvbuhOaBFBQnljZUtHYI7f63ECM2j76kQtCsnoNsaBlj4zrx5t3WcsKBkmtQHv6iE+SlWgBMKbLRjT6C+7v84dLv0EJ7hl1H/ILA+HXfsoxq61cb5nUAktzX6GD4nOmdt6tEdaZDNkWIcwBoKPig699lAWye/t0M7afSYqfa5pS6T7V51t5PQN8t0RISiHx6FiMdLkU1kZd/LRSsHh33nK3TOJoeDoUExT2j5mzQfldji/x3WMcHU1n5B6bccznMPCtqTfcf/lh+k/4SgAo3Gmg=; 5:HQUpcl49mXeKKOBtBQ3DjpUP2snTjnSOwVVFtQldg6rS2q1JsaIQmQXW9Zj/WSJxSnlDd3JrzkBk6GGXm74Z7tAESyZhrPk9UqJRuSl0BkV3f5HqmVoLidK03lmzdNavMo6neQCv7CiQwTJ5PLmhxtLqISQpNUlyzSxoHxUcpF0=; 24:m0mKlBt1gsZzSq8sZ4VSUhnm3fJWI1wOHr52fl562gM03zoaTdEqywishnTViul71NFsFtBRsYHBTjQM5DklJg==; 7:1lpgm5ZCKasU+s65P7+Z6jNrT0uPuWN5D9QUsjK9bW1Jpr2BuwmfsPoVRBfA5YkLJyG3sfN5tmU6vYC38tW+OTjJ2AWbhV7bpWXnxiKI39kGusVRBZ8x2CamUkIFrphVtrvzlfBL4QnP9mEekKQpn9ixyNbEU3pHY/zkix4jxRqUHYIRsrOn0OnM1RfCpLSoeQJxp5NYqjzwyFf8wdpg+4DKO2l5TdAwxawosOgSy3WPLuCf0BVZC1dkQNgeexMh SpamDiagnosticOutput: 1:22 X-OriginatorOrg: nokia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 Feb 2018 14:40:25.3960 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: ee2029e3-e788-41b0-17e0-08d56d6f8f49 X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 5d471751-9675-428d-917b-70f44f9630b0 X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM4PR07MB3108 Subject: [Buildroot] [PATCH 1/4] openjdk: new package X-BeenThere: buildroot@busybox.net X-Mailman-Version: 2.1.24 Precedence: list List-Id: Discussion and development of buildroot List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Thomas De Schampheleire Errors-To: buildroot-bounces@busybox.net Sender: "buildroot" Build openjdk for a headless system without crazy dependencies. Tested on Buildroot 2017.02. Created in context of PowerPC. Signed-off-by: Thomas De Schampheleire --- package/Config.in | 1 + package/openjdk/Config.in | 30 +++++ package/openjdk/openjdk.mk | 117 +++++++++++++++++ .../openjdk8-find-compiler-fix-env-respect.patch | 140 +++++++++++++++++++++ ...8-fix-assembler-flag-handling-in-makefile.patch | 20 +++ package/openjdk/openjdk8-fix-zero-mode-crash.patch | 49 ++++++++ .../openjdk/openjdk8-no-genx11-in-headless.patch | 17 +++ package/openjdk/openjdk8-no-unused-deps.patch | 94 ++++++++++++++ .../openjdk/openjdk8-restrict-to-staging-dir.patch | 11 ++ 9 files changed, 479 insertions(+) create mode 100644 package/openjdk/Config.in create mode 100644 package/openjdk/openjdk.mk create mode 100644 package/openjdk/openjdk8-find-compiler-fix-env-respect.patch create mode 100644 package/openjdk/openjdk8-fix-assembler-flag-handling-in-makefile.patch create mode 100644 package/openjdk/openjdk8-fix-zero-mode-crash.patch create mode 100644 package/openjdk/openjdk8-no-genx11-in-headless.patch create mode 100644 package/openjdk/openjdk8-no-unused-deps.patch create mode 100644 package/openjdk/openjdk8-restrict-to-staging-dir.patch diff --git a/package/Config.in b/package/Config.in index 9cd5d9c087..5746ca75a0 100644 --- a/package/Config.in +++ b/package/Config.in @@ -648,6 +648,7 @@ menu "Mono libraries/modules" endmenu endif source "package/nodejs/Config.in" + source "package/openjdk/Config.in" source "package/perl/Config.in" if BR2_PACKAGE_PERL menu "Perl libraries/modules" diff --git a/package/openjdk/Config.in b/package/openjdk/Config.in new file mode 100644 index 0000000000..f4e2c09776 --- /dev/null +++ b/package/openjdk/Config.in @@ -0,0 +1,30 @@ +comment "openjdk needs a toolchain w/ threads" + depends on !BR2_TOOLCHAIN_HAS_THREADS + +config BR2_PACKAGE_OPENJDK + bool "openjdk" + select BR2_NEEDS_HOST_JAR + select BR2_NEEDS_HOST_JAVAC + select BR2_PACKAGE_FREETYPE + select BR2_PACKAGE_LIBFFI + depends on BR2_TOOLCHAIN_HAS_THREADS # libffi + help + OpenJDK JRE runtime. + + http://openjdk.java.net/ + +if BR2_PACKAGE_OPENJDK + +config BR2_PACKAGE_OPENJDK_CUSTOM_BOOT_JDK + bool "Specify a custom boot JDK" + help + A custom boot JDK passed via --with-boot-jdk + (used to bootstrap build) + +config BR2_PACKAGE_OPENJDK_CUSTOM_BOOT_JDK_PATH + string "Path to boot JDK" + depends on BR2_PACKAGE_OPENJDK_CUSTOM_BOOT_JDK + help + Path to custom boot JDK + +endif diff --git a/package/openjdk/openjdk.mk b/package/openjdk/openjdk.mk new file mode 100644 index 0000000000..790a36ba8d --- /dev/null +++ b/package/openjdk/openjdk.mk @@ -0,0 +1,117 @@ +################################################################################ +# +# openjdk +# +################################################################################ + +# Please be aware that, when cross-compiling, the OpenJDK configure script will +# generally use 'target' where autoconf traditionally uses 'host' + +#Version is the same as OpenJDK HG tag +OPENJDK_VERSION = jdk8u102-b14 +#Release is the same as OpenJDK repo +OPENJDK_RELEASE = jdk8u +OPENJDK_PROJECT = jdk8u + +OPENJDK_DOWNLOAD_SITE = http://hg.openjdk.java.net/$(OPENJDK_PROJECT)/$(OPENJDK_RELEASE) +OPENJDK_SOURCE = $(OPENJDK_VERSION).tar.gz +OPENJDK_SITE = $(OPENJDK_DOWNLOAD_SITE)/archive + +OPENJDK_DEPENDENCIES = host-pkgconf libffi freetype +OPENJDK_LICENSE = GPLv2+ with classpath exception +OPENJDK_LICENSE_FILES = LICENSE + +# Certain patches are taken from Yocto, see below listing from +# directory: meta-java/recipes-core/openjdk/patches-openjdk-8 +# Note: patches needed to be postprocessed to add one directory component: +# find -name "*.patch" | xargs sed -i -e 's,--- ,--- a/,' -e 's,+++ ,+++ b/,' +# +# NOTNEEDED? dont-expect-fqpn-for-make.patch +# NOTNEEDED? filter-aclocal-copy-too.patch +# NOTNEEDED openjdk8-add-missing-linker-flags.patch +# TAKEN openjdk8-find-compiler-fix-env-respect.patch +# NOTNEEDED? openjdk8-fix-adlc-flags.patch +# TAKEN openjdk8-fix-assembler-flag-handling-in-makefile.patch +# NOSHARKYET openjdk8-fix-shark-build.patch +# NOSHARKYET openjdk8-fix-shark-stdc++11.patch +# TAKEN openjdk8-fix-zero-mode-crash.patch +# TAKEN openjdk8-no-genx11-in-headless.patch +# TAKEN openjdk8-no-unused-deps.patch +# NOTNEEDED openjdk8-prevent-debuginfo-in-favour-of-openembedded-package-split.patch +# TAKEN openjdk8-restrict-to-staging-dir.patch +# NOTNEEDED openjdk8-silence-d_fortify_source-warning.patch +# NOTNEEDED? remove-shell-variables-from-autoheader.patch + +OPENJDK_CONF_OPTS += \ + --with-jvm-interpreter=cpp \ + --with-jvm-variants=zero \ + --enable-openjdk-only \ + --with-debug-level=release \ + --openjdk-target=$(GNU_TARGET_NAME) \ + --with-sys-root=$(STAGING_DIR) \ + --with-tools-dir=$(HOST_DIR) \ + --enable-unlimited-crypto \ + --disable-headful \ + --with-extra-cflags="-DHEADLESS=true -Wno-error" \ + --with-extra-cxxflags="-DHEADLESS=true -Wno-error" \ + --with-x=no \ + +ifeq ($(BR2_PACKAGE_OPENJDK_CUSTOM_BOOT_JDK),y) +OPENJDK_CONF_OPTS += --with-boot-jdk=$(call qstrip,$(BR2_PACKAGE_OPENJDK_CUSTOM_BOOT_JDK_PATH)) +endif + +OPENJDK_MAKE_OPTS += BUILD_HEADLESS_ONLY=1 BUILD_HEADLESS=true \ + BUILD_SOUNDLESS_ONLY=1 X11_NOT_NEEDED=1 \ + CUPS_NOT_NEEDED=1 ALSA_NOT_NEEDED=1 PULSE_NOT_NEEDED=1 \ + +OPENJDK_MAKE_ENV += X11_NOT_NEEDED=yes CUPS_NOT_NEEDED=yes ALSA_NOT_NEEDED=yes \ + PULSE_NOT_NEEDED=yes \ + BUILD_LD="$(HOSTCC)" + +# OpenJDK uses a mercurial forest structure +# thankfully the various forests can be downloaded as individual .tar.gz files using +# the following URL structure +# http://hg.openjdk.java.net/$(OPENJDK_PROJECT)/archive/$(OPENJDK_VERSION).tar.bz2 +# http://hg.openjdk.java.net/$(OPENJDK_PROJECT)/corba/archive/$(OPENJDK_VERSION).tar.bz2 +# ... +define OPENJDK_DOWNLOAD_CMDS +$(foreach sub,hotspot corba jaxp jaxws jdk langtools nashorn, + $(call DOWNLOAD_INNER,$(OPENJDK_DOWNLOAD_SITE)/$(sub)/archive/$(OPENJDK_VERSION).tar.gz,openjdk-$(OPENJDK_RELEASE)-$(sub)-$(OPENJDK_VERSION).tar.gz,DOWNLOAD) +) +endef + +OPENJDK_POST_DOWNLOAD_HOOKS += OPENJDK_DOWNLOAD_CMDS + +define OPENJDK_POST_EXTRACT_CMDS +$(foreach sub,hotspot corba jaxp jaxws jdk langtools nashorn, + mkdir $(@D)/$(sub) ; + $(TAR) --strip-components=1 -C $(@D)/$(sub) \ + -z $(TAR_OPTIONS) $(DL_DIR)/openjdk-$(OPENJDK_RELEASE)-$(sub)-$(OPENJDK_VERSION).tar.gz ; +) +endef + +OPENJDK_POST_EXTRACT_HOOKS += OPENJDK_POST_EXTRACT_CMDS + +define OPENJDK_CONFIGURE_CMDS + cd $(@D) && bash common/autoconf/autogen.sh + cd $(@D) && $(OPENJDK_MAKE_ENV) $(TARGET_CONFIGURE_OPTS) bash ./configure $(OPENJDK_CONF_OPTS) +endef + +# TODO in post-patch step? +define OPENJDK_CLEAN_X11_DEPENDENCY + rm -f $(@D)/jdk/src/solaris/classes/sun/awt/X11/*.java +endef + +OPENJDK_PRE_BUILD_HOOKS += OPENJDK_CLEAN_X11_DEPENDENCY + +define OPENJDK_BUILD_CMDS + $(OPENJDK_MAKE_ENV) $(TARGET_CONFIGURE_OPTS) $(MAKE1) JOBS=$(PARALLEL_JOBS) -C $(@D) $(OPENJDK_MAKE_OPTS) images +endef + +define OPENJDK_INSTALL_TARGET_CMDS + mkdir -p $(TARGET_DIR)/usr/lib/jvm/ + cp -arf $(@D)/build/*/images/j2re-image $(TARGET_DIR)/usr/lib/jvm/ +endef + +#openjdk configure is not based on automake +$(eval $(generic-package)) diff --git a/package/openjdk/openjdk8-find-compiler-fix-env-respect.patch b/package/openjdk/openjdk8-find-compiler-fix-env-respect.patch new file mode 100644 index 0000000000..d15e9705ba --- /dev/null +++ b/package/openjdk/openjdk8-find-compiler-fix-env-respect.patch @@ -0,0 +1,140 @@ +--- a/common/autoconf/toolchain.m4.orig 2015-08-07 20:52:38.000000000 +0200 ++++ b/common/autoconf/toolchain.m4 2015-10-27 13:57:19.708566525 +0100 +@@ -27,7 +27,7 @@ + # $2 = human readable name of compiler (C or C++) + AC_DEFUN([TOOLCHAIN_CHECK_COMPILER_VERSION], + [ +- COMPILER=[$]$1 ++ COMPILER="[$]$1" + COMPILER_NAME=$2 + + if test "x$OPENJDK_TARGET_OS" = xsolaris; then +@@ -123,64 +123,37 @@ + [ + COMPILER_NAME=$2 + +- $1= ++ FOUND_$1= ++ ++ if test "x[$]$1" != "x"; then ++ FOUND_$1="[$]$1" ++ fi ++ + # If TOOLS_DIR is set, check for all compiler names in there first + # before checking the rest of the PATH. +- if test -n "$TOOLS_DIR"; then ++ if test "x[$]FOUND_$1" = x -a -n "$TOOLS_DIR"; then + PATH_save="$PATH" + PATH="$TOOLS_DIR" + AC_PATH_PROGS(TOOLS_DIR_$1, $3) +- $1=$TOOLS_DIR_$1 ++ FOUND_$1=$TOOLS_DIR_$1 + PATH="$PATH_save" + fi + + # AC_PATH_PROGS can't be run multiple times with the same variable, + # so create a new name for this run. +- if test "x[$]$1" = x; then ++ if test "x[$]FOUND_$1" = x; then + AC_PATH_PROGS(POTENTIAL_$1, $3) +- $1=$POTENTIAL_$1 ++ FOUND_$1=$POTENTIAL_$1 + fi + +- if test "x[$]$1" = x; then ++ if test "x[$]FOUND_$1" = x; then + HELP_MSG_MISSING_DEPENDENCY([devkit]) + AC_MSG_ERROR([Could not find a $COMPILER_NAME compiler. $HELP_MSG]) + fi +- BASIC_FIXUP_EXECUTABLE($1) +- TEST_COMPILER="[$]$1" +- # Don't remove symbolic links on AIX because 'xlc_r' and 'xlC_r' may all be links +- # to 'xlc' but it is crucial that we invoke the compiler with the right name! +- if test "x$OPENJDK_BUILD_OS" != xaix; then +- AC_MSG_CHECKING([resolved symbolic links for $1]) +- BASIC_REMOVE_SYMBOLIC_LINKS(TEST_COMPILER) +- AC_MSG_RESULT([$TEST_COMPILER]) +- fi +- AC_MSG_CHECKING([if $1 is disguised ccache]) +- +- COMPILER_BASENAME=`$BASENAME "$TEST_COMPILER"` +- if test "x$COMPILER_BASENAME" = "xccache"; then +- AC_MSG_RESULT([yes, trying to find proper $COMPILER_NAME compiler]) +- # We /usr/lib/ccache in the path, so cc is a symlink to /usr/bin/ccache. +- # We want to control ccache invocation ourselves, so ignore this cc and try +- # searching again. +- +- # Remove the path to the fake ccache cc from the PATH +- RETRY_COMPILER_SAVED_PATH="$PATH" +- COMPILER_DIRNAME=`$DIRNAME [$]$1` +- PATH="`$ECHO $PATH | $SED -e "s,$COMPILER_DIRNAME,,g" -e "s,::,:,g" -e "s,^:,,g"`" +- +- # Try again looking for our compiler +- AC_CHECK_TOOLS(PROPER_COMPILER_$1, $3) +- BASIC_FIXUP_EXECUTABLE(PROPER_COMPILER_$1) +- PATH="$RETRY_COMPILER_SAVED_PATH" +- +- AC_MSG_CHECKING([for resolved symbolic links for $1]) +- BASIC_REMOVE_SYMBOLIC_LINKS(PROPER_COMPILER_$1) +- AC_MSG_RESULT([$PROPER_COMPILER_$1]) +- $1="$PROPER_COMPILER_$1" +- else +- AC_MSG_RESULT([no, keeping $1]) +- $1="$TEST_COMPILER" +- fi ++ BASIC_FIXUP_EXECUTABLE(FOUND_$1) ++ TEST_COMPILER="[$]FOUND_$1" ++ ++ $1="$TEST_COMPILER" + TOOLCHAIN_CHECK_COMPILER_VERSION([$1], [$COMPILER_NAME]) + ]) + +@@ -214,12 +187,12 @@ + # otherwise we might pick up cross-compilers which don't use standard naming. + # Otherwise, we'll set the BUILD_tools to the native tools, but that'll have + # to wait until they are properly discovered. +- AC_PATH_PROGS(BUILD_CC, [cl cc gcc]) +- BASIC_FIXUP_EXECUTABLE(BUILD_CC) +- AC_PATH_PROGS(BUILD_CXX, [cl CC g++]) +- BASIC_FIXUP_EXECUTABLE(BUILD_CXX) +- AC_PATH_PROG(BUILD_LD, ld) +- BASIC_FIXUP_EXECUTABLE(BUILD_LD) ++ AS_IF([test "x${BUILD_CC}" = "x"], [AC_PATH_PROGS(BUILD_CC, [cl cc gcc]) ++ BASIC_FIXUP_EXECUTABLE(BUILD_CC)]) ++ AS_IF([test "x${BUILD_CXX}" = "x"], [AC_PATH_PROGS(BUILD_CXX, [cl CC g++]) ++ BASIC_FIXUP_EXECUTABLE(BUILD_CXX)]) ++ AS_IF([test "x${BUILD_LD}" = "x"], [AC_PATH_PROG(BUILD_LD, ld) ++ BASIC_FIXUP_EXECUTABLE(BUILD_LD)]) + fi + AC_SUBST(BUILD_CC) + AC_SUBST(BUILD_CXX) +--- a/common/autoconf/basics.m4.orig 2015-08-31 15:03:54.942975387 +0200 ++++ b/common/autoconf/basics.m4 2015-08-31 15:02:25.090975049 +0200 +@@ -171,8 +171,15 @@ + fi + fi + ++ # First separate the path from the arguments. This will split at the first ++ # space. ++ complete="[$]$1" ++ path="${complete%% *}" ++ tmp="$complete EOL" ++ arguments="${tmp#* }" ++ + if test "x$READLINK" != x; then +- $1=`$READLINK -f [$]$1` ++ new_path=`$READLINK -f $path` + else + # Save the current directory for restoring afterwards + STARTDIR=$PWD +@@ -198,8 +205,9 @@ + let COUNTER=COUNTER+1 + done + cd $STARTDIR +- $1=$sym_link_dir/$sym_link_file ++ new_path=$sym_link_dir/$sym_link_file + fi ++ $1="$new_path ${arguments% *}" + fi + ]) + diff --git a/package/openjdk/openjdk8-fix-assembler-flag-handling-in-makefile.patch b/package/openjdk/openjdk8-fix-assembler-flag-handling-in-makefile.patch new file mode 100644 index 0000000000..e6948d463c --- /dev/null +++ b/package/openjdk/openjdk8-fix-assembler-flag-handling-in-makefile.patch @@ -0,0 +1,20 @@ +Delay $CXX insertion until after make has evaluated the comma-separated list, +as any comma separated parameters in CXX (such as assembler arguments) would +break the build + +Signed-off-by: Erkka Kääriä + +Upstream-Status: Pending + +--- +--- a/make/common/NativeCompilation.gmk ++++ b/make/common/NativeCompilation.gmk +@@ -372,7 +372,7 @@ define SetupNativeCompilation + $$(foreach p,$$($1_SRCS), \ + $$(eval $$(call add_native_source,$1,$$p,$$($1_OBJECT_DIR), \ + $$($1_CFLAGS) $$($1_EXTRA_CFLAGS),$$($1_CC), \ +- $$($1_CXXFLAGS) $$($1_EXTRA_CXXFLAGS),$(CXX),$$($1_ASFLAGS)))) ++ $$($1_CXXFLAGS) $$($1_EXTRA_CXXFLAGS),$$(CXX),$$($1_ASFLAGS)))) + + # On windows we need to create a resource file + ifeq ($(OPENJDK_TARGET_OS), windows) diff --git a/package/openjdk/openjdk8-fix-zero-mode-crash.patch b/package/openjdk/openjdk8-fix-zero-mode-crash.patch new file mode 100644 index 0000000000..ef40bc6372 --- /dev/null +++ b/package/openjdk/openjdk8-fix-zero-mode-crash.patch @@ -0,0 +1,49 @@ +# HG changeset patch +# User aph +# Date 1461121375 -3600 +# Wed Apr 20 04:02:55 2016 +0100 +# Node ID 6811f311f905409fe71d2b1c2fb34c3268758724 +# Parent c66e4cc0fce57664ab44c55c47fa1a2f1bf02638 +8154210: Zero: Better byte behaviour +Summary: Complete support for 8132051 on Zero and fix failure on 64-bit big-endian systems +Reviewed-by: andrew, chrisphi, coleenp + +Upstream-Status: Backport [Fixed in u112] + +diff --git hotspot/src/cpu/zero/vm/cppInterpreter_zero.cpp hotspot/src/cpu/zero/vm/cppInterpreter_zero.cpp +--- a/hotspot/src/cpu/zero/vm/cppInterpreter_zero.cpp ++++ b/hotspot/src/cpu/zero/vm/cppInterpreter_zero.cpp +@@ -220,9 +220,16 @@ + // Push our result + for (int i = 0; i < result_slots; i++) { + // Adjust result to smaller +- intptr_t res = result[-i]; ++ union { ++ intptr_t res; ++ jint res_jint; ++ }; ++ res = result[-i]; + if (result_slots == 1) { +- res = narrow(method->result_type(), res); ++ BasicType t = method->result_type(); ++ if (is_subword_type(t)) { ++ res_jint = (jint)narrow(t, res_jint); ++ } + } + stack->push(res); + } +diff --git hotspot/src/share/vm/interpreter/bytecodeInterpreter.cpp hotspot/src/share/vm/interpreter/bytecodeInterpreter.cpp +--- a/hotspot/src/share/vm/interpreter/bytecodeInterpreter.cpp ++++ b/hotspot/src/share/vm/interpreter/bytecodeInterpreter.cpp +@@ -593,8 +593,9 @@ + /* 0xDC */ &&opc_default, &&opc_default, &&opc_default, &&opc_default, + + /* 0xE0 */ &&opc_default, &&opc_default, &&opc_default, &&opc_default, +-/* 0xE4 */ &&opc_default, &&opc_fast_aldc, &&opc_fast_aldc_w, &&opc_return_register_finalizer, +-/* 0xE8 */ &&opc_invokehandle,&&opc_default, &&opc_default, &&opc_default, ++/* 0xE4 */ &&opc_default, &&opc_default, &&opc_fast_aldc, &&opc_fast_aldc_w, ++/* 0xE8 */ &&opc_return_register_finalizer, ++ &&opc_invokehandle, &&opc_default, &&opc_default, + /* 0xEC */ &&opc_default, &&opc_default, &&opc_default, &&opc_default, + + /* 0xF0 */ &&opc_default, &&opc_default, &&opc_default, &&opc_default, diff --git a/package/openjdk/openjdk8-no-genx11-in-headless.patch b/package/openjdk/openjdk8-no-genx11-in-headless.patch new file mode 100644 index 0000000000..5a9f9056ad --- /dev/null +++ b/package/openjdk/openjdk8-no-genx11-in-headless.patch @@ -0,0 +1,17 @@ +--- a/jdk/make/GenerateSources.gmk.orig 2015-08-24 11:23:34.720648954 +0200 ++++ b/jdk/make/GenerateSources.gmk 2015-08-24 11:24:41.376649205 +0200 +@@ -73,9 +73,11 @@ + GENSRC += $(GENSRC_OSX_ICONS) + endif + +- ifneq ($(OPENJDK_TARGET_OS), macosx) +- include gensrc/GensrcX11Wrappers.gmk +- GENSRC += $(GENSRC_X11WRAPPERS) ++ ifndef BUILD_HEADLESS_ONLY ++ ifneq ($(OPENJDK_TARGET_OS), macosx) ++ include gensrc/GensrcX11Wrappers.gmk ++ GENSRC += $(GENSRC_X11WRAPPERS) ++ endif + endif + endif + diff --git a/package/openjdk/openjdk8-no-unused-deps.patch b/package/openjdk/openjdk8-no-unused-deps.patch new file mode 100644 index 0000000000..c76eae9f20 --- /dev/null +++ b/package/openjdk/openjdk8-no-unused-deps.patch @@ -0,0 +1,94 @@ +--- a/jdk/make/lib/Awt2dLibraries.gmk.orig 2015-09-03 15:05:21.429981848 +0200 ++++ b/jdk/make/lib/Awt2dLibraries.gmk 2015-09-03 15:05:44.705981936 +0200 +@@ -235,6 +235,10 @@ + LIBAWT_DIRS += $(JDK_TOPDIR)/src/aix/porting + endif + ++ifdef BUILD_HEADLESS_ONLY ++LIBAWT_CFLAGS += -DHEADLESS=true ++endif ++ + LIBAWT_CFLAGS += -D__MEDIALIB_OLD_NAMES -D__USE_J2D_NAMES \ + $(X_CFLAGS) \ + $(foreach dir, $(LIBAWT_DIRS), -I$(dir)) +@@ -1126,17 +1130,28 @@ + -F/System/Library/Frameworks/ApplicationServices.framework/Frameworks + endif + +- LIBAWT_HEADLESS_FILES := \ +- awt_Font.c \ +- HeadlessToolkit.c \ +- fontpath.c \ +- VDrawingArea.c \ ++ ifndef X11_NOT_NEEDED ++ LIBAWT_HEADLESS_X11_FILES := \ + X11Color.c \ + X11Renderer.c \ + X11PMBlitLoops.c \ + X11SurfaceData.c \ + X11FontScaler_md.c \ + X11TextRenderer_md.c \ ++ GLXGraphicsConfig.c \ ++ GLXSurfaceData.c ++ endif ++ ++ ifndef CUPS_NOT_NEEDED ++ LIBAWT_HEADLESS_CUPS_FILES := \ ++ CUPSfuncs.c ++ endif ++ ++ LIBAWT_HEADLESS_FILES := \ ++ awt_Font.c \ ++ HeadlessToolkit.c \ ++ fontpath.c \ ++ VDrawingArea.c \ + OGLBlitLoops.c \ + OGLBufImgOps.c \ + OGLContext.c \ +@@ -1149,10 +1164,9 @@ + OGLSurfaceData.c \ + OGLTextRenderer.c \ + OGLVertexCache.c \ +- GLXGraphicsConfig.c \ +- GLXSurfaceData.c \ + AccelGlyphCache.c \ +- CUPSfuncs.c ++ $(LIBAWT_HEADLESS_X11_FILES) \ ++ $(LIBAWT_HEADLESS_CUPS_FILES) + + LIBAWT_HEADLESS_REORDER := + ifeq ($(OPENJDK_TARGET_OS), solaris) +--- a/jdk/make/CompileNativeLibraries.gmk.orig 2015-08-24 13:35:55.320678845 +0200 ++++ b/jdk/make/CompileNativeLibraries.gmk 2015-08-24 13:36:22.776678949 +0200 +@@ -85,7 +85,9 @@ + + include lib/Awt2dLibraries.gmk + ++ifndef BUILD_SOUNDLESS_ONLY + include lib/SoundLibraries.gmk ++endif + + # Include the corresponding custom file, if present. + -include $(CUSTOM_MAKE_DIR)/CompileNativeLibraries.gmk +--- a/jdk/src/solaris/native/sun/awt/jawt.c.orig 2015-08-24 14:12:29.376687104 +0200 ++++ b/jdk/src/solaris/native/sun/awt/jawt.c 2015-08-24 14:16:20.420687974 +0200 +@@ -33,7 +33,7 @@ + */ + JNIEXPORT jboolean JNICALL JAWT_GetAWT(JNIEnv* env, JAWT* awt) + { +-#if defined(JAVASE_EMBEDDED) && defined(HEADLESS) ++#if defined(JAVASE_EMBEDDED) || defined(HEADLESS) + /* there are no AWT libs available at all */ + return JNI_FALSE; + #else +--- a/jdk/src/solaris/native/sun/awt/utility/rect.h.orig 2015-09-03 14:45:40.717977403 +0200 ++++ b/jdk/src/solaris/native/sun/awt/utility/rect.h 2015-09-03 14:46:46.337977650 +0200 +@@ -28,7 +28,7 @@ + #ifndef _AWT_RECT_H + #define _AWT_RECT_H + +-#ifndef MACOSX ++#if !(defined(MACOSX) || defined(HEADLESS)) + #include + typedef XRectangle RECT_T; + #else diff --git a/package/openjdk/openjdk8-restrict-to-staging-dir.patch b/package/openjdk/openjdk8-restrict-to-staging-dir.patch new file mode 100644 index 0000000000..aa78a54fc8 --- /dev/null +++ b/package/openjdk/openjdk8-restrict-to-staging-dir.patch @@ -0,0 +1,11 @@ +--- a/hotspot/make/linux/makefiles/dtrace.make.orig 2015-09-01 08:00:59.737868760 +0200 ++++ b/hotspot/make/linux/makefiles/dtrace.make 2015-09-01 08:01:24.049859677 +0200 +@@ -40,7 +40,7 @@ + ifneq ($(ALT_SDT_H),) + SDT_H_FILE = $(ALT_SDT_H) + else +- SDT_H_FILE = /usr/include/sys/sdt.h ++ SDT_H_FILE = $(SYS_ROOT)/usr/include/sys/sdt.h + endif + DTRACE_ENABLED = $(shell test -f $(SDT_H_FILE) && echo $(SDT_H_FILE)) + REASON = "$(SDT_H_FILE) not found"