Message ID | 1364550643-11793-3-git-send-email-sonic.adi@gmail.com |
---|---|
State | Changes Requested |
Headers | show |
Dear Sonic Zhang, On Fri, 29 Mar 2013 17:50:39 +0800, Sonic Zhang wrote: > From: Sonic Zhang <sonic.zhang@analog.com> > > v2-changes: > none > > v1-changes: > - Just introduce the symbol and options in arch generic Config.in. > Append FLAT format link flags to external toolchain wrapper. > > Signed-off-by: Sonic Zhang <sonic.zhang@analog.com> As detailed in my comments to PATCH 1/7, this patch needs to be refactored with BR2_BFIN_FDPIC/BR2_BFIN_FLAT to avoid breaking existing code. Also, I believe we want to add some architecture dependencies here. For the beginning, we at least want something like: +# Set up target binary format +choice + prompt "Target Binary Format" + default BR2_BINFMT_ELF +config BR2_BINFMT_ELF + bool "ELF" + depends on !BR2_bfin +config BR2_BINFMT_FDPIC + bool "FDPIC" + depends on BR2_bfin +config BR2_BINFMT_FLAT + bool "FLAT" + select BR2_PREFER_STATIC_LIB + depends on BR2_bfin +endchoice Of course, this might be extended later on if we enable FLAT support on other architectures. But for now, it ensures that users can't make an invalid choice (like chose FDPIC on ARM). Thanks! Thomas
Dear Sonic Zhang, On Fri, 29 Mar 2013 17:50:39 +0800, Sonic Zhang wrote: > +choice > + prompt "Target Binary Format" > + default BR2_BINFMT_ELF > +config BR2_BINFMT_ELF > + bool "ELF" > +config BR2_BINFMT_FDPIC > + bool "FDPIC" > +config BR2_BINFMT_FLAT > + bool "FLAT" > + select BR2_PREFER_STATIC_LIB > +endchoice Maybe some help text would also be nice for each choice. Thanks, Thomas
Hi Thomas, On Mon, Apr 8, 2013 at 4:45 AM, Thomas Petazzoni <thomas.petazzoni@free-electrons.com> wrote: > Dear Sonic Zhang, > > On Fri, 29 Mar 2013 17:50:39 +0800, Sonic Zhang wrote: >> From: Sonic Zhang <sonic.zhang@analog.com> >> >> v2-changes: >> none >> >> v1-changes: >> - Just introduce the symbol and options in arch generic Config.in. >> Append FLAT format link flags to external toolchain wrapper. >> >> Signed-off-by: Sonic Zhang <sonic.zhang@analog.com> > > As detailed in my comments to PATCH 1/7, this patch needs to be > refactored with BR2_BFIN_FDPIC/BR2_BFIN_FLAT to avoid breaking existing > code. OK. > > Also, I believe we want to add some architecture dependencies here. For > the beginning, we at least want something like: > > +# Set up target binary format > +choice > + prompt "Target Binary Format" > + default BR2_BINFMT_ELF > +config BR2_BINFMT_ELF > + bool "ELF" > + depends on !BR2_bfin > +config BR2_BINFMT_FDPIC > + bool "FDPIC" > + depends on BR2_bfin > +config BR2_BINFMT_FLAT > + bool "FLAT" > + select BR2_PREFER_STATIC_LIB > + depends on BR2_bfin > +endchoice > No problem. Regards, Sonic
Hi Thomas, On Mon, Apr 8, 2013 at 4:47 AM, Thomas Petazzoni <thomas.petazzoni@free-electrons.com> wrote: > Dear Sonic Zhang, > > On Fri, 29 Mar 2013 17:50:39 +0800, Sonic Zhang wrote: > >> +choice >> + prompt "Target Binary Format" >> + default BR2_BINFMT_ELF >> +config BR2_BINFMT_ELF >> + bool "ELF" >> +config BR2_BINFMT_FDPIC >> + bool "FDPIC" >> +config BR2_BINFMT_FLAT >> + bool "FLAT" >> + select BR2_PREFER_STATIC_LIB >> +endchoice > > Maybe some help text would also be nice for each choice. > OK Regards, Sonic
diff --git a/arch/Config.in b/arch/Config.in index c341848..be475c0 100644 --- a/arch/Config.in +++ b/arch/Config.in @@ -177,6 +177,19 @@ config BR2_GCC_TARGET_CPU config BR2_GCC_TARGET_CPU_REVISION string +# Set up target binary format +choice + prompt "Target Binary Format" + default BR2_BINFMT_ELF +config BR2_BINFMT_ELF + bool "ELF" +config BR2_BINFMT_FDPIC + bool "FDPIC" +config BR2_BINFMT_FLAT + bool "FLAT" + select BR2_PREFER_STATIC_LIB +endchoice + if BR2_arm || BR2_armeb source "arch/Config.in.arm" endif diff --git a/toolchain/toolchain-external/ext-tool.mk b/toolchain/toolchain-external/ext-tool.mk index 407e1ad..27fd296 100644 --- a/toolchain/toolchain-external/ext-tool.mk +++ b/toolchain/toolchain-external/ext-tool.mk @@ -164,6 +164,10 @@ ifneq ($(CC_TARGET_ABI_),) TOOLCHAIN_EXTERNAL_CFLAGS += -mabi=$(CC_TARGET_ABI_) TOOLCHAIN_EXTERNAL_WRAPPER_ARGS += -DBR_ABI='"$(CC_TARGET_ABI_)"' endif +ifeq ($(BR2_BINFMT_FLAT),y) +TOOLCHAIN_EXTERNAL_CFLAGS += -Wl,-elf2flt +TOOLCHAIN_EXTERNAL_WRAPPER_ARGS += -DBR_BINFMT_FLAT +endif ifneq ($(BR2_TARGET_OPTIMIZATION),) TOOLCHAIN_EXTERNAL_CFLAGS += $(call qstrip,$(BR2_TARGET_OPTIMIZATION)) diff --git a/toolchain/toolchain-external/ext-toolchain-wrapper.c b/toolchain/toolchain-external/ext-toolchain-wrapper.c index a92bada..9a2fc70 100644 --- a/toolchain/toolchain-external/ext-toolchain-wrapper.c +++ b/toolchain/toolchain-external/ext-toolchain-wrapper.c @@ -47,6 +47,9 @@ static char *predef_args[] = { #ifdef BR_64 "-m64", #endif +#ifdef BR_BINFMT_FLAT + "-Wl,-elf2flt", +#endif #ifdef BR_ADDITIONAL_CFLAGS BR_ADDITIONAL_CFLAGS #endif