When vlm is disabled, vlm dumb symbols do not get exported
when compiling libvlc, after ./configure --disable-vlm I get:
gcc -std=gnu99 -DHAVE_CONFIG_H -I. -I.. -DSYS_LINUX -I../include -I../include -I/usr/local/include -D_FILE_OFFSET_BITS=64 -D__USE_UNIX98 -D_LARGEFILE64_SOURCE -D_REENTRANT -D_THREAD_SAFE -DLOCALEDIR=\"/usr/local/share/locale\" -DDATA_PATH=\"/usr/local/share/vlc\" -DPLUGIN_PATH=\"/usr/local/lib/vlc\" -D__LIBVLC__ -I../src/misc -O2 -ffast-math -funroll-loops -mtune=athlon64 -fomit-frame-pointer -DDBUS_API_SUBJECT_TO_CHANGE -I/usr/include/hal -I/usr/include/dbus-1.0 -I/usr/lib64/dbus-1.0/include -I/usr/include/dbus-1.0 -I/usr/lib64/dbus-1.0/include -fvisibility=hidden -Wall -Wextra -Wno-unused-parameter -Wsign-compare -Wundef -Wpointer-arith -Wbad-function-cast -Wcast-align -Wwrite-strings -Wmissing-prototypes -Wvolatile-register-var -MT input/libvlc_la-vlm.lo -MD -MP -MF input/.deps/libvlc_la-vlm.Tpo -c input/vlm.c -fPIC -DPIC -o input/.libs/libvlc_la-vlm.o
input/vlm.c:2917: warning: no previous prototype for '__vlm_New'
input/vlm.c:2922: warning: no previous prototype for 'vlm_Delete'
input/vlm.c:2926: warning: no previous prototype for 'vlm_ExecuteCommand'
input/vlm.c:2931: warning: no previous prototype for 'vlm_MessageNew'
input/vlm.c:2936: warning: no previous prototype for 'vlm_MessageAdd'
input/vlm.c:2940: warning: no previous prototype for 'vlm_MessageDelete'
input/vlm.c:2945: warning: no previous prototype for 'vlm_Control'
and then:
$ nm -D .libs/libvlc.so.1.0.0 | grep vlm
$
it seems vlc_vlm.h should always be included, but then I get the error:
input/vlm.c:2926: error: conflicting types for 'vlm_ExecuteCommand'
../include/vlc_vlm.h:157: error: previous declaration of 'vlm_ExecuteCommand' was here
I'll attach a patch that fixes eveything, so that I get the following output, even without vlm:
$ nm -D .libs/libvlc.so.1.0.0 | grep vlm
00000000000aa470 T __vlm_New
00000000000aa460 T vlm_Control
00000000000aa410 T vlm_Delete
00000000000aa420 T vlm_ExecuteCommand
00000000000aa440 T vlm_MessageAdd
00000000000aa450 T vlm_MessageDelete
00000000000aa430 T vlm_MessageNew
note: for now, if I disable vlm, the qt4 interface wont work and I'll get such messages at startup:
[00000001] main libvlc warning: cannot load module `/usr/lib64/vlc/gui/libqt4_plugin.so' (/usr/lib64/vlc/gui/libqt4_plugin.so: undefined symbol: vlm_MessageDelete)
[00000001] main libvlc warning: cannot load module `/usr/lib64/vlc/control/libtelnet_plugin.so' (/usr/lib64/vlc/control/libtelnet_plugin.so: undefined symbol: vlm_ExecuteCommand)