php: disable on configurations using BR2_BINFMT_FLAT
authorThomas Petazzoni <thomas.petazzoni@bootlin.com>
Mon, 26 Feb 2018 20:34:29 +0000 (21:34 +0100)
committerPeter Korsgaard <peter@korsgaard.com>
Mon, 26 Feb 2018 22:45:39 +0000 (23:45 +0100)
commite0eec7a4f752364b5ca2580979f28435be0a41a2
tree84db18bccd4ff29a6e6db7d18b1fb865272eb9ae
parent22c12f186200b669ae8aa9ca5296c34c34b32a9e
php: disable on configurations using BR2_BINFMT_FLAT

BR2_BINFMT_FLAT configurations require the use of elf2flt. However,
PHP uses -export-dynamic which breaks badly with elf2flt. Even a
simple program fails to build:

$ ./output/host/bin/arm-linux-gcc -Wl,-export-dynamic -o toto toto.c
/home/thomas/projets/buildroot/output/host/opt/ext-toolchain/arm-buildroot-uclinux-uclibcgnueabi/bin/ld.real: section .junk LMA [0000000000000000,0000000000000027] overlaps section .text LMA [0000000000000000,0000000000006d07]

-export-dynamic is clearly not useful for FLAT configurations, which
are always statically linked, but it's quite a bit of work to change
the PHP build system to use it only conditionall.

It looks more like an interaction bug between gcc (which wants to put
the .text section at address 0x0 in its linker script) and elf2flt,
which wants to put its .junk section (containing the .rel.text stuff)
also at address 0x0.

Fixes (works around) the "section overlap" part of:

  http://autobuild.buildroot.net/results/35cbed8927bb10500ecf2816aa728ea240a0be21/

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
Cc: Waldemar Brodkorb <wbx@openadk.org>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
package/php/Config.in