Browse Source

build: symbols and module names are now unique

4.0-vulkan
Thomas Guillem 8 years ago
parent
commit
8fa0da1241
  1. 36
      compile-libvlc.sh

36
compile-libvlc.sh

@ -611,40 +611,15 @@ get_symbol()
echo "$1" | grep vlc_entry_$2|cut -d" " -f 3
}
VLC_MODULES=$(find_modules vlc/$VLC_BUILD_DIR/modules)
VLC_MODULES=$(find_modules $VLC_SRC_DIR/$VLC_BUILD_DIR/modules)
DEFINITION="";
BUILTINS="const void *vlc_static_modules[] = {\n";
for file in $VLC_MODULES; do
outfile=${REDEFINED_VLC_MODULES_DIR}/`basename $file`
name=`echo $file | sed 's/.*\.libs\/lib//' | sed 's/_plugin\.a//'`;
symbols=$("${CROSS_TOOLS}nm" -g $file)
name=`echo "$symbols"|grep "vlc_entry__"|cut -d" " -f 3`
# assure that all modules have differents symbol names
entry=$(get_symbol "$symbols" _)
copyright=$(get_symbol "$symbols" copyright)
license=$(get_symbol "$symbols" license)
cat <<EOF > ${REDEFINED_VLC_MODULES_DIR}/syms
AccessOpen AccessOpen__$name
AccessClose AccessClose__$name
StreamOpen StreamOpen__$name
StreamClose StreamClose__$name
OpenDemux OpenDemux__$name
CloseDemux CloseDemux__$name
DemuxOpen DemuxOpen__$name
DemuxClose DemuxClose__$name
OpenFilter OpenFilter__$name
CloseFilter CloseFilter__$name
Open Open__$name
Close Close__$name
$entry vlc_entry__$name
$copyright vlc_entry_copyright__$name
$license vlc_entry_license__$name
EOF
${CROSS_TOOLS}objcopy --redefine-syms ${REDEFINED_VLC_MODULES_DIR}/syms $file $outfile
checkfail "objcopy failed"
DEFINITION=$DEFINITION"int vlc_entry__$name (int (*)(void *, void *, int, ...), void *);\n";
BUILTINS="$BUILTINS vlc_entry__$name,\n";
DEFINITION=$DEFINITION"int $name (int (*)(void *, void *, int, ...), void *);\n";
BUILTINS="$BUILTINS $name,\n";
done;
BUILTINS="$BUILTINS NULL\n};\n"; \
printf "/* Autogenerated from the list of modules */\n#include <unistd.h>\n$DEFINITION\n$BUILTINS\n" > libvlc/jni/libvlcjni-modules.c
@ -659,13 +634,10 @@ done
BUILTINS="$BUILTINS NULL\n};\n"; \
printf "/* Autogenerated from the list of modules */\n#include <unistd.h>\n$DEFINITION\n$BUILTINS\n" > libvlc/jni/libvlcjni-symbols.c
rm ${REDEFINED_VLC_MODULES_DIR}/syms
############################################
# NDK-Build for libvlc.so and libvlcjni.so #
############################################
VLC_MODULES=$(find_modules ${REDEFINED_VLC_MODULES_DIR})
VLC_CONTRIB_LDFLAGS=`for i in $(/bin/ls $VLC_CONTRIB/lib/pkgconfig/*.pc); do PKG_CONFIG_PATH="$VLC_CONTRIB/lib/pkgconfig/" pkg-config --libs $i; done |xargs`
echo -e "ndk-build vlc"

Loading…
Cancel
Save