Building LDC for the first time
Kai Nacke via digitalmars-d-ldc
digitalmars-d-ldc at puremagic.com
Thu Aug 21 23:13:05 PDT 2014
Hi Daniel!
On Friday, 22 August 2014 at 02:24:10 UTC, Daniel N wrote:
> Dear All,
>
> I downloaded ldc-0.14.0-src.tar.gz and tried following the
> instructions located at:
> http://wiki.dlang.org/Building_LDC_on_MinGW_x86
Thanks for trying LDC!
> I was only partially successful.
>
> $ uname
> MINGW32_NT-6.1
>
> My version:
> LDC - the LLVM D compiler (0.14.0):
> based on DMD v2.065 and LLVM 3.5.0svn
> Default target: i686-pc-windows-gnu
>
> Official version:
> LDC - the LLVM D compiler (0.14.0):
> based on DMD v2.065 and LLVM 3.4.2
> Default target: i686-pc-mingw32
>
> I realize I used too new LLVM, but nevertheless there's two
> things puzzling me:
In general, LLVM 3.5 should work, too. But I did not check on
MingW.
> 1) My targetTriple.getOS() == llvm::Triple::Win32 which results
> in my compiler invoking the Visual Studio Linker, which isn't
> necessarily a bad thing, but it was unexpected, because the
> official build uses ld from MinGW.
If you look at the default target triple, you notice the change
from mingw32 to windows-gnu. I think I missed to change the
linker invocation, too. I'll check this.
> 2) The compiler builds fine, but the Druntime/Phobos doesn't.
> "ldc/import\core\stdc\math.d(672): Error: undefined identifier
> isnan, did you mean function nan?" I guess that's a consequence
> of my compiler having an identity crisis, using the wrong
> version code-path...
I'll check this, too. Sounds like a bug.
> The combination of these two issues, is a problem since the
> official build uses a different toolchain so I cannot use the
> libs from it together with the MS linker, which means I'm stuck.
>
> I also tried using VS Express 2013:
> http://wiki.dlang.org/Building_and_hacking_LDC_on_Windows_using_MSVC
>
> But I can't get it to build either... my stdlib.h already
> defines:
> long double strtold(const char *p,char **endp);
> (even if long double is just 8 bytes)
>
> But the workaround in \dmd2\root\longdouble.h redefines it as:
> longdouble strtold(const char *p,char **endp);
>
> I didn't find a clean way to solve it, every workaround
> resulted in a new error down the road until I gave up and
> switched to using MinGW...
>
> Any advice for me? (I can't switch OS right now).
I am still using VisualStudio 2012. But I try to fix this, too.
I'll give you a hint when I fixes the mingw problems. Then you
can use master branch from GitHub instead of the source
distribution.
Regards,
Kai
More information about the digitalmars-d-ldc
mailing list