From: Bernhard Reutner-Fischer Date: Sat, 29 Sep 2007 19:17:39 +0000 (-0000) Subject: - add mips/mipsel target architecture selection X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=3de7a21bc743a691b158bd078569b4c9040fb60c;p=buildroot.git - add mips/mipsel target architecture selection - rename BR2_ARM_[EO]ABI to the commonly used BR2_[EO]ABI --- diff --git a/target/Config.in.arch b/target/Config.in.arch index 7a75044cc9..6ac81a2092 100644 --- a/target/Config.in.arch +++ b/target/Config.in.arch @@ -111,16 +111,57 @@ config BR2_ARM_TYPE choice prompt "Target ABI" depends BR2_arm || BR2_armeb - default BR2_ARM_OABI + default BR2_OABI help Application Binary Interface to use -config BR2_ARM_OABI +config BR2_OABI bool "OABI" -config BR2_ARM_EABI +config BR2_EABI bool "EABI" endchoice +choice + prompt "Target Architecture Variant" + depends BR2_mips || BR2_mipsel + default BR2_mips_3 + help + Specific CPU variant to use + +config BR2_mips_1 + bool "mips 1" +config BR2_mips_2 + bool "mips 2" +config BR2_mips_3 + bool "mips 3" +config BR2_mips_4 + bool "mips 4" +config BR2_mips_32 + bool "mips 32" +config BR2_mips_32r2 + bool "mips 32r2" +config BR2_mips_64 + bool "mips 64" +config BR2_mips16_ + bool "mips 16" +endchoice + + +choice + prompt "Target ABI" + depends BR2_mips || BR2_mipsel + default BR2_EABI + help + Application Binary Interface to use + +config BR2_OABI + bool "OABI" +config BR2_EABI + bool "EABI" +config BR2_ABI64 + bool "N64" +endchoice + choice prompt "Target Architecture Variant" depends BR2_avr32 @@ -642,11 +683,11 @@ config BR2_GCC_TARGET_ABI default aapcs if BR2_arm_dunno default aapcs-linux if BR2_arm_dunno default iwmmxt if BR2_iwmmxt - default 32 if BR2_mipsel && BR2_OABI + default 32 if (BR2_mipsel || BR2_arm) && BR2_OABI default n32 if BR2_mipsel && BR2_EABI default o64 if BR2_mips && BR2_OABI + default eabi if (BR2_mips || BR2_arm) && BR2_EABI default 64 if BR2_mips && BR2_ABI64 - default eabi if BR2_mips && BR2_EABI default mmixware if BR2_mmix && BR2_ABI_native default gnu if BR2_mmix && !BR2_ABI_native default altivec if BR2_powerpc && BR2_ABI_altivec diff --git a/target/device/Arm/Config.in b/target/device/Arm/Config.in index a52f9ef649..c14f24661e 100644 --- a/target/device/Arm/Config.in +++ b/target/device/Arm/Config.in @@ -12,8 +12,8 @@ config BR2_TARGET_ARM_INTEGRATOR_926 depends BR2_arm default n select BR2_PACKAGE_LINUX - select BR2_ARM_EABI - select BR2_KERNEL_HEADERS_2_6_20 + select BR2_EABI + select BR2_KERNEL_HEADERS_2_6_22 select BR2_PTHREADS select BR2_arm926t help diff --git a/target/device/Arm/Makefile.in b/target/device/Arm/Makefile.in index a55389e7f4..db1b812401 100644 --- a/target/device/Arm/Makefile.in +++ b/target/device/Arm/Makefile.in @@ -7,7 +7,7 @@ UCLIBC_CONFIG_FILE:=target/device/Arm/uClibc.integrator926.config endif # pin some settings -BR2_ARM_EABI:=y +BR2_EABI:=y BR2_GNU_TARGET_SUFFIX:="linux-uclibcgnueabi" BR2_DEFAULT_KERNEL_HEADERS:="2.6.22.8" endif diff --git a/target/device/Arm/integrator926_defconfig b/target/device/Arm/integrator926_defconfig index 1977375ebd..2b4d9c6765 100644 --- a/target/device/Arm/integrator926_defconfig +++ b/target/device/Arm/integrator926_defconfig @@ -39,8 +39,8 @@ BR2_arm926t=y # BR2_xscale is not set # BR2_iwmmxt is not set BR2_ARM_TYPE="ARM926T" -# BR2_ARM_OABI is not set -BR2_ARM_EABI=y +# BR2_OABI is not set +BR2_EABI=y # BR2_x86_i386 is not set # BR2_x86_i486 is not set # BR2_x86_i586 is not set diff --git a/target/device/Arm/integrator926_huge_defconfig b/target/device/Arm/integrator926_huge_defconfig index 43e436ca3c..72c0d07571 100644 --- a/target/device/Arm/integrator926_huge_defconfig +++ b/target/device/Arm/integrator926_huge_defconfig @@ -39,8 +39,8 @@ BR2_arm926t=y # BR2_xscale is not set # BR2_iwmmxt is not set BR2_ARM_TYPE="ARM926T" -# BR2_ARM_OABI is not set -BR2_ARM_EABI=y +# BR2_OABI is not set +BR2_EABI=y BR2_ARCH="arm" BR2_ENDIAN="LITTLE" BR2_GCC_TARGET_TUNE="arm9tdmi" diff --git a/target/device/Atmel/at91rm9200df/at91rm9200df_defconfig b/target/device/Atmel/at91rm9200df/at91rm9200df_defconfig index 38cdc8fcd9..ddbf9b6247 100644 --- a/target/device/Atmel/at91rm9200df/at91rm9200df_defconfig +++ b/target/device/Atmel/at91rm9200df/at91rm9200df_defconfig @@ -153,8 +153,8 @@ BR2_GCC_VERSION_4_2_1=y BR2_GCC_SUPPORTS_SYSROOT=y # BR2_GCC_SUPPORTS_FINEGRAINEDMTUNE is not set BR2_GCC_VERSION="4.2.1" -BR2_ARM_OABI=y -# BR2_ARM_EABI is not set +BR2_OABI=y +# BR2_EABI is not set BR2_TOOLCHAIN_SYSROOT=y # BR2_GCC_USE_SJLJ_EXCEPTIONS is not set BR2_EXTRA_GCC_CONFIG_OPTIONS="" diff --git a/target/device/Atmel/at91sam9260dfc/at91sam9260dfc_defconfig b/target/device/Atmel/at91sam9260dfc/at91sam9260dfc_defconfig index 69afb804b5..e11611d256 100644 --- a/target/device/Atmel/at91sam9260dfc/at91sam9260dfc_defconfig +++ b/target/device/Atmel/at91sam9260dfc/at91sam9260dfc_defconfig @@ -42,8 +42,8 @@ BR2_generic_arm=y # BR2_xscale is not set # BR2_iwmmxt is not set BR2_ARM_TYPE="GENERIC_ARM" -BR2_ARM_OABI=y -# BR2_ARM_EABI is not set +BR2_OABI=y +# BR2_EABI is not set BR2_ARCH="arm" BR2_ENDIAN="LITTLE" diff --git a/target/device/Atmel/at91sam9260pf/at91sam9260pf_defconfig b/target/device/Atmel/at91sam9260pf/at91sam9260pf_defconfig index 36dd77a5be..54af41f406 100644 --- a/target/device/Atmel/at91sam9260pf/at91sam9260pf_defconfig +++ b/target/device/Atmel/at91sam9260pf/at91sam9260pf_defconfig @@ -44,8 +44,8 @@ BR2_generic_arm=y # BR2_xscale is not set # BR2_iwmmxt is not set BR2_ARM_TYPE="GENERIC_ARM" -BR2_ARM_OABI=y -# BR2_ARM_EABI is not set +BR2_OABI=y +# BR2_EABI is not set BR2_ARCH="arm" BR2_ENDIAN="LITTLE" diff --git a/target/device/Atmel/at91sam9261ek/at91sam9261ek_defconfig b/target/device/Atmel/at91sam9261ek/at91sam9261ek_defconfig index 5558c2cf32..265eb0b917 100644 --- a/target/device/Atmel/at91sam9261ek/at91sam9261ek_defconfig +++ b/target/device/Atmel/at91sam9261ek/at91sam9261ek_defconfig @@ -44,8 +44,8 @@ BR2_generic_arm=y # BR2_xscale is not set # BR2_iwmmxt is not set BR2_ARM_TYPE="GENERIC_ARM" -BR2_ARM_OABI=y -# BR2_ARM_EABI is not set +BR2_OABI=y +# BR2_EABI is not set BR2_ARCH="arm" BR2_ENDIAN="LITTLE" diff --git a/target/linux-experimental/Makefile.in b/target/linux-experimental/Makefile.in index ab9a6135dd..bfad7c5b4f 100644 --- a/target/linux-experimental/Makefile.in +++ b/target/linux-experimental/Makefile.in @@ -184,7 +184,7 @@ ifeq ($(strip $(BR2_LINUX_CUSTOMIZE)),y) make -C $(LINUX26_DIR) xconfig endif $(SED) '/CONFIG_AEABI/d' $(LINUX26_DIR)/.config -ifeq ($(BR2_ARM_EABI),y) +ifeq ($(BR2_EABI),y) echo "CONFIG_AEABI=y" >> $(LINUX26_DIR)/.config $(SED) '/CONFIG_OABI_COMPAT/d' $(LINUX26_DIR)/.config echo "# CONFIG_OABI_COMPAT is not set" >> $(LINUX26_DIR)/.config diff --git a/target/linux/Makefile.in b/target/linux/Makefile.in index 14d4e085ed..bf5b9492d1 100644 --- a/target/linux/Makefile.in +++ b/target/linux/Makefile.in @@ -148,7 +148,7 @@ endif $(LINUX26_DIR)/.configured: $(LINUX26_DIR)/.patched $(LINUX26_KCONFIG) cp -dpf $(LINUX26_KCONFIG) $(LINUX26_DIR)/.config $(SED) '/CONFIG_AEABI=y/d' $(LINUX26_DIR)/.config -ifeq ($(BR2_ARM_EABI),y) +ifeq ($(BR2_EABI),y) echo "CONFIG_AEABI=y" >> $(LINUX26_DIR)/.config $(SED) '/CONFIG_OABI_COMPAT/d' $(LINUX26_DIR)/.config echo "# CONFIG_OABI_COMPAT is not set" >> $(LINUX26_DIR)/.config diff --git a/toolchain/uClibc/uclibc.mk b/toolchain/uClibc/uclibc.mk index de65b56963..2172d11030 100644 --- a/toolchain/uClibc/uclibc.mk +++ b/toolchain/uClibc/uclibc.mk @@ -127,7 +127,7 @@ $(UCLIBC_DIR)/.oldconfig: $(UCLIBC_DIR)/.unpacked $(UCLIBC_CONFIG_FILE) cp -f $(UCLIBC_CONFIG_FILE) $(UCLIBC_DIR)/.oldconfig $(SED) 's,^CROSS_COMPILER_PREFIX=.*,CROSS_COMPILER_PREFIX="$(TARGET_CROSS)",g' \ -e 's,# TARGET_$(UCLIBC_TARGET_ARCH) is not set,TARGET_$(UCLIBC_TARGET_ARCH)=y,g' \ - -e 's,^TARGET_ARCH="none",TARGET_ARCH=\"$(UCLIBC_TARGET_ARCH)\",g' \ + -e 's,^TARGET_ARCH=".*",TARGET_ARCH=\"$(UCLIBC_TARGET_ARCH)\",g' \ -e 's,^KERNEL_SOURCE=.*,KERNEL_SOURCE=\"$(LINUX_HEADERS_DIR)\",g' \ -e 's,^KERNEL_HEADERS=.*,KERNEL_HEADERS=\"$(LINUX_HEADERS_DIR)/include\",g' \ -e 's,^RUNTIME_PREFIX=.*,RUNTIME_PREFIX=\"/\",g' \ @@ -139,15 +139,31 @@ ifeq ($(UCLIBC_TARGET_ARCH),arm) $(UCLIBC_DIR)/.oldconfig $(SED) 's/^.*$(UCLIBC_ARM_TYPE).*/$(UCLIBC_ARM_TYPE)=y/g' $(UCLIBC_DIR)/.oldconfig $(SED) '/CONFIG_ARM_.ABI/d' $(UCLIBC_DIR)/.oldconfig -ifeq ($(BR2_ARM_EABI),y) +ifeq ($(BR2_EABI),y) /bin/echo "# CONFIG_ARM_OABI is not set" >> $(UCLIBC_DIR)/.oldconfig /bin/echo "CONFIG_ARM_EABI=y" >> $(UCLIBC_DIR)/.oldconfig endif -ifeq ($(BR2_ARM_OABI),y) +ifeq ($(BR2_OABI),y) /bin/echo "CONFIG_ARM_OABI=y" >> $(UCLIBC_DIR)/.oldconfig /bin/echo "# CONFIG_ARM_EABI is not set" >> $(UCLIBC_DIR)/.oldconfig endif endif +ifeq ($(UCLIBC_TARGET_ARCH),mips) + $(SED) '/CONFIG_MIPS_[NO].._ABI/d' $(UCLIBC_DIR)/.oldconfig + (/bin/echo "# CONFIG_MIPS_O32_ABI is not set"; \ + /bin/echo "# CONFIG_MIPS_N32_ABI is not set"; \ + /bin/echo "# CONFIG_MIPS_N64_ABI is not set"; \ + ) >> $(UCLIBC_DIR)/.oldconfig +ifeq ($(BR2_OABI),y) + $(SED) 's/.*\(CONFIG_MIPS_O32_ABI\).*/\1=y/' $(UCLIBC_DIR)/.oldconfig +endif +ifeq ($(BR2_EABI),y) + $(SED) 's/.*\(CONFIG_MIPS_N32_ABI\).*/\1=y/' $(UCLIBC_DIR)/.oldconfig +endif +ifeq ($(BR2_ABI64),y) + $(SED) 's/.*\(CONFIG_MIPS_N64_ABI\).*/\1=y/' $(UCLIBC_DIR)/.oldconfig +endif +endif ifeq ($(UCLIBC_TARGET_ARCH),sh) /bin/echo "# CONFIG_SH2A is not set" >> $(UCLIBC_DIR)/.oldconfig /bin/echo "# CONFIG_SH2 is not set" >> $(UCLIBC_DIR)/.oldconfig