Skip to content

Commit 9b60690

Browse files
committed
cctools: fixup building with LTO
Use lto.h from clang+llvm not libtapi. The later is older, and comes bundled with the libtapi repo. Copy libLTO.so when building with FORCE_USE_SYSTEM_CLANG.
1 parent 1abbae6 commit 9b60690

File tree

4 files changed

+15
-3
lines changed

4 files changed

+15
-3
lines changed

depends/hosts/darwin.mk

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ darwin_native_toolchain=native_cctools
1717

1818
clang_prog=$(build_prefix)/bin/clang
1919
clangxx_prog=$(clang_prog)++
20+
llvm_config_prog=$(build_prefix)/bin/llvm-config
2021

2122
clang_resource_dir=$(build_prefix)/lib/clang/$(native_clang_version)
2223
else
@@ -34,8 +35,10 @@ darwin_native_toolchain=
3435
# Source: https://lists.gnu.org/archive/html/bug-make/2017-11/msg00017.html
3536
clang_prog=$(shell $(SHELL) $(.SHELLFLAGS) "command -v clang")
3637
clangxx_prog=$(shell $(SHELL) $(.SHELLFLAGS) "command -v clang++")
38+
llvm_config_prog=$(shell $(SHELL) $(.SHELLFLAGS) "command -v llvm-config")
3739

3840
clang_resource_dir=$(shell clang -print-resource-dir)
41+
llvm_lib_dir=$(shell $(llvm_config_prog) --libdir)
3942
endif
4043

4144
cctools_TOOLS=AR RANLIB STRIP NM LIBTOOL OTOOL INSTALL_NAME_TOOL DSYMUTIL

depends/packages/native_cctools.mk

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,9 +16,17 @@ define $(package)_set_vars
1616
$(package)_cxx=$(clangxx_prog)
1717
endef
1818

19+
ifneq ($(strip $(FORCE_USE_SYSTEM_CLANG)),)
1920
define $(package)_preprocess_cmds
21+
mkdir -p $($(package)_staging_prefix_dir)/lib && \
22+
cp $(llvm_lib_dir)/libLTO.so $($(package)_staging_prefix_dir)/lib/ && \
2023
cp -f $(BASEDIR)/config.guess $(BASEDIR)/config.sub cctools
2124
endef
25+
else
26+
define $(package)_preprocess_cmds
27+
cp -f $(BASEDIR)/config.guess $(BASEDIR)/config.sub cctools
28+
endef
29+
endif
2230

2331
define $(package)_config_cmds
2432
$($(package)_autoconf)

depends/packages/native_clang.mk

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,10 +16,13 @@ endef
1616
define $(package)_stage_cmds
1717
mkdir -p $($(package)_staging_prefix_dir)/lib/clang/$($(package)_version)/include && \
1818
mkdir -p $($(package)_staging_prefix_dir)/bin && \
19+
mkdir -p $($(package)_staging_prefix_dir)/include/llvm-c && \
1920
cp bin/clang $($(package)_staging_prefix_dir)/bin/ && \
2021
cp -P bin/clang++ $($(package)_staging_prefix_dir)/bin/ && \
2122
cp bin/dsymutil $($(package)_staging_prefix_dir)/bin/$(host)-dsymutil && \
2223
cp bin/llvm-config $($(package)_staging_prefix_dir)/bin/ && \
24+
cp include/llvm-c/ExternC.h $($(package)_staging_prefix_dir)/include/llvm-c && \
25+
cp include/llvm-c/lto.h $($(package)_staging_prefix_dir)/include/llvm-c && \
2326
cp lib/libLTO.so $($(package)_staging_prefix_dir)/lib/ && \
2427
cp -r lib/clang/$($(package)_version)/include/* $($(package)_staging_prefix_dir)/lib/clang/$($(package)_version)/include/
2528
endef

depends/packages/native_libtapi.mk

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,5 @@ define $(package)_build_cmds
1313
endef
1414

1515
define $(package)_stage_cmds
16-
./install.sh && \
17-
mkdir -p $($(package)_staging_prefix_dir)/include/llvm-c && \
18-
cp src/llvm/include/llvm-c/lto.h $($(package)_staging_prefix_dir)/include/llvm-c
16+
./install.sh
1917
endef

0 commit comments

Comments
 (0)