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

  • Hallo,


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


    Code
    1. 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
    2. g++: error: pages/libpages.a: No such file or directory
    3. make: *** [Makefile:129: libvdr-live.so] Error 1


    Ein Ticket gibt es bereits:


    Lösung gibt es bisher noch keine.

    Gruß Marco


    HW: TeVii S471 S/S2, TT6400-S2
    SW: Fedora 29, kernel-4.19.2-300.fc29.x86_64, vdr-2.4.0-4.fc29.x86_64

  • 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: TeVii S471 S/S2, TT6400-S2
    SW: Fedora 29, kernel-4.19.2-300.fc29.x86_64, vdr-2.4.0-4.fc29.x86_64

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

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


    Lars.

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


    Das ist das Problem:

    Code
    1. multischedule.ecpp: In member function 'virtual unsigned int {anonymous}::_component_::operator()(tnt::HttpRequest&, tnt::HttpReply&, tnt::QueryParams&)':
    2. 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
    1. *Channel->Name() == '\0'


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

    Code
    1. 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

    Dieser Beitrag wurde bereits 2 Mal editiert, zuletzt von gda ()

  • Danke an euch, mit diesem Patch klappt es.


    Gruß Marco


    HW: TeVii S471 S/S2, TT6400-S2
    SW: Fedora 29, kernel-4.19.2-300.fc29.x86_64, vdr-2.4.0-4.fc29.x86_64