mirror of
https://sourceware.org/git/glibc.git
synced 2025-07-28 00:21:52 +03:00
Add build-many-glibcs.py option to strip installed shared libraries.
This patch adds a --strip option to build-many-glibcs.py, to make it strip the installed shared libraries after installation. This is for convenience if you want to compare installed stripped shared libraries before and after a patch that was not meant to result in any code changes: you can run with this option, copy the install/glibcs directory, run again with the patch and compare the */lib* subdirectory contents. (It might make sense for the option to strip libraries in other directories, including stripping debug information from static libraries, with a view to making it possible for a no-generated-code-changes patch to result in completely identical install/glibcs directories, so simplifying comparison, though that may need other build determinism changes, e.g. to build deterministic .a files.) * scripts/build-many-glibcs.py (Context.__init__): Take strip argument. (Glibc.build_glibc): Strip installed shared libraries if requested. (get_parser): Add --strip option. (main): Update Context call.
This commit is contained in:
@ -1,3 +1,12 @@
|
|||||||
|
2016-12-07 Joseph Myers <joseph@codesourcery.com>
|
||||||
|
|
||||||
|
* scripts/build-many-glibcs.py (Context.__init__): Take strip
|
||||||
|
argument.
|
||||||
|
(Glibc.build_glibc): Strip installed shared libraries if
|
||||||
|
requested.
|
||||||
|
(get_parser): Add --strip option.
|
||||||
|
(main): Update Context call.
|
||||||
|
|
||||||
2016-12-07 Adhemerval Zanella <adhemerval.zanella@linaro.org>
|
2016-12-07 Adhemerval Zanella <adhemerval.zanella@linaro.org>
|
||||||
Dominik Vogt <vogt@linux.vnet.ibm.com>
|
Dominik Vogt <vogt@linux.vnet.ibm.com>
|
||||||
|
|
||||||
|
@ -53,12 +53,14 @@ import urllib.request
|
|||||||
class Context(object):
|
class Context(object):
|
||||||
"""The global state associated with builds in a given directory."""
|
"""The global state associated with builds in a given directory."""
|
||||||
|
|
||||||
def __init__(self, topdir, parallelism, keep, replace_sources, action):
|
def __init__(self, topdir, parallelism, keep, replace_sources, strip,
|
||||||
|
action):
|
||||||
"""Initialize the context."""
|
"""Initialize the context."""
|
||||||
self.topdir = topdir
|
self.topdir = topdir
|
||||||
self.parallelism = parallelism
|
self.parallelism = parallelism
|
||||||
self.keep = keep
|
self.keep = keep
|
||||||
self.replace_sources = replace_sources
|
self.replace_sources = replace_sources
|
||||||
|
self.strip = strip
|
||||||
self.srcdir = os.path.join(topdir, 'src')
|
self.srcdir = os.path.join(topdir, 'src')
|
||||||
self.versions_json = os.path.join(self.srcdir, 'versions.json')
|
self.versions_json = os.path.join(self.srcdir, 'versions.json')
|
||||||
self.build_state_json = os.path.join(topdir, 'build-state.json')
|
self.build_state_json = os.path.join(topdir, 'build-state.json')
|
||||||
@ -1318,6 +1320,11 @@ class Glibc(object):
|
|||||||
os.path.join(installdir,
|
os.path.join(installdir,
|
||||||
'usr', 'lib')])
|
'usr', 'lib')])
|
||||||
if not for_compiler:
|
if not for_compiler:
|
||||||
|
if self.ctx.strip:
|
||||||
|
cmdlist.add_command('strip',
|
||||||
|
['sh', '-c',
|
||||||
|
('%s %s/lib*/*.so' %
|
||||||
|
(self.tool_name('strip'), installdir))])
|
||||||
cmdlist.add_command('check', ['make', 'check'])
|
cmdlist.add_command('check', ['make', 'check'])
|
||||||
cmdlist.add_command('save-logs', [self.ctx.save_logs],
|
cmdlist.add_command('save-logs', [self.ctx.save_logs],
|
||||||
always_run=True)
|
always_run=True)
|
||||||
@ -1490,6 +1497,8 @@ def get_parser():
|
|||||||
parser.add_argument('--replace-sources', action='store_true',
|
parser.add_argument('--replace-sources', action='store_true',
|
||||||
help='Remove and replace source directories '
|
help='Remove and replace source directories '
|
||||||
'with the wrong version of a component')
|
'with the wrong version of a component')
|
||||||
|
parser.add_argument('--strip', action='store_true',
|
||||||
|
help='Strip installed glibc libraries')
|
||||||
parser.add_argument('topdir',
|
parser.add_argument('topdir',
|
||||||
help='Toplevel working directory')
|
help='Toplevel working directory')
|
||||||
parser.add_argument('action',
|
parser.add_argument('action',
|
||||||
@ -1508,7 +1517,7 @@ def main(argv):
|
|||||||
opts = parser.parse_args(argv)
|
opts = parser.parse_args(argv)
|
||||||
topdir = os.path.abspath(opts.topdir)
|
topdir = os.path.abspath(opts.topdir)
|
||||||
ctx = Context(topdir, opts.parallelism, opts.keep, opts.replace_sources,
|
ctx = Context(topdir, opts.parallelism, opts.keep, opts.replace_sources,
|
||||||
opts.action)
|
opts.strip, opts.action)
|
||||||
ctx.run_builds(opts.action, opts.configs)
|
ctx.run_builds(opts.action, opts.configs)
|
||||||
|
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user