Ricardo Martincoski | b17e5b2 | 2018-04-01 02:08:27 -0300 | [diff] [blame] | 1 | ################################################################################ |
| 2 | # |
| 3 | # definition of the toolchain wrapper build commands |
| 4 | # |
| 5 | ################################################################################ |
Arnout Vandecappelle | f6ae243 | 2015-10-04 13:28:41 +0100 | [diff] [blame] | 6 | |
| 7 | # We use --hash-style=both to increase the compatibility of the generated |
| 8 | # binary with older platforms, except for MIPS, where the only acceptable |
| 9 | # hash style is 'sysv' |
| 10 | ifeq ($(findstring mips,$(HOSTARCH)),mips) |
| 11 | TOOLCHAIN_WRAPPER_HASH_STYLE = sysv |
| 12 | else |
| 13 | TOOLCHAIN_WRAPPER_HASH_STYLE = both |
| 14 | endif |
| 15 | |
| 16 | TOOLCHAIN_WRAPPER_ARGS = $($(PKG)_TOOLCHAIN_WRAPPER_ARGS) |
| 17 | TOOLCHAIN_WRAPPER_ARGS += -DBR_SYSROOT='"$(STAGING_SUBDIR)"' |
| 18 | |
| 19 | # We create a list like '"-mfoo", "-mbar", "-mbarfoo"' so that each flag is a |
| 20 | # separate argument when used in execv() by the toolchain wrapper. |
Yann E. MORIN | 32e2636 | 2015-10-21 23:21:07 +0200 | [diff] [blame] | 21 | TOOLCHAIN_WRAPPER_OPTS = \ |
| 22 | $(foreach f,$(call qstrip,$(BR2_TARGET_OPTIMIZATION)),"$(f)"$(comma)) |
| 23 | TOOLCHAIN_WRAPPER_ARGS += -DBR_ADDITIONAL_CFLAGS='$(TOOLCHAIN_WRAPPER_OPTS)' |
Arnout Vandecappelle | f6ae243 | 2015-10-04 13:28:41 +0100 | [diff] [blame] | 24 | |
Arnout Vandecappelle | d82f69c | 2015-10-04 16:23:56 +0100 | [diff] [blame] | 25 | ifeq ($(BR2_CCACHE),y) |
| 26 | TOOLCHAIN_WRAPPER_ARGS += -DBR_CCACHE |
| 27 | endif |
| 28 | |
Ray Kinsella | 968f5d5 | 2015-10-19 11:02:52 +0000 | [diff] [blame] | 29 | ifeq ($(BR2_x86_x1000),y) |
| 30 | TOOLCHAIN_WRAPPER_ARGS += -DBR_OMIT_LOCK_PREFIX |
| 31 | endif |
| 32 | |
Vicente Olivert Riera | 240564a | 2016-11-09 16:16:57 +0000 | [diff] [blame] | 33 | # Avoid FPU bug on XBurst CPUs |
| 34 | ifeq ($(BR2_mips_xburst),y) |
| 35 | TOOLCHAIN_WRAPPER_ARGS += -DBR_NO_FUSED_MADD |
| 36 | endif |
| 37 | |
Arnout Vandecappelle | 1e97b27 | 2015-10-04 16:25:32 +0100 | [diff] [blame] | 38 | ifeq ($(BR2_CCACHE_USE_BASEDIR),y) |
| 39 | TOOLCHAIN_WRAPPER_ARGS += -DBR_CCACHE_BASEDIR='"$(BASE_DIR)"' |
| 40 | endif |
| 41 | |
Jérôme Pouiller | 8087b02 | 2016-09-28 10:00:56 +0200 | [diff] [blame] | 42 | define TOOLCHAIN_WRAPPER_BUILD |
Arnout Vandecappelle | f6ae243 | 2015-10-04 13:28:41 +0100 | [diff] [blame] | 43 | $(HOSTCC) $(HOST_CFLAGS) $(TOOLCHAIN_WRAPPER_ARGS) \ |
| 44 | -s -Wl,--hash-style=$(TOOLCHAIN_WRAPPER_HASH_STYLE) \ |
| 45 | toolchain/toolchain-wrapper.c \ |
Jérôme Pouiller | 8087b02 | 2016-09-28 10:00:56 +0200 | [diff] [blame] | 46 | -o $(@D)/toolchain-wrapper |
| 47 | endef |
| 48 | |
| 49 | define TOOLCHAIN_WRAPPER_INSTALL |
| 50 | $(INSTALL) -D -m 0755 $(@D)/toolchain-wrapper \ |
Arnout Vandecappelle | 0f9c0bf | 2017-07-05 13:14:19 +0200 | [diff] [blame] | 51 | $(HOST_DIR)/bin/toolchain-wrapper |
Arnout Vandecappelle | f6ae243 | 2015-10-04 13:28:41 +0100 | [diff] [blame] | 52 | endef |