Pagina 1 di 1

[SOLVED] Errore di compilazione di ITK su current

Inviato: dom 6 ott 2019, 13:34
da gian_d
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

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

Inviato: dom 6 ott 2019, 19:12
da ponce
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...

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

Inviato: dom 6 ott 2019, 20:01
da gian_d
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.

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

Inviato: dom 6 ott 2019, 20:24
da ponce
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...