Skip to content

Commit ab44f41

Browse files
patch 3
1 parent 104a2ed commit ab44f41

4 files changed

Lines changed: 73 additions & 93 deletions

File tree

.github/workflows/ci.yml

Lines changed: 5 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -183,25 +183,20 @@ jobs:
183183
if: ${{ matrix.sdk }}
184184
shell: bash
185185
env:
186-
SDK_URL: https://github.com/phracker/MacOSX-SDKs/releases/download/11.0-11.1
186+
SDK_URL: https://github.com/phracker/MacOSX-SDKs/releases/download/10.15
187187
sdk-filename: MacOSX${{ matrix.sdk }}.sdk.tar.xz
188188
run: |
189189
set -euo pipefail
190-
191190
mkdir -p ./depends/sdk-sources ./depends/SDKs
192-
193-
echo "📦 Downloading macOS SDK ${{ matrix.sdk }} (10.8)…"
191+
echo "📦 Downloading macOS SDK ${{ matrix.sdk }} from phracker…"
194192
curl -L --fail \
195193
"$SDK_URL/${{ env.sdk-filename }}" \
196194
-o "depends/sdk-sources/${{ env.sdk-filename }}"
197-
198-
echo "🔐 Verifying checksum for macOS SDK 10.8…"
195+
echo "🔐 Verifying checksum…"
199196
echo "${{ matrix.sdk-shasum }} depends/sdk-sources/${{ env.sdk-filename }}" | sha256sum -c
200-
201-
echo "📂 Extracting macOS SDK 10.8…"
197+
echo "📂 Extracting SDK…"
202198
tar -C depends/SDKs -xf "depends/sdk-sources/${{ env.sdk-filename }}"
203-
204-
echo "✅ SDK installed at: depends/SDKs/MacOSX${{ matrix.sdk }}.sdk"
199+
echo "✅ SDK installed: depends/SDKs/${{ env.sdk-filename }}"
205200
206201
- name: Dependency cache
207202
uses: actions/cache@v4

depends/packages/boost.mk

Lines changed: 17 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -10,60 +10,50 @@ $(package)_config_opts_debug=variant=debug
1010
$(package)_config_opts=--layout=tagged --build-type=complete --user-config=user-config.jam
1111
$(package)_config_opts+=threading=multi link=static -sNO_BZIP2=1 -sNO_ZLIB=1
1212

13-
# Linux → pthread + gcc
1413
$(package)_config_opts_linux=threadapi=pthread runtime-link=shared
1514

16-
# macOS → use clang from native_cctools
17-
$(package)_config_opts_darwin=toolset=clang runtime-link=shared
15+
$(package)_config_opts_darwin=--toolset=clang runtime-link=shared
1816

19-
# MinGW (Windows) → original gcc-based rules
2017
$(package)_config_opts_mingw32=binary-format=pe target-os=windows threadapi=win32 runtime-link=static
18+
2119
$(package)_config_opts_x86_64_mingw32=address-model=64
2220
$(package)_config_opts_i686_mingw32=address-model=32
23-
24-
# 32-bit Linux
2521
$(package)_config_opts_i686_linux=address-model=32 architecture=x86
2622

27-
# Toolsets per-host
28-
# --------------------------------------------------------
29-
# Linux, ARM, Windows → gcc
30-
$(package)_toolset_linux=gcc
31-
$(package)_toolset_mingw32=gcc
32-
$(package)_toolset_arm=gcc
33-
$(package)_toolset_aarch64=gcc
34-
$(package)_toolset_i686_linux=gcc
35-
$(package)_toolset_x86_64_linux=gcc
23+
$(package)_toolset_$(host_os)=gcc
24+
$(package)_archiver_$(host_os)=$($(package)_ar)
3625

37-
# macOS → clang
38-
$(package)_toolset_darwin=clang
39-
# --------------------------------------------------------
26+
# These stay defined but DO NOT get used anymore
27+
$(package)_toolset_darwin=gcc
28+
$(package)_archiver_darwin=$($(package)_ar)
4029

41-
$(package)_archiver_$(host_os)=$($(package)_ar)
42-
boost_toolset_darwin=clang
30+
boost_toolset_darwin=$($(package)_toolset_darwin)
31+
boost_archiver_darwin=$($(package)_archiver_darwin)
4332

4433
$(package)_config_libraries=chrono,filesystem,program_options,system,thread
34+
4535
$(package)_cxxflags=-std=c++11 -fvisibility=hidden
4636
$(package)_cxxflags_linux=-fPIC
4737
endef
4838

49-
# ============================================================
50-
# PREPROCESS: Create user-config.jam dynamically:
51-
# - gcc for non-macOS
52-
# - clang for macOS
53-
# ============================================================
5439
define $(package)_preprocess_cmds
40+
5541
if [ "$(host_os)" = "darwin" ]; then \
5642
echo "using clang : : $($(package)_cxx) \
5743
: <cxxflags>\"$($(package)_cxxflags) $($(package)_cppflags)\" \
5844
<linkflags>\"$($(package)_ldflags)\" \
5945
<archiver>\"$($(package)_ar)\" \
60-
<ranlib>\"$(host_RANLIB)\" ;" > user-config.jam ; \
46+
<ranlib>\"$(host_RANLIB)\" \
47+
<striper>\"$(host_STRIP)\" \
48+
;" > user-config.jam; \
6149
else \
6250
echo "using gcc : : $($(package)_cxx) \
6351
: <cxxflags>\"$($(package)_cxxflags) $($(package)_cppflags)\" \
6452
<linkflags>\"$($(package)_ldflags)\" \
6553
<archiver>\"$($(package)_ar)\" \
66-
<ranlib>\"$(host_RANLIB)\" ;" > user-config.jam ; \
54+
<ranlib>\"$(host_RANLIB)\" \
55+
<striper>\"$(host_STRIP)\" \
56+
;" > user-config.jam; \
6757
fi
6858
endef
6959

depends/packages/native_cctools.mk

Lines changed: 31 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -4,14 +4,11 @@ $(package)_download_path=https://github.com/theuni/cctools-port/archive
44
$(package)_file_name=$($(package)_version).tar.gz
55
$(package)_sha256_hash=a09c9ba4684670a0375e42d9d67e7f12c1f62581a27f28f7c825d6d7032ccc6a
66
$(package)_build_subdir=cctools
7-
8-
# Updated LLVM toolchain (Ubuntu 18.04)
9-
$(package)_clang_version=10.0.0
10-
$(package)_clang_download_path=https://github.com/llvm/llvm-project/releases/download/llvmorg-$($(package)_clang_version)
11-
$(package)_clang_download_file=clang+llvm-$($(package)_clang_version)-x86_64-linux-gnu-ubuntu-18.04.tar.xz
12-
$(package)_clang_file_name=$($(package)_clang_download_file)
13-
$(package)_clang_sha256_hash=b25f592a0c00686f03e3b7db68ca6dc87418f681f4ead4df4745a01d9be63843
14-
7+
$(package)_clang_version=3.7.1
8+
$(package)_clang_download_path=http://llvm.org/releases/$($(package)_clang_version)
9+
$(package)_clang_download_file=clang+llvm-$($(package)_clang_version)-x86_64-linux-gnu-ubuntu-14.04.tar.xz
10+
$(package)_clang_file_name=clang-llvm-$($(package)_clang_version)-x86_64-linux-gnu-ubuntu-14.04.tar.xz
11+
$(package)_clang_sha256_hash=99b28a6b48e793705228a390471991386daa33a9717cd9ca007fcdde69608fd9
1512
$(package)_extra_sources=$($(package)_clang_file_name)
1613

1714
define $(package)_fetch_cmds
@@ -24,23 +21,13 @@ define $(package)_extract_cmds
2421
echo "$($(package)_sha256_hash) $($(package)_source)" > $($(package)_extract_dir)/.$($(package)_file_name).hash && \
2522
echo "$($(package)_clang_sha256_hash) $($(package)_source_dir)/$($(package)_clang_file_name)" >> $($(package)_extract_dir)/.$($(package)_file_name).hash && \
2623
$(build_SHA256SUM) -c $($(package)_extract_dir)/.$($(package)_file_name).hash && \
27-
\
28-
# Extract cctools-port first
29-
tar --strip-components=1 -xf $($(package)_source) && \
30-
\
31-
# Prepare toolchain dirs
32-
mkdir -p toolchain/bin toolchain/lib/clang/$($(package)_clang_version)/include && \
33-
\
34-
# Extract LLVM toolchain
24+
mkdir -p toolchain/bin toolchain/lib/clang/3.5/include && \
3525
tar --strip-components=1 -C toolchain -xf $($(package)_source_dir)/$($(package)_clang_file_name) && \
36-
\
37-
# Remove bundled libc++abi (conflicts)
3826
rm -f toolchain/lib/libc++abi.so* && \
39-
\
40-
# Fake dsymutil (not needed during cross-compile)
4127
echo "#!/bin/sh" > toolchain/bin/$(host)-dsymutil && \
4228
echo "exit 0" >> toolchain/bin/$(host)-dsymutil && \
43-
chmod +x toolchain/bin/$(host)-dsymutil
29+
chmod +x toolchain/bin/$(host)-dsymutil && \
30+
tar --strip-components=1 -xf $($(package)_source)
4431
endef
4532

4633
define $(package)_set_vars
@@ -57,7 +44,7 @@ endef
5744

5845
define $(package)_config_cmds
5946
$($(package)_autoconf)
60-
endedef
47+
endef
6148

6249
define $(package)_build_cmds
6350
$(MAKE)
@@ -66,23 +53,29 @@ endef
6653
define $(package)_stage_cmds
6754
$(MAKE) DESTDIR=$($(package)_staging_dir) install && \
6855
cd $($(package)_extract_dir)/toolchain && \
69-
\
7056
mkdir -p $($(package)_staging_prefix_dir)/lib/clang/$($(package)_clang_version)/include && \
7157
mkdir -p $($(package)_staging_prefix_dir)/bin $($(package)_staging_prefix_dir)/include && \
72-
\
73-
cp bin/clang $($(package)_staging_prefix_dir)/bin/ && \
74-
cp -P bin/clang++ $($(package)_staging_prefix_dir)/bin/ && \
75-
\
76-
# Copy LLVM libs (conditionally)
77-
if [ -f lib/libLTO.so ]; then cp lib/libLTO.so $($(package)_staging_prefix_dir)/lib/; fi && \
78-
if [ -f lib/libRemarks.so ]; then cp lib/libRemarks.so $($(package)_staging_prefix_dir)/lib/; fi && \
79-
\
80-
# Copy clang builtin headers
81-
cp -rf lib/clang/$($(package)_clang_version)/include/* \
82-
$($(package)_staging_prefix_dir)/lib/clang/$($(package)_clang_version)/include/ && \
83-
\
58+
cp bin/clang $($(package)_staging_prefix_dir)/bin/ &&\
59+
cp -P bin/clang++ $($(package)_staging_prefix_dir)/bin/ &&\
60+
cp lib/libLTO.so $($(package)_staging_prefix_dir)/lib/ && \
61+
cp -rf lib/clang/$($(package)_clang_version)/include/* $($(package)_staging_prefix_dir)/lib/clang/$($(package)_clang_version)/include/ && \
8462
cp bin/llvm-dsymutil $($(package)_staging_prefix_dir)/bin/$(host)-dsymutil && \
85-
\
86-
if [ -d include/c++/ ]; then cp -rf include/c++/ $($(package)_staging_prefix_dir)/include/; fi && \
87-
if [ -d lib/c++/ ]; then cp -rf lib/c++/ $($(package)_staging_prefix_dir)/lib/; fi
63+
if `test -d include/c++/`; then cp -rf include/c++/ $($(package)_staging_prefix_dir)/include/; fi && \
64+
if `test -d lib/c++/`; then cp -rf lib/c++/ $($(package)_staging_prefix_dir)/lib/; fi
8865
endef
66+
67+
# ============================================================
68+
# macOS-only overrides (safe, does NOT affect other platforms)
69+
# ============================================================
70+
ifeq ($(host_os),darwin)
71+
72+
# Force REAL CC and CXX used by configure
73+
CC=$(build_prefix)/native/bin/clang
74+
CXX=$(build_prefix)/native/bin/clang++
75+
76+
# Prevent ld64 / clang warnings from breaking the build
77+
CFLAGS+= -Wno-unused-command-line-argument
78+
CXXFLAGS+= -Wno-unused-command-line-argument
79+
LDFLAGS+= -Wno-unused-command-line-argument
80+
81+
endif

depends/packages/openssl.mk

Lines changed: 20 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,7 @@ $(package)_file_name=$(package)-$($(package)_version).tar.gz
55
$(package)_sha256_hash=14cb464efe7ac6b54799b34456bd69558a749a4931ecfd9cf9f71d7881cac7bc
66

77
define $(package)_set_vars
8-
# Use depends toolchain everywhere (Linux, Windows, macOS, etc.)
9-
$(package)_config_env= \
10-
AR="$($(package)_ar)" \
11-
RANLIB="$($(package)_ranlib)" \
12-
CC="$($(package)_cc)"
13-
8+
$(package)_config_env=AR="$($(package)_ar)" RANLIB="$($(package)_ranlib)" CC="$($(package)_cc)"
149
$(package)_config_opts=--prefix=$(host_prefix) --openssldir=$(host_prefix)/etc/openssl
1510
$(package)_config_opts+=no-camellia
1611
$(package)_config_opts+=no-capieng
@@ -48,8 +43,6 @@ $(package)_config_opts+=no-whirlpool
4843
$(package)_config_opts+=no-zlib
4944
$(package)_config_opts+=no-zlib-dynamic
5045
$(package)_config_opts+=$($(package)_cflags) $($(package)_cppflags)
51-
52-
# Linux
5346
$(package)_config_opts_linux=-fPIC -Wa,--noexecstack
5447
$(package)_config_opts_x86_64_linux=linux-x86_64
5548
$(package)_config_opts_i686_linux=linux-generic32
@@ -59,23 +52,32 @@ $(package)_config_opts_aarch64_linux=linux-generic64
5952
$(package)_config_opts_mipsel_linux=linux-generic32
6053
$(package)_config_opts_mips_linux=linux-generic32
6154
$(package)_config_opts_powerpc_linux=linux-generic32
62-
63-
# macOS cross-compile (uses clang from native_cctools toolchain)
6455
$(package)_config_opts_x86_64_darwin=darwin64-x86_64-cc
65-
66-
# Windows
6756
$(package)_config_opts_x86_64_mingw32=mingw64
6857
$(package)_config_opts_i686_mingw32=mingw
6958
endef
7059

60+
# ============================================================
61+
# macOS-only overrides (safe fix — no effect on other builds)
62+
# ============================================================
63+
ifeq ($(host_os),darwin)
64+
65+
$(package)_config_env += CC="$(build_prefix)/native/bin/clang"
66+
$(package)_config_env += CXX="$(build_prefix)/native/bin/clang++"
67+
$(package)_config_env += AR="$(build_prefix)/native/bin/$(host)-ar"
68+
$(package)_config_env += RANLIB="$(build_prefix)/native/bin/$(host)-ranlib"
69+
70+
# Use generic clang backend instead of darwin64-x86_64-cc
71+
$(package)_config_opts_x86_64_darwin=clang
72+
73+
$(package)_cflags += -Wno-unused-command-line-argument
74+
$(package)_ldflags += -Wno-unused-command-line-argument
75+
76+
endif
77+
7178
define $(package)_preprocess_cmds
72-
# Remove DATE to avoid non-determinism
7379
sed -i.old "/define DATE/d" util/mkbuildinf.pl && \
74-
# Don't build apps/tests, just engines + libs
75-
sed -i.old "s|engines apps test|engines|" Makefile.org && \
76-
# 🔥 Important for cross-compile:
77-
# Make domd respect CC from environment instead of hardcoding cc.
78-
sed -i.old 's/^CC=cc$/CC=$${CC:-cc}/' util/domd || true
80+
sed -i.old "s|engines apps test|engines|" Makefile.org
7981
endef
8082

8183
define $(package)_config_cmds

0 commit comments

Comments
 (0)