Message ID | 20160703170819.GA15135@waldemar-brodkorb.de |
---|---|
State | Changes Requested |
Headers | show |
Hello, On Sun, 3 Jul 2016 19:08:19 +0200, Waldemar Brodkorb wrote: > diff --git a/arch/Config.in b/arch/Config.in > index 1fdd36a..92b094a 100644 > --- a/arch/Config.in > +++ b/arch/Config.in > @@ -360,11 +360,13 @@ choice > > config BR2_BINFMT_FLAT_ONE > bool "One memory region" > + depends on !BR2_m68k > help > All segments are linked into one memory region. > > config BR2_BINFMT_FLAT_SEP_DATA > bool "Separate data and code region" > + depends on BR2_m68k Are you sure? I think sep-data is also available on Blackfin. From the gcc documentation: _Blackfin Options_ -mcpu=CPU[-SIREVISION] -msim -momit-leaf-frame-pointer -mno-omit-leaf-frame-pointer -mspecld-anomaly -mno-specld-anomaly -mcsync-anomaly -mno-csync-anomaly -mlow-64k -mno-low64k -mstack-check-l1 -mid-shared-library -mno-id-shared-library -mshared-library-id=N -mleaf-id-shared-library -mno-leaf-id-shared-library -msep-data -mno-sep-data -mlong-calls -mno-long-calls -mfast-fp -minline-plt -mmulticore -mcorea -mcoreb -msdram -micplb Also, what about ARM noMMU ? Best regards, Thomas
Hi Thomas, Thomas Petazzoni wrote, > Hello, > > On Sun, 3 Jul 2016 19:08:19 +0200, Waldemar Brodkorb wrote: > > > diff --git a/arch/Config.in b/arch/Config.in > > index 1fdd36a..92b094a 100644 > > --- a/arch/Config.in > > +++ b/arch/Config.in > > @@ -360,11 +360,13 @@ choice > > > > config BR2_BINFMT_FLAT_ONE > > bool "One memory region" > > + depends on !BR2_m68k > > help > > All segments are linked into one memory region. > > > > config BR2_BINFMT_FLAT_SEP_DATA > > bool "Separate data and code region" > > + depends on BR2_m68k > > Are you sure? I think sep-data is also available on Blackfin. From the > gcc documentation: You are right, sorry I somehow remembered the situation wrongly. > _Blackfin Options_ > -mcpu=CPU[-SIREVISION] > -msim -momit-leaf-frame-pointer -mno-omit-leaf-frame-pointer > -mspecld-anomaly -mno-specld-anomaly -mcsync-anomaly -mno-csync-anomaly > -mlow-64k -mno-low64k -mstack-check-l1 -mid-shared-library > -mno-id-shared-library -mshared-library-id=N > -mleaf-id-shared-library -mno-leaf-id-shared-library > -msep-data -mno-sep-data -mlong-calls -mno-long-calls > -mfast-fp -minline-plt -mmulticore -mcorea -mcoreb -msdram > -micplb > > Also, what about ARM noMMU ? No -msep-data :) best regards Waldemar
diff --git a/arch/Config.in b/arch/Config.in index 1fdd36a..92b094a 100644 --- a/arch/Config.in +++ b/arch/Config.in @@ -360,11 +360,13 @@ choice config BR2_BINFMT_FLAT_ONE bool "One memory region" + depends on !BR2_m68k help All segments are linked into one memory region. config BR2_BINFMT_FLAT_SEP_DATA bool "Separate data and code region" + depends on BR2_m68k help Allow for the data and text segments to be separated and placed in different regions of memory.
The situation looks like following for elf2flt and binfmt FLAT: Only gcc for m68k implements -msep-data (BR2_BINFMT_FLAT_SEP_DATA) so we should depend on m68k. When the default (BR2_BINFMT_FLAT_ONE) is used on m68k, broken binaries are produced, which mainly end up in SIGILL, so do not use it for m68k. Signed-off-by: Waldemar Brodkorb <wbx@openadk.org> --- arch/Config.in | 2 ++ 1 file changed, 2 insertions(+)