BR2_BINFMT_FLAT_SEP_DATA can be used to create XIP userland and works fine
for m68k. Unfortunately a lot of basic packages as pcre are not compileable
because of a CPU or hardware limitation. The reason for failing are very
big functions used in the libraries or application code.
Typical errors are:
Fatal error: Tried to convert PC relative branch to absolute jump
or
error: value -yyyyy out of range
Add kernel patch from
4ec5542679264bc06a0356ef92f06ad7a0abe06d to make
BR2_BINFMT_FLAT_ONE compiled firmware work fine.
Fixes:
http://autobuild.buildroot.net/results/20b/
20b1586757450d6aad8583ad7a787a7ca11acef1/
http://autobuild.buildroot.net/results/d31/
d311955ada1ffcd7f69e82965c8fe33eabe488cd/
Signed-off-by: Waldemar Brodkorb <wbx@openadk.org>
[Thomas: add comment in Config.in file about sep-data existing on m68k,
but being disabled due to build issues with numerous packages.]
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
config BR2_BINFMT_FLAT_SEP_DATA
bool "Separate data and code region"
- depends on BR2_m68k || BR2_bfin
+ # this FLAT binary type technically exists on m68k, but fails
+ # to build numerous packages: due to architecture limitation,
+ # big functions cannot be built in this mode. They cause build
+ # failures such as "Tried to convert PC relative branch to
+ # absolute jump" or "error: value -yyyyy out of range".
+ depends on BR2_bfin
help
Allow for the data and text segments to be separated and placed in
different regions of memory.