浏览代码

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>
Waldemar Brodkorb 9 年之前
父节点
当前提交
49d97993d8
共有 1 个文件被更改,包括 3 次插入0 次删除
  1. 3 0
      arch/Config.in

+ 3 - 0
arch/Config.in

@@ -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