Skip to content

Commit 38e03e6

Browse files
patch 1
1 parent b6347de commit 38e03e6

3 files changed

Lines changed: 62 additions & 68 deletions

File tree

depends/packages/boost.mk

Lines changed: 28 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -7,43 +7,49 @@ $(package)_sha256_hash=83bfc1507731a0906e387fc28b7ef5417d591429e51e788417fe9ff02
77
define $(package)_set_vars
88
$(package)_config_opts_release=variant=release
99
$(package)_config_opts_debug=variant=debug
10+
11+
# Common options
1012
$(package)_config_opts=--layout=tagged --build-type=complete --user-config=user-config.jam
1113
$(package)_config_opts+=threading=multi link=static -sNO_BZIP2=1 -sNO_ZLIB=1
1214

15+
# Linux uses pthread + shared runtime
1316
$(package)_config_opts_linux=threadapi=pthread runtime-link=shared
1417

15-
# IMPORTANT: macOS now forced to GCC toolset
16-
$(package)_config_opts_darwin=--toolset=gcc runtime-link=shared
18+
# macOS must use clang toolset for cross-compile
19+
$(package)_config_opts_darwin=toolset=clang runtime-link=shared
1720

21+
# Windows MinGW toolchains
1822
$(package)_config_opts_mingw32=binary-format=pe target-os=windows threadapi=win32 runtime-link=static
19-
2023
$(package)_config_opts_x86_64_mingw32=address-model=64
2124
$(package)_config_opts_i686_mingw32=address-model=32
25+
26+
# 32-bit Linux
2227
$(package)_config_opts_i686_linux=address-model=32 architecture=x86
2328

24-
$(package)_toolset_$(host_os)=gcc
29+
# Toolset definitions
30+
$(package)_toolset_$(host_os)=clang
2531
$(package)_archiver_$(host_os)=$($(package)_ar)
2632

27-
# These stay defined but DO NOT get used anymore
28-
$(package)_toolset_darwin=gcc
33+
# Darwin explicit override
34+
$(package)_toolset_darwin=clang
2935
$(package)_archiver_darwin=$($(package)_ar)
3036

31-
boost_toolset_darwin=$($(package)_toolset_darwin)
32-
boost_archiver_darwin=$($(package)_archiver_darwin)
37+
boost_toolset_darwin=clang
38+
boost_archiver_darwin=$($(package)_ar)
3339

40+
# Choose libraries
3441
$(package)_config_libraries=chrono,filesystem,program_options,system,thread
3542

43+
# C++ flags
3644
$(package)_cxxflags=-std=c++11 -fvisibility=hidden
3745
$(package)_cxxflags_linux=-fPIC
3846
endef
3947

40-
# ==================================================================
41-
# PREPROCESS: FORCE GCC TOOLSET FOR MACOS + EVERY OTHER HOST
42-
# macOS cross compile will use gcc toolset with g++ invocation
43-
# This avoids Boost's broken "darwin" toolset and missing libtool.
44-
# ==================================================================
48+
# ============================================================
49+
# PREPROCESS: Create user-config.jam with the correct toolchain
50+
# ============================================================
4551
define $(package)_preprocess_cmds
46-
echo "using gcc : : $($(package)_cxx) \
52+
echo "using clang : : $($(package)_cxx) \
4753
: <cxxflags>\"$($(package)_cxxflags) $($(package)_cppflags)\" \
4854
<linkflags>\"$($(package)_ldflags)\" \
4955
<archiver>\"$($(package)_ar)\" \
@@ -57,9 +63,15 @@ define $(package)_config_cmds
5763
endef
5864

5965
define $(package)_build_cmds
60-
./b2 -d2 -j2 -d1 --prefix=$($(package)_staging_prefix_dir) $($(package)_config_opts) stage
66+
./b2 -d2 -j2 -d1 \
67+
--prefix=$($(package)_staging_prefix_dir) \
68+
$($(package)_config_opts) \
69+
stage
6170
endef
6271

6372
define $(package)_stage_cmds
64-
./b2 -d0 -j4 --prefix=$($(package)_staging_prefix_dir) $($(package)_config_opts) install
73+
./b2 -d0 -j4 \
74+
--prefix=$($(package)_staging_prefix_dir) \
75+
$($(package)_config_opts) \
76+
install
6577
endef

depends/packages/native_cctools.mk

Lines changed: 12 additions & 50 deletions
Original file line numberDiff line numberDiff line change
@@ -1,65 +1,27 @@
11
package=native_cctools
2-
$(package)_version=807d6fd1be5d2224872e381870c0a75387fe05e6
3-
$(package)_download_path=https://github.com/theuni/cctools-port/archive
4-
$(package)_file_name=$($(package)_version).tar.gz
5-
$(package)_sha256_hash=a09c9ba4684670a0375e42d9d67e7f12c1f62581a27f28f7c825d6d7032ccc6a
6-
$(package)_build_subdir=cctools
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
12-
$(package)_extra_sources=$($(package)_clang_file_name)
2+
$(package)_version=master
3+
$(package)_download_path=https://github.com/tpoechtrager/cctools-port/archive/refs/heads
4+
$(package)_file_name=$(package)_$(package)_version.tar.gz
5+
$(package)_sha256_hash=579c46ce16a269f202de4f4118db00bfdef95e3aa251cc79d4726faef9f4dab2
136

14-
define $(package)_fetch_cmds
15-
$(call fetch_file,$(package),$($(package)_download_path),$($(package)_download_file),$($(package)_file_name),$($(package)_sha256_hash)) && \
16-
$(call fetch_file,$(package),$($(package)_clang_download_path),$($(package)_clang_download_file),$($(package)_clang_file_name),$($(package)_clang_sha256_hash))
17-
endef
18-
19-
define $(package)_extract_cmds
20-
mkdir -p $($(package)_extract_dir) && \
21-
echo "$($(package)_sha256_hash) $($(package)_source)" > $($(package)_extract_dir)/.$($(package)_file_name).hash && \
22-
echo "$($(package)_clang_sha256_hash) $($(package)_source_dir)/$($(package)_clang_file_name)" >> $($(package)_extract_dir)/.$($(package)_file_name).hash && \
23-
$(build_SHA256SUM) -c $($(package)_extract_dir)/.$($(package)_file_name).hash && \
24-
mkdir -p toolchain/bin toolchain/lib/clang/3.5/include && \
25-
tar --strip-components=1 -C toolchain -xf $($(package)_source_dir)/$($(package)_clang_file_name) && \
26-
rm -f toolchain/lib/libc++abi.so* && \
27-
echo "#!/bin/sh" > toolchain/bin/$(host)-dsymutil && \
28-
echo "exit 0" >> toolchain/bin/$(host)-dsymutil && \
29-
chmod +x toolchain/bin/$(host)-dsymutil && \
30-
tar --strip-components=1 -xf $($(package)_source)
31-
endef
32-
33-
define $(package)_set_vars
34-
$(package)_config_opts=--target=$(host) --disable-lto-support
35-
$(package)_ldflags+=-Wl,-rpath=\\$$$$$$$$\$$$$$$$$ORIGIN/../lib
36-
$(package)_cc=$($(package)_extract_dir)/toolchain/bin/clang
37-
$(package)_cxx=$($(package)_extract_dir)/toolchain/bin/clang++
38-
endef
7+
$(package)_clang_version=10.0.0
8+
$(package)_clang_download_path=https://github.com/llvm/llvm-project/releases/download/llvmorg-$($(package)_clang_version)
9+
$(package)_clang_download_file=clang+llvm-$($(package)_clang_version)-x86_64-linux-gnu-ubuntu-18.04.tar.xz
10+
$(package)_clang_file_name=$($(package)_clang_download_file)
11+
$(package)_clang_sha256_hash=b25f592a0c00686f03e3b7db68ca6dc87418f681f4ead4df4745a01d9be63843
3912

4013
define $(package)_preprocess_cmds
41-
cd $($(package)_build_subdir); ./autogen.sh && \
42-
sed -i.old "/define HAVE_PTHREADS/d" ld64/src/ld/InputFiles.h
14+
cd tools && ./autogen.sh && cd ..
4315
endef
4416

4517
define $(package)_config_cmds
46-
$($(package)_autoconf)
18+
./configure --target=$(HOST) --prefix=$(build_prefix)
4719
endef
4820

4921
define $(package)_build_cmds
5022
$(MAKE)
5123
endef
5224

5325
define $(package)_stage_cmds
54-
$(MAKE) DESTDIR=$($(package)_staging_dir) install && \
55-
cd $($(package)_extract_dir)/toolchain && \
56-
mkdir -p $($(package)_staging_prefix_dir)/lib/clang/$($(package)_clang_version)/include && \
57-
mkdir -p $($(package)_staging_prefix_dir)/bin $($(package)_staging_prefix_dir)/include && \
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/ && \
62-
cp bin/llvm-dsymutil $($(package)_staging_prefix_dir)/bin/$(host)-dsymutil && \
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
26+
$(MAKE) DESTDIR=$(staging_dir) install
6527
endef

depends/packages/openssl.mk

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

77
define $(package)_set_vars
8-
$(package)_config_env=AR="$($(package)_ar)" RANLIB="$($(package)_ranlib)" CC="$($(package)_cc)"
8+
# IMPORTANT: ensure OpenSSL uses the cross-compiler
9+
$(package)_config_env= \
10+
CC="$($(package)_cc)" \
11+
AR="$($(package)_ar)" \
12+
RANLIB="$($(package)_ranlib)"
13+
914
$(package)_config_opts=--prefix=$(host_prefix) --openssldir=$(host_prefix)/etc/openssl
1015
$(package)_config_opts+=no-camellia
1116
$(package)_config_opts+=no-capieng
@@ -43,6 +48,8 @@ $(package)_config_opts+=no-whirlpool
4348
$(package)_config_opts+=no-zlib
4449
$(package)_config_opts+=no-zlib-dynamic
4550
$(package)_config_opts+=$($(package)_cflags) $($(package)_cppflags)
51+
52+
# Linux targets (unchanged)
4653
$(package)_config_opts_linux=-fPIC -Wa,--noexecstack
4754
$(package)_config_opts_x86_64_linux=linux-x86_64
4855
$(package)_config_opts_i686_linux=linux-generic32
@@ -52,14 +59,27 @@ $(package)_config_opts_aarch64_linux=linux-generic64
5259
$(package)_config_opts_mipsel_linux=linux-generic32
5360
$(package)_config_opts_mips_linux=linux-generic32
5461
$(package)_config_opts_powerpc_linux=linux-generic32
62+
63+
# macOS target (requires clang toolchain)
5564
$(package)_config_opts_x86_64_darwin=darwin64-x86_64-cc
65+
66+
# Windows targets (unchanged)
5667
$(package)_config_opts_x86_64_mingw32=mingw64
5768
$(package)_config_opts_i686_mingw32=mingw
5869
endef
5970

6071
define $(package)_preprocess_cmds
61-
sed -i.old "/define DATE/d" util/mkbuildinf.pl && \
72+
# Fix non-deterministic DATE embedding
73+
sed -i.old "/define DATE/d" util/mkbuildinf.pl
74+
75+
# Remove building unused components
6276
sed -i.old "s|engines apps test|engines|" Makefile.org
77+
78+
# CRITICAL FIX: domd must use CC from depends, not system CC
79+
sed -i.old 's|^CC=.*|CC=$(package)_cc|' util/domd || true
80+
81+
# Some OpenSSL 1.0.2 releases need this for macOS cross-compile
82+
sed -i.old 's|^CROSS_COMPILE=.*|CROSS_COMPILE=$(host)-|' Configure || true
6383
endef
6484

6585
define $(package)_config_cmds

0 commit comments

Comments
 (0)