ldc-developers / ldc

The LLVM-based D Compiler.
http://wiki.dlang.org/LDC
Other
1.19k stars 258 forks source link

Fedora 21 build problem (?) #832

Closed bioinfornatics closed 9 years ago

bioinfornatics commented 9 years ago

I do not remember if I already report it but with cmake 3 I can't build ldc and since fedora 21 they are no cmake 2 available. Error is really strange as on fedora 20 with cmake 2 build is fine:

cmake3 end build log:

[ 14%] Building CXX object CMakeFiles/LDCShared.dir/ir/irclass.cpp.o
/usr/bin/c++   -DDMDV2 -DHAVE_SC_ARG_MAX -DIN_LLVM -DLDC_INSTALL_PREFIX=\"/usr\" -DLDC_LLVM_VER=305 -DLLVM_INTRINSIC_TD_PATH=\"/usr/include\" -DOPAQUE_VTBLS -D__LITTLE_ENDIAN__ -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches  -m64 -mtune=generic  -g -I/builddir/build/BUILD/ldc-0.15.1-src/. -I/builddir/build/BUILD/ldc-0.15.1-src/dmd2 -I/builddir/build/BUILD/ldc-0.15.1-src/dmd2/root -I/builddir/build/BUILD/ldc-0.15.1-src/build/dmd2 -I/builddir/build/BUILD/ldc-0.15.1-src    -I/usr/include  -DNDEBUG -D_GNU_SOURCE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -O3 -fomit-frame-pointer -std=c++11 -fvisibility-inlines-hidden -fno-exceptions -fPIC -Woverloaded-virtual -ffunction-sections -fdata-sections -Wcast-qual -fno-rtti   -Wall -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wno-non-virtual-dtor -Wno-pedantic -DLDC_POSIX  -o CMakeFiles/LDCShared.dir/ir/irclass.cpp.o -c /builddir/build/BUILD/ldc-0.15.1-src/ir/irclass.cpp
Linking CXX static library lib/libldc.a
/usr/bin/cmake -P CMakeFiles/LDCShared.dir/cmake_clean_target.cmake
/usr/bin/cmake -E cmake_link_script CMakeFiles/LDCShared.dir/link.txt --verbose=2
/usr/bin/ar cr lib/libldc.a  CMakeFiles/LDCShared.dir/dmd2/id.c.o CMakeFiles/LDCShared.dir/dmd2/impcnvtab.c.o CMakeFiles/LDCShared.dir/dmd2/lexer.c.o CMakeFiles/LDCShared.dir/dmd2/interpret.c.o CMakeFiles/LDCShared.dir/dmd2/optimize.c.o CMakeFiles/LDCShared.dir/dmd2/doc.c.o CMakeFiles/LDCShared.dir/dmd2/constfold.c.o CMakeFiles/LDCShared.dir/dmd2/parse.c.o CMakeFiles/LDCShared.dir/dmd2/declaration.c.o CMakeFiles/LDCShared.dir/dmd2/entity.c.o CMakeFiles/LDCShared.dir/dmd2/cond.c.o CMakeFiles/LDCShared.dir/dmd2/sideeffect.c.o CMakeFiles/LDCShared.dir/dmd2/builtin.c.o CMakeFiles/LDCShared.dir/dmd2/sapply.c.o CMakeFiles/LDCShared.dir/dmd2/imphint.c.o CMakeFiles/LDCShared.dir/dmd2/macro.c.o CMakeFiles/LDCShared.dir/dmd2/expression.c.o CMakeFiles/LDCShared.dir/dmd2/version.c.o CMakeFiles/LDCShared.dir/dmd2/import.c.o CMakeFiles/LDCShared.dir/dmd2/color.c.o CMakeFiles/LDCShared.dir/dmd2/arrayop.c.o CMakeFiles/LDCShared.dir/dmd2/access.c.o CMakeFiles/LDCShared.dir/dmd2/scope.c.o CMakeFiles/LDCShared.dir/dmd2/mtype.c.o CMakeFiles/LDCShared.dir/dmd2/class.c.o CMakeFiles/LDCShared.dir/dmd2/struct.c.o CMakeFiles/LDCShared.dir/dmd2/json.c.o CMakeFiles/LDCShared.dir/dmd2/opover.c.o CMakeFiles/LDCShared.dir/dmd2/hdrgen.c.o CMakeFiles/LDCShared.dir/dmd2/inline.c.o CMakeFiles/LDCShared.dir/dmd2/func.c.o CMakeFiles/LDCShared.dir/dmd2/intrange.c.o CMakeFiles/LDCShared.dir/dmd2/cast.c.o CMakeFiles/LDCShared.dir/dmd2/enum.c.o CMakeFiles/LDCShared.dir/dmd2/argtypes.c.o CMakeFiles/LDCShared.dir/dmd2/aliasthis.c.o CMakeFiles/LDCShared.dir/dmd2/module.c.o CMakeFiles/LDCShared.dir/dmd2/mars.c.o CMakeFiles/LDCShared.dir/dmd2/identifier.c.o CMakeFiles/LDCShared.dir/dmd2/root/object.c.o CMakeFiles/LDCShared.dir/dmd2/root/filename.c.o CMakeFiles/LDCShared.dir/dmd2/root/man.c.o CMakeFiles/LDCShared.dir/dmd2/root/rmem.c.o CMakeFiles/LDCShared.dir/dmd2/root/async.c.o CMakeFiles/LDCShared.dir/dmd2/root/aav.c.o CMakeFiles/LDCShared.dir/dmd2/root/speller.c.o CMakeFiles/LDCShared.dir/dmd2/root/port.c.o CMakeFiles/LDCShared.dir/dmd2/root/stringtable.c.o CMakeFiles/LDCShared.dir/dmd2/root/outbuffer.c.o CMakeFiles/LDCShared.dir/dmd2/root/file.c.o CMakeFiles/LDCShared.dir/dmd2/utf.c.o CMakeFiles/LDCShared.dir/dmd2/statement.c.o CMakeFiles/LDCShared.dir/dmd2/dsymbol.c.o CMakeFiles/LDCShared.dir/dmd2/staticassert.c.o CMakeFiles/LDCShared.dir/dmd2/canthrow.c.o CMakeFiles/LDCShared.dir/dmd2/ctfeexpr.c.o CMakeFiles/LDCShared.dir/dmd2/traits.c.o CMakeFiles/LDCShared.dir/dmd2/nogc.c.o CMakeFiles/LDCShared.dir/dmd2/delegatize.c.o CMakeFiles/LDCShared.dir/dmd2/apply.c.o CMakeFiles/LDCShared.dir/dmd2/nspace.c.o CMakeFiles/LDCShared.dir/dmd2/attrib.c.o CMakeFiles/LDCShared.dir/dmd2/template.c.o CMakeFiles/LDCShared.dir/dmd2/init.c.o CMakeFiles/LDCShared.dir/dmd2/mangle.c.o CMakeFiles/LDCShared.dir/dmd2/unittests.c.o CMakeFiles/LDCShared.dir/dmd2/cppmangle.c.o CMakeFiles/LDCShared.dir/dmd2/clone.c.o CMakeFiles/LDCShared.dir/gen/abi-x86.cpp.o CMakeFiles/LDCShared.dir/gen/naked.cpp.o CMakeFiles/LDCShared.dir/gen/module.cpp.o CMakeFiles/LDCShared.dir/gen/abi.cpp.o CMakeFiles/LDCShared.dir/gen/abi-x86-64.cpp.o CMakeFiles/LDCShared.dir/gen/passes/StripExternals.cpp.o CMakeFiles/LDCShared.dir/gen/passes/GarbageCollect2Stack.cpp.o CMakeFiles/LDCShared.dir/gen/passes/SimplifyDRuntimeCalls.cpp.o CMakeFiles/LDCShared.dir/gen/pragma.cpp.o CMakeFiles/LDCShared.dir/gen/structs.cpp.o CMakeFiles/LDCShared.dir/gen/abi-win64.cpp.o CMakeFiles/LDCShared.dir/gen/declarations.cpp.o CMakeFiles/LDCShared.dir/gen/asmstmt.cpp.o CMakeFiles/LDCShared.dir/gen/functions.cpp.o CMakeFiles/LDCShared.dir/gen/linkage.cpp.o CMakeFiles/LDCShared.dir/gen/complex.cpp.o CMakeFiles/LDCShared.dir/gen/target.cpp.o CMakeFiles/LDCShared.dir/gen/classes.cpp.o CMakeFiles/LDCShared.dir/gen/typinf.cpp.o CMakeFiles/LDCShared.dir/gen/rttibuilder.cpp.o CMakeFiles/LDCShared.dir/gen/aa.cpp.o CMakeFiles/LDCShared.dir/gen/runtime.cpp.o CMakeFiles/LDCShared.dir/gen/toconstelem.cpp.o CMakeFiles/LDCShared.dir/gen/llvmhelpers.cpp.o CMakeFiles/LDCShared.dir/gen/cl_helpers.cpp.o CMakeFiles/LDCShared.dir/gen/dvalue.cpp.o CMakeFiles/LDCShared.dir/gen/toir.cpp.o CMakeFiles/LDCShared.dir/gen/statements.cpp.o CMakeFiles/LDCShared.dir/gen/tocall.cpp.o CMakeFiles/LDCShared.dir/gen/logger.cpp.o CMakeFiles/LDCShared.dir/gen/dibuilder.cpp.o CMakeFiles/LDCShared.dir/gen/warnings.cpp.o CMakeFiles/LDCShared.dir/gen/irstate.cpp.o CMakeFiles/LDCShared.dir/gen/nested.cpp.o CMakeFiles/LDCShared.dir/gen/abi-ppc64.cpp.o CMakeFiles/LDCShared.dir/gen/optimizer.cpp.o CMakeFiles/LDCShared.dir/gen/arrays.cpp.o CMakeFiles/LDCShared.dir/gen/binops.cpp.o CMakeFiles/LDCShared.dir/gen/tollvm.cpp.o CMakeFiles/LDCShared.dir/gen/programs.cpp.o CMakeFiles/LDCShared.dir/ir/irfuncty.cpp.o CMakeFiles/LDCShared.dir/ir/irfunction.cpp.o CMakeFiles/LDCShared.dir/ir/irtypeclass.cpp.o CMakeFiles/LDCShared.dir/ir/irlandingpad.cpp.o CMakeFiles/LDCShared.dir/ir/iraggr.cpp.o CMakeFiles/LDCShared.dir/ir/irtypeaggr.cpp.o CMakeFiles/LDCShared.dir/ir/irtypestruct.cpp.o CMakeFiles/LDCShared.dir/ir/irtypefunction.cpp.o CMakeFiles/LDCShared.dir/ir/irmodule.cpp.o CMakeFiles/LDCShared.dir/ir/irvar.cpp.o CMakeFiles/LDCShared.dir/ir/irdsymbol.cpp.o CMakeFiles/LDCShared.dir/ir/irtype.cpp.o CMakeFiles/LDCShared.dir/ir/irclass.cpp.o
/usr/bin/ranlib lib/libldc.a
make[2]: Leaving directory '/builddir/build/BUILD/ldc-0.15.1-src/build'
/usr/bin/cmake -E cmake_progress_report /builddir/build/BUILD/ldc-0.15.1-src/build/CMakeFiles  1 2 3 4 5 6 7 8
[ 14%] Built target LDCShared
make[1]: Leaving directory '/builddir/build/BUILD/ldc-0.15.1-src/build'
Makefile:150: recipe for target 'all' failed
make: *** [all] Error 2

cmake2 piece of build log:

Linking CXX static library lib/libldc.a
/usr/bin/cmake -P CMakeFiles/LDCShared.dir/cmake_clean_target.cmake
/usr/bin/cmake -E cmake_link_script CMakeFiles/LDCShared.dir/link.txt --verbose=2
/usr/bin/ar cr lib/libldc.a  CMakeFiles/LDCShared.dir/dmd2/id.c.o CMakeFiles/LDCShared.dir/dmd2/impcnvtab.c.o CMakeFiles/LDCShared.dir/dmd2/ctfeexpr.c.o CMakeFiles/LDCShared.dir/dmd2/clone.c.o CMakeFiles/LDCShared.dir/dmd2/argtypes.c.o CMakeFiles/LDCShared.dir/dmd2/entity.c.o CMakeFiles/LDCShared.dir/dmd2/interpret.c.o CMakeFiles/LDCShared.dir/dmd2/arrayop.c.o CMakeFiles/LDCShared.dir/dmd2/macro.c.o CMakeFiles/LDCShared.dir/dmd2/access.c.o CMakeFiles/LDCShared.dir/dmd2/import.c.o CMakeFiles/LDCShared.dir/dmd2/hdrgen.c.o CMakeFiles/LDCShared.dir/dmd2/delegatize.c.o CMakeFiles/LDCShared.dir/dmd2/mars.c.o CMakeFiles/LDCShared.dir/dmd2/sapply.c.o CMakeFiles/LDCShared.dir/dmd2/nspace.c.o CMakeFiles/LDCShared.dir/dmd2/class.c.o CMakeFiles/LDCShared.dir/dmd2/mtype.c.o CMakeFiles/LDCShared.dir/dmd2/builtin.c.o CMakeFiles/LDCShared.dir/dmd2/imphint.c.o CMakeFiles/LDCShared.dir/dmd2/lexer.c.o CMakeFiles/LDCShared.dir/dmd2/dsymbol.c.o CMakeFiles/LDCShared.dir/dmd2/root/rmem.c.o CMakeFiles/LDCShared.dir/dmd2/root/aav.c.o CMakeFiles/LDCShared.dir/dmd2/root/object.c.o CMakeFiles/LDCShared.dir/dmd2/root/speller.c.o CMakeFiles/LDCShared.dir/dmd2/root/man.c.o CMakeFiles/LDCShared.dir/dmd2/root/stringtable.c.o CMakeFiles/LDCShared.dir/dmd2/root/filename.c.o CMakeFiles/LDCShared.dir/dmd2/root/async.c.o CMakeFiles/LDCShared.dir/dmd2/root/file.c.o CMakeFiles/LDCShared.dir/dmd2/root/outbuffer.c.o CMakeFiles/LDCShared.dir/dmd2/root/port.c.o CMakeFiles/LDCShared.dir/dmd2/unittests.c.o CMakeFiles/LDCShared.dir/dmd2/version.c.o CMakeFiles/LDCShared.dir/dmd2/utf.c.o CMakeFiles/LDCShared.dir/dmd2/template.c.o CMakeFiles/LDCShared.dir/dmd2/struct.c.o CMakeFiles/LDCShared.dir/dmd2/identifier.c.o CMakeFiles/LDCShared.dir/dmd2/init.c.o CMakeFiles/LDCShared.dir/dmd2/sideeffect.c.o CMakeFiles/LDCShared.dir/dmd2/func.c.o CMakeFiles/LDCShared.dir/dmd2/declaration.c.o CMakeFiles/LDCShared.dir/dmd2/nogc.c.o CMakeFiles/LDCShared.dir/dmd2/json.c.o CMakeFiles/LDCShared.dir/dmd2/statement.c.o CMakeFiles/LDCShared.dir/dmd2/attrib.c.o CMakeFiles/LDCShared.dir/dmd2/mangle.c.o CMakeFiles/LDCShared.dir/dmd2/cppmangle.c.o CMakeFiles/LDCShared.dir/dmd2/staticassert.c.o CMakeFiles/LDCShared.dir/dmd2/canthrow.c.o CMakeFiles/LDCShared.dir/dmd2/intrange.c.o CMakeFiles/LDCShared.dir/dmd2/expression.c.o CMakeFiles/LDCShared.dir/dmd2/traits.c.o CMakeFiles/LDCShared.dir/dmd2/constfold.c.o CMakeFiles/LDCShared.dir/dmd2/module.c.o CMakeFiles/LDCShared.dir/dmd2/scope.c.o CMakeFiles/LDCShared.dir/dmd2/doc.c.o CMakeFiles/LDCShared.dir/dmd2/cast.c.o CMakeFiles/LDCShared.dir/dmd2/enum.c.o CMakeFiles/LDCShared.dir/dmd2/opover.c.o CMakeFiles/LDCShared.dir/dmd2/parse.c.o CMakeFiles/LDCShared.dir/dmd2/color.c.o CMakeFiles/LDCShared.dir/dmd2/aliasthis.c.o CMakeFiles/LDCShared.dir/dmd2/inline.c.o CMakeFiles/LDCShared.dir/dmd2/cond.c.o CMakeFiles/LDCShared.dir/dmd2/optimize.c.o CMakeFiles/LDCShared.dir/dmd2/apply.c.o CMakeFiles/LDCShared.dir/gen/nested.cpp.o CMakeFiles/LDCShared.dir/gen/dvalue.cpp.o CMakeFiles/LDCShared.dir/gen/optimizer.cpp.o CMakeFiles/LDCShared.dir/gen/llvmhelpers.cpp.o CMakeFiles/LDCShared.dir/gen/toir.cpp.o CMakeFiles/LDCShared.dir/gen/tollvm.cpp.o CMakeFiles/LDCShared.dir/gen/abi-win64.cpp.o CMakeFiles/LDCShared.dir/gen/cl_helpers.cpp.o CMakeFiles/LDCShared.dir/gen/arrays.cpp.o CMakeFiles/LDCShared.dir/gen/aa.cpp.o CMakeFiles/LDCShared.dir/gen/abi-ppc64.cpp.o CMakeFiles/LDCShared.dir/gen/typinf.cpp.o CMakeFiles/LDCShared.dir/gen/classes.cpp.o CMakeFiles/LDCShared.dir/gen/binops.cpp.o CMakeFiles/LDCShared.dir/gen/statements.cpp.o CMakeFiles/LDCShared.dir/gen/module.cpp.o CMakeFiles/LDCShared.dir/gen/declarations.cpp.o CMakeFiles/LDCShared.dir/gen/tocall.cpp.o CMakeFiles/LDCShared.dir/gen/toconstelem.cpp.o CMakeFiles/LDCShared.dir/gen/target.cpp.o CMakeFiles/LDCShared.dir/gen/rttibuilder.cpp.o CMakeFiles/LDCShared.dir/gen/abi-x86-64.cpp.o CMakeFiles/LDCShared.dir/gen/programs.cpp.o CMakeFiles/LDCShared.dir/gen/warnings.cpp.o CMakeFiles/LDCShared.dir/gen/structs.cpp.o CMakeFiles/LDCShared.dir/gen/naked.cpp.o CMakeFiles/LDCShared.dir/gen/complex.cpp.o CMakeFiles/LDCShared.dir/gen/passes/GarbageCollect2Stack.cpp.o CMakeFiles/LDCShared.dir/gen/passes/StripExternals.cpp.o CMakeFiles/LDCShared.dir/gen/passes/SimplifyDRuntimeCalls.cpp.o CMakeFiles/LDCShared.dir/gen/abi-x86.cpp.o CMakeFiles/LDCShared.dir/gen/runtime.cpp.o CMakeFiles/LDCShared.dir/gen/dibuilder.cpp.o CMakeFiles/LDCShared.dir/gen/functions.cpp.o CMakeFiles/LDCShared.dir/gen/logger.cpp.o CMakeFiles/LDCShared.dir/gen/pragma.cpp.o CMakeFiles/LDCShared.dir/gen/irstate.cpp.o CMakeFiles/LDCShared.dir/gen/abi.cpp.o CMakeFiles/LDCShared.dir/gen/linkage.cpp.o CMakeFiles/LDCShared.dir/gen/asmstmt.cpp.o CMakeFiles/LDCShared.dir/ir/irtypestruct.cpp.o CMakeFiles/LDCShared.dir/ir/irdsymbol.cpp.o CMakeFiles/LDCShared.dir/ir/irfuncty.cpp.o CMakeFiles/LDCShared.dir/ir/irvar.cpp.o CMakeFiles/LDCShared.dir/ir/irfunction.cpp.o CMakeFiles/LDCShared.dir/ir/irtype.cpp.o CMakeFiles/LDCShared.dir/ir/irclass.cpp.o CMakeFiles/LDCShared.dir/ir/irtypefunction.cpp.o CMakeFiles/LDCShared.dir/ir/iraggr.cpp.o CMakeFiles/LDCShared.dir/ir/irmodule.cpp.o CMakeFiles/LDCShared.dir/ir/irtypeaggr.cpp.o CMakeFiles/LDCShared.dir/ir/irtypeclass.cpp.o CMakeFiles/LDCShared.dir/ir/irlandingpad.cpp.o
/usr/bin/ranlib lib/libldc.a
make[2]: Leaving directory `/home/jmercier/rpmbuild/SPECS/ldc/ldc-0.15.1-src/build'
/usr/bin/cmake -E cmake_progress_report /home/jmercier/rpmbuild/SPECS/ldc/ldc-0.15.1-src/build/CMakeFiles  1 2 3 4 5 6 7 8
[ 14%] Built target LDCShared
make -f CMakeFiles/ldc2.dir/build.make CMakeFiles/ldc2.dir/depend
make[2]: Entering directory `/home/jmercier/rpmbuild/SPECS/ldc/ldc-0.15.1-src/build'
dnadlinger commented 9 years ago

What is the actual error message? Is there an error message? How did you determine that CMake 3 is the reason?

I'm using CMake 3 on Arch Linux without any issues.

bioinfornatics commented 9 years ago

As you wan see error is:

Makefile:150: recipe for target 'all' failed

I will do some check that seem strange to see a '.a' file on a shared target

dnadlinger commented 9 years ago

Makefile:150: recipe for target 'all' failed

Nope, this message just signals that there has been some kind of error earlier on. You'll get that in any case in addition to the actual error message (if you want an example, try inserting a random typo into a make-based project). So, either there has been an error message in the part that you didn't paste, or some command failed without an error message. In particular with parallel builds (-j<n>) the error might occur quite a bit before the build stops. Either way, I can't really deduce what is going on from the partial output you posted.

dnadlinger commented 9 years ago

I will do some check that seem strange to see a '.a' file on a shared target

This is just an internal library. It is linked into the main ldc2 executable and is not installed on its own.

redstar commented 9 years ago

I also checked now. I am using cmake 3 on Windows for some time now without problem. On Linux/Gentoo, I also compiled ldc with cmake 3 without a problem. I try to compile on Fedora 21 this evening.

bioinfornatics commented 9 years ago

Thanks guy I found where the problem come from: In fedora 21 libedit-devel is not anymore provided by default. I put this as explicit build dependency and that build fine.

Thanks a lot

dnadlinger commented 9 years ago

We should probably detect its presence, though, and fail during CMake configuration. @redstar?

trikko commented 9 years ago

On my ubuntu 14.10 libedit-dev was not installed, and cmake doesn't check for it so -ledit trigger an error during linking.