libmp4v2, cdrkit (e altri): errori di compilazione con gcc-10 [RISOLTO]

Se avete problemi con l'installazione e la configurazione di Slackware64 postate qui. Non usate questo forum per argomenti che trattano la Slackware32 o generali... per quelli usate rispettivamente il forum Slackware e Gnu/Linux in genere.

Moderatore: Staff

Regole del forum
1) Citare sempre la versione di Slackware64 usata, la versione del Kernel e magari anche la versione della libreria coinvolta. Questi dati aiutano le persone che possono rispondere.
2) Per evitare confusione prego inserire in questo forum solo topic che riguardano appunto Slackware64, se l'argomento è Slackware32 o generale usate rispettivamente il forum Slackware o Gnu/Linux in genere.
3) Leggere attentamente le risposte ricevute
4) Scrivere i messaggi con il colore di default, evitare altri colori.
5) Scrivere in Italiano o in Inglese, se possibile grammaticalmente corretto, evitate stili di scrittura poco chiari, quindi nessuna abbreviazione tipo telegramma o scrittura stile SMS o CHAT.
6) Appena registrati è consigliato presentarsi nel forum dedicato.

La non osservanza delle regole porta a provvedimenti di vari tipo da parte dello staff, in particolare la non osservanza della regola 5 porta alla cancellazione del post e alla segnalazione dell'utente. In caso di recidività l'utente rischia il ban temporaneo.
Rispondi
gian_d
Linux 2.x
Linux 2.x
Messaggi: 350
Iscritto il: mer 16 lug 2014, 17:35
Nome Cognome: Giancarlo Dessì
Slackware: 64 current
Kernel: 5.10.xx
Desktop: KDE 5.20
Località: Sardinia
Contatta:

libmp4v2, cdrkit (e altri): errori di compilazione con gcc-10 [RISOLTO]

Messaggio da gian_d »

Con il passaggio di gcc alla versione 10 si verifica un errore di compilazione del sorgente di libmp4v2 (dipendenza di vlc). L'errore è già stato segnalato e corretto nella comunità di Gentoo da una patch che andrebbe applicata così come è nello slackbuild.
Riferimenti qui: https://bugs.gentoo.org/723098
Ultima modifica di gian_d il mer 16 dic 2020, 15:24, modificato 2 volte in totale.

gian_d
Linux 2.x
Linux 2.x
Messaggi: 350
Iscritto il: mer 16 lug 2014, 17:35
Nome Cognome: Giancarlo Dessì
Slackware: 64 current
Kernel: 5.10.xx
Desktop: KDE 5.20
Località: Sardinia
Contatta:

Re: libmp4v2, cdrkit: errori di compilazione con gcc-10 [RISOLTO]

Messaggio da gian_d »

Un altro errore, sempre dovuto al passaggio di gcc alla versione 10, si ha con la compilazione di cdrkit. In questo caso la patch è fornita dalla comunità di Fedora, si può scaricare qui: https://src.fedoraproject.org/rpms/cdrk ... cc10.patch
Ultima modifica di gian_d il mer 16 dic 2020, 15:22, modificato 1 volta in totale.

gian_d
Linux 2.x
Linux 2.x
Messaggi: 350
Iscritto il: mer 16 lug 2014, 17:35
Nome Cognome: Giancarlo Dessì
Slackware: 64 current
Kernel: 5.10.xx
Desktop: KDE 5.20
Località: Sardinia
Contatta:

Re: libmp4v2, cdrkit: errori di compilazione con gcc-10 [RISOLTO]

Messaggio da gian_d »

Altra vittima di gcc5 è musepack-tools. In questo caso ho trovato la patch qui: http://buildroot-busybox.2317881.n4.nab ... 64952.html
Ultima modifica di gian_d il mer 16 dic 2020, 15:21, modificato 1 volta in totale.

Avatar utente
ponce
Iper Master
Iper Master
Messaggi: 2804
Iscritto il: mer 5 mar 2008, 16:45
Nome Cognome: Matteo Bernardini
Slackware: slackware64-current
Kernel: 5.11.2
Desktop: lxde
Località: Pisa
Contatta:

Re: libmp4v2, cdrkit: errori di compilazione con gcc-10 [RISOLTO]

Messaggio da ponce »

grazie dei contributi, Giancarlo!

mi potresti mandare per favore via pm un tuo indirizzo di mail da mettere nei commit su git?

gian_d
Linux 2.x
Linux 2.x
Messaggi: 350
Iscritto il: mer 16 lug 2014, 17:35
Nome Cognome: Giancarlo Dessì
Slackware: 64 current
Kernel: 5.10.xx
Desktop: KDE 5.20
Località: Sardinia
Contatta:

Re: libmp4v2, cdrkit: errori di compilazione con gcc-10 [RISOLTO]

Messaggio da gian_d »

Fatto.
Nel frattempo ne è saltato fuori con gsoap un altro esattamente dello stesso tipo di quello di musepack-tool. In questo caso come patch ho usato questa:

Codice: Seleziona tutto

--- gsoap-2.8/gsoap/src/soapcpp2_lex.l	2019-08-15 08:05:08.000000000 +0200
+++ gsoap-2.8-fixed/gsoap/src/soapcpp2_lex.l	2020-12-16 14:43:08.454309633 +0100
@@ -50,7 +50,7 @@
 extern int isatty(int); /* silence warnings */
 
 #ifdef WITH_BISON
-YYSTYPE yylval;
+extern YYSTYPE yylval;
 #undef YY_NEED_STRLEN
 #define YY_INPUT(buf, result, max_size) \
         { \
Non è farina del mio sacco, sia chiaro, l'ho generata con Kompare basandomi su questa segnalazione: https://sourceforge.net/p/gsoap2/bugs/1269/

Da quel poco che capisco, questo "bug" si potrebbe superare senza ricorrere a delle patch ma semplicemente modificando i flag della compilazione mettendo -fno-common al posto di f-common come spiegato qui: https://bugzilla.opensuse.org/show_bug.cgi?id=1160244
Però non sono sicuro che possa funzionare semplicemente aggiungendo il flag nella variabile SLKCFLAGS dello slackbuild, peraltro non so se potrebbe andare in conflitto con la compilazione fatta con versioni precedenti a gcc10

gian_d
Linux 2.x
Linux 2.x
Messaggi: 350
Iscritto il: mer 16 lug 2014, 17:35
Nome Cognome: Giancarlo Dessì
Slackware: 64 current
Kernel: 5.10.xx
Desktop: KDE 5.20
Località: Sardinia
Contatta:

Re: libmp4v2, cdrkit (e altri): errori di compilazione con gcc-10 [RISOLTO]

Messaggio da gian_d »

Ho riprovato la compilazione senza la patch inserendo il flag nella variabile d'ambiente dello slackbuild con due distinte opzioni in questo modo:
1) CFLAGS="$SLKCFLAGS -fno-common" \
2) elif [ "$ARCH" = "x86_64" ]; then
SLKCFLAGS="-O2 -fPIC -fno-common"

Forse sbaglio qualcosa, ma in entrambi i casi la compilazione si ferma per lo stesso errore anche se gcc acquisisce il flag. Almeno, così ho intravvisto nel codice della compilazione al punto 2). Con la patch, invece è tutto ok.

Avatar utente
ponce
Iper Master
Iper Master
Messaggi: 2804
Iscritto il: mer 5 mar 2008, 16:45
Nome Cognome: Matteo Bernardini
Slackware: slackware64-current
Kernel: 5.11.2
Desktop: lxde
Località: Pisa
Contatta:

Re: libmp4v2, cdrkit (e altri): errori di compilazione con gcc-10 [RISOLTO]

Messaggio da ponce »

la flag che gli dovresti passare per fare in modo che il gcc-10.x si comporti come le versioni precedenti e' -fcommon perche' -fno-common e' il nuovo default: dai un'occhiata a questa pagina https://gcc.gnu.org/gcc-10/porting_to.html

comunque, in questo caso specifico, c'e' una versione piu' recente di gsoap che compila senza bisogno di -fcommon e quindi ho aggiornato a quella.

in generale mi regolo cosi':
- se esistono patch ufficiali (degli sviluppatori dell'applicazione/libreria) o non ufficiali ma "fidate" preferisco usare quelle, perche' correggono imprecisioni nel codice che vengono evidenziate dai nuovi compilatori: e' il motivo per cui, per esempio, per libmp4v2 e per musepack-tools, che compilavano gia' nel repository passando flag aggiuntive al compilatore, ho preferito usare le patch che mi hai consigliato;
- se non si puo' fare altrimenti mi arrangio passando flag aggiuntive tipo -fcommon o altro (a seconda delle necessita').

gian_d
Linux 2.x
Linux 2.x
Messaggi: 350
Iscritto il: mer 16 lug 2014, 17:35
Nome Cognome: Giancarlo Dessì
Slackware: 64 current
Kernel: 5.10.xx
Desktop: KDE 5.20
Località: Sardinia
Contatta:

Re: libmp4v2, cdrkit (e altri): errori di compilazione con gcc-10 [RISOLTO]

Messaggio da gian_d »

LOL, avevo capito proprio il contrario, ci credo che non andava :-D

gian_d
Linux 2.x
Linux 2.x
Messaggi: 350
Iscritto il: mer 16 lug 2014, 17:35
Nome Cognome: Giancarlo Dessì
Slackware: 64 current
Kernel: 5.10.xx
Desktop: KDE 5.20
Località: Sardinia
Contatta:

Re: libmp4v2, cdrkit: errori di compilazione con gcc-10 [RISOLTO]

Messaggio da gian_d »

gian_d ha scritto:
mer 16 dic 2020, 14:18
Altra vittima di gcc5 è musepack-tools. In questo caso ho trovato la patch qui: http://buildroot-busybox.2317881.n4.nab ... 64952.html
[Ho paura che questa correzione non basti, ho appena messo un post riguardante altri problemi (sfuggiti all'inizio) che sono saltati fuori al momento di ricompilare vlc :-\]

ritiro quello che ho appena scritto (fra parentesi in corsivo), è tutto OK, avevo solo pasticciato

Rispondi