Skip to content

Commit

Permalink
openjdk@8 1.8.0-432
Browse files Browse the repository at this point in the history
  • Loading branch information
calvinit committed Nov 2, 2024
1 parent e7ea73c commit aa34fd4
Showing 1 changed file with 32 additions and 27 deletions.
59 changes: 32 additions & 27 deletions Formula/o/openjdk@8.rb
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
class OpenjdkAT8 < Formula
desc "Development kit for the Java programming language"
homepage "https://openjdk.java.net/"
url "https://github.com/openjdk/jdk8u/archive/refs/tags/jdk8u422-ga.tar.gz"
version "1.8.0-422"
sha256 "3931898b4336f0e583a5e97df7e5c339d859d53afaff6dafe20124107e836ebe"
url "https://github.com/openjdk/jdk8u/archive/refs/tags/jdk8u432-ga.tar.gz"
version "1.8.0-432"
sha256 "6ac8ee2b6932e4632ea2c33fe2320d6ceaca50a67521fac02a67027e40437460"
license "GPL-2.0-only"

livecheck do
Expand Down Expand Up @@ -33,6 +33,15 @@ class OpenjdkAT8 < Formula
uses_from_macos "unzip"
uses_from_macos "zip"

# NOTE: Since macOS Sonoma or newer don’t include the required headers for JNF (JavaNativeFoundation.framework),
# we will use the headers provided at https://github.com/apple/openjdk.
on_sonoma :or_newer do
resource "JavaNativeFoundation" do
url "https://github.com/apple/openjdk/archive/refs/tags/iTunesOpenJDK-1014.0.2.12.1.tar.gz"
sha256 "e8556a73ea36c75953078dfc1bafc9960e64593bc01e733bc772d2e6b519fd4a"
end
end

on_monterey :or_newer do
depends_on "gawk" => :build
end
Expand All @@ -49,8 +58,8 @@ class OpenjdkAT8 < Formula
depends_on "libxtst"
end

# Oracle doesn't serve JDK 7 downloads anymore, so we use Zulu JDK 7 for bootstrapping.
# https://www.azul.com/downloads/?version=java-7-lts&package=jdk
# NOTE: Oracle doesn't serve JDK 7 downloads anymore, so we use Zulu JDK 7 for bootstrapping.
# https://www.azul.com/downloads/?version=java-7-lts&package=jdk&show-old-builds=true#zulu
resource "boot-jdk" do
on_macos do
url "https://cdn.azul.com/zulu/bin/zulu7.56.0.11-ca-jdk7.0.352-macosx_x64.tar.gz"
Expand All @@ -62,7 +71,7 @@ class OpenjdkAT8 < Formula
end
end

# Fix `clang++ -std=gnu++11` compile failure issue on MacOS.
# Fix `clang++ -std=gnu++11` compile failure issue on macOS.
patch :p0 do
url "https://raw.githubusercontent.com/macports/macports-ports/04ad4a17332e391cd359271965d4c6dac87a7eb2/java/openjdk8/files/0001-8181503-Can-t-compile-hotspot-with-c-11.patch"
sha256 "a02e0ea7c70390796e46b8b6565f986fedc17a08aa039ee3306438a39a60538a"
Expand All @@ -79,8 +88,7 @@ def install
resource("boot-jdk").stage boot_jdk
java_options = ENV.delete("_JAVA_OPTIONS")

# Work around clashing -I/usr/include and -isystem headers,
# as superenv already handles this detail for us.
# Work around clashing -I/usr/include and -isystem headers, as superenv already handles this detail for us.
inreplace "common/autoconf/flags.m4",
'-isysroot \"$SYSROOT\"', ""
inreplace "common/autoconf/toolchain.m4",
Expand All @@ -96,7 +104,7 @@ def install
s.gsub! "MACOSX_VERSION_MIN=10.7.0", "MACOSX_VERSION_MIN=#{MacOS.version}"
end
else
# Fix linker errors on brewed GCC
# Fix linker errors on brewed GCC.
inreplace "common/autoconf/flags.m4", "-Xlinker -O1", ""
inreplace "hotspot/make/linux/makefiles/gcc.make", "-Xlinker -O1", ""
end
Expand All @@ -119,29 +127,26 @@ def install

ldflags = ["-Wl,-rpath,#{loader_path.gsub("$", "\\$$$$")}/server"]
if OS.mac?
# Work around Xcode 16 bug: https://bugs.openjdk.org/browse/JDK-8340341
ENV.append_to_cflags("-mllvm -enable-constraint-elimination=0") if DevelopmentTools.clang_build_version == 1600

args += %w[
--with-toolchain-type=clang
--with-zlib=system
]

# Work around SDK issues with JavaVM framework.
if MacOS.version <= :catalina
sdk_path = MacOS::CLT.sdk_path(MacOS.version)
ENV["SDKPATH"] = ENV["SDKROOT"] = sdk_path
javavm_framework_path = sdk_path/"System/Library/Frameworks/JavaVM.framework/Frameworks"
args += %W[
--with-extra-cflags=-F#{javavm_framework_path}
--with-extra-cxxflags=-F#{javavm_framework_path}
]
ldflags << "-F#{javavm_framework_path}"
# Fix "'JavaNativeFoundation/JavaNativeFoundation.h' file not found" issue on MacOS Sonoma.
elsif MacOS.version == :sonoma
javavm_framework_path = "/Library/Developer/CommandLineTools/SDKs/MacOSX13.sdk/System/Library/Frameworks"
args += %W[
--with-extra-cflags=-F#{javavm_framework_path}
--with-extra-cxxflags=-F#{javavm_framework_path}
]
ldflags << "-F#{javavm_framework_path}"
# On macOS Sonoma or newer, we provide the missing JNF headers from an external resource.
if MacOS.version >= :sonoma
resource("JavaNativeFoundation").stage do
(buildpath/"JavaNativeFoundation").install(Pathname.pwd/"apple/JavaNativeFoundation/JavaNativeFoundation")
(buildpath/"hotspot/agent/src/os/bsd").install_symlink buildpath/"JavaNativeFoundation"
args += %W[
--with-extra-cflags=-I#{buildpath/"JavaNativeFoundation"}
--with-extra-cxxflags=-I#{buildpath/"JavaNativeFoundation"}
]
end
# Only the headers use our own; the others still use the built-in framework's.
ldflags << "-Wl,-rpath,#{MacOS.sdk_path}/System/Library/Frameworks"
end
else
args += %W[
Expand Down

0 comments on commit aa34fd4

Please sign in to comment.