binutils installs its binaries both as bin/<tuple>-<tool> and as <tuple>/bin/<tool>, and hardlinks are used to reduce disk space consumption. This causes a problem for host-binutils with our rpath fixing logic done by "make sdk". Indeed, the fix-rpath script starts by fixing up the rpath of bin/<tuple>-<tool>, and sets the RPATH to $ORIGIN/../lib/. Then fix-rpath moves on to <tuple>/bin/<tool>, and doesn't find the library the tool depends on, and clears the RPATH. The result is that the binutils tool are not usable. Note that this is only visible currently on the ARC architecture, because on this architecture, binutils is fetched from git, which causes host-flex to be built, and some binutils tools to use the libfl shared library. Therefore, the binutils tools don't use just the standard C library (which is provided by the system) but also libfl from $(HOST_DIR)/lib, and therefore if the RPATH isn't set correctly, those tools don't work properly. In order to address this, this comit adds a post-install hook to host-binutils that replaces those hard links by symbolic links. It is worth mentioning that library loading and RPATH usage occurs *after* resolving the symbolic links, which makes this solution work. Fixes: http://autobuild.buildroot.net/results/b2562b05d397d4e1ffe0f8d2f4ce4c84ab6feae1/ Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com> Signed-off-by: Peter Korsgaard <peter@korsgaard.com> |
||
---|---|---|
arch | ||
board | ||
boot | ||
configs | ||
docs | ||
fs | ||
linux | ||
package | ||
support | ||
system | ||
toolchain | ||
utils | ||
.defconfig | ||
.flake8 | ||
.gitignore | ||
.gitlab-ci.yml | ||
.gitlab-ci.yml.in | ||
CHANGES | ||
Config.in | ||
Config.in.legacy | ||
COPYING | ||
DEVELOPERS | ||
Makefile | ||
Makefile.legacy | ||
README |
Buildroot is a simple, efficient and easy-to-use tool to generate embedded Linux systems through cross-compilation. The documentation can be found in docs/manual. You can generate a text document with 'make manual-text' and read output/docs/manual/manual.text. Online documentation can be found at http://buildroot.org/docs.html To build and use the buildroot stuff, do the following: 1) run 'make menuconfig' 2) select the target architecture and the packages you wish to compile 3) run 'make' 4) wait while it compiles 5) find the kernel, bootloader, root filesystem, etc. in output/images You do not need to be root to build or run buildroot. Have fun! Buildroot comes with a basic configuration for a number of boards. Run 'make list-defconfigs' to view the list of provided configurations. Please feed suggestions, bug reports, insults, and bribes back to the buildroot mailing list: buildroot@buildroot.org You can also find us on #buildroot on Freenode IRC. If you would like to contribute patches, please read https://buildroot.org/manual.html#submitting-patches