[vdr] vdr-1.7.32 plugin dvbhddevice fails

Gerald Dachs vdr at dachsweb.de
Tue Nov 20 07:15:58 CET 2012


Am 2012-11-20 04:38, schrieb Richard Scobie:
> Hi Klaus,
>
> Klaus Schmidinger wrote:
>
>> Maybe this was caused by the change I introduced in order to be able 
>> to
>> easily build a 32-bit version of VDR (and all its plugins) on a 
>> 64-bit
>> machine:
>> 
>> --------------------------------------------------------------------------------------------
>> --- PLUGINS/src/dvbhddevice/libhdffcmd/Makefile 2012/01/18 12:25:20  
>>   1.2
>> +++ PLUGINS/src/dvbhddevice/libhdffcmd/Makefile 2012/10/09 09:54:26  
>>   1.3
>> @@ -24,6 +24,18 @@
>>  AR      ?= ar
>>  ARFLAGS ?= r
>> +### The directory environment:
>> +
>> +VDRDIR ?= ../../../..
>> +
>> +### Make sure that necessary options are included:
>> +
>> +include $(VDRDIR)/Make.global
>> +
>> +### Allow user defined options to overwrite defaults:
>> +
>> +-include $(VDRDIR)/Make.config
>> +
>>  ### Implicit rules:
>> %.o: %.c
>> 
>> --------------------------------------------------------------------------------------------
>>
>> However, I got no such error message here, and I do use a TT 
>> S2-6400.
>> Maybe check your Make.global and/or Make.config files.
>>
>
> I checked both and they seem OK. My previous post just showed the
> linking stage. Here is the full output from compiling the dvbhddevice
> plugin and "-fPIC" is present during compilation of all object files.
>
>
> Plugin dvbhddevice:
> make[1]: Entering directory 
> `/home/rs/vdr-1.7.32/PLUGINS/src/dvbhddevice'
> make[1]: Leaving directory 
> `/home/rs/vdr-1.7.32/PLUGINS/src/dvbhddevice'
> make[1]: Entering directory 
> `/home/rs/vdr-1.7.32/PLUGINS/src/dvbhddevice'
> g++ -O3 -Wall -Werror=overloaded-virtual -Wno-parentheses -fPIC -c
> -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE
> -D_GNU_SOURCE -DPLUGIN_NAME_I18N='"dvbhddevice"'
> -I/mnt/storage/media_build_experimental/linux/include
> -I../../../include dvbhddevice.c
> g++ -O3 -Wall -Werror=overloaded-virtual -Wno-parentheses -fPIC -c
> -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE
> -D_GNU_SOURCE -DPLUGIN_NAME_I18N='"dvbhddevice"'
> -I/mnt/storage/media_build_experimental/linux/include
> -I../../../include dvbhdffdevice.c
> g++ -O3 -Wall -Werror=overloaded-virtual -Wno-parentheses -fPIC -c
> -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE
> -D_GNU_SOURCE -DPLUGIN_NAME_I18N='"dvbhddevice"'
> -I/mnt/storage/media_build_experimental/linux/include
> -I../../../include hdffcmd.c
> g++ -O3 -Wall -Werror=overloaded-virtual -Wno-parentheses -fPIC -c
> -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE
> -D_GNU_SOURCE -DPLUGIN_NAME_I18N='"dvbhddevice"'
> -I/mnt/storage/media_build_experimental/linux/include
> -I../../../include hdffosd.c
> hdffosd.c: In member function ‘virtual void cHdffOsd::DrawText(int,
> int, const char*, tColor, tColor, const cFont*, int, int, int)’:
> hdffosd.c:258:9: warning: variable ‘limit’ set but not used
> [-Wunused-but-set-variable]
> g++ -O3 -Wall -Werror=overloaded-virtual -Wno-parentheses -fPIC -c
> -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE
> -D_GNU_SOURCE -DPLUGIN_NAME_I18N='"dvbhddevice"'
> -I/mnt/storage/media_build_experimental/linux/include
> -I../../../include menu.c
> g++ -O3 -Wall -Werror=overloaded-virtual -Wno-parentheses -fPIC -c
> -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE
> -D_GNU_SOURCE -DPLUGIN_NAME_I18N='"dvbhddevice"'
> -I/mnt/storage/media_build_experimental/linux/include
> -I../../../include setup.c
> make -C libhdffcmd all
> make[2]: Entering directory
> `/home/rs/vdr-1.7.32/PLUGINS/src/dvbhddevice/libhdffcmd'
> gcc -O3 -Wall  -fPIC -shared -o libhdffcmd-0.1.0.so bitbuffer.o
> hdffcmd_av.o hdffcmd_base.o hdffcmd_generic.o hdffcmd_hdmi.o
> hdffcmd_mux.o hdffcmd_osd.o hdffcmd_remote.o
> /usr/bin/ld: bitbuffer.o: relocation R_X86_64_PC32 against undefined
> symbol `memset@@GLIBC_2.2.5' can not be used when making a shared
> object; recompile with -fPIC
> /usr/bin/ld: final link failed: Bad value
> collect2: ld returned 1 exit status
> make[2]: *** [libhdffcmd-0.1.0.so] Error 1
> make[2]: Leaving directory
> `/home/rs/vdr-1.7.32/PLUGINS/src/dvbhddevice/libhdffcmd'
> make[1]: *** [libvdr-dvbhddevice.so] Error 2
> make[1]: Leaving directory 
> `/home/rs/vdr-1.7.32/PLUGINS/src/dvbhddevice'
>
> The machine is running Fedora 16 64bit and gcc version 4.6.2 20111027
> (Red Hat 4.6.2-1) and I have no problem building vdr-1.7.31.

If you would take a deeper look into your post you would have noticed 
that the mentioned file bitbuffer.o is not
build to this time. It must have been build in a former stage. So there 
is still no proof that it
has been build with -fPIC.

Gerald



More information about the vdr mailing list