arch: define dependencies for the binfmt flat formats

The situation looks like following for elf2flt and binfmt FLAT:

 * Only gcc for bfin/m68k implements
   -msep-data (BR2_BINFMT_FLAT_SEP_DATA) and
   -mid-shared-library (BR2_BINFMT_FLAT_SHARED), so the corresponding
   options are made only visible on those architectures.

 * When the default of 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>
[Thomas:
 - also add the dependencies on m68k/bfin to BR2_BINFMT_FLAT_SHARED
 - rework commit log.]
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
This commit is contained in:
Waldemar Brodkorb 2016-07-04 20:51:39 +02:00 committed by Thomas Petazzoni
parent 4b4ed7a7f9
commit 49d97993d8

View File

@ -331,17 +331,20 @@ choice
config BR2_BINFMT_FLAT_ONE config BR2_BINFMT_FLAT_ONE
bool "One memory region" bool "One memory region"
depends on !BR2_m68k
help help
All segments are linked into one memory region. All segments are linked into one memory region.
config BR2_BINFMT_FLAT_SEP_DATA config BR2_BINFMT_FLAT_SEP_DATA
bool "Separate data and code region" bool "Separate data and code region"
depends on BR2_m68k || BR2_bfin
help help
Allow for the data and text segments to be separated and placed in Allow for the data and text segments to be separated and placed in
different regions of memory. different regions of memory.
config BR2_BINFMT_FLAT_SHARED config BR2_BINFMT_FLAT_SHARED
bool "Shared binary" bool "Shared binary"
depends on BR2_m68k || BR2_bfin
# Even though this really generates shared binaries, there is no libdl # Even though this really generates shared binaries, there is no libdl
# and dlopen() cannot be used. So packages that require shared # and dlopen() cannot be used. So packages that require shared
# libraries cannot be built. Therefore, we don't select # libraries cannot be built. Therefore, we don't select