From 8fc4d28dba28de4cc4198fb0083829032783999a Mon Sep 17 00:00:00 2001 From: Pavel Hrdina Date: Mon, 27 Jul 2020 08:28:46 +0200 Subject: [PATCH] meson: scripts: introduce meson-gen-sym.py script Signed-off-by: Pavel Hrdina Reviewed-by: Peter Krempa Reviewed-by: Neal Gompa --- scripts/meson-gen-sym.py | 29 +++++++++++++++++++++++++++++ scripts/meson.build | 1 + src/Makefile.am | 14 -------------- 3 files changed, 30 insertions(+), 14 deletions(-) create mode 100755 scripts/meson-gen-sym.py diff --git a/scripts/meson-gen-sym.py b/scripts/meson-gen-sym.py new file mode 100755 index 0000000000..65a13e550a --- /dev/null +++ b/scripts/meson-gen-sym.py @@ -0,0 +1,29 @@ +#!/usr/bin/env python3 + +import sys + +if len(sys.argv) < 5: + print('invalid arguments') + print('usage: {0} OUTPUT VERSION PUBLIC PRIVATE ...') + sys.exit(1) + +outfilepath = sys.argv[1] +version = sys.argv[2] +public = sys.argv[3] +private = sys.argv[4:] + +with open(outfilepath, 'w') as out: + out.write('# WARNING: generated from the following files:\n\n') + + with open(public) as tmp: + out.write(tmp.read()) + + out.write('\n\n# Private symbols\n\n') + out.write('{0} {{\n\n'.format(version)) + out.write('global:\n\n') + + for priv in private: + with open(priv) as tmp: + out.write(tmp.read()) + + out.write('\n\nlocal:\n*;\n\n};') diff --git a/scripts/meson.build b/scripts/meson.build index 09340bb6c6..93ac4aa2cd 100644 --- a/scripts/meson.build +++ b/scripts/meson.build @@ -19,6 +19,7 @@ scripts = [ 'hvsupport.py', 'hyperv_wmi_generator.py', 'meson-gen-def.py', + 'meson-gen-sym.py', 'meson-python.sh', 'mock-noinline.py', 'prohibit-duplicate-header.py', diff --git a/src/Makefile.am b/src/Makefile.am index 36edda1616..0d08ce1d96 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -293,20 +293,6 @@ endif ! WITH_LIBSSH BUILT_SOURCES += $(GENERATED_SYM_FILES) -libvirt.syms: libvirt_public.syms $(USED_SYM_FILES) \ - $(ACCESS_DRIVER_SYM_FILES) \ - $(top_builddir)/config.status - $(AM_V_GEN)rm -f $@-tmp $@ ; \ - printf '# WARNING: generated from the following:\n# $^\n\n' >$@-tmp && \ - cat $(srcdir)/libvirt_public.syms >>$@-tmp && \ - printf '\n\n# Private symbols\n\n' >>$@-tmp && \ - printf 'LIBVIRT_PRIVATE_$(VERSION) {\n\n' >>$@-tmp && \ - printf 'global:\n\n' >>$@-tmp && \ - cat $(USED_SYM_FILES) $(ACCESS_DRIVER_SYM_FILES) >>$@-tmp && \ - printf '\n\nlocal:\n*;\n\n};' >>$@-tmp && \ - chmod a-w $@-tmp && \ - mv $@-tmp libvirt.syms - # Empty source list - it merely links a bunch of convenience libs together libvirt_la_SOURCES = libvirt_la_LDFLAGS = \