Go to file
Max Filippov 384c919321 binutils: fix xtensa ld bug triggered by --gc-sections
elf_xtensa_gc_sweep_hook doesn't correctly unreference symbols that were
made local, that results in link failure with the following message:

  BFD (GNU Binutils) 2.24 internal error, aborting at elf32-xtensa.c line
  3372 in elf_xtensa_finish_dynamic_sections

elf_xtensa_gc_sweep_hook determines symbol reference type (PLT or GOT) by
relocation type. Relocation types are not changed when symbol becomes
local, but its PLT references are added to GOT references and
plt.refcount is set to 0. Such symbol cannot be unreferences in the
elf_xtensa_gc_sweep_hook and its extra references make calculated GOT
relocations section size not match number of GOT relocations.

Fix it by treating PLT reference as GOT reference when plt.refcount is
not positive.

Fixes:
  http://autobuild.buildroot.net/results/3e2e24f697e26c93d4d95782b1cb7799fa620a7a/
  http://autobuild.buildroot.org/results/97d4c96d6f6cdc1ed4007456f4ab70be9dfa41b5/

Signed-off-by: Max Filippov <jcmvbkbc@gmail.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2015-05-16 18:28:06 +02:00
arch arch/Config.in.xtensa: provide BR2_ENDIAN symbol 2015-05-05 22:44:04 +02:00
board qmx6_defconfig: update 2015-05-01 22:57:19 +02:00
boot barebox: unbreak custom patch handling after 0eba4759 (packages: apply custom patches using *.patch instead of <pkg>-*.patch) 2015-05-04 14:33:18 +02:00
configs sh4: fix toolchain creation 2015-05-03 16:30:36 +02:00
docs Update for 2015.05-rc2 2015-05-11 13:28:26 +02:00
fs fs: only add non rootfs- targets to PACKAGES 2015-04-26 12:16:19 +02:00
linux linux: bump default to version 4.0.3 2015-05-13 21:37:30 +02:00
package binutils: fix xtensa ld bug triggered by --gc-sections 2015-05-16 18:28:06 +02:00
support fix typo in package install suggestion for dependencies 2015-05-08 07:16:20 +02:00
system system: drop IPv6 depend for systemd 2015-04-22 22:59:42 +02:00
toolchain toolchain/external: better report RPC error for custom toolchains 2015-05-05 22:45:51 +02:00
.defconfig arch: kill avr32 2015-02-14 17:39:50 +01:00
.gitignore update gitignore 2013-05-04 12:41:55 +02:00
CHANGES Update for 2015.05-rc2 2015-05-11 13:28:26 +02:00
Config.in Config.in: remove BR2_DEPRECATED_SINCE_2014_02 2015-03-04 22:13:40 +01:00
Config.in.legacy package/mono: bump to version 4.0.1 2015-05-02 17:02:57 +02:00
COPYING clarify license and fix website license link 2009-05-08 09:29:41 +02:00
Makefile Update for 2015.05-rc2 2015-05-11 13:28:26 +02:00
Makefile.legacy Makefile.legacy: fix recursive invocation with BUILDROOT_DL_DIR and _CONFIG 2014-02-11 08:14:57 +01:00
README README: mention 'make list-defconfigs' 2015-04-04 15:19:43 +02:00

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.