LDC build issues for PowerPC and kfreebsd-{i386,amd64} on Debian

Konstantinos Margaritis via digitalmars-d-ldc digitalmars-d-ldc at puremagic.com
Mon Jul 14 10:23:04 PDT 2014


Hi all,

The ldc package on Debian has just reported 3 build failures:

https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=754689
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=754690

One is for PowerPC:

| /«PKGBUILDDIR»/bin/ldc2 --output-o -c
| -I/«PKGBUILDDIR»/runtime/druntime/src
| -I/«PKGBUILDDIR»/runtime/druntime/src/gc /«PKGBUILDDIR»/runtime/druntime/src/core/thread.d
| -of/«PKGBUILDDIR»/runtime/src/core/thread.o -w -d -O3 -release
| -disable-invariants /«PKGBUILDDIR»/runtime/druntime/src/core/thread.d
| (2101): Error: static assert  "Architecture not supported." make[3]:
| *** [runtime/src/core/thread.o] Error 1

And the other for kfreebsd-i386/kfreebsd-amd64:

| /usr/bin/c++   -g -O2     CMakeFiles/ldc2.dir/driver/cl_options.cpp.o
| CMakeFiles/ldc2.dir/driver/configfile.cpp.o
| CMakeFiles/ldc2.dir/driver/targetmachine.cpp.o
| CMakeFiles/ldc2.dir/driver/toobj.cpp.o
| CMakeFiles/ldc2.dir/driver/tool.cpp.o
| CMakeFiles/ldc2.dir/driver/linker.cpp.o
| CMakeFiles/ldc2.dir/driver/main.cpp.o
| CMakeFiles/ldc2.dir/driver/ldc-version.cpp.o  -o bin/ldc2
| lib/libldc.so -lconfig++ -lpthread -ldl
| -ltinfo /usr/lib/llvm-3.4/lib/libLLVMAsmParser.a /usr/lib/llvm-3.4/lib/libLLVMTableGen.a /usr/lib/llvm-3.4/lib/libLLVMInstrumentation.a /usr/lib/llvm-3.4/lib/libLLVMipo.a /usr/lib/llvm-3.4/lib/libLLVMVectorize.a /usr/lib/llvm-3.4/lib/libLLVMLinker.a /usr/lib/llvm-3.4/lib/libLLVMBitWriter.a /usr/lib/llvm-3.4/lib/libLLVMR600CodeGen.a /usr/lib/llvm-3.4/lib/libLLVMR600Desc.a /usr/lib/llvm-3.4/lib/libLLVMR600Info.a /usr/lib/llvm-3.4/lib/libLLVMR600AsmPrinter.a /usr/lib/llvm-3.4/lib/libLLVMSystemZDisassembler.a /usr/lib/llvm-3.4/lib/libLLVMSystemZCodeGen.a /usr/lib/llvm-3.4/lib/libLLVMSystemZAsmParser.a /usr/lib/llvm-3.4/lib/libLLVMSystemZDesc.a /usr/lib/llvm-3.4/lib/libLLVMSystemZInfo.a /usr/lib/llvm-3.4/lib/libLLVMSystemZAsmPrinter.a /usr/lib/llvm-3.4/lib/libLLVMHexagonCodeGen.a /usr/lib/llvm-3.4/lib/libLLVMHexagonAsmPrinter.a /usr/lib/llvm-3.4/lib/libLLVMHexagonDesc.a /usr/lib/llvm-3.4/lib/libLLVMHexagonInfo.a /usr/lib/llvm-3.4/lib/libLLVMNVPTXCodeGen.a /usr/lib/llvm-3.4/lib/libLLVMNVPTXDesc.a /usr/lib/llvm-3.4/lib/libLLVMNVPTXInfo.a /usr/lib/llvm-3.4/lib/libLLVMNVPTXAsmPrinter.a /usr/lib/llvm-3.4/lib/libLLVMCppBackendCodeGen.a /usr/lib/llvm-3.4/lib/libLLVMCppBackendInfo.a /usr/lib/llvm-3.4/lib/libLLVMMSP430CodeGen.a /usr/lib/llvm-3.4/lib/libLLVMMSP430Desc.a /usr/lib/llvm-3.4/lib/libLLVMMSP430Info.a /usr/lib/llvm-3.4/lib/libLLVMMSP430AsmPrinter.a /usr/lib/llvm-3.4/lib/libLLVMXCoreDisassembler.a /usr/lib/llvm-3.4/lib/libLLVMXCoreCodeGen.a /usr/lib/llvm-3.4/lib/libLLVMXCoreDesc.a /usr/lib/llvm-3.4/lib/libLLVMXCoreInfo.a /usr/lib/llvm-3.4/lib/libLLVMXCoreAsmPrinter.a /usr/lib/llvm-3.4/lib/libLLVMMipsDisassembler.a /usr/lib/llvm-3.4/lib/libLLVMMipsCodeGen.a /usr/lib/llvm-3.4/lib/libLLVMMipsAsmParser.a /usr/lib/llvm-3.4/lib/libLLVMMipsDesc.a /usr/lib/llvm-3.4/lib/libLLVMMipsInfo.a /usr/lib/llvm-3.4/lib/libLLVMMipsAsmPrinter.a /usr/lib/llvm-3.4/lib/libLLVMARMDisassembler.a /usr/lib/llvm-3.4/lib/libLLVMARMCodeGen.a /usr/lib/llvm-3.4/lib/libLLVMARMAsmParser.a /usr/lib/llvm-3.4/lib/libLLVMARMDesc.a /usr/lib/llvm-3.4/lib/libLLVMARMInfo.a /usr/lib/llvm-3.4/lib/libLLVMARMAsmPrinter.a /usr/lib/llvm-3.4/lib/libLLVMAArch64Disassembler.a /usr/lib/llvm-3.4/lib/libLLVMAArch64CodeGen.a /usr/lib/llvm-3.4/lib/libLLVMAArch64AsmParser.a /usr/lib/llvm-3.4/lib/libLLVMAArch64Desc.a /usr/lib/llvm-3.4/lib/libLLVMAArch64Info.a /usr/lib/llvm-3.4/lib/libLLVMAArch64AsmPrinter.a /usr/lib/llvm-3.4/lib/libLLVMAArch64Utils.a /usr/lib/llvm-3.4/lib/libLLVMPowerPCCodeGen.a /usr/lib/llvm-3.4/lib/libLLVMPowerPCAsmParser.a /usr/lib/llvm-3.4/lib/libLLVMPowerPCDesc.a /usr/lib/llvm-3.4/lib/libLLVMPowerPCInfo.a /usr/lib/llvm-3.4/lib/libLLVMPowerPCAsmPrinter.a /usr/lib/llvm-3.4/lib/libLLVMSparcCodeGen.a /usr/lib/llvm-3.4/lib/libLLVMSparcDesc.a /usr/lib/llvm-3.4/lib/libLLVMSparcInfo.a /usr/lib/llvm-3.4/lib/libLLVMX86Disassembler.a /usr/lib/llvm-3.4/lib/libLLVMX86AsmParser.a /usr/lib/llvm-3.4/lib/libLLVMX86CodeGen.a /usr/lib/llvm-3.4/lib/libLLVMSelectionDAG.a /usr/lib/llvm-3.4/lib/libLLVMAsmPrinter.a /usr/lib/llvm-3.4/lib/libLLVMMCParser.a /usr/lib/llvm-3.4/lib/libLLVMCodeGen.a /usr/lib/llvm-3.4/lib/libLLVMObjCARCOpts.a /usr/lib/llvm-3.4/lib/libLLVMScalarOpts.a /usr/lib/llvm-3.4/lib/libLLVMInstCombine.a /usr/lib/llvm-3.4/lib/libLLVMTransformUtils.a /usr/lib/llvm-3.4/lib/libLLVMipa.a /usr/lib/llvm-3.4/lib/libLLVMAnalysis.a /usr/lib/llvm-3.4/lib/libLLVMX86Desc.a /usr/lib/llvm-3.4/lib/libLLVMX86Info.a /usr/lib/llvm-3.4/lib/libLLVMTarget.a /usr/lib/llvm-3.4/lib/libLLVMX86AsmPrinter.a /usr/lib/llvm-3.4/lib/libLLVMMC.a /usr/lib/llvm-3.4/lib/libLLVMObject.a /usr/lib/llvm-3.4/lib/libLLVMX86Utils.a /usr/lib/llvm-3.4/lib/libLLVMCore.a /usr/lib/llvm-3.4/lib/libLLVMSupport.a
| -L/usr/lib/llvm-3.4/lib  -lpthread -lffi -ltinfo -ldl -lm -lpthread
| -ltinfo -Wl,-rpath,/«PKGBUILDDIR»/lib:
| CMakeFiles/ldc2.dir/driver/main.cpp.o: In function
| `main': /«PKGBUILDDIR»/driver/main.cpp:1055: undefined reference to
| `Port::stricmp(char const*, char
| const*)' /«PKGBUILDDIR»/driver/main.cpp:1056: undefined reference to
| `Port::stricmp(char const*, char const*)' lib/libldc.so: undefined
| reference to `Port::memicmp(char const*, char const*, int)'
| lib/libldc.so: undefined reference to `Port::ldbl_max' lib/libldc.so:
| undefined reference to `Port::strtod(char const*, char**)'
| lib/libldc.so: undefined reference to `Port::isNan(long double)'
| lib/libldc.so: undefined reference to `Port::strtof(char
| const*,ExternStackShell char**)' lib/libldc.so: undefined reference
| to `Port::isInfinity (double)' lib/libldc.so: undefined reference to
| `Port::fequal(long double, long double)' lib/libldc.so: undefined
| reference to `Port::strtold(char const*, char**)' lib/libldc.so:
| undefined reference to `Port::fmodl(long double, long double)'
| lib/libldc.so: undefined reference to `Port::ldbl_nan' lib/libldc.so:
| undefined reference to `Port::ldbl_infinity' lib/libldc.so: undefined
| reference to `Port::snan' collect2: error: ld returned 1 exit status

I can work on the PowerPC one as I do have access to a Power7
Debian system -in fact I tried to fix the missing ExternStackShell
callee-save code (just tried saving GPR13-30 and GPR1) by adding some
inline asm, but the compiler failed to parse this file complaining that
I cannot use inline asm in PowerPC. Any ideas?

I guess the PowerPC port is easy to fix, and probably the kfreebsd-*
ports as well. In fact looking at past build history of the package, I
see that it was built on all architectures before ([1] no idea if it was
actually working on all of them, but it was built). If there is no
interest in fixing support for some ports, I can just remove them from
the architecture list and be done with it, but if there is a case that
ldc may be working again on them, then I'd be happy to give it a shot.

Regards

Konstantinos

[1] https://buildd.debian.org/status/package.php?p=ldc&suite=squeeze
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 819 bytes
Desc: not available
URL: <http://lists.puremagic.com/pipermail/digitalmars-d-ldc/attachments/20140714/bbba32d4/attachment.sig>


More information about the digitalmars-d-ldc mailing list