5a6087d62e
Add the ability for buildroot to build an SPE ABI enabled toolchain. This is mandatory for e500v1/v2 cores since they don't support classic FPU mode as the e500mc does. Useful for Freescale's PowerQUICC III and single/dual-core QorIQ line of processors. The new TARGET_ABI variable is used rather than TARGET_CFLAGS for uclibc's UCLIBC_EXTRA_CFLAGS to avoid breakish CFLAGS leaking in, a good example being -mthumb for ARM. Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar> Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
71 lines
2.1 KiB
Makefile
71 lines
2.1 KiB
Makefile
# gcc has a bunch of options that need to be shared with
|
|
# both gcc-uclibc-4.x.mk, and are use by other packages...
|
|
# So include them in this file and arrange to include it
|
|
# soon after invoking make from the top level.
|
|
|
|
GCC_VERSION:=$(call qstrip,$(BR2_GCC_VERSION))
|
|
TARGET_OPTIMIZATION:=$(call qstrip,$(BR2_TARGET_OPTIMIZATION))
|
|
EXTRA_GCC_CONFIG_OPTIONS:=$(call qstrip,$(BR2_EXTRA_GCC_CONFIG_OPTIONS))
|
|
|
|
ifeq ($(call qstrip,$(BR2_GCC_VERSION_SNAP)),y)
|
|
GCC_SNAP_DATE:=$(call qstrip,$(BR2_GCC_SNAP_DATE))
|
|
else
|
|
GCC_SNAP_DATE:=
|
|
endif
|
|
|
|
ifeq ($(BR2_SOFT_FLOAT),y)
|
|
SOFT_FLOAT_CONFIG_OPTION:=--with-float=soft
|
|
ifeq ($(BR2_arm)$(BR2_armeb),y) # only set float-abi for arm
|
|
TARGET_SOFT_FLOAT:=-mfloat-abi=soft
|
|
else
|
|
TARGET_SOFT_FLOAT:=-msoft-float
|
|
endif
|
|
ARCH_FPU_SUFFIX:=_nofpu
|
|
else # no softfloat support
|
|
SOFT_FLOAT_CONFIG_OPTION:=
|
|
TARGET_SOFT_FLOAT:=
|
|
ARCH_FPU_SUFFIX:=
|
|
endif
|
|
|
|
# some additional defaults
|
|
ifneq ($(call qstrip,$(BR2_GCC_TARGET_ARCH)),)
|
|
GCC_WITH_ARCH:=--with-arch=$(BR2_GCC_TARGET_ARCH)
|
|
endif
|
|
ifneq ($(call qstrip,$(BR2_GCC_TARGET_TUNE)),)
|
|
GCC_WITH_TUNE:=--with-tune=$(BR2_GCC_TARGET_TUNE)
|
|
endif
|
|
ifneq ($(call qstrip,$(BR2_GCC_TARGET_ABI)),)
|
|
GCC_WITH_ABI:=--with-abi=$(BR2_GCC_TARGET_ABI)
|
|
endif
|
|
ifneq ($(call qstrip,$(BR2_GCC_TARGET_CPU)),)
|
|
GCC_WITH_CPU:=--with-cpu=$(BR2_GCC_TARGET_CPU)
|
|
endif
|
|
|
|
# AVR32 GCC configuration
|
|
ifeq ($(BR2_avr32),y)
|
|
EXTRA_GCC_CONFIG_OPTIONS+=--disable-libmudflap
|
|
SOFT_FLOAT_CONFIG_OPTION:=
|
|
endif
|
|
|
|
# Disable mudflap and enable proper double/long double for SPE ABI
|
|
ifeq ($(BR2_powerpc_SPE),y)
|
|
EXTRA_GCC_CONFIG_OPTIONS+=--disable-libmudflap --enable-e500_double --with-long-double-128
|
|
endif
|
|
|
|
ifeq ($(BR2_PACKAGE_GCC_TARGET),y)
|
|
EXTRA_TARGET_GCC_CONFIG_OPTIONS:=
|
|
|
|
# AVR32 target GCC configuration
|
|
ifeq ($(BR2_avr32),y)
|
|
EXTRA_TARGET_GCC_CONFIG_OPTIONS+=--disable-libmudflap
|
|
EXTRA_TARGET_GCC_CONFIG_OPTIONS+=--with-build-time-tools=$(STAGING_DIR)/$(REAL_GNU_TARGET_NAME)/bin \
|
|
EXTRA_TARGET_GCC_CONFIG_OPTIONS+=--with-as=$(TARGET_CROSS)as
|
|
endif
|
|
|
|
|
|
# and finally pull in config opts from the user
|
|
EXTRA_TARGET_GCC_CONFIG_OPTIONS+=$(call qstrip,$(BR2_EXTRA_TARGET_GCC_CONFIG_OPTIONS))
|
|
|
|
TARGETS+=gcc_target
|
|
endif
|