vdr-live - g++: error: pages/libpages.a: No such file or directory

  • Hallo,


    mit neueren gcc-Versionen >= 7 gibt es den folgenden Fehler:


    Code
    g++ -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -m64 -mtune=generic -fPIC -Wl,-z,relro -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -shared live.o thread.o tntconfig.o setup.o i18n.o timers.o tools.o recman.o tasks.o status.o epg_events.o epgsearch.o grab.o md5.o filecache.o livefeatures.o preload.o timerconflict.o users.o -Wl,--whole-archive pages/libpages.a css/libcss.a javascript/libjavascript.a -Wl,--no-whole-archive -L/usr/lib64 -ltntnet -lcxxtools -lpcrecpp -lpcre -o libvdr-live.so
    g++: error: pages/libpages.a: No such file or directory
    make: *** [Makefile:129: libvdr-live.so] Error 1


    Ein Ticket gibt es bereits:


    Lösung gibt es bisher noch keine.

    Gruß Marco


    HW: TT6400-S2
    SW: Fedora 37, kernel-6.1.6-200.fc37.x86_64, vdr-2.6.1-2.fc37.x86_64


    Fedora37 x86_64 Gnome Desktop 42.2 Ausgabe über das vdr-softhddevice plugin

    ViewSonic VX3276 HDMI-1 <------------> HDMI NVidia Geforce-gt-1030

    ViewSonic VX3276 HDMI-2 <------------> HDMI Technotrend S2-6400


  • Das bedeutet doch wohl, dass die Bibliothek libpages.a im Verzeichnis pages nicht gebaut wurde. Also ist das Problem wohl deutlich früher. Die Ausgabe vom Build von libpages wäre also wesentlich interessanter als die Zeile vom Linker.


    Gerald


    HP Proliant MicroServer Gen8, Xeon E3-1230, 12 GB RAM, 3xWD red 2TB im RAID 5, 2xSundtek MediaTV Home DVB-C/T, L4M TWIN-C/T, Ubuntu Server 14.04.1, Plex Media Server
    Samsung UE55H6470

  • Das bedeutet doch wohl, dass die Bibliothek libpages.a im Verzeichnis pages nicht gebaut wurde. Also ist das Problem wohl deutlich früher. Die Ausgabe vom Build von libpages wäre also wesentlich interessanter als die Zeile vom Linker.


    Gerald


    da gebe ich dir absolut Recht ! Hier die build.log

    Gruß Marco


    HW: TT6400-S2
    SW: Fedora 37, kernel-6.1.6-200.fc37.x86_64, vdr-2.6.1-2.fc37.x86_64


    Fedora37 x86_64 Gnome Desktop 42.2 Ausgabe über das vdr-softhddevice plugin

    ViewSonic VX3276 HDMI-1 <------------> HDMI NVidia Geforce-gt-1030

    ViewSonic VX3276 HDMI-2 <------------> HDMI Technotrend S2-6400


  • Einfach mal nach "error" suchen, dann findet man z.B.:

    Code
    multischedule.ecpp: In member function 'virtual unsigned int {anonymous}::_component_::operator()(tnt::HttpRequest&, tnt::HttpReply&, tnt::QueryParams&)':
    multischedule.ecpp:302:50: error: ISO C++ forbids comparison between pointer and integer [-fpermissive]
       if ( Channel->GroupSep() || Channel->Name() == '\0' )
                                                      ^~~~


    Lars.

  • na ja, die Idee war ja eigentlich, dass du da selber rein siehst, ist doch dein Projekt.


    Das ist das Problem:

    Code
    multischedule.ecpp: In member function 'virtual unsigned int {anonymous}::_component_::operator()(tnt::HttpRequest&, tnt::HttpReply&, tnt::QueryParams&)':
    multischedule.ecpp:302:50: error: ISO C++ forbids comparison between pointer and integer [-fpermissive]


    Gerald


    HP Proliant MicroServer Gen8, Xeon E3-1230, 12 GB RAM, 3xWD red 2TB im RAID 5, 2xSundtek MediaTV Home DVB-C/T, L4M TWIN-C/T, Ubuntu Server 14.04.1, Plex Media Server
    Samsung UE55H6470

  • Ohne auf den Code zu schauen, klingt es als wäre das ein Einzeiler.



    if ( Channel->GroupSep() || !Channel->Name() || !*Channel->Name() )

  • Damit könntest du recht haben. Ich musste allerdings auf den Code schauen, Hut ab!
    Wobei das nicht einfach ein GCC-Inkompatibilität ist, sondern ein fetter Bug.


    gemeint war wohl eher:

    Code
    *Channel->Name() == '\0'


    aber das reicht natürlich nicht wie du schon gezeigt hast, also:

    Code
    Channel->Name() == nullptr || *Channel->Name() == '\0'


    Aber so wie du es gemacht hast ist es schon schick.


    Tss, ich sehe jetzt erst, dass ich viel zu lahm war und Lars schon einen Spoiler geschickt hatte. Deshalb wusste es Wirbel ohne in den Code zu sehen, Hut wieder drauf.



    Gerald


    HP Proliant MicroServer Gen8, Xeon E3-1230, 12 GB RAM, 3xWD red 2TB im RAID 5, 2xSundtek MediaTV Home DVB-C/T, L4M TWIN-C/T, Ubuntu Server 14.04.1, Plex Media Server
    Samsung UE55H6470

    2 Mal editiert, zuletzt von gda ()

  • Danke an euch, mit diesem Patch klappt es.


    Gruß Marco


    HW: TT6400-S2
    SW: Fedora 37, kernel-6.1.6-200.fc37.x86_64, vdr-2.6.1-2.fc37.x86_64


    Fedora37 x86_64 Gnome Desktop 42.2 Ausgabe über das vdr-softhddevice plugin

    ViewSonic VX3276 HDMI-1 <------------> HDMI NVidia Geforce-gt-1030

    ViewSonic VX3276 HDMI-2 <------------> HDMI Technotrend S2-6400


Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!