diff options
author | Sonic Zhang <sonic.zhang@analog.com> | 2015-03-27 22:10:23 +0100 |
---|---|---|
committer | Thomas Petazzoni <thomas.petazzoni@free-electrons.com> | 2015-03-30 23:07:48 +0200 |
commit | 1b171af3b3b4e0f0537173c7b9703c729915a6ab (patch) | |
tree | 5bcccc865daffd6c8d9d46a694b123217bb04d96 /arch | |
parent | 2c7373b370ca0edf54ebc3cc3f7cc67055219f55 (diff) | |
download | buildroot-1b171af3b3b4e0f0537173c7b9703c729915a6ab.tar.gz buildroot-1b171af3b3b4e0f0537173c7b9703c729915a6ab.zip |
arch: BINFMT_FLAT_SHARED is not really shared for buildroot purposes
Although BINFMT_FLAT_SHARED is indeed a shared library format, it does
not support dynamic library loading with dlopen(). So for buildroot
purposes, BR2_STATIC_LIBS shouldn't be selected.
As it happens, the compiler options that are added for
BINFMT_FLAT_SHARED also make the compiler ignore the -static option, so
we can simply force BR2_STATIC_LIBS and things work out perfectly.
Therefore, remove the select of BR2_BINFMT_SUPPORTS_SHARED from
BINFMT_FLAT_SHARED, which in turn makes sure that BR2_STATIC_LIBS is
selected.
[Arnout: rewrite commit message, add explanatory comment]
Signed-off-by: Sonic Zhang <sonic.zhang@analog.com>
Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Diffstat (limited to 'arch')
-rw-r--r-- | arch/Config.in | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/arch/Config.in b/arch/Config.in index 16ad8be56b..59bf84a918 100644 --- a/arch/Config.in +++ b/arch/Config.in @@ -295,7 +295,12 @@ config BR2_BINFMT_FLAT_SEP_DATA config BR2_BINFMT_FLAT_SHARED bool "Shared binary" - select BR2_BINFMT_SUPPORTS_SHARED + # Even though this really generates shared binaries, there is no libdl + # and dlopen() cannot be used. So packages that require shared + # libraries cannot be built. Therefore, we don't select + # BR2_BINFMT_SUPPORTS_SHARED and therefore force BR2_STATIC_LIBS. + # Although this adds -static to the compilation, that's not a problem + # because the -mid-shared-library option overrides it. help Allow to load and link indiviual FLAT binaries at run time. |