diff options
author | Gustavo Zacarias <gustavo@zacarias.com.ar> | 2016-12-21 12:29:53 -0300 |
---|---|---|
committer | Peter Korsgaard <peter@korsgaard.com> | 2016-12-21 17:19:58 +0100 |
commit | be1a3a3e4610deb9434329da643bf7b896989276 (patch) | |
tree | d37dfdf2e26166194af067ea95b1aa2cb2c7aeae /package/gcc/6.2.0/892-libgcc-mkmap-symver-support-skip_underscore.patch | |
parent | 0bf7c74e1551a64ab3164f374304154b21bc5045 (diff) | |
download | buildroot-be1a3a3e4610deb9434329da643bf7b896989276.tar.gz buildroot-be1a3a3e4610deb9434329da643bf7b896989276.zip |
gcc: bump 6.x series to version 6.3.0
Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
Diffstat (limited to 'package/gcc/6.2.0/892-libgcc-mkmap-symver-support-skip_underscore.patch')
-rw-r--r-- | package/gcc/6.2.0/892-libgcc-mkmap-symver-support-skip_underscore.patch | 60 |
1 files changed, 0 insertions, 60 deletions
diff --git a/package/gcc/6.2.0/892-libgcc-mkmap-symver-support-skip_underscore.patch b/package/gcc/6.2.0/892-libgcc-mkmap-symver-support-skip_underscore.patch deleted file mode 100644 index 73ee6c5faa..0000000000 --- a/package/gcc/6.2.0/892-libgcc-mkmap-symver-support-skip_underscore.patch +++ /dev/null @@ -1,60 +0,0 @@ -From ae9c3e354440c4a0f105a9eabfb2f77be085ebc1 Mon Sep 17 00:00:00 2001 -From: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> -Date: Thu, 18 Aug 2016 17:59:16 +0200 -Subject: [PATCH] libgcc/mkmap-symver: support skip_underscore - -Some platforms, such as Blackfin, have a special prefix for assembly -symbols as opposed to C symbols. For this reason, a function named -"foo()" in C will in fact be visible as a symbol called "_foo" in the -ELF binary. - -The current linker version script logic in libgcc doesn't take into -account this situation properly. The Blackfin specific -libgcc/config/bfin/libgcc-glibc.ver has an additional "_" in front of -every symbol so that it matches the output of "nm" (which gets parsed to -produce the final linker version script). But due to this additional -"_", ld no longer matches with the symbols since "ld" does the matching -with the original symbol name, not the one prefixed with "_". - -Due to this, none of the symbols in libgcc/config/bfin/libgcc-glibc.ver -are actually matched with symbols in libgcc. This causes all libgcc -symbols to be left as "LOCAL", which causes lots of "undefined -reference" whenever some C or C++ code that calls a function of libgcc -is compiled. - -To address this, this commit introduces a "skip_underscore" variable to -the mkmap-symver script. It tells mkmap-symver to ignore the leading -underscore from the "nm" output. - -Note that this new argument is different from the existing -"leading_underscore" argument, which *adds* an additional underscore to -the generated linker version script. - -Having this functionality paves the way to using the generic linker -version information for Blackfin, instead of using a custom one. - -Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> ---- - libgcc/mkmap-symver.awk | 6 +++++- - 1 file changed, 5 insertions(+), 1 deletion(-) - -diff --git a/libgcc/mkmap-symver.awk b/libgcc/mkmap-symver.awk -index 266832a..30bb179 100644 ---- a/libgcc/mkmap-symver.awk -+++ b/libgcc/mkmap-symver.awk -@@ -47,7 +47,11 @@ state == "nm" && ($1 == "U" || $2 == "U") { - - state == "nm" && NF == 3 { - split ($3, s, "@") -- def[s[1]] = 1; -+ if (skip_underscore) -+ symname = substr(s[1], 2); -+ else -+ symname = s[1]; -+ def[symname] = 1; - sawsymbol = 1; - next; - } --- -2.7.4 - |