Skip to content
Snippets Groups Projects
Commit eae3075b authored by Thomas Guillem's avatar Thomas Guillem
Browse files

build: symbols and module names are now unique

parent 7a513663
Branches 4.0
No related tags found
No related merge requests found
......@@ -613,40 +613,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
......@@ -661,13 +636,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"
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment