Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Build on aarch64 fails with NEON error #1959

Closed
ggardet opened this issue Aug 19, 2020 · 29 comments
Closed

Build on aarch64 fails with NEON error #1959

ggardet opened this issue Aug 19, 2020 · 29 comments
Labels
type:Bug Inconsistencies or issues which will cause an incorrect result under some or all circumstances

Comments

@ggardet
Copy link

ggardet commented Aug 19, 2020

Description

Since version 5, the build on aarch64 fails with NEON errors.
4.13 was ok.

Steps to Reproduce

Try to build ITK on aarch64 and check the errors:

[ 1621s] cd /home/abuild/rpmbuild/BUILD/InsightToolkit-5.1.0/build/Wrapping/Modules/ITKFFT && /usr/bin/castxml -o /home/abuild/rpmbuild/BUILD/InsightToolkit-5.1.0/build/Wrapping/itkFFTPadImageFilter.xml --castxml-gccxml --castxml-start _wrapping_ --castxml-cc-gnu "(" /usr/bin/c++ -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -Werror=return-type -flto=auto -g -DNDEBUG -Wcast-align -Wdisabled-optimization -Wextra -Wformat=2 -Winvalid-pch -Wno-format-nonliteral -Wpointer-arith -Wshadow -Wunused -Wwrite-strings -funit-at-a-time -Wno-strict-overflow -Wno-deprecated -Wno-invalid-offsetof -Woverloaded-virtual -Wstrict-null-sentinel -std=c++11 ")" -w -c @/home/abuild/rpmbuild/BUILD/InsightToolkit-5.1.0/build/Wrapping/ITKFFT.castxml.inc /home/abuild/rpmbuild/BUILD/InsightToolkit-5.1.0/build/Wrapping/itkFFTPadImageFilter.cxx
[ 1621s] In file included from /home/abuild/rpmbuild/BUILD/InsightToolkit-5.1.0/build/Wrapping/itkFFTPadImageFilter.cxx:11:
[ 1621s] In file included from /home/abuild/rpmbuild/BUILD/InsightToolkit-5.1.0/Modules/Core/Common/include/itkSymmetricSecondRankTensor.h:29:
[ 1621s] In file included from /home/abuild/rpmbuild/BUILD/InsightToolkit-5.1.0/Modules/Core/Common/include/itkSymmetricEigenAnalysis.h:23:
[ 1621s] In file included from /usr/include/eigen3/Eigen/Eigenvalues:11:
[ 1621s] In file included from /usr/include/eigen3/Eigen/Core:235:
[ 1621s] /usr/lib64/gcc/aarch64-suse-linux/10/include/arm_neon.h:38:9: error: unknown type name '__Int8x8_t'
[ 1621s] typedef __Int8x8_t int8x8_t;
[ 1621s]         ^
[ 1621s] /usr/lib64/gcc/aarch64-suse-linux/10/include/arm_neon.h:39:9: error: unknown type name '__Int16x4_t'
[ 1621s] typedef __Int16x4_t int16x4_t;
[ 1621s]         ^
[ 1621s] /usr/lib64/gcc/aarch64-suse-linux/10/include/arm_neon.h:40:9: error: unknown type name '__Int32x2_t'; did you mean '__int32_t'?
[ 1621s] typedef __Int32x2_t int32x2_t;
[ 1621s]         ^
[ 1621s] /usr/include/bits/types.h:41:20: note: '__int32_t' declared here
[ 1621s] typedef signed int __int32_t;
[ 1621s]                    ^
[ 1621s] In file included from /home/abuild/rpmbuild/BUILD/InsightToolkit-5.1.0/build/Wrapping/itkFFTPadImageFilter.cxx:11:
[ 1621s] In file included from /home/abuild/rpmbuild/BUILD/InsightToolkit-5.1.0/Modules/Core/Common/include/itkSymmetricSecondRankTensor.h:29:
[ 1621s] In file included from /home/abuild/rpmbuild/BUILD/InsightToolkit-5.1.0/Modules/Core/Common/include/itkSymmetricEigenAnalysis.h:23:
[ 1621s] In file included from /usr/include/eigen3/Eigen/Eigenvalues:11:
[ 1621s] In file included from /usr/include/eigen3/Eigen/Core:235:
[ 1621s] /usr/lib64/gcc/aarch64-suse-linux/10/include/arm_neon.h:41:9: error: unknown type name '__Int64x1_t'; did you mean '__int64_t'?
[ 1621s] typedef __Int64x1_t int64x1_t;
[ 1621s]         ^
[ 1621s] /usr/include/bits/types.h:44:25: note: '__int64_t' declared here
[ 1621s] typedef signed long int __int64_t;
[ 1621s]                         ^
[ 1621s] In file included from /home/abuild/rpmbuild/BUILD/InsightToolkit-5.1.0/build/Wrapping/itkFFTPadImageFilter.cxx:11:
[ 1621s] In file included from /home/abuild/rpmbuild/BUILD/InsightToolkit-5.1.0/Modules/Core/Common/include/itkSymmetricSecondRankTensor.h:29:
[ 1621s] In file included from /home/abuild/rpmbuild/BUILD/InsightToolkit-5.1.0/Modules/Core/Common/include/itkSymmetricEigenAnalysis.h:23:
[ 1621s] In file included from /usr/include/eigen3/Eigen/Eigenvalues:11:
[ 1621s] In file included from /usr/include/eigen3/Eigen/Core:235:
[ 1621s] /usr/lib64/gcc/aarch64-suse-linux/10/include/arm_neon.h:42:9: error: unknown type name '__Float16x4_t'
[ 1621s] typedef __Float16x4_t float16x4_t;
[ 1621s]         ^
[ 1621s] /usr/lib64/gcc/aarch64-suse-linux/10/include/arm_neon.h:43:9: error: unknown type name '__Float32x2_t'
[ 1621s] typedef __Float32x2_t float32x2_t;
[ 1621s]         ^
[ 1621s] /usr/lib64/gcc/aarch64-suse-linux/10/include/arm_neon.h:44:9: error: unknown type name '__Poly8x8_t'
[ 1621s] typedef __Poly8x8_t poly8x8_t;
[ 1621s]         ^
[ 1621s] /usr/lib64/gcc/aarch64-suse-linux/10/include/arm_neon.h:45:9: error: unknown type name '__Poly16x4_t'
[ 1621s] typedef __Poly16x4_t poly16x4_t;
[ 1621s]         ^
[ 1621s] /usr/lib64/gcc/aarch64-suse-linux/10/include/arm_neon.h:46:9: error: unknown type name '__Uint8x8_t'
[ 1621s] typedef __Uint8x8_t uint8x8_t;
[ 1621s]         ^
[ 1621s] /usr/lib64/gcc/aarch64-suse-linux/10/include/arm_neon.h:47:9: error: unknown type name '__Uint16x4_t'
[ 1621s] typedef __Uint16x4_t uint16x4_t;
[ 1621s]         ^
[ 1621s] /usr/lib64/gcc/aarch64-suse-linux/10/include/arm_neon.h:48:9: error: unknown type name '__Uint32x2_t'
[ 1621s] typedef __Uint32x2_t uint32x2_t;
[ 1621s]         ^
[ 1621s] /usr/lib64/gcc/aarch64-suse-linux/10/include/arm_neon.h:49:9: error: unknown type name '__Float64x1_t'
[ 1621s] typedef __Float64x1_t float64x1_t;
[ 1621s]         ^
[ 1621s] /usr/lib64/gcc/aarch64-suse-linux/10/include/arm_neon.h:50:9: error: unknown type name '__Uint64x1_t'
[ 1621s] typedef __Uint64x1_t uint64x1_t;
[ 1621s]         ^
[ 1621s] /usr/lib64/gcc/aarch64-suse-linux/10/include/arm_neon.h:51:9: error: unknown type name '__Int8x16_t'; did you mean '__int16_t'?
[ 1621s] typedef __Int8x16_t int8x16_t;
[ 1621s]         ^
[ 1621s] /usr/include/bits/types.h:39:26: note: '__int16_t' declared here
[ 1621s] typedef signed short int __int16_t;
[ 1621s]                          ^
[ 1621s] In file included from /home/abuild/rpmbuild/BUILD/InsightToolkit-5.1.0/build/Wrapping/itkFFTPadImageFilter.cxx:11:
[ 1621s] In file included from /home/abuild/rpmbuild/BUILD/InsightToolkit-5.1.0/Modules/Core/Common/include/itkSymmetricSecondRankTensor.h:29:
[ 1621s] In file included from /home/abuild/rpmbuild/BUILD/InsightToolkit-5.1.0/Modules/Core/Common/include/itkSymmetricEigenAnalysis.h:23:
[ 1621s] In file included from /usr/include/eigen3/Eigen/Eigenvalues:11:
[ 1621s] In file included from /usr/include/eigen3/Eigen/Core:235:
[ 1622s] /usr/lib64/gcc/aarch64-suse-linux/10/include/arm_neon.h:52:9: error: unknown type name '__Int16x8_t'
[ 1622s] typedef __Int16x8_t int16x8_t;
[ 1622s]         ^
[ 1622s] /usr/lib64/gcc/aarch64-suse-linux/10/include/arm_neon.h:53:9: error: unknown type name '__Int32x4_t'; did you mean '__int32_t'?
[ 1622s] typedef __Int32x4_t int32x4_t;
[ 1622s]         ^
[ 1622s] /usr/include/bits/types.h:41:20: note: '__int32_t' declared here
[ 1622s] typedef signed int __int32_t;
[ 1622s]                    ^
[ 1622s] In file included from /home/abuild/rpmbuild/BUILD/InsightToolkit-5.1.0/build/Wrapping/itkFFTPadImageFilter.cxx:11:
[ 1622s] In file included from /home/abuild/rpmbuild/BUILD/InsightToolkit-5.1.0/Modules/Core/Common/include/itkSymmetricSecondRankTensor.h:29:
[ 1622s] In file included from /home/abuild/rpmbuild/BUILD/InsightToolkit-5.1.0/Modules/Core/Common/include/itkSymmetricEigenAnalysis.h:23:
[ 1622s] In file included from /usr/include/eigen3/Eigen/Eigenvalues:11:
[ 1622s] In file included from /usr/include/eigen3/Eigen/Core:235:
[ 1622s] /usr/lib64/gcc/aarch64-suse-linux/10/include/arm_neon.h:54:9: error: unknown type name '__Int64x2_t'; did you mean '__int64_t'?
[ 1622s] typedef __Int64x2_t int64x2_t;
[ 1622s]         ^
[ 1622s] /usr/include/bits/types.h:44:25: note: '__int64_t' declared here
[ 1622s] typedef signed long int __int64_t;
[ 1622s]                         ^
[ 1622s] In file included from /home/abuild/rpmbuild/BUILD/InsightToolkit-5.1.0/build/Wrapping/itkFFTPadImageFilter.cxx:11:
[ 1622s] In file included from /home/abuild/rpmbuild/BUILD/InsightToolkit-5.1.0/Modules/Core/Common/include/itkSymmetricSecondRankTensor.h:29:
[ 1622s] In file included from /home/abuild/rpmbuild/BUILD/InsightToolkit-5.1.0/Modules/Core/Common/include/itkSymmetricEigenAnalysis.h:23:
[ 1622s] In file included from /usr/include/eigen3/Eigen/Eigenvalues:11:
[ 1622s] In file included from /usr/include/eigen3/Eigen/Core:235:
[ 1622s] /usr/lib64/gcc/aarch64-suse-linux/10/include/arm_neon.h:55:9: error: unknown type name '__Float16x8_t'; did you mean '__SVFloat16_t'?
[ 1622s] typedef __Float16x8_t float16x8_t;
[ 1622s]         ^
[ 1622s] note: '__SVFloat16_t' declared here
[ 1622s] /usr/lib64/gcc/aarch64-suse-linux/10/include/arm_neon.h:56:9: error: unknown type name '__Float32x4_t'
[ 1622s] typedef __Float32x4_t float32x4_t;
[ 1622s]         ^
[ 1622s] fatal error: too many errors emitted, stopping now [-ferror-limit=]
[ 1622s] 20 errors generated.
[ 1625s] [1120/4451] : && /usr/bin/c++ -fPIC -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -Werror=return-type -flto=auto -g -DNDEBUG  -Wcast-align -Wdisabled-optimization -Wextra -Wformat=2 -Winvalid-pch -Wno-format-nonliteral -Wpointer-arith -Wshadow -Wunused -Wwrite-strings -funit-at-a-time -Wno-strict-overflow -Wno-deprecated -Wno-invalid-offsetof -Woverloaded-virtual -Wstrict-null-sentinel  -O2 -g -DNDEBUG  -flto=auto -Wl,--as-needed -Wl,--no-undefined -Wl,-z,now -shared -Wl,-soname,libITKIOMeshOFF-5.1.so.1 -o lib/libITKIOMeshOFF-5.1.so.1 Modules/IO/MeshOFF/src/CMakeFiles/ITKIOMeshOFF.dir/itkOFFMeshIO.cxx.o Modules/IO/MeshOFF/src/CMakeFiles/ITKIOMeshOFF.dir/itkOFFMeshIOFactory.cxx.o -L/usr/lib64/usr/lib64 -Wl,-rpath,/usr/lib64/usr/lib64:/home/abuild/rpmbuild/BUILD/InsightToolkit-5.1.0/build/lib:  lib/libITKIOMeshBase-5.1.so.1  lib/libITKIOImageBase-5.1.so.1  lib/libITKQuadEdgeMesh-5.1.so.1  lib/libITKMesh-5.1.so.1  lib/libITKTransform-5.1.so.1  lib/libITKCommon-5.1.so.1  lib/libitksys-5.1.so.1  lib/libITKVNLInstantiation-5.1.so.1  lib/libitkvnl_algo-5.1.so.1  lib/libitkvnl-5.1.so.1  lib/libitkv3p_netlib-5.1.so.1  lib/libitkvcl-5.1.so.1  -lm  -lpthread  -lm  -ldl  -Wl,-rpath-link,/home/abuild/rpmbuild/BUILD/InsightToolkit-5.1.0/build/lib && :
[ 1632s] [1121/4451] cd /home/abuild/rpmbuild/BUILD/InsightToolkit-5.1.0/build/Wrapping/Modules/ITKFFT && /usr/bin/castxml -o /home/abuild/rpmbuild/BUILD/InsightToolkit-5.1.0/build/Wrapping/itkFFTWComplexToComplexFFTImageFilter.xml --castxml-gccxml --castxml-start _wrapping_ --castxml-cc-gnu "(" /usr/bin/c++ -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -Werror=return-type -flto=auto -g -DNDEBUG -Wcast-align -Wdisabled-optimization -Wextra -Wformat=2 -Winvalid-pch -Wno-format-nonliteral -Wpointer-arith -Wshadow -Wunused -Wwrite-strings -funit-at-a-time -Wno-strict-overflow -Wno-deprecated -Wno-invalid-offsetof -Woverloaded-virtual -Wstrict-null-sentinel -std=c++11 ")" -w -c @/home/abuild/rpmbuild/BUILD/InsightToolkit-5.1.0/build/Wrapping/ITKFFT.castxml.inc /home/abuild/rpmbuild/BUILD/InsightToolkit-5.1.0/build/Wrapping/itkFFTWComplexToComplexFFTImageFilter.cxx
[ 1632s] FAILED: Wrapping/itkFFTWComplexToComplexFFTImageFilter.xml 
[ 1632s] cd /home/abuild/rpmbuild/BUILD/InsightToolkit-5.1.0/build/Wrapping/Modules/ITKFFT && /usr/bin/castxml -o /home/abuild/rpmbuild/BUILD/InsightToolkit-5.1.0/build/Wrapping/itkFFTWComplexToComplexFFTImageFilter.xml --castxml-gccxml --castxml-start _wrapping_ --castxml-cc-gnu "(" /usr/bin/c++ -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -Werror=return-type -flto=auto -g -DNDEBUG -Wcast-align -Wdisabled-optimization -Wextra -Wformat=2 -Winvalid-pch -Wno-format-nonliteral -Wpointer-arith -Wshadow -Wunused -Wwrite-strings -funit-at-a-time -Wno-strict-overflow -Wno-deprecated -Wno-invalid-offsetof -Woverloaded-virtual -Wstrict-null-sentinel -std=c++11 ")" -w -c @/home/abuild/rpmbuild/BUILD/InsightToolkit-5.1.0/build/Wrapping/ITKFFT.castxml.inc /home/abuild/rpmbuild/BUILD/InsightToolkit-5.1.0/build/Wrapping/itkFFTWComplexToComplexFFTImageFilter.cxx
[ 1632s] In file included from /home/abuild/rpmbuild/BUILD/InsightToolkit-5.1.0/build/Wrapping/itkFFTWComplexToComplexFFTImageFilter.cxx:11:
[ 1632s] In file included from /home/abuild/rpmbuild/BUILD/InsightToolkit-5.1.0/Modules/Core/Common/include/itkSymmetricSecondRankTensor.h:29:
[ 1632s] In file included from /home/abuild/rpmbuild/BUILD/InsightToolkit-5.1.0/Modules/Core/Common/include/itkSymmetricEigenAnalysis.h:23:
[ 1632s] In file included from /usr/include/eigen3/Eigen/Eigenvalues:11:
[ 1632s] In file included from /usr/include/eigen3/Eigen/Core:235:
[ 1632s] /usr/lib64/gcc/aarch64-suse-linux/10/include/arm_neon.h:38:9: error: unknown type name '__Int8x8_t'
[ 1632s] typedef __Int8x8_t int8x8_t;
[ 1632s]         ^
[ 1632s] /usr/lib64/gcc/aarch64-suse-linux/10/include/arm_neon.h:39:9: error: unknown type name '__Int16x4_t'
[ 1632s] typedef __Int16x4_t int16x4_t;
[ 1632s]         ^
[ 1632s] /usr/lib64/gcc/aarch64-suse-linux/10/include/arm_neon.h:40:9: error: unknown type name '__Int32x2_t'; did you mean '__int32_t'?
[ 1632s] typedef __Int32x2_t int32x2_t;
[ 1632s]         ^
[ 1632s] /usr/include/bits/types.h:41:20: note: '__int32_t' declared here
[ 1632s] typedef signed int __int32_t;
[ 1632s]                    ^
[ 1632s] In file included from /home/abuild/rpmbuild/BUILD/InsightToolkit-5.1.0/build/Wrapping/itkFFTWComplexToComplexFFTImageFilter.cxx:11:
[ 1632s] In file included from /home/abuild/rpmbuild/BUILD/InsightToolkit-5.1.0/Modules/Core/Common/include/itkSymmetricSecondRankTensor.h:29:
[ 1632s] In file included from /home/abuild/rpmbuild/BUILD/InsightToolkit-5.1.0/Modules/Core/Common/include/itkSymmetricEigenAnalysis.h:23:
[ 1632s] In file included from /usr/include/eigen3/Eigen/Eigenvalues:11:
[ 1632s] In file included from /usr/include/eigen3/Eigen/Core:235:
[ 1632s] /usr/lib64/gcc/aarch64-suse-linux/10/include/arm_neon.h:41:9: error: unknown type name '__Int64x1_t'; did you mean '__int64_t'?
[ 1632s] typedef __Int64x1_t int64x1_t;
[ 1632s]         ^
[ 1632s] /usr/include/bits/types.h:44:25: note: '__int64_t' declared here
[ 1632s] typedef signed long int __int64_t;
[ 1632s]                         ^
[ 1632s] In file included from /home/abuild/rpmbuild/BUILD/InsightToolkit-5.1.0/build/Wrapping/itkFFTWComplexToComplexFFTImageFilter.cxx:11:
[ 1632s] In file included from /home/abuild/rpmbuild/BUILD/InsightToolkit-5.1.0/Modules/Core/Common/include/itkSymmetricSecondRankTensor.h:29:
[ 1632s] In file included from /home/abuild/rpmbuild/BUILD/InsightToolkit-5.1.0/Modules/Core/Common/include/itkSymmetricEigenAnalysis.h:23:
[ 1632s] In file included from /usr/include/eigen3/Eigen/Eigenvalues:11:
[ 1632s] In file included from /usr/include/eigen3/Eigen/Core:235:
[ 1632s] /usr/lib64/gcc/aarch64-suse-linux/10/include/arm_neon.h:42:9: error: unknown type name '__Float16x4_t'
[ 1632s] typedef __Float16x4_t float16x4_t;
[ 1632s]         ^
[ 1632s] /usr/lib64/gcc/aarch64-suse-linux/10/include/arm_neon.h:43:9: error: unknown type name '__Float32x2_t'
[ 1632s] typedef __Float32x2_t float32x2_t;
[ 1632s]         ^
[ 1632s] /usr/lib64/gcc/aarch64-suse-linux/10/include/arm_neon.h:44:9: error: unknown type name '__Poly8x8_t'
[ 1632s] typedef __Poly8x8_t poly8x8_t;
[ 1632s]         ^
[ 1632s] /usr/lib64/gcc/aarch64-suse-linux/10/include/arm_neon.h:45:9: error: unknown type name '__Poly16x4_t'
[ 1632s] typedef __Poly16x4_t poly16x4_t;
[ 1632s]         ^
[ 1632s] /usr/lib64/gcc/aarch64-suse-linux/10/include/arm_neon.h:46:9: error: unknown type name '__Uint8x8_t'
[ 1632s] typedef __Uint8x8_t uint8x8_t;
[ 1632s]         ^
[ 1632s] /usr/lib64/gcc/aarch64-suse-linux/10/include/arm_neon.h:47:9: error: unknown type name '__Uint16x4_t'
[ 1632s] typedef __Uint16x4_t uint16x4_t;
[ 1632s]         ^
[ 1632s] /usr/lib64/gcc/aarch64-suse-linux/10/include/arm_neon.h:48:9: error: unknown type name '__Uint32x2_t'
[ 1632s] typedef __Uint32x2_t uint32x2_t;
[ 1632s]         ^
[ 1632s] /usr/lib64/gcc/aarch64-suse-linux/10/include/arm_neon.h:49:9: error: unknown type name '__Float64x1_t'
[ 1632s] typedef __Float64x1_t float64x1_t;
[ 1632s]         ^
[ 1632s] /usr/lib64/gcc/aarch64-suse-linux/10/include/arm_neon.h:50:9: error: unknown type name '__Uint64x1_t'
[ 1632s] typedef __Uint64x1_t uint64x1_t;
[ 1632s]         ^
[ 1632s] /usr/lib64/gcc/aarch64-suse-linux/10/include/arm_neon.h:51:9: error: unknown type name '__Int8x16_t'; did you mean '__int16_t'?
[ 1632s] typedef __Int8x16_t int8x16_t;
[ 1632s]         ^
[ 1632s] /usr/include/bits/types.h:39:26: note: '__int16_t' declared here
[ 1632s] typedef signed short int __int16_t;
[ 1632s]                          ^
[ 1632s] In file included from /home/abuild/rpmbuild/BUILD/InsightToolkit-5.1.0/build/Wrapping/itkFFTWComplexToComplexFFTImageFilter.cxx:11:
[ 1632s] In file included from /home/abuild/rpmbuild/BUILD/InsightToolkit-5.1.0/Modules/Core/Common/include/itkSymmetricSecondRankTensor.h:29:
[ 1632s] In file included from /home/abuild/rpmbuild/BUILD/InsightToolkit-5.1.0/Modules/Core/Common/include/itkSymmetricEigenAnalysis.h:23:
[ 1632s] In file included from /usr/include/eigen3/Eigen/Eigenvalues:11:
[ 1632s] In file included from /usr/include/eigen3/Eigen/Core:235:
[ 1632s] /usr/lib64/gcc/aarch64-suse-linux/10/include/arm_neon.h:52:9: error: unknown type name '__Int16x8_t'
[ 1632s] typedef __Int16x8_t int16x8_t;
[ 1632s]         ^
[ 1632s] /usr/lib64/gcc/aarch64-suse-linux/10/include/arm_neon.h:53:9: error: unknown type name '__Int32x4_t'; did you mean '__int32_t'?
[ 1632s] typedef __Int32x4_t int32x4_t;
[ 1632s]         ^
[ 1632s] /usr/include/bits/types.h:41:20: note: '__int32_t' declared here
[ 1632s] typedef signed int __int32_t;
[ 1632s]                    ^
[ 1632s] In file included from /home/abuild/rpmbuild/BUILD/InsightToolkit-5.1.0/build/Wrapping/itkFFTWComplexToComplexFFTImageFilter.cxx:11:
[ 1632s] In file included from /home/abuild/rpmbuild/BUILD/InsightToolkit-5.1.0/Modules/Core/Common/include/itkSymmetricSecondRankTensor.h:29:
[ 1632s] In file included from /home/abuild/rpmbuild/BUILD/InsightToolkit-5.1.0/Modules/Core/Common/include/itkSymmetricEigenAnalysis.h:23:
[ 1632s] In file included from /usr/include/eigen3/Eigen/Eigenvalues:11:
[ 1632s] In file included from /usr/include/eigen3/Eigen/Core:235:
[ 1632s] /usr/lib64/gcc/aarch64-suse-linux/10/include/arm_neon.h:54:9: error: unknown type name '__Int64x2_t'; did you mean '__int64_t'?
[ 1632s] typedef __Int64x2_t int64x2_t;
[ 1632s]         ^
[ 1632s] /usr/include/bits/types.h:44:25: note: '__int64_t' declared here
[ 1632s] typedef signed long int __int64_t;
[ 1632s]                         ^
[ 1632s] In file included from /home/abuild/rpmbuild/BUILD/InsightToolkit-5.1.0/build/Wrapping/itkFFTWComplexToComplexFFTImageFilter.cxx:11:
[ 1632s] In file included from /home/abuild/rpmbuild/BUILD/InsightToolkit-5.1.0/Modules/Core/Common/include/itkSymmetricSecondRankTensor.h:29:
[ 1632s] In file included from /home/abuild/rpmbuild/BUILD/InsightToolkit-5.1.0/Modules/Core/Common/include/itkSymmetricEigenAnalysis.h:23:
[ 1632s] In file included from /usr/include/eigen3/Eigen/Eigenvalues:11:
[ 1632s] In file included from /usr/include/eigen3/Eigen/Core:235:
[ 1632s] /usr/lib64/gcc/aarch64-suse-linux/10/include/arm_neon.h:55:9: error: unknown type name '__Float16x8_t'; did you mean '__SVFloat16_t'?
[ 1632s] typedef __Float16x8_t float16x8_t;
[ 1632s]         ^
[ 1632s] note: '__SVFloat16_t' declared here
[ 1632s] /usr/lib64/gcc/aarch64-suse-linux/10/include/arm_neon.h:56:9: error: unknown type name '__Float32x4_t'
[ 1632s] typedef __Float32x4_t float32x4_t;
[ 1632s]         ^
[ 1632s] fatal error: too many errors emitted, stopping now [-ferror-limit=]

Expected behavior

Build should succeed.

Actual behavior

Build fails.

Reproducibility

100%

Versions

5.1.0

Environment

openSUSE Tumbleweed

Additional Information

@ggardet ggardet added the type:Bug Inconsistencies or issues which will cause an incorrect result under some or all circumstances label Aug 19, 2020
@dzenanz
Copy link
Member

dzenanz commented Aug 19, 2020

Could the reason be lousy support for ARM NEON by CastXML version used? Also, all of these errors seem to pass through Eigen. Is that Eigen version new enough? It is hard to diagnose/fix this without access to machine with the said architecture.

@badshah400
Copy link

@dzenanz This is when building against eigen 3.3.7 and CastXML 0.3.4.

@dzenanz
Copy link
Member

dzenanz commented Aug 19, 2020

@bradking do you have any insights?

@bradking
Copy link
Member

What is the output of castxml --print-resource-dir?

@badshah400
Copy link

/usr/share/castxml/clang

@bradking
Copy link
Member

Thanks. What files are present in the /usr/share/castxml/clang directory? E.g. ls /usr/share/castxml/clang.

Also, what is the output of castxml --version? In particular, I'd like to know the version of LLVM/Clang against which castxml was built, and its target triple.

@badshah400
Copy link

[   15s] + ls -R /usr/share/castxml/clang
[   15s] /usr/share/castxml/clang:
[   15s] include
[   15s] 
[   15s] /usr/share/castxml/clang/include:
[   15s] __clang_cuda_builtin_vars.h
[   15s] __clang_cuda_cmath.h
[   15s] __clang_cuda_complex_builtins.h
[   15s] __clang_cuda_device_functions.h
[   15s] __clang_cuda_intrinsics.h
[   15s] __clang_cuda_libdevice_declares.h
[   15s] __clang_cuda_math_forward_declares.h
[   15s] __clang_cuda_runtime_wrapper.h
[   15s] __stddef_max_align_t.h
[   15s] __wmmintrin_aes.h
[   15s] __wmmintrin_pclmul.h
[   15s] adxintrin.h
[   15s] altivec.h
[   15s] ammintrin.h
[   15s] arm64intr.h
[   15s] arm_acle.h
[   15s] arm_cmse.h
[   15s] arm_fp16.h
[   15s] arm_mve.h
[   15s] arm_neon.h
[   15s] armintr.h
[   15s] avx2intrin.h
[   15s] avx512bf16intrin.h
[   15s] avx512bitalgintrin.h
[   15s] avx512bwintrin.h
[   15s] avx512cdintrin.h
[   15s] avx512dqintrin.h
[   15s] avx512erintrin.h
[   15s] avx512fintrin.h
[   15s] avx512ifmaintrin.h
[   15s] avx512ifmavlintrin.h
[   15s] avx512pfintrin.h
[   15s] avx512vbmi2intrin.h
[   15s] avx512vbmiintrin.h
[   15s] avx512vbmivlintrin.h
[   15s] avx512vlbf16intrin.h
[   15s] avx512vlbitalgintrin.h
[   15s] avx512vlbwintrin.h
[   15s] avx512vlcdintrin.h
[   15s] avx512vldqintrin.h
[   15s] avx512vlintrin.h
[   15s] avx512vlvbmi2intrin.h
[   15s] avx512vlvnniintrin.h
[   15s] avx512vlvp2intersectintrin.h
[   15s] avx512vnniintrin.h
[   15s] avx512vp2intersectintrin.h
[   15s] avx512vpopcntdqintrin.h
[   15s] avx512vpopcntdqvlintrin.h
[   15s] avxintrin.h
[   15s] bmi2intrin.h
[   15s] bmiintrin.h
[   15s] cetintrin.h
[   15s] cldemoteintrin.h
[   15s] clflushoptintrin.h
[   15s] clwbintrin.h
[   15s] clzerointrin.h
[   15s] cpuid.h
[   15s] cuda_wrappers
[   15s] emmintrin.h
[   15s] enqcmdintrin.h
[   15s] f16cintrin.h
[   15s] float.h
[   15s] fma4intrin.h
[   15s] fmaintrin.h
[   15s] fuzzer
[   15s] fxsrintrin.h
[   15s] gfniintrin.h
[   15s] htmintrin.h
[   15s] htmxlintrin.h
[   15s] ia32intrin.h
[   15s] immintrin.h
[   15s] intrin.h
[   15s] inttypes.h
[   15s] invpcidintrin.h
[   15s] iso646.h
[   15s] limits.h
[   15s] lwpintrin.h
[   15s] lzcntintrin.h
[   15s] mm3dnow.h
[   15s] mm_malloc.h
[   15s] mmintrin.h
[   15s] module.modulemap
[   15s] movdirintrin.h
[   15s] msa.h
[   15s] mwaitxintrin.h
[   15s] nmmintrin.h
[   15s] omp-tools.h
[   15s] omp.h
[   15s] ompt.h
[   15s] opencl-c-base.h
[   15s] opencl-c.h
[   15s] openmp_wrappers
[   15s] pconfigintrin.h
[   15s] pkuintrin.h
[   15s] pmmintrin.h
[   15s] popcntintrin.h
[   15s] ppc_wrappers
[   15s] prfchwintrin.h
[   15s] profile
[   15s] ptwriteintrin.h
[   15s] rdseedintrin.h
[   15s] rtmintrin.h
[   15s] s390intrin.h
[   15s] sanitizer
[   15s] sgxintrin.h
[   15s] shaintrin.h
[   15s] smmintrin.h
[   15s] stdalign.h
[   15s] stdarg.h
[   15s] stdatomic.h
[   15s] stdbool.h
[   15s] stddef.h
[   15s] stdint.h
[   15s] stdnoreturn.h
[   15s] tbmintrin.h
[   15s] tgmath.h
[   15s] tmmintrin.h
[   15s] unwind.h
[   15s] vadefs.h
[   15s] vaesintrin.h
[   15s] varargs.h
[   15s] vecintrin.h
[   15s] vpclmulqdqintrin.h
[   15s] waitpkgintrin.h
[   15s] wbnoinvdintrin.h
[   15s] wmmintrin.h
[   15s] x86intrin.h
[   15s] xmmintrin.h
[   15s] xopintrin.h
[   15s] xray
[   15s] xsavecintrin.h
[   15s] xsaveintrin.h
[   15s] xsaveoptintrin.h
[   15s] xsavesintrin.h
[   15s] xtestintrin.h
[   15s] 
[   15s] /usr/share/castxml/clang/include/cuda_wrappers:
[   15s] algorithm
[   15s] complex
[   15s] new
[   15s] 
[   15s] /usr/share/castxml/clang/include/fuzzer:
[   15s] FuzzedDataProvider.h
[   15s] 
[   15s] /usr/share/castxml/clang/include/openmp_wrappers:
[   15s] __clang_openmp_math.h
[   15s] __clang_openmp_math_declares.h
[   15s] cmath
[   15s] math.h
[   15s] 
[   15s] /usr/share/castxml/clang/include/ppc_wrappers:
[   15s] emmintrin.h
[   15s] mm_malloc.h
[   15s] mmintrin.h
[   15s] pmmintrin.h
[   15s] smmintrin.h
[   15s] tmmintrin.h
[   15s] xmmintrin.h
[   15s] 
[   15s] /usr/share/castxml/clang/include/profile:
[   15s] InstrProfData.inc
[   15s] 
[   15s] /usr/share/castxml/clang/include/sanitizer:
[   15s] allocator_interface.h
[   15s] asan_interface.h
[   15s] common_interface_defs.h
[   15s] coverage_interface.h
[   15s] dfsan_interface.h
[   15s] hwasan_interface.h
[   15s] linux_syscall_hooks.h
[   15s] lsan_interface.h
[   15s] msan_interface.h
[   15s] netbsd_syscall_hooks.h
[   15s] scudo_interface.h
[   15s] tsan_interface.h
[   15s] tsan_interface_atomic.h
[   15s] ubsan_interface.h
[   15s] 
[   15s] /usr/share/castxml/clang/include/xray:
[   15s] xray_interface.h
[   15s] xray_log_interface.h
[   15s] xray_records.h

[   15s] + castxml --version
[   15s] castxml version 0.3.4
[   15s] 
[   15s] CastXML project maintained and supported by Kitware (kitware.com).
[   15s] 
[   15s] clang version 10.0.1 
[   15s] Target: x86_64-unknown-linux-gnu
[   15s] Thread model: posix
[   15s] InstalledDir: 

@bradking
Copy link
Member

Thanks. It looks like /usr/share/castxml/clang/include/arm_neon.h does exist. CastXML should be using that intrinsic header instead of /usr/lib64/gcc/aarch64-suse-linux/10/include/arm_neon.h. We need to check what target triple CastXML is using. It should be detected automatically from whatever the command given to --castxml-cc-gnu ( ... ) targets. What is the output of /usr/bin/c++ -dumpmachine?

I suspect that CastXML's setTriple function needs to be updated to map a preprocessor defintion to aarch64.

@dzenanz
Copy link
Member

dzenanz commented Aug 19, 2020

Should this bug report be transferred to CastXML?

@badshah400
Copy link

On the aarch64 machine here is what i get:

[  225s] + castxml --version
[  225s] castxml version 0.3.4
[  225s] 
[  225s] CastXML project maintained and supported by Kitware (kitware.com).
[  225s] 
[  225s] clang version 10.0.1 
[  225s] Target: aarch64-suse-linux-gnu
[  225s] Thread model: posix
[  225s] InstalledDir: 
[  225s] + /usr/bin/c++ -dumpmachine
[  225s] aarch64-suse-linux

@bradking
Copy link
Member

Should this bug report be transferred to CastXML?

Yes. I opened CastXML/CastXML#179 for this. See its description for a more direct observation of the problem.

@bradking
Copy link
Member

I've fixed that CastXML issue and released CastXML 0.3.5 with the fix.

@badshah400
Copy link

Doesn't seem to have worked (or perhaps some other reason behind the errors?):

[  434s] cd /home/abuild/rpmbuild/BUILD/ITK-5.1.1/build/Wrapping/Modules/ITKLabelMap && /usr/bin/castxml -o /home/abuild/rpmbuild/BUILD/ITK-5.1.1/build/Wrapping/itkBinaryGrindPeakImageFilter.xml --castxml-gccxml --castxml-start _wrapping_ --castxml-cc-gnu "(" /usr/bin/c++ -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -Werror=return-type -flto=auto -g -DNDEBUG -Wcast-align -Wdisabled-optimization -Wextra -Wformat=2 -Winvalid-pch -Wno-format-nonliteral -Wpointer-arith -Wshadow -Wunused -Wwrite-strings -funit-at-a-time -Wno-strict-overflow -Wno-deprecated -Wno-invalid-offsetof -Woverloaded-virtual -Wstrict-null-sentinel -std=c++11 ")" -w -c @/home/abuild/rpmbuild/BUILD/ITK-5.1.1/build/Wrapping/ITKLabelMap.castxml.inc /home/abuild/rpmbuild/BUILD/ITK-5.1.1/build/Wrapping/itkBinaryGrindPeakImageFilter.cxx
[  434s] In file included from /home/abuild/rpmbuild/BUILD/ITK-5.1.1/build/Wrapping/itkBinaryGrindPeakImageFilter.cxx:11:
[  434s] In file included from /home/abuild/rpmbuild/BUILD/ITK-5.1.1/Modules/Core/Common/include/itkSymmetricSecondRankTensor.h:29:
[  434s] In file included from /home/abuild/rpmbuild/BUILD/ITK-5.1.1/Modules/Core/Common/include/itkSymmetricEigenAnalysis.h:23:
[  434s] In file included from /usr/include/eigen3/Eigen/Eigenvalues:11:
[  434s] In file included from /usr/include/eigen3/Eigen/Core:235:
[  434s] /usr/lib64/gcc/aarch64-suse-linux/10/include/arm_neon.h:38:9: error: unknown type name '__Int8x8_t'
[  434s] typedef __Int8x8_t int8x8_t;
[  434s]         ^
[  434s] /usr/lib64/gcc/aarch64-suse-linux/10/include/arm_neon.h:39:9: error: unknown type name '__Int16x4_t'
[  434s] typedef __Int16x4_t int16x4_t;
[  434s]         ^
[  434s] /usr/lib64/gcc/aarch64-suse-linux/10/include/arm_neon.h:40:9: error: unknown type name '__Int32x2_t'; did you mean '__int32_t'?
[  434s] typedef __Int32x2_t int32x2_t;
[  434s]         ^
[  434s] /usr/include/bits/types.h:41:20: note: '__int32_t' declared here
[  434s] typedef signed int __int32_t;
[  434s]                    ^
[  434s] In file included from /home/abuild/rpmbuild/BUILD/ITK-5.1.1/build/Wrapping/itkBinaryGrindPeakImageFilter.cxx:11:
[  434s] In file included from /home/abuild/rpmbuild/BUILD/ITK-5.1.1/Modules/Core/Common/include/itkSymmetricSecondRankTensor.h:29:
[  434s] In file included from /home/abuild/rpmbuild/BUILD/ITK-5.1.1/Modules/Core/Common/include/itkSymmetricEigenAnalysis.h:23:
[  434s] In file included from /usr/include/eigen3/Eigen/Eigenvalues:11:
[  434s] In file included from /usr/include/eigen3/Eigen/Core:235:
[  434s] /usr/lib64/gcc/aarch64-suse-linux/10/include/arm_neon.h:41:9: error: unknown type name '__Int64x1_t'; did you mean '__int64_t'?
[  434s] typedef __Int64x1_t int64x1_t;
[  434s]         ^
[  434s] /usr/include/bits/types.h:44:25: note: '__int64_t' declared here
[  434s] typedef signed long int __int64_t;
[  434s]                         ^
[  434s] In file included from /home/abuild/rpmbuild/BUILD/ITK-5.1.1/build/Wrapping/itkBinaryGrindPeakImageFilter.cxx:11:
[  434s] In file included from /home/abuild/rpmbuild/BUILD/ITK-5.1.1/Modules/Core/Common/include/itkSymmetricSecondRankTensor.h:29:
[  434s] In file included from /home/abuild/rpmbuild/BUILD/ITK-5.1.1/Modules/Core/Common/include/itkSymmetricEigenAnalysis.h:23:
[  434s] In file included from /usr/include/eigen3/Eigen/Eigenvalues:11:
[  434s] In file included from /usr/include/eigen3/Eigen/Core:235:
[  434s] /usr/lib64/gcc/aarch64-suse-linux/10/include/arm_neon.h:42:9: error: unknown type name '__Float16x4_t'
[  434s] typedef __Float16x4_t float16x4_t;
[  434s]         ^
[  434s] /usr/lib64/gcc/aarch64-suse-linux/10/include/arm_neon.h:43:9: error: unknown type name '__Float32x2_t'
[  434s] typedef __Float32x2_t float32x2_t;
[  434s]         ^
[  434s] /usr/lib64/gcc/aarch64-suse-linux/10/include/arm_neon.h:44:9: error: unknown type name '__Poly8x8_t'
[  434s] typedef __Poly8x8_t poly8x8_t;
[  434s]         ^
[  434s] /usr/lib64/gcc/aarch64-suse-linux/10/include/arm_neon.h:45:9: error: unknown type name '__Poly16x4_t'
[  434s] typedef __Poly16x4_t poly16x4_t;
[  434s]         ^
[  434s] /usr/lib64/gcc/aarch64-suse-linux/10/include/arm_neon.h:46:9: error: unknown type name '__Uint8x8_t'
[  434s] typedef __Uint8x8_t uint8x8_t;
[  434s]         ^
[  434s] /usr/lib64/gcc/aarch64-suse-linux/10/include/arm_neon.h:47:9: error: unknown type name '__Uint16x4_t'
[  434s] typedef __Uint16x4_t uint16x4_t;
[  434s]         ^
[  434s] /usr/lib64/gcc/aarch64-suse-linux/10/include/arm_neon.h:48:9: error: unknown type name '__Uint32x2_t'
[  434s] typedef __Uint32x2_t uint32x2_t;
[  434s]         ^
[  434s] /usr/lib64/gcc/aarch64-suse-linux/10/include/arm_neon.h:49:9: error: unknown type name '__Float64x1_t'
[  434s] typedef __Float64x1_t float64x1_t;
[  434s]         ^
[  434s] /usr/lib64/gcc/aarch64-suse-linux/10/include/arm_neon.h:50:9: error: unknown type name '__Uint64x1_t'
[  434s] typedef __Uint64x1_t uint64x1_t;
[  434s]         ^
[  434s] /usr/lib64/gcc/aarch64-suse-linux/10/include/arm_neon.h:51:9: error: unknown type name '__Int8x16_t'; did you mean '__int16_t'?
[  434s] typedef __Int8x16_t int8x16_t;
[  434s]         ^
[  434s] /usr/include/bits/types.h:39:26: note: '__int16_t' declared here
[  434s] typedef signed short int __int16_t;
[  434s]                          ^
[  434s] In file included from /home/abuild/rpmbuild/BUILD/ITK-5.1.1/build/Wrapping/itkBinaryGrindPeakImageFilter.cxx:11:
[  434s] In file included from /home/abuild/rpmbuild/BUILD/ITK-5.1.1/Modules/Core/Common/include/itkSymmetricSecondRankTensor.h:29:
[  434s] In file included from /home/abuild/rpmbuild/BUILD/ITK-5.1.1/Modules/Core/Common/include/itkSymmetricEigenAnalysis.h:23:
[  434s] In file included from /usr/include/eigen3/Eigen/Eigenvalues:11:
[  434s] In file included from /usr/include/eigen3/Eigen/Core:235:
[  434s] /usr/lib64/gcc/aarch64-suse-linux/10/include/arm_neon.h:52:9: error: unknown type name '__Int16x8_t'
[  434s] typedef __Int16x8_t int16x8_t;
[  434s]         ^
[  434s] /usr/lib64/gcc/aarch64-suse-linux/10/include/arm_neon.h:53:9: error: unknown type name '__Int32x4_t'; did you mean '__int32_t'?
[  434s] typedef __Int32x4_t int32x4_t;
[  434s]         ^
[  434s] /usr/include/bits/types.h:41:20: note: '__int32_t' declared here
[  434s] typedef signed int __int32_t;
[  434s]                    ^
[  434s] In file included from /home/abuild/rpmbuild/BUILD/ITK-5.1.1/build/Wrapping/itkBinaryGrindPeakImageFilter.cxx:11:
[  434s] In file included from /home/abuild/rpmbuild/BUILD/ITK-5.1.1/Modules/Core/Common/include/itkSymmetricSecondRankTensor.h:29:
[  434s] In file included from /home/abuild/rpmbuild/BUILD/ITK-5.1.1/Modules/Core/Common/include/itkSymmetricEigenAnalysis.h:23:
[  434s] In file included from /usr/include/eigen3/Eigen/Eigenvalues:11:
[  434s] In file included from /usr/include/eigen3/Eigen/Core:235:
[  435s] /usr/lib64/gcc/aarch64-suse-linux/10/include/arm_neon.h:54:9: error: unknown type name '__Int64x2_t'; did you mean '__int64_t'?
[  435s] typedef __Int64x2_t int64x2_t;
[  435s]         ^
[  435s] /usr/include/bits/types.h:44:25: note: '__int64_t' declared here
[  435s] typedef signed long int __int64_t;
[  435s]                         ^
[  435s] In file included from /home/abuild/rpmbuild/BUILD/ITK-5.1.1/build/Wrapping/itkBinaryGrindPeakImageFilter.cxx:11:
[  435s] In file included from /home/abuild/rpmbuild/BUILD/ITK-5.1.1/Modules/Core/Common/include/itkSymmetricSecondRankTensor.h:29:
[  435s] In file included from /home/abuild/rpmbuild/BUILD/ITK-5.1.1/Modules/Core/Common/include/itkSymmetricEigenAnalysis.h:23:
[  435s] In file included from /usr/include/eigen3/Eigen/Eigenvalues:11:
[  435s] In file included from /usr/include/eigen3/Eigen/Core:235:
[  435s] /usr/lib64/gcc/aarch64-suse-linux/10/include/arm_neon.h:55:9: error: unknown type name '__Float16x8_t'; did you mean '__SVFloat16_t'?
[  435s] typedef __Float16x8_t float16x8_t;
[  435s]         ^
[  435s] note: '__SVFloat16_t' declared here
[  435s] /usr/lib64/gcc/aarch64-suse-linux/10/include/arm_neon.h:56:9: error: unknown type name '__Float32x4_t'
[  435s] typedef __Float32x4_t float32x4_t;
[  435s]         ^
[  435s] fatal error: too many errors emitted, stopping now [-ferror-limit=]
[  435s] 20 errors generated.

@badshah400
Copy link

Full build log attached.
_log.zip

@bradking
Copy link
Member

What is the output of each of these commands?

$ /usr/bin/c++     -x c++ /dev/null -v -std=c++11
$ /usr/bin/castxml -x c++ /dev/null -v --castxml-cc-gnu '(' /usr/bin/c++ -std=c++11 ')'

@bradking
Copy link
Member

Also, does @/home/abuild/rpmbuild/BUILD/ITK-5.1.1/build/Wrapping/ITKLabelMap.castxml.inc contain anything besides include directories?

@badshah400
Copy link

Also, does @/home/abuild/rpmbuild/BUILD/ITK-5.1.1/build/Wrapping/ITKLabelMap.castxml.inc contain anything besides include directories?

Also contains these:

[   50s] -Qunused-arguments
[   50s] -DITK_WRAPPING_PARSER
[   50s] -DITK_MANUAL_INSTANTIATION
[   50s] "-DITK_IO_FACTORY_REGISTER_MANAGER"

@badshah400
Copy link

What is the output of each of these commands?

$ /usr/bin/c++     -x c++ /dev/null -v -std=c++11
[  106s] + /usr/bin/c++ -x c++ /dev/null -v -std=c++11
[  106s] Using built-in specs.
[  106s] Reading specs from /usr/lib64/gcc/aarch64-suse-linux/10/defaults.spec
[  106s] COLLECT_GCC=/usr/bin/c++
[  106s] COLLECT_LTO_WRAPPER=/usr/lib64/gcc/aarch64-suse-linux/10/lto-wrapper
[  106s] OFFLOAD_TARGET_NAMES=nvptx-none
[  106s] OFFLOAD_TARGET_DEFAULT=1
[  106s] Target: aarch64-suse-linux
[  106s] Configured with: ../configure --prefix=/usr --infodir=/usr/share/info --mandir=/usr/share/man --libdir=/usr/lib64 --libexecdir=/usr/lib64 --enable-languages=c,c++,objc,fortran,obj-c++,ada,go,d --enable-offload-targets=nvptx-none=/usr/nvptx-none, --without-cuda-driver --enable-checking=release --disable-werror --with-gxx-include-dir=/usr/include/c++/10 --enable-ssp --disable-libssp --disable-libvtv --enable-cet=auto --disable-libcc1 --enable-plugin --with-bugurl=https://bugs.opensuse.org/ --with-pkgversion='SUSE Linux' --with-slibdir=/lib64 --with-system-zlib --enable-libstdcxx-allocator=new --disable-libstdcxx-pch --enable-libphobos --enable-version-specific-runtime-libs --with-gcc-major-version-only --enable-linker-build-id --enable-linux-futex --enable-gnu-indirect-function --program-suffix=-10 --without-system-libunwind --enable-fix-cortex-a53-835769 --enable-fix-cortex-a53-843419 --with-build-config=bootstrap-lto-lean --enable-link-mutex --build=aarch64-suse-linux --host=aarch64-suse-linux
[  106s] Thread model: posix
[  106s] Supported LTO compression algorithms: zlib zstd
[  106s] gcc version 10.2.1 20200805 [revision dda1e9d08434def88ed86557d08b23251332c5aa] (SUSE Linux) 
[  106s] COLLECT_GCC_OPTIONS='-v' '-std=c++11' '-shared-libgcc' '-fPIE' '-pie' '-mlittle-endian' '-mabi=lp64'
[  106s]  /usr/lib64/gcc/aarch64-suse-linux/10/cc1plus -quiet -v -D_GNU_SOURCE /dev/null -quiet -dumpbase null -mlittle-endian -mabi=lp64 -auxbase null -std=c++11 -version -fPIE -o /tmp/ccLuaPUd.s
[  106s] GNU C++11 (SUSE Linux) version 10.2.1 20200805 [revision dda1e9d08434def88ed86557d08b23251332c5aa] (aarch64-suse-linux)
[  106s] 	compiled by GNU C version 10.2.1 20200805 [revision dda1e9d08434def88ed86557d08b23251332c5aa], GMP version 6.2.0, MPFR version 4.1.0, MPC version 1.1.0, isl version isl-0.22.1-GMP
[  106s] 
[  106s] GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
[  106s] #include "..." search starts here:
[  106s] #include <...> search starts here:
[  106s]  /usr/include/c++/10
[  106s]  /usr/include/c++/10/aarch64-suse-linux
[  106s]  /usr/include/c++/10/backward
[  106s]  /usr/lib64/gcc/aarch64-suse-linux/10/include
[  106s]  /usr/local/include
[  106s]  /usr/lib64/gcc/aarch64-suse-linux/10/include-fixed
[  106s]  /usr/lib64/gcc/aarch64-suse-linux/10/../../../../aarch64-suse-linux/include
[  106s]  /usr/include
[  106s] End of search list.
[  106s] GNU C++11 (SUSE Linux) version 10.2.1 20200805 [revision dda1e9d08434def88ed86557d08b23251332c5aa] (aarch64-suse-linux)
[  106s] 	compiled by GNU C version 10.2.1 20200805 [revision dda1e9d08434def88ed86557d08b23251332c5aa], GMP version 6.2.0, MPFR version 4.1.0, MPC version 1.1.0, isl version isl-0.22.1-GMP
[  106s] 
[  106s] GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
[  106s] Compiler executable checksum: 00000000000000000000000000000000
[  106s] COLLECT_GCC_OPTIONS='-v' '-std=c++11' '-shared-libgcc' '-fPIE' '-pie' '-mlittle-endian' '-mabi=lp64'
[  106s]  /usr/lib64/gcc/aarch64-suse-linux/10/../../../../aarch64-suse-linux/bin/as -v -EL -mabi=lp64 -o /tmp/ccm5Dvtd.o /tmp/ccLuaPUd.s
[  106s] GNU assembler version 2.34.0 (aarch64-suse-linux) using BFD version (GNU Binutils; openSUSE Tumbleweed) 2.34.0.20200325-1
[  106s] COMPILER_PATH=/usr/lib64/gcc/aarch64-suse-linux/10/:/usr/lib64/gcc/aarch64-suse-linux/10/:/usr/lib64/gcc/aarch64-suse-linux/:/usr/lib64/gcc/aarch64-suse-linux/10/:/usr/lib64/gcc/aarch64-suse-linux/:/usr/lib64/gcc/aarch64-suse-linux/10/../../../../aarch64-suse-linux/bin/
[  106s] LIBRARY_PATH=/usr/lib64/gcc/aarch64-suse-linux/10/:/usr/lib64/gcc/aarch64-suse-linux/10/../../../../lib64/:/lib/../lib64/:/usr/lib/../lib64/:/usr/lib64/gcc/aarch64-suse-linux/10/../../../../aarch64-suse-linux/lib/:/usr/lib64/gcc/aarch64-suse-linux/10/../../../:/lib/:/usr/lib/
[  106s] COLLECT_GCC_OPTIONS='-v' '-std=c++11' '-shared-libgcc' '-fPIE' '-pie' '-mlittle-endian' '-mabi=lp64'
[  106s]  /usr/lib64/gcc/aarch64-suse-linux/10/collect2 -plugin /usr/lib64/gcc/aarch64-suse-linux/10/liblto_plugin.so -plugin-opt=/usr/lib64/gcc/aarch64-suse-linux/10/lto-wrapper -plugin-opt=-fresolution=/tmp/ccVa7gsb.res -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc --build-id --eh-frame-hdr -dynamic-linker /lib/ld-linux-aarch64.so.1 -X -EL -maarch64linux --fix-cortex-a53-835769 --fix-cortex-a53-843419 -pie /usr/lib64/gcc/aarch64-suse-linux/10/../../../../lib64/Scrt1.o /usr/lib64/gcc/aarch64-suse-linux/10/../../../../lib64/crti.o /usr/lib64/gcc/aarch64-suse-linux/10/crtbeginS.o -L/usr/lib64/gcc/aarch64-suse-linux/10 -L/usr/lib64/gcc/aarch64-suse-linux/10/../../../../lib64 -L/lib/../lib64 -L/usr/lib/../lib64 -L/usr/lib64/gcc/aarch64-suse-linux/10/../../../../aarch64-suse-linux/lib -L/usr/lib64/gcc/aarch64-suse-linux/10/../../.. /tmp/ccm5Dvtd.o -lstdc++ -lm -lgcc_s -lgcc -lc -lgcc_s -lgcc /usr/lib64/gcc/aarch64-suse-linux/10/crtendS.o /usr/lib64/gcc/aarch64-suse-linux/10/../../../../lib64/crtn.o
[  106s] /usr/lib64/gcc/aarch64-suse-linux/10/../../../../aarch64-suse-linux/bin/ld: /usr/lib64/gcc/aarch64-suse-linux/10/../../../../lib64/Scrt1.o: in function `_start':
[  106s] /home/abuild/rpmbuild/BUILD/glibc-2.31/csu/../sysdeps/aarch64/start.S:65: undefined reference to `main'
[  106s] /usr/lib64/gcc/aarch64-suse-linux/10/../../../../aarch64-suse-linux/bin/ld: /home/abuild/rpmbuild/BUILD/glibc-2.31/csu/../sysdeps/aarch64/start.S:66: undefined reference to `main'
[  106s] collect2: error: ld returned 1 exit status

$ /usr/bin/castxml -x c++ /dev/null -v --castxml-cc-gnu '(' /usr/bin/c++ -std=c++11 ')'

[  106s] + /usr/bin/castxml -x c++ /dev/null -v --castxml-cc-gnu '(' /usr/bin/c++ -std=c++11 ')'
[  106s] clang version 10.0.1 
[  106s] Target: aarch64-suse-linux-gnu
[  106s] Thread model: posix
[  106s] InstalledDir: 
[  106s] Found candidate GCC installation: /usr/lib64/gcc/aarch64-suse-linux/10
[  106s] Selected GCC installation: /usr/lib64/gcc/aarch64-suse-linux/10
[  106s] Candidate multilib: .;@m64
[  106s] Selected multilib: .;@m64
[  106s] clang -cc1 version 10.0.1 based upon LLVM 10.0.1 default target aarch64-suse-linux-gnu
[  106s] #include "..." search starts here:
[  106s] #include <...> search starts here:
[  106s]  /usr/include/c++/10
[  106s]  /usr/include/c++/10/aarch64-suse-linux
[  106s]  /usr/include/c++/10/backward
[  106s]  /usr/lib64/gcc/aarch64-suse-linux/10/include
[  106s]  /usr/local/include
[  106s]  /usr/lib64/gcc/aarch64-suse-linux/10/include-fixed
[  106s]  /usr/lib64/gcc/aarch64-suse-linux/10/../../../../aarch64-suse-linux/include
[  106s]  /usr/include
[  106s] End of search list.

@bradking
Copy link
Member

bradking commented Aug 21, 2020

Thanks. The problem is in CastXML in this code where we try to recognize which of the simulated compiler's include directories contains its builtin headers so that we can override it with CastXML's headers for its builtin Clang. In this case, /usr/lib64/gcc/aarch64-suse-linux/10/include should be recognized, but as the FIXME comment in CastXML explains, we are probably not detecting it. We need to teach CastXML what intrinsic header identifies that directory on this architecture.

What is the output of ls /usr/lib64/gcc/aarch64-suse-linux/10/include? EDIT: /usr/lib64/gcc/aarch64-suse-linux/10/include/arm_neon.h is a suitable intrinsics header we can use to identify the compiler builtin include directory.

@bradking
Copy link
Member

bradking commented Aug 21, 2020

I've released CastXML 0.3.6 with that fix.

@badshah400
Copy link

Thanks a lot. "And then there was one..."

[  387s] cd /home/abuild/rpmbuild/BUILD/ITK-5.1.1/build/Wrapping/Modules/ITKLabelMap && /usr/bin/castxml -o /home/abuild/rpmbuild/BUILD/ITK-5.1.1/build/Wrapping/itkBinaryGrindPeakImageFilter.xml --castxml-gccxml --castxml-start _wrapping_ --castxml-cc-gnu "(" /usr/bin/c++ -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -Werror=return-type -flto=auto -g -DNDEBUG -Wcast-align -Wdisabled-optimization -Wextra -Wformat=2 -Winvalid-pch -Wno-format-nonliteral -Wpointer-arith -Wshadow -Wunused -Wwrite-strings -funit-at-a-time -Wno-strict-overflow -Wno-deprecated -Wno-invalid-offsetof -Woverloaded-virtual -Wstrict-null-sentinel -std=c++11 ")" -w -c @/home/abuild/rpmbuild/BUILD/ITK-5.1.1/build/Wrapping/ITKLabelMap.castxml.inc /home/abuild/rpmbuild/BUILD/ITK-5.1.1/build/Wrapping/itkBinaryGrindPeakImageFilter.cxx
[  387s] In file included from /home/abuild/rpmbuild/BUILD/ITK-5.1.1/build/Wrapping/itkBinaryGrindPeakImageFilter.cxx:11:
[  387s] In file included from /home/abuild/rpmbuild/BUILD/ITK-5.1.1/Modules/Core/Common/include/itkSymmetricSecondRankTensor.h:29:
[  387s] In file included from /home/abuild/rpmbuild/BUILD/ITK-5.1.1/Modules/Core/Common/include/itkSymmetricEigenAnalysis.h:23:
[  387s] In file included from /usr/include/eigen3/Eigen/Eigenvalues:11:
[  387s] In file included from /usr/include/eigen3/Eigen/Core:403:
[  387s] /usr/include/eigen3/Eigen/src/Core/arch/NEON/Complex.h:298:37: error: statement expression not allowed at file scope
[  387s]   static uint64x2_t p2ul_CONJ_XOR = vld1q_u64( p2ul_conj_XOR_DATA );
[  387s]                                     ^
[  387s] /usr/share/castxml/clang/include/arm_neon.h:7264:39: note: expanded from macro 'vld1q_u64'
[  387s] #define vld1q_u64(__p0) __extension__ ({ \
[  387s]                                       ^
[  387s] 1 error generated.

@bradking
Copy link
Member

Please run the commands:

$ cd /home/abuild/rpmbuild/BUILD/ITK-5.1.1/build/Wrapping/Modules/ITKLabelMap
$ /usr/bin/castxml -o itkBinaryGrindPeakImageFilter.cpp -E --castxml-cc-gnu "(" /usr/bin/c++ -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -Werror=return-type -flto=auto -g -DNDEBUG -Wcast-align -Wdisabled-optimization -Wextra -Wformat=2 -Winvalid-pch -Wno-format-nonliteral -Wpointer-arith -Wshadow -Wunused -Wwrite-strings -funit-at-a-time -Wno-strict-overflow -Wno-deprecated -Wno-invalid-offsetof -Woverloaded-virtual -Wstrict-null-sentinel -std=c++11 ")" -w @/home/abuild/rpmbuild/BUILD/ITK-5.1.1/build/Wrapping/ITKLabelMap.castxml.inc /home/abuild/rpmbuild/BUILD/ITK-5.1.1/build/Wrapping/itkBinaryGrindPeakImageFilter.cxx

Then attach the resulting itkBinaryGrindPeakImageFilter.cpp preprocessor output here.

@badshah400
Copy link

Sorry, took me a while, but here it is (the output is huge, so it is attach it as a zip file).
_log.zip

@badshah400
Copy link

Sorry, forgot to mention the actual command output you requested starts at the [ 345s] mark.

@bradking
Copy link
Member

Thanks. The problem is described in Eigen's code here. It relies on the code here to recognize when the compiler is Clang and uses a workaround for a problem compiling the code with Clang. However, CastXML is told by --castxml-cc-gnu to simulate the /usr/bin/c++ compiler's preprocessor, which is not Clang. The result is that the preprocessed code thinks it is a GNU compiler, but the actual compiler processing it inside CastXML is Clang.

This kind of problem comes up once in a while, and is almost always a case of project code trying to work around a compiler bug. The solution is to teach Eigen's code to be aware of CastXML as any other compiler, and recognize it via __castxml__, __castxml_clang_major__, __castxml_clang_minor__, etc. macros. For example, Eigen/src/Core/arch/NEON/Complex.h could be patched with the following hunk at a few places:

 // See bug 1325, clang fails to call vld1q_u64.
-#if EIGEN_COMP_CLANG
+#if EIGEN_COMP_CLANG || defined(__castxml__)

@badshah400
Copy link

Thanks, I have now opened https://gitlab.com/libeigen/eigen/-/issues/1979 for eigen devs to look at.

@bradking
Copy link
Member

I opened https://gitlab.com/libeigen/eigen/-/merge_requests/215 to resolve that issue in Eigen, and it has now been merged.

@badshah400
Copy link

@bradking I can confirm that CastXML 0.3.6 + your patch for eigen leads to successful aarch64 builds. Many thanks for fixing this.

@bradking
Copy link
Member

@badshah400 great!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
type:Bug Inconsistencies or issues which will cause an incorrect result under some or all circumstances
Projects
None yet
Development

No branches or pull requests

4 participants