vdr-plugin-vnsiserver from FernetMenta git issue

  Thread Rating:
  • 0 Votes - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Post Reply
Tuxwork Offline
Junior Member
Posts: 31
Joined: Mar 2012
Reputation: 0
Post: #1
Hi,

i have successfully build latest vdr-plugin-vnsiserver from "FernetMenta git"
but when I launch vdr, i get
Code:
vdr: /usr/lib/vdr/libvdr-vnsiserver.so.2.0.0: undefined symbol: stat
Any solution ?

informations:
Code:
$file libvdr-vnsiserver.so
libvdr-vnsiserver.so: ELF 32-bit LSB shared object, Intel 80386, version 1 (SYSV), dynamically linked, not stripped
Code:
$readelf -d libvdr-vnsiserver.so

Dynamic section at offset 0x62024 contains 24 entries:
  Tag        Type                         Name/Value
0x00000001 (NEEDED)                     Shared library: [libstdc++.so.6]
0x00000001 (NEEDED)                     Shared library: [libm.so.6]
0x00000001 (NEEDED)                     Shared library: [libgcc_s.so.1]
0x00000001 (NEEDED)                     Shared library: [libc.so.6]
0x0000000c (INIT)                       0x2bdfc
0x0000000d (FINI)                       0x51184
0x00000004 (HASH)                       0xd4
0x00000005 (STRTAB)                     0xab30
0x00000006 (SYMTAB)                     0x2fd0
0x0000000a (STRSZ)                      77845 (bytes)
0x0000000b (SYMENT)                     16 (bytes)
0x00000003 (PLTGOT)                     0x62110
0x00000002 (PLTRELSZ)                   16 (bytes)
0x00000014 (PLTREL)                     REL
0x00000017 (JMPREL)                     0x2bdec
0x00000011 (REL)                        0x1eb74
0x00000012 (RELSZ)                      53880 (bytes)
0x00000013 (RELENT)                     8 (bytes)
0x00000016 (TEXTREL)                    0x0
0x6ffffffe (VERNEED)                    0x1eab4
0x6fffffff (VERNEEDNUM)                 3
0x6ffffff0 (VERSYM)                     0x1db46
0x6ffffffa (RELCOUNT)                   545
0x00000000 (NULL)                       0x0
Code:
$strings libvdr-vnsiserver5.so |grep stat -A 2 -B 2
_ZN10cRecPlayer9closeFileEv
_ZN10cRecPlayer17fileNameFromIndexEi
stat
_ZN7cVectorIP8cSegmentE6AppendES1_
_ZN10cRecPlayerD2Ev

The older version of vdr-plugin-vnsiserver not have "stat" entry:
Code:
$strings libvdr-vnsiserver5.so |grep stat -A 2 -B 2
libgcc_s.so.1
libc.so.6
__xstat64
_edata
__bss_start
--
VNSI: Client with ID %u seems to be disconnected, removing from client list
VNSI: Requesting clients to reload channel list
VNSI: Recordings state changed (%i)
VNSI: Requesting clients to reload recordings list
VNSI: Timers state changed (%i)
VNSI: Requesting clients to reload timers
VNSI-Error: accept failed

eglibc 2.17 sys/stat.h http://pastebin.com/zvCGvuC9

Thanks.
find quote
FernetMenta Offline
Team-Kodi Developer
Posts: 3,556
Joined: Jul 2010
Reputation: 67
Location: Munich
Post: #2
please post output from build (use pastebin) and vdr.pc
find quote
Tuxwork Offline
Junior Member
Posts: 31
Joined: Mar 2012
Reputation: 0
Post: #3
build log: http://pastebin.com/raw.php?i=dSsDxNjK

vdr.pc
Code:
bindir=/usr/bin
mandir=/usr/share/man
configdir=/home/.config/vdr
videodir=/home/vdr
cachedir=/var/cache/vdr
resdir=/usr/share/vdr
libdir=/usr/lib/vdr
locdir=/usr/share/locale
plgcfg=
apiversion=2.0.0
cflags=-g -O3 -Wall -fPIC -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE  
cxxflags=-g -O3 -Wall -Werror=overloaded-virtual -Wno-parentheses -fPIC -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE  

Name: VDR
Description: Video Disk Recorder
URL: http://www.tvdr.de/
Version: 2.0.2
Cflags: ${cflags}

please note, when i add a line in "Makefile":
Code:
DEFINES += -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE
i get :
Code:
vdr: /usr/lib/vdr/libvdr-vnsiserver.so.2.0.0: undefined symbol: stat64

Thanks.
find quote
FernetMenta Offline
Team-Kodi Developer
Posts: 3,556
Joined: Jul 2010
Reputation: 67
Location: Munich
Post: #4
You cross compile vdr and its plugins? The plugin's build system is not prepared for cross compilation. It assumes pkg-config is able to find vdr.pc and extract cflags and some other stuff. Plugins are supposed to compile with exaclty the same flags as vdr. Your build output does not indicate those flags:

-O3 -Wall -Werror=overloaded-virtual -Wno-parentheses -fPIC -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE

The -O switch will most likely make the missing symbol go away.
find quote
Tuxwork Offline
Junior Member
Posts: 31
Joined: Mar 2012
Reputation: 0
Post: #5
Yeah, Fixed!
by adding a line in Makefile:
Code:
DEFINES += -O3 -Wall -Werror=overloaded-virtual -Wno-parentheses -fPIC -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE

now:
Code:
$strings libvdr-vnsiserver.so |grep stat
__xstat64
_ZNSt9basic_iosIcSt11char_traitsIcEE5clearESt12_Ios_Iostate
VNSI: Recordings state changed (%i)
VNSI: Timers state changed (%i)

sorry for the mistake Blush

Thank you Smile
find quote