clang otbWrapperOutputImageParameter.cxx.o: file not recognized: File format not recognized
Description
This is what happens when building with clang 4.0.0 based on LLVM 4.0.0
/usr/bin/c++ -fPIC -Wall -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 -g -DOTB_DEBUG -shared -o ../../../../lib/libOTBApplicationEngine-6.5.so CMakeFiles/OTBApplicationEngine.dir/otbWrapperApplicationHtmlDocGenerator.cxx.o CMakeFiles/OTBApplicationEngine.dir/otbWrapperComplexOutputImageParameter.cxx.o CMakeFiles/OTBApplicationEngine.dir/otbWrapperInputVectorDataListParameter.cxx.o CMakeFiles/OTBApplicationEngine.dir/otbWrapperListViewParameter.cxx.o CMakeFiles/OTBApplicationEngine.dir/otbWrapperComplexInputImageParameter.cxx.o CMakeFiles/OTBApplicationEngine.dir/otbWrapperParameterGroup.cxx.o CMakeFiles/OTBApplicationEngine.dir/otbWrapperOutputProcessXMLParameter.cxx.o CMakeFiles/OTBApplicationEngine.dir/otbWrapperInputImageListParameter.cxx.o CMakeFiles/OTBApplicationEngine.dir/otbWrapperElevationParametersHandler.cxx.o CMakeFiles/OTBApplicationEngine.dir/otbWrapperInputFilenameListParameter.cxx.o CMakeFiles/OTBApplicationEngine.dir/otbWrapperOutputImageParameter.cxx.o CMakeFiles/OTBApplicationEngine.dir/otbWrapperInputImageParameter.cxx.o CMakeFiles/OTBApplicationEngine.dir/otbWrapperInputImageParameterUInt8.cxx.o
CMakeFiles/OTBApplicationEngine.dir/otbWrapperInputImageParameterUInt16.cxx.o CMakeFiles/OTBApplicationEngine.dir/otbWrapperInputImageParameterUInt32.cxx.o CMakeFiles/OTBApplicationEngine.dir/otbWrapperInputImageParameterInt16.cxx.o CMakeFiles/OTBApplicationEngine.dir/otbWrapperInputImageParameterInt32.cxx.o CMakeFiles/OTBApplicationEngine.dir/otbWrapperInputImageParameterCInt16.cxx.o CMakeFiles/OTBApplicationEngine.dir/otbWrapperInputImageParameterCInt32.cxx.o CMakeFiles/OTBApplicationEngine.dir/otbWrapperInputImageParameterCFloat.cxx.o CMakeFiles/OTBApplicationEngine.dir/otbWrapperInputImageParameterCDouble.cxx.o CMakeFiles/OTBApplicationEngine.dir/otbWrapperInputImageParameterFloat.cxx.o CMakeFiles/OTBApplicationEngine.dir/otbWrapperInputImageParameterDouble.cxx.o CMakeFiles/OTBApplicationEngine.dir/otbWrapperParameterKey.cxx.o CMakeFiles/OTBApplicationEngine.dir/otbWrapperDocExampleStructure.cxx.o CMakeFiles/OTBApplicationEngine.dir/otbWrapperInputVectorDataParameter.cxx.o CMakeFiles/OTBApplicationEngine.dir/otbWrapperInputProcessXMLParameter.cxx.o CMakeFiles/OTBApplicationEngine.dir/otbWrapperMapProjectionParametersHandler.cxx.o CMakeFiles/OTBApplicationEngine.dir/otbWrapperApplication.cxx.o CMakeFiles/OTBApplicationEngine.dir/otbWrapperChoiceParameter.cxx.o CMakeFiles/OTBApplicationEngine.dir/otbWrapperApplicationRegistry.cxx.o CMakeFiles/OTBApplicationEngine.dir/otbWrapperApplicationFactoryBase.cxx.o CMakeFiles/OTBApplicationEngine.dir/otbWrapperCompositeApplication.cxx.o CMakeFiles/OTBApplicationEngine.dir/otbWrapperStringListInterface.cxx.o CMakeFiles/OTBApplicationEngine.dir/otbWrapperStringListParameter.cxx.o CMakeFiles/OTBApplicationEngine.dir/otbWrapperAbstractParameterList.cxx.o CMakeFiles/OTBApplicationEngine.dir/otbWrapperParameterList.cxx.o CMakeFiles/OTBApplicationEngine.dir/otbWrapperBoolParameter.cxx.o -L/home/rashad/projects/otb/build/lib -L/usr/local/lib -L/home/rashad/local/lib -Wl,-rpath,/home/rashad/projects/otb/build/lib:/home/rashad/local/lib: -lOTBImageIO-6.5 -lOTBProjection-6.5 -ltinyxml -lOTBVectorDataIO-6.5 -lOTBIORAD-6.5 -lOTBIOONERA-6.5 -lOTBIOLUM-6.5 -lOTBIOMSTAR-6.5 -lOTBIOBSQ-6.5 -lOTBIOTileMap-6.5 -lOTBCurlAdapters-6.5 -lcurl -lOTBExtendedFilename-6.5 -lOTBImageManipulation-6.5 -lOTBStreaming-6.5 -lOTBTransform-6.5 -lOTBIOGDAL-6.5 -lOTBVectorDataBase-6.5 -ltinyxml -lOTBImageBase-6.5 -lOTBMetadata-6.5 -lOTBOSSIMAdapters-6.5 -lotbossimplugins-6.5 -lossim -lOpenThreads -lgeotiff -lOTBGdalAdapters-6.5 -lOTBCommon-6.5 -lITKQuadEdgeMesh-4.12 -lITKMetaIO-4.12 -lz -lITKLabelMap-4.12 -lITKIOImageBase-4.12 -lITKBiasCorrection-4.12 -lITKPolynomials-4.12 -lITKOptimizersv4-4.12 -lITKOptimizers-4.12 -lITKKLMRegionGrowing-4.12 -lITKWatersheds-4.12 -lITKStatistics-4.12 -litkNetlibSlatec-4.12 -lITKSpatialObjects-4.12 -lITKMesh-4.12 -lITKTransform-4.12 -lITKPath-4.12 -lITKCommon-4.12 -litksys-4.12 -lITKVNLInstantiation-4.12 -litkvnl_algo-4.12 -litkvnl-4.12 -litkv3p_netlib-4.12 -litknetlib-4.12 -litkvcl-4.12 -lm -lpthread -lm -lgdal -Wl,-rpath-link,/home/rashad/local/lib:/usr/X11R6/lib:/usr/local/lib
CMakeFiles/OTBApplicationEngine.dir/otbWrapperOutputImageParameter.cxx.o: file not recognized: File format not recognized
c++: error: linker command failed with exit code 1 (use -v to see invocation)
gmake[2]: *** [Modules/Wrappers/ApplicationEngine/src/CMakeFiles/OTBApplicationEngine.dir/build.make:1111: lib/libOTBApplicationEngine-6.5.so] Error 1
gmake[2]: Leaving directory '/home/rashad/projects/otb/build'
gmake[1]: *** [CMakeFiles/Makefile2:3719: Modules/Wrappers/ApplicationEngine/src/CMakeFiles/OTBApplicationEngine.dir/all] Error 2
gmake[1]: Leaving directory '/home/rashad/projects/otb/build'
gmake: *** [Makefile:130: all] Error 2
I think this a bug as nm says:
nm: Modules/Wrappers/ApplicationEngine/src/CMakeFiles/OTBApplicationEngine.dir/otbWrapperOutputImageParameter.cxx.o: no section header table
It is clear from cxx flags that I am using -fPIC but still it nm reports no section
readelf --relocs Modules/Wrappers/ApplicationEngine/src/CMakeFiles/OTBApplicationEngine.dir/otbWrapperOutputImageParameter.cxx.o | egrep '(GOT|PLT|JU?MP_SLOT)'
above readelf returns empty but works fine for other .o files in OTBApplicationEngine.dir/
Steps to reproduce
configure with clang 4.0.0 and GNU ld version 2.17
make OTBApplicationEngine
Configuration information
Linux, OTB develop commit: f799a74a ITK, GDAL, OSSIM, OTB in debug mode
Edited by Rashad Kanavath