Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
21 lines
758 B
Bash
Executable file
21 lines
758 B
Bash
Executable file
#! /usr/bin/env bash
|
|
|
|
# Before a shared module's DSO is produced, a static library is built for it
|
|
# and passed to this script. The script generates -Wl,-u options to force
|
|
# the inclusion of symbol from libqemuutil.a if the shared modules need them,
|
|
# This is necessary because the modules may use functions not needed by the
|
|
# executable itself, which would cause the function to not be linked in.
|
|
# Then the DSO loading would fail because of the missing symbol.
|
|
|
|
if test $# -le 2; then
|
|
exit 0
|
|
fi
|
|
|
|
NM=$1
|
|
staticlib=$2
|
|
shift 2
|
|
# Find symbols defined in static libraries and undefined in shared modules
|
|
comm -12 \
|
|
<( $NM -P -g $staticlib | awk '$2!="U"{print "-Wl,-u," $1}' | sort -u) \
|
|
<( $NM -P -g "$@" | awk '$2=="U"{print "-Wl,-u," $1}' | sort -u)
|