diff options
author | Waldemar Brodkorb <wbx@openadk.org> | 2016-08-19 22:25:12 +0200 |
---|---|---|
committer | Thomas Petazzoni <thomas.petazzoni@free-electrons.com> | 2016-08-20 11:47:46 +0200 |
commit | 0d8a05c38e58b4c9240e882e0184bc10ec4f6eb4 (patch) | |
tree | 8923ed096c55f2378bef1ed6bb6104624e6f74a3 /package/gcc/6.1.0/892-disable-dwarf-bfin.patch | |
parent | 548657513d3d935e74aed2cfbc6d56ba0804736d (diff) | |
download | buildroot-0d8a05c38e58b4c9240e882e0184bc10ec4f6eb4.tar.gz buildroot-0d8a05c38e58b4c9240e882e0184bc10ec4f6eb4.zip |
bfin: fix issues with internal toolchain, re-enable C++ support
The three patches allow to compile applications using TLS emulation from
libgcc or C++ applications.
The patches 892-libgcc-mkmap-symver-support-skip_underscore.patch and
893-libgcc-config-bfin-use-the-generic-linker-version-in.patch fixes how
libgcc is generated, by making the necessary libgcc symbols declared
"GLOBAL", and therefore visible outside of libgcc. This fixes a large
number of undefined reference issues (for either C++ applications or
applications using TLS emulation). This was reported as gcc PR74748.
The patch 894-libgcc-fix-DWARF-compilation-with-FDPIC-targets.patch
allows to build DWARF in FDPIC mode. This patch replaces the older
892-disable-dwarf-bfin.patch, as instead of disabling DWARF support, it
fixes it. This was reported as gcc PR68468.
In order to get C++ working without unresolved symbols, we also need to
disable symbol versioning (--disable-symvers). This is a remaining issue
in gcc which will be investigated at a later point.
Since this commit fixes C++ support in Blackfin, it re-enables the
selection of C++ support for this architecture.
Fixes:
(alsa-lib emutls)
http://autobuild.buildroot.net/results/8544ce58d75820666579db93a25ca5656a8efa8e/
(cairo emutls)
http://autobuild.buildroot.net/results/88b02a5dd5408318941ccbfcea0a9cbaa331500a/
(audiofile c++)
http://autobuild.buildroot.net/results/394e530c5dcd9ccb590eb151aeaadb37d11e0e39/
(assimp c++)
http://autobuild.buildroot.net/results/01f4be126c2d786a5ad7f220c2cf60539888a480/
(bellagio c++)
http://autobuild.buildroot.net/results/ada/ada44228bf13ec05382275bd6571396f5ba2b1f7/
Signed-off-by: Waldemar Brodkorb <wbx@openadk.org>
Tested-by: Waldemar Brodkorb <wbx@openadk.org>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Diffstat (limited to 'package/gcc/6.1.0/892-disable-dwarf-bfin.patch')
-rw-r--r-- | package/gcc/6.1.0/892-disable-dwarf-bfin.patch | 24 |
1 files changed, 0 insertions, 24 deletions
diff --git a/package/gcc/6.1.0/892-disable-dwarf-bfin.patch b/package/gcc/6.1.0/892-disable-dwarf-bfin.patch deleted file mode 100644 index ebd31a1855..0000000000 --- a/package/gcc/6.1.0/892-disable-dwarf-bfin.patch +++ /dev/null @@ -1,24 +0,0 @@ -Dwarf support does not compile on Blackfin - -Reported upstream: -https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68468 - -Signed-off-by: Waldemar Brodkorb <wbx@openadk.org> - -diff -Nur gcc-6.1.0.orig/libgcc/config.host gcc-6.1.0/libgcc/config.host ---- gcc-6.1.0.orig/libgcc/config.host 2016-02-26 21:02:28.000000000 +0100 -+++ gcc-6.1.0/libgcc/config.host 2016-05-12 19:26:30.973350274 +0200 -@@ -230,6 +230,13 @@ - ;; - esac - ;; -+bfin-*-*linux*) -+ tmake_file="$tmake_file t-crtstuff-pic t-libgcc-pic t-slibgcc t-slibgcc-gld t-slibgcc-elf-ver t-linux" -+ extra_parts="crtbegin.o crtbeginS.o crtbeginT.o crtend.o crtendS.o" -+ if test x$enable_vtable_verify = xyes; then -+ extra_parts="$extra_parts vtv_start.o vtv_end.o vtv_start_preinit.o vtv_end_preinit.o" -+ fi -+ ;; - *-*-linux* | frv-*-*linux* | *-*-kfreebsd*-gnu | *-*-knetbsd*-gnu | *-*-gnu* | *-*-kopensolaris*-gnu) - tmake_file="$tmake_file t-crtstuff-pic t-libgcc-pic t-eh-dw2-dip t-slibgcc t-slibgcc-gld t-slibgcc-elf-ver t-linux" - extra_parts="crtbegin.o crtbeginS.o crtbeginT.o crtend.o crtendS.o" |