Package: mklibs
Version: 0.1.40
Severity: important
Tags: patch

Dear Maintainer,

   * What led up to the situation?

GNU unique symbol bind type is introduced, and enabled by GCC 4.9 to address 
some 
certain binding problems. The Standard C++ library from GCC as a result, uses
this binding type for some of the symbols.
However, mklibs-readelf does not treat any symbol other than STB_WEAK or
STB_GLOBAL as provided by library.
The issue randers some symbols false 'unresolvable' when trying to generate
minimal library set. 

   * What exactly did you do (or not do) that was effective (or
     ineffective)?

mklibs-readelf --print-symbols-provided 
/usr/lib/x86_64-linux-gnu/libstdc++.so.6 \
  | grep empty_rep_storage

   * What was the outcome of this action?

Nothing, so the symbol is `not provided'.

   * What outcome did you expect instead?

_ZNSs4_Rep20_S_empty_rep_storageE False GLIBCXX_3.4 True
_ZNSbIwSt11char_traitsIwESaIwEE4_Rep20_S_empty_rep_storageE False GLIBCXX_3.4 
True


-- System Information:
Debian Release: 8.0
  APT prefers unstable
  APT policy: (500, 'unstable'), (1, 'experimental')
Architecture: amd64 (x86_64)

Kernel: Linux 3.19.2-1-ARCH (SMP w/8 CPU cores; PREEMPT)
Locale: LANG=C, LC_CTYPE=C (charmap=ANSI_X3.4-1968)
Shell: /bin/sh linked to /bin/dash
Init: unable to detect

Versions of packages mklibs depends on:
ii  binutils     2.25-6
ii  dpkg-dev     1.17.25
ii  gcc          4:4.9.2-2
ii  mklibs-copy  0.1.40
ii  python       2.7.9-1

Versions of packages mklibs recommends:
ii  libc6-pic  2.19-18

mklibs suggests no packages.

-- no debconf information

>From eddf04c7f8312e9c29cdb24e431b7e4fb2cc70ed Mon Sep 17 00:00:00 2001
From: Yuanjie Huang <yuanjie.hu...@windriver.com>
Date: Wed, 15 Apr 2015 14:00:06 +0800
Subject: [PATCH] Show GNU unique symbols as provided symbols

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.hu...@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


-- 
To UNSUBSCRIBE, email to debian-boot-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Archive: 
https://lists.debian.org/20150421091307.2089.39369.reportbug@9465ff6b3d0d

Reply via email to