gcc: xtensa: fix __builtin_frame_address use with shared libgcc
authorBaruch Siach <baruch@tkos.co.il>
Tue, 11 Feb 2014 14:25:22 +0000 (16:25 +0200)
committerPeter Korsgaard <peter@korsgaard.com>
Tue, 11 Feb 2014 18:33:19 +0000 (19:33 +0100)
commitdd1c4f65b1f377c79a642f1f351e0b3e1f12a2c9
tree1c5c7e186eb4c35bb11bc212b1bfe68afd8b367a
parenta728e2fe3525ffb8237e520ec2fb859d1c95fccc
gcc: xtensa: fix __builtin_frame_address use with shared libgcc

The xtensa port uses __xtensa_libgcc_window_spill in libgcc to implement
__builtin_frame_address. This symbol is local/hidden in libgcc. This is not a
problem when linking against static libgcc. But g++ defaults to
-shared-libgcc, thus breaking link against C++ shared libraries that are using
__builtin_frame_address as follows:

ld: test: hidden symbol `__xtensa_libgcc_window_spill' in .../libgcc.a(lib2funcs.o) is referenced by DSO

Add upstream patches that make libgcc_s.so a linker script that links in
unresolved symbols from the static libgcc, similar to the ARM and PowerPC
ports.

Fixes:
http://autobuild.buildroot.net/results/e2d/e2d1a763fa86b8575e2e48e6d73c018175f43e7c/

Signed-off-by: Baruch Siach <baruch@tkos.co.il>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
package/gcc/4.7.3/850-xtensa-libgcc-linker-script.patch [new file with mode: 0644]
package/gcc/4.8.2/850-xtensa-libgcc-linker-script.patch [new file with mode: 0644]