[SOLVED] Errore di compilazione di ITK su current

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.
gian_d
Linux 0.x
Linux 0.x
Messaggi: 88
Iscritto il: mer lug 16, 2014 17:35
Nome Cognome: Giancarlo Dessì
Slackware: 64 current
Kernel: 4.19.xx
Desktop: KDE 4.14.38
Località: Sardinia
Contatta:

[SOLVED] Errore di compilazione di ITK su current

Messaggioda gian_d » dom ott 06, 2019 13:34

Segnalo per chiunque sia interessato un errore di compilazione del sorgente di Insight Toolkit 4.13.2 (ITK) e versioni inferiori, compreso lo slackbuild del repository di Ponce su GitHub.
L'errore ricorre nel caso si usi una versione di gcc >= 9.x (caso dell'attuale current) ed è dovuto ad un modulo di terze parti (VLN) i cui sorgenti fanno riferimento solo a compilatori della serie 8 o versioni inferiori.
La configurazione della compilazione non rileva incompatibilità, gcc 9 viene regolarmente identificato da CMake, infatti l'errore compare solo durante la compilazione del modulo (error: Dunno about this gcc).

Per risolvere il problema è sufficiente applicare nello slackbuild le patch di due file, riporto qui i codici:

Codice: Seleziona tutto

--- InsightToolkit-4.13.2/Modules/ThirdParty/VNL/src/vxl/vcl/tests/test_preprocessor.cxx   2019-02-28 17:45:49.000000000 +0100
+++ InsightToolkit-fix-4.13.2/Modules/ThirdParty/VNL/src/vxl/vcl/tests/test_preprocessor.cxx   2019-10-06 11:30:17.059498967 +0200
@@ -64,6 +64,23 @@
   ++minor_count;
 #endif
 
+#ifdef VCL_GCC_9
+  ++major_count;
+#endif
+#ifdef VCL_GCC_90
+  ++minor_count;
+#endif
+#ifdef VCL_GCC_91
+  ++minor_count;
+#endif
+#ifdef VCL_GCC_92
+  ++minor_count;
+#endif
+#ifdef VCL_GCC_93
+  ++minor_count;
+#endif
+
+
 #ifdef VCL_VC
   ++compiler_count;
 #endif
 


e

Codice: Seleziona tutto

--- InsightToolkit-4.13.2/Modules/ThirdParty/VNL/src/vxl/vcl/vcl_compiler.h   2019-02-28 17:45:49.000000000 +0100
+++ InsightToolkit-fix-4.13.2/Modules/ThirdParty/VNL/src/vxl/vcl/vcl_compiler.h   2019-10-06 12:13:42.135341958 +0200
@@ -97,6 +97,17 @@
 #  else
 #   define VCL_GCC_80
 #  endif
+# elif (__GNUC__==9)
+#  define VCL_GCC_9
+#  if (__GNUC_MINOR__ > 2 )
+#   define VCL_GCC_93
+#  elif (__GNUC_MINOR__ > 1 )
+#   define VCL_GCC_92
+#  elif (__GNUC_MINOR__ > 0 )
+#   define VCL_GCC_91
+#  else
+#   define VCL_GCC_90
+#  endif
 # else
 #  error "Dunno about this gcc"
 # endif

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

Re: [SOLVED] Errore di compilazione di ITK su current

Messaggioda ponce » dom ott 06, 2019 19:12

grazie Giancarlo!

dovrebbe bastare solo la seconda patch, l'ho trovata referenziata anche nella pull request del loro repository

https://github.com/InsightSoftwareConso ... K/pull/911

se mi mandi via pm il tuo indirizzo email ti metto come autore del commit col fix...

gian_d
Linux 0.x
Linux 0.x
Messaggi: 88
Iscritto il: mer lug 16, 2014 17:35
Nome Cognome: Giancarlo Dessì
Slackware: 64 current
Kernel: 4.19.xx
Desktop: KDE 4.14.38
Località: Sardinia
Contatta:

Re: [SOLVED] Errore di compilazione di ITK su current

Messaggioda gian_d » dom ott 06, 2019 20:01

non so, io le ho messe contemporaneamente vedendo che in entrambi i file c'erano riferimenti alla versione del compilatore, quindi non ho verificato se siano entrambe necessarie. Le ho adattate da vecchie patch in circolazione che riguardavano problemi analoghi con precedenti versioni di gcc. A quanto pare il problema si ripropone ogni volta che viene rilasciato un upgrade di gcc.

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

Re: [SOLVED] Errore di compilazione di ITK su current

Messaggioda ponce » dom ott 06, 2019 20:24

quella ufficiale, datata 19 maggio, che e' nel loro repository per la versione 4.13.x (sara' inclusa nella 4.13.3 quando uscira') e' questa

https://github.com/InsightSoftwareConso ... lease-4.13

https://github.com/InsightSoftwareConso ... a966811ace

mi sembra identica alla seconda che hai postato: ti confermo che con quella e basta ITK compila su current.

non ti scordare di mandarmi l'indirizzo di email se vuoi che ti metta come autore del commit...