@@ -131,6 +131,15 @@ config BR2_xtensa
http://www.tensilica.com/
endchoice
+config BR2_ABI_FLAT
+ bool
+ default n
+
+config BR2_ABI_ELF
+ bool
+ default y
+ depends on !BR2_ABI_FLAT
+
config BR2_microblaze
bool
default y if BR2_microblazeel || BR2_microblazebe
@@ -230,13 +239,45 @@ choice
default BR2_BFIN_FDPIC
config BR2_BFIN_FDPIC
bool "FDPIC"
+ select BR2_ABI_ELF
config BR2_BFIN_FLAT
bool "FLAT"
+ select BR2_ABI_FLAT
+ select BR2_PREFER_STATIC_LIB
+config BR2_BFIN_FLAT_SEP_DATA
+ bool "FLAT (Separate data)"
+ select BR2_ABI_FLAT
+ select BR2_PREFER_STATIC_LIB
+config BR2_BFIN_SHARED_FLAT
+ bool "Shared FLAT"
+ select BR2_ABI_FLAT
select BR2_PREFER_STATIC_LIB
endchoice
choice
prompt "Target Architecture Variant"
+ depends on BR2_bfin
+ default BR2_bf609
+ help
+ Specific CPU variant to use
+config BR2_bf609
+ bool "bf609"
+config BR2_bf537
+ bool "bf537"
+endchoice
+
+config BR2_BFIN_INSTALL_ELF_SHARED
+ depends on BR2_bfin && !BR2_BFIN_FDPIC
+ bool "Install ELF shared libraries"
+ default y
+
+config BR2_BFIN_INSTALL_FLAT_SHARED
+ depends on BR2_bfin && !BR2_BFIN_SHARED_FLAT
+ bool "Install FLAT shared libraries"
+ default y
+
+choice
+ prompt "Target Architecture Variant"
depends on BR2_mips || BR2_mipsel
default BR2_mips_3 if BR2_mips
default BR2_mips_1 if BR2_mipsel
@@ -876,3 +917,9 @@ config BR2_GCC_TARGET_CPU
default sparchfleonv8 if BR2_sparc_sparchfleonv8
default sparcsfleon if BR2_sparc_sparcsfleon
default sparcsfleonv8 if BR2_sparc_sparcsfleonv8
+ default bf609 if BR2_bf609
+ default bf537 if BR2_bf537
+
+config BR2_GCC_TARGET_CPU_REVISION
+ string "Target CPU revision"
+
@@ -1,3 +1,27 @@
# make sure to put everything that is board-specific before the tarroot targets
+TARGETS-y =
+TARGETS-$(BR2_BFIN_INSTALL_ELF_SHARED) += romfs.shared.libs.elf
+TARGETS-$(BR2_BFIN_INSTALL_FLAT_SHARED) += romfs.shared.libs.flat
+TARGETS += $(TARGETS-y)
+
+CROSS_COMPILE_SHARED_ELF ?= bfin-linux-uclibc-
+romfs.shared.libs.elf:
+ set -e; \
+ t=`$(CROSS_COMPILE_SHARED_ELF)gcc $(CPUFLAGS) -print-file-name=libc.a`; \
+ t=`dirname $$t`/../..; \
+ for i in $$t/lib/*so*; do \
+ i=`readlink -f "$$i"`; \
+ soname=`$(CROSS_COMPILE_SHARED_ELF)readelf -d "$$i" | sed -n '/(SONAME)/s:.*[[]\(.*\)[]].*:\1:p'`; \
+ $(INSTALL) -D $$i $(TARGET_DIR)/lib/$$soname; \
+ done
+
+CROSS_COMPILE_SHARED_FLAT ?= bfin-uclinux-
+romfs.shared.libs.flat:
+ set -e; \
+ t=`$(CROSS_COMPILE_SHARED_FLAT)gcc $(CPUFLAGS) -mid-shared-library -print-file-name=libc`; \
+ if [ -f $$t -a ! -h $$t ] ; then \
+ $(INSTALL) -D $$t $(TARGET_DIR)/lib/lib1.so; \
+ fi
+
include target/generic/Makefile.in