Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update toolchains #10

Open
wants to merge 3 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 5 additions & 3 deletions .github/workflows/tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ jobs:
strategy:
fail-fast: false
matrix:
os: [macos-aarch64, macos-x86_64]
os: [macos-13-large, macos-13-xlarge]
runs-on: ${{ matrix.os }}
steps:
- name: Set up Homebrew
Expand All @@ -25,9 +25,11 @@ jobs:
# by looking for formulas with three dashes is gross, but works.
- run: brew ls --formula | grep -- '-.*-.*-.*' | xargs brew uninstall -f

- run: brew test-bot --only-setup
#- run: brew test-bot --only-setup

- run: brew test-bot --only-tap-syntax
#- run: brew test-bot --only-tap-syntax

- run: brew unlink [email protected]; brew link --overwrite [email protected]

# https://github.com/crosstool-ng/crosstool-ng/issues/1477#issuecomment-998361621
- run: brew install --HEAD crosstool-ng
Expand Down
10 changes: 1 addition & 9 deletions Formula/aarch64-unknown-linux-gnu.rb
Original file line number Diff line number Diff line change
@@ -1,23 +1,15 @@
# frozen_string_literal: true

Check warning on line 1 in Formula/aarch64-unknown-linux-gnu.rb

View workflow job for this annotation

GitHub Actions / test-bot (macos-13-xlarge)

`brew install --verbose --formula --build-bottle materializeinc/crosstools/aarch64-unknown-linux-gnu` failed on macOS Ventura (13) on Apple Silicon!

::error::aarch64-unknown-linux-gnu: Failed to download resource "aarch64-unknown-linux-gnu--gmp"%0ADownload failed: https://gmplib.org/download/gmp/gmp-6.2.1.tar.xz%0A

Check failure on line 1 in Formula/aarch64-unknown-linux-gnu.rb

View workflow job for this annotation

GitHub Actions / test-bot (macos-13-xlarge)

Stable resource "gmp": The source URL https://gmplib.org/download/gmp/gmp-6.2.1.tar.xz is not reachable

require_relative "../lib/toolchain"

class Aarch64UnknownLinuxGnu < Toolchain
desc "aarch64 Linux GNU toolchain"
version "0.1.0"

bottle do
root_url "https://github.com/MaterializeInc/homebrew-crosstools/releases/download/aarch64-unknown-linux-gnu-0.1.0"
sha256 cellar: :any, arm64_big_sur: "e9a7883db4e4bca222dacfe6576b46318ebe949f4352aa061c8b5e80d6479bea"
sha256 cellar: :any, catalina: "b9128e88b58f1afb20092c9478c7fc3d9daf935baeda344a8eae18f01231db4f"
end
version "0.2.0"

defconfig <<~EOS
CT_ARCH_64=y
CT_ARCH_ARM=y
EOS
glibc_version "2.26"
linux_version "3.10"

def test_signature(sig)
assert_match "ELF 64-bit LSB executable, ARM aarch64, version 1 (SYSV)", sig
Expand Down
10 changes: 1 addition & 9 deletions Formula/x86_64-unknown-linux-gnu.rb
Original file line number Diff line number Diff line change
@@ -1,23 +1,15 @@
# frozen_string_literal: true

Check warning on line 1 in Formula/x86_64-unknown-linux-gnu.rb

View workflow job for this annotation

GitHub Actions / test-bot (macos-13-xlarge)

`brew install --verbose --formula --build-bottle materializeinc/crosstools/x86_64-unknown-linux-gnu` failed on macOS Ventura (13) on Apple Silicon!

::error::x86_64-unknown-linux-gnu: Failed to download resource "x86_64-unknown-linux-gnu--gmp"%0ADownload failed: https://gmplib.org/download/gmp/gmp-6.2.1.tar.xz%0A

Check failure on line 1 in Formula/x86_64-unknown-linux-gnu.rb

View workflow job for this annotation

GitHub Actions / test-bot (macos-13-xlarge)

Stable resource "gmp": The source URL https://gmplib.org/download/gmp/gmp-6.2.1.tar.xz is not reachable

require_relative "../lib/toolchain"

class X8664UnknownLinuxGnu < Toolchain
desc "x86_64 Linux GNU toolchain"
version "0.1.0"

bottle do
root_url "https://github.com/MaterializeInc/homebrew-crosstools/releases/download/x86_64-unknown-linux-gnu-0.1.0"
sha256 cellar: :any, arm64_big_sur: "bb23a1e08218c0acdfe8701c0a0aea5a76adb010610c941976a0368939debbd4"
sha256 cellar: :any, catalina: "8290d01510eb2a1bb8c6f4c97e88ad73e1536ffb9b3e0eb2417b25cb294d114d"
end
version "0.2.0"

defconfig <<~EOS
CT_ARCH_64=y
CT_ARCH_X86=y
EOS
glibc_version "2.12.1"
linux_version "2.6.32"

def test_signature(sig)
assert_match "ELF 64-bit LSB executable, x86-64, version 1 (SYSV)", sig
Expand Down
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,8 +17,8 @@ brew install MaterializeInc/crosstools/<toolchain>

Target | Binutils | GCC | Kernel | Glibc
------------------------------|----------|---------|----------|-------
[`aarch64-unknown-linux-gnu`] | 2.37 | 11.2.0 | 3.10.108 | 2.26.0
[`x86_64-unknown-linux-gnu`] | 2.37 | 11.2.0 | 2.6.32 | 2.12.1
[`aarch64-unknown-linux-gnu`] | 2.40 | 13.2.0 | 5.10.185 | 2.35
[`x86_64-unknown-linux-gnu`] | 2.40 | 13.2.0 | 5.10.185 | 2.35


## Contributing
Expand Down
110 changes: 46 additions & 64 deletions lib/toolchain.rb
Original file line number Diff line number Diff line change
@@ -1,55 +1,51 @@
# frozen_string_literal: true

TAP_PATH = (HOMEBREW_TAP_DIRECTORY/"MaterializeInc"/"homebrew-crosstools").freeze
TAP_PATH = (HOMEBREW_TAP_DIRECTORY/"def-"/"homebrew-crosstools").freeze

class Toolchain < Formula
desc "Appease RuboCop; not used"
homepage "https://see.above"

DEFCONFIG = <<~EOF
<%= defconfig %>
CT_ALLOW_BUILD_AS_ROOT=y
CT_ALLOW_BUILD_AS_ROOT_SURE=y
CT_ARCH_ARM=y
CT_ARCH_64=y
CT_BINUTILS_LINKER_LD_GOLD=y
CT_BINUTILS_GOLD_THREADS=y
CT_BINUTILS_LD_WRAPPER=y
CT_BINUTILS_LINKER_LD_GOLD=y
CT_BINUTILS_PLUGINS=y
CT_BINUTILS_V_2_37=y
CT_CC_GCC_BUILD_ID=y
CT_CC_LANG_CXX=y
# CT_COMP_TOOLS_AUTOCONF is not set
# CT_COMP_TOOLS_AUTOMAKE is not set
CT_CONFIG_VERSION="3"
<% if Context.current.debug? %>
CT_DEBUG_CT=y
CT_DEBUG_CT_SAVE_STEPS=y
<% end %>
CT_EXPERIMENTAL=y
CT_FORBID_DOWNLOAD=y
CT_GCC_V_11=y
CT_GETTEXT_V_0_21=y
CT_GLIBC_V_<%= glibc_version.gsub(".", "_") %>=y
# CT_GLIBC_ENABLE_OBSOLETE_RPC is not set
CT_GMP_V_6_2=y
CT_ISL_V_0_24=y
CT_GLIBC_V_2_35=y
CT_KERNEL_LINUX=y
CT_LIBC_GLIBC=yCT_DEBUG_CT=y
CT_LIBICONV_V_1_16=y
CT_LINUX_V_<%= linux_version.gsub(".", "_") %>=y
CT_LIBC_GLIBC=y
CT_LINUX_V_5_10=y
CT_LOCAL_TARBALLS_DIR="<%= buildpath %>/tarballs"
CT_LOCAL_PATCH_DIR="<%= buildpath %>/patches"
# CT_LOG_PROGRESS_BAR is not set
CT_MPC_V_1_2=y
CT_MPFR_V_4_1=y
CT_NCURSES_V_6_2=y
# CT_LOG_TO_FILE is not set
CT_PATCH_ORDER="bundled,local"
CT_PATCH_BUNDLED_LOCAL=y
CT_PATCH_USE_LOCAL=y
CT_PREFIX_DIR="<%= buildpath %>/mnt/install"
<% if Context.current.debug? %>
CT_DEBUG_CT=y
CT_DEBUG_CT_SAVE_STEPS=y
<% end %>
CT_PREFIX_DIR="${CT_PREFIX:-/opt/x-tools}/${CT_HOST:+HOST-${CT_HOST}/}${CT_TARGET}"
# CT_SAVE_TARBALLS is not set
EOF

delegate defconfig: :"self.class"
delegate glibc_version: :"self.class"
delegate linux_version: :"self.class"

class << self
attr_rw :defconfig
attr_rw :glibc_version
attr_rw :linux_version

def inherited(formula)
super
Expand Down Expand Up @@ -79,33 +75,23 @@ def inject
depends_on "zstd"

resource "binutils" do
url "https://ftp.gnu.org/pub/gnu/binutils/binutils-2.37.tar.xz"
sha256 "820d9724f020a3e69cb337893a0b63c2db161dadcb0e06fc11dc29eb1e84a32c"
url "https://ftp.gnu.org/pub/gnu/binutils/binutils-2.40.tar.xz"
sha256 "0f8a4c272d7f17f369ded10a4aca28b8e304828e95526da482b0ccc4dfc9d8e1"
end

resource "gcc" do
url "https://ftp.gnu.org/gnu/gcc/gcc-11.2.0/gcc-11.2.0.tar.xz"
sha256 "d08edc536b54c372a1010ff6619dd274c0f1603aa49212ba20f7aa2cda36fa8b"
url "https://ftp.gnu.org/gnu/gcc/gcc-13.2.0/gcc-13.2.0.tar.xz"
sha256 "e275e76442a6067341a27f04c5c6b83d8613144004c0413528863dc6b5c743da"
end

resource "gettext" do
url "https://ftp.gnu.org/pub/gnu/gettext/gettext-0.21.tar.xz"
sha256 "d20fcbb537e02dcf1383197ba05bd0734ef7bf5db06bdb241eb69b7d16b73192"
end

case glibc_version
when "2.12.1"
resource "glibc" do
url "https://ftp.gnu.org/pub/gnu/glibc/glibc-2.12.1.tar.xz"
sha256 "9e633fb278b411a90636cc1c4bf1ffddcc8b0d214f5bacd74bfcdaac81d6035e"
end
when "2.26"
resource "glibc" do
url "https://ftp.gnu.org/pub/gnu/glibc/glibc-2.26.tar.xz"
sha256 "e54e0a934cd2bc94429be79da5e9385898d2306b9eaf3c92d5a77af96190f6bd"
end
else
raise "unsupported glibc version #{glibc_version}"
resource "glibc" do
url "https://ftp.gnu.org/pub/gnu/glibc/glibc-2.35.tar.xz"
sha256 "5123732f6b67ccd319305efd399971d58592122bcc2a6518a1bd2510dd0cf52e"
end

resource "gmp" do
Expand All @@ -114,48 +100,43 @@ def inject
end

resource "isl" do
url "https://libisl.sourceforge.io/isl-0.24.tar.xz"
sha256 "043105cc544f416b48736fff8caf077fb0663a717d06b1113f16e391ac99ebad"
url "https://libisl.sourceforge.io/isl-0.26.tar.xz"
sha256 "a0b5cb06d24f9fa9e77b55fabbe9a3c94a336190345c2555f9915bb38e976504"
end

resource "libiconv" do
url "https://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.16.tar.gz"
sha256 "e6a1b1b589654277ee790cce3734f07876ac4ccfaecbee8afa0b649cf529cc04"
end

case linux_version
when "2.6.32"
resource "linux" do
url "https://cdn.kernel.org/pub/linux/kernel/v2.6/longterm/v2.6.32/linux-2.6.32.71.tar.xz"
sha256 "60a5ffe0206a0ea8997c29ccc595aa7dae55f6cb20c7d92aab88029ca4fef598"
end
when "3.10"
resource "linux" do
url "https://cdn.kernel.org/pub/linux/kernel/v3.x/linux-3.10.108.tar.xz"
sha256 "3849ea8119517f605f9d53c57dd6c539af8d584c2f1d9031f4f56283af3409a5"
end
else
raise "unsupported linux version #{linux_version}"
resource "linux" do
url "https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-5.10.185.tar.xz"
sha256 "280662ec8dc8738cf947ad66e748141abd58cbe3b5ed66b7f2b153222b7c7090"
end

resource "mpc" do
url "https://www.multiprecision.org/downloads/mpc-1.2.0.tar.gz"
sha256 "e90f2d99553a9c19911abdb4305bf8217106a957e3994436428572c8dfe8fda6"
url "https://www.multiprecision.org/downloads/mpc-1.2.1.tar.gz"
sha256 "17503d2c395dfcf106b622dc142683c1199431d095367c6aacba6eec30340459"
end

resource "mpfr" do
url "https://www.mpfr.org/mpfr-4.1.0/mpfr-4.1.0.tar.xz"
sha256 "0c98a3f1732ff6ca4ea690552079da9c597872d30e96ec28414ee23c95558a7f"
url "https://www.mpfr.org/mpfr-4.2.1/mpfr-4.2.1.tar.xz"
sha256 "277807353a6726978996945af13e52829e3abd7a9a5b7fb2793894e18f1fcbb2"
end

resource "ncurses" do
url "https://invisible-mirror.net/archives/ncurses/ncurses-6.2.tar.gz"
sha256 "30306e0c76e0f9f1f0de987cf1c82a5c21e1ce6568b9227f7da5b71cbea86c9d"
url "https://invisible-mirror.net/archives/ncurses/ncurses-6.4.tar.gz"
sha256 "6931283d9ac87c5073f30b6290c4c75f21632bb4fc3603ac8100812bed248159"
end

resource "zlib" do
url "https://downloads.sourceforge.net/project/libpng/zlib/1.2.11/zlib-1.2.11.tar.xz"
sha256 "4ff941449631ace0d4d203e3483be9dbc9da454084111f97ea0a2114e19bf066"
url "https://github.com/madler/zlib/releases/download/v1.2.13/zlib-1.2.13.tar.xz"
sha256 "d14c38e313afc35a9a8760dadf26042f51ea0f5d154b0630a31da0540107fb98"
end

resource "zstd" do
url "https://github.com/facebook/zstd/releases/download/v1.5.5/zstd-1.5.5.tar.gz"
sha256 "9c4396cc829cfae319a6e2615202e82aad41372073482fce286fac78646d3ee4"
end
end
end
Expand Down Expand Up @@ -205,6 +186,7 @@ def install
rm_r "mnt/install/lib/bfd-plugins"
rm ["mnt/install/lib/libcc1.so", "mnt/install/lib/libcc1.0.so"]
chmod "-w", "mnt/install/lib"
mkdir "mnt/install/bin"

cp_r "mnt/install/.", prefix
end
Expand Down
Loading
Loading