aboutsummaryrefslogtreecommitdiffstats
path: root/meta/recipes-devtools/mklibs/files/show-GNU-unique-symbols-as-provided-symbols.patch
blob: 3f14ca1e755a620e18d36a745634eb13ce4eb1d0 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
From eddf04c7f8312e9c29cdb24e431b7e4fb2cc70ed Mon Sep 17 00:00:00 2001
From: Yuanjie Huang <yuanjie.huang@windriver.com>
Date: Wed, 15 Apr 2015 14:00:06 +0800
Subject: [PATCH] Show GNU unique symbols as provided symbols

Upstream-Status Submitted

GNU Unique symbol is a GNU extension employed by new version of GCC
by default. Even Standard C++ library in GCC 4.9 provides some symbols,
such as _ZNSs4_Rep20_S_empty_rep_storageE in this binding type instead
of ELF standard weak binding.
This patch adds support of this new binding type to mklibs-readelf.

Signed-off-by: Yuanjie Huang <yuanjie.huang@windriver.com>
---
 src/mklibs-readelf/main.cpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/mklibs-readelf/main.cpp b/src/mklibs-readelf/main.cpp
index 56d93f8..0134530 100644
--- a/src/mklibs-readelf/main.cpp
+++ b/src/mklibs-readelf/main.cpp
@@ -88,7 +88,7 @@ static void process_symbols_provided (const Elf::section_type<Elf::section_type_
     uint8_t type = symbol->get_type ();
     const std::string &name = symbol->get_name_string ();
 
-    if (bind != STB_GLOBAL && bind != STB_WEAK)
+    if (bind != STB_GLOBAL && bind != STB_WEAK && bind != STB_GNU_UNIQUE)
       continue;
     if (shndx == SHN_UNDEF || shndx == SHN_ABS)
       continue;
-- 
1.8.5.2.233.g932f7e4