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

Kai Nacke via digitalmars-d-ldc digitalmars-d-ldc at puremagic.com
Mon Jul 14 23:02:16 PDT 2014


Hi Konstantinos!

On Monday, 14 July 2014 at 17:23:33 UTC, Konstantinos Margaritis 
via digitalmars-d-ldc wrote:
>
> 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:
> [...]

PowerPC 32bit is still work in progress. PowerPC64 bit is 
supposed to work. But there is an issue with 0.13.0 release which 
is fixed in master branch.

>
> And the other for kfreebsd-i386/kfreebsd-amd64:
> [...]
> | `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

This seems to be an issue with root/port.c. If these functions 
are missing then the conditions to choose the implementation are 
not complete.

> 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.

I have some patches for PowerPC 32 bit:
http://www.redstar.de/ldc/ppc_druntime.diff
http://www.redstar.de/ldc/ppc_phobos.diff

They try to fix some parts and comment out not yet working 
asserts. std.math is notorius here.

>
> Regards
>
> Konstantinos
>
> [1] 
> https://buildd.debian.org/status/package.php?p=ldc&suite=squeeze

Regards,
Kai


More information about the digitalmars-d-ldc mailing list