diff options
author | Alexey Neyman <stilor@att.net> | 2017-09-16 20:05:34 (GMT) |
---|---|---|
committer | Alexey Neyman <stilor@att.net> | 2017-09-16 20:05:34 (GMT) |
commit | ff4485ad30ab866a908ba8ef26f9798db8f72809 (patch) | |
tree | 86a4d4b7cdad64b3ed5607ffff53d7897333538d /packages/gcc-linaro/6.3-2017.05/892-libgcc-mkmap-symver-support-skip_underscore.patch | |
parent | 8bf31117bc2036dc64e410ecd603ac3c2dbfb4f8 (diff) |
Update gcc-linaro to 2017.08
Signed-off-by: Alexey Neyman <stilor@att.net>
Diffstat (limited to 'packages/gcc-linaro/6.3-2017.05/892-libgcc-mkmap-symver-support-skip_underscore.patch')
-rw-r--r-- | packages/gcc-linaro/6.3-2017.05/892-libgcc-mkmap-symver-support-skip_underscore.patch | 60 |
1 files changed, 0 insertions, 60 deletions
diff --git a/packages/gcc-linaro/6.3-2017.05/892-libgcc-mkmap-symver-support-skip_underscore.patch b/packages/gcc-linaro/6.3-2017.05/892-libgcc-mkmap-symver-support-skip_underscore.patch deleted file mode 100644 index 73ee6c5..0000000 --- a/packages/gcc-linaro/6.3-2017.05/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 - |