The Samba-Bugzilla – Attachment 14428 Details for
Bug 13579
wafsamba/samba_abi: always hide ABI symbols which must be local
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
propsed patch forv v4.9
0001-wafsamba-samba_abi-always-hide-ABI-symbols-which-mus.patch (text/plain), 2.89 KB, created by
Alexander Bokovoy
on 2018-08-17 10:15:41 UTC
(
hide
)
Description:
propsed patch forv v4.9
Filename:
MIME Type:
Creator:
Alexander Bokovoy
Created:
2018-08-17 10:15:41 UTC
Size:
2.89 KB
patch
obsolete
>From 5245c957563f866c502e2275863e5e9f697eb860 Mon Sep 17 00:00:00 2001 >From: Alexander Bokovoy <ab@samba.org> >Date: Thu, 12 Jul 2018 10:19:41 +0300 >Subject: [PATCH] wafsamba/samba_abi: always hide ABI symbols which must be > local > >binutils 2.31 is going to change how shared libraries are linked, such >that they always provide their own local definitions of the _end, _edata >and _bss_start symbols. This would all be fine, except for shared >libraries that export all symbols be default. (Rather than just >exporting those symbols that form part of their API). > >According to binutils developers, we should only export the symbols we >explicitly want to be used. We don't use this principle for all our >libraries and deliberately don't want to have ABI versioning control for >all of them, so the change I introduce here is to explicitly mark those >symbols that will always be added by default linker configuration with >binutils 2.31 as local. Right now these are '_end', '_edata', and >'__bss_start' symbols. > >Fixes: https://bugzilla.samba.org/show_bug.cgi?id=13579 > >Cherry-picked from commit 4e123c46820e737968fa3d1c594aa016cca39637 > >Signed-off-by: Alexander Bokovoy <ab@samba.org> >Reviewed-by: Andrew Bartlett <abartlet@samba.org> >--- > buildtools/wafsamba/samba_abi.py | 10 ++++++---- > buildtools/wafsamba/tests/test_abi.py | 14 ++++++++++++++ > 2 files changed, 20 insertions(+), 4 deletions(-) > >diff --git a/buildtools/wafsamba/samba_abi.py b/buildtools/wafsamba/samba_abi.py >index 196b468f5b3..4603e764fea 100644 >--- a/buildtools/wafsamba/samba_abi.py >+++ b/buildtools/wafsamba/samba_abi.py >@@ -192,10 +192,12 @@ def abi_write_vscript(f, libname, current_version, versions, symmap, abi_match): > f.write("\t\t%s;\n" % x) > else: > f.write("\t\t*;\n") >- if abi_match != ["*"]: >- f.write("\tlocal:\n") >- for x in local_abi: >- f.write("\t\t%s;\n" % x[1:]) >+ # Always hide symbols that must be local if exist >+ local_abi.extend(["!_end", "!__bss_start", "!_edata"]) >+ f.write("\tlocal:\n") >+ for x in local_abi: >+ f.write("\t\t%s;\n" % x[1:]) >+ if global_abi != ["*"]: > if len(global_abi) > 0: > f.write("\t\t*;\n") > f.write("};\n") >diff --git a/buildtools/wafsamba/tests/test_abi.py b/buildtools/wafsamba/tests/test_abi.py >index bba78c1ba07..74892146990 100644 >--- a/buildtools/wafsamba/tests/test_abi.py >+++ b/buildtools/wafsamba/tests/test_abi.py >@@ -66,6 +66,10 @@ class WriteVscriptTests(TestCase): > 1.0 { > \tglobal: > \t\t*; >+\tlocal: >+\t\t_end; >+\t\t__bss_start; >+\t\t_edata; > }; > """) > >@@ -84,6 +88,10 @@ MYLIB_0.1 { > 1.0 { > \tglobal: > \t\t*; >+\tlocal: >+\t\t_end; >+\t\t__bss_start; >+\t\t_edata; > }; > """) > >@@ -99,6 +107,9 @@ MYLIB_0.1 { > \t\t*; > \tlocal: > \t\texc_*; >+\t\t_end; >+\t\t__bss_start; >+\t\t_edata; > }; > """) > >@@ -115,6 +126,9 @@ MYLIB_0.1 { > \t\tpub_*; > \tlocal: > \t\texc_*; >+\t\t_end; >+\t\t__bss_start; >+\t\t_edata; > \t\t*; > }; > """) >-- >2.17.1 >
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Raw
Flags:
asn
:
review+
Actions:
View
Attachments on
bug 13579
: 14428