digitalmars.D.learn - Trouble Compiling DMD, Druntime, Phobos on Windows
- Meta (12/12) Feb 13 2014 I'm using Windows 7 x64, but compiling 32-bit DMD. DMD compiles
- Nick Sabalausky (9/18) Feb 13 2014 Sounds like you're using an outdated OPTLINK. The /LA flag was added
- Meta (4/30) Feb 13 2014 Ah, yes, there's a rogue outdated OPTLINK hiding out somewhere in
- Stanislav Blinov (5/17) Feb 13 2014 Are you by chance trying to compile dirty druntime tree? (i.e.
- Meta (72/76) Feb 15 2014 It seems that while pointing to the correct link got rid of the
- Stanislav Blinov (2/10) Feb 15 2014 What about dmd itself? Have you rebuilt it from scratch too?
- Meta (4/16) Feb 15 2014 Yes, DMD builds fine, and I tried to build druntime from a fresh
- Stanislav Blinov (3/6) Feb 15 2014 That is bizarre. Which git commits are you using for dmd and
- Meta (3/10) Feb 15 2014 Whatever's currently in master for both DMD and druntime.
- Stanislav Blinov (7/10) Feb 15 2014 win32.mak for druntime uses whatever dmd is in your PATH. My
- Meta (3/15) Feb 15 2014 Ah, finally. That was it. Thanks for the tip.
- Stanislav Blinov (5/9) Feb 15 2014 Heh. Sorry that took so long. I knew the error looked familiar
I'm using Windows 7 x64, but compiling 32-bit DMD. DMD compiles fine, but the linker warns about a "Warning 9: Unknown Option : LA". After that, when trying to compile Druntime, DMD chokes with this error: "Assertion Failure: 'impl' on line 4930 in file 'mtype.c'". I looked in the file, but all I could find on line 4930 was: int TypeAArray::isZeroInit(Loc loc) { return true; } So I'm not really sure what's going on here, though I obviously did something wrong compiling DMD.
Feb 13 2014
On 2/13/2014 8:09 PM, Meta wrote:I'm using Windows 7 x64, but compiling 32-bit DMD. DMD compiles fine, but the linker warns about a "Warning 9: Unknown Option : LA". After that, when trying to compile Druntime, DMD chokes with this error:Sounds like you're using an outdated OPTLINK. The /LA flag was added relatively recently and the newer DMD buildscripts use it. Try updating your copy of DMC, maybe a newer one will have the up-to-date OPTLINK. Or just replace your DMC's OPTLINK with the one that comes with DMD 2.064.2: http://downloads.dlang.org/releases/2013/dmd.2.064.2.zip"Assertion Failure: 'impl' on line 4930 in file 'mtype.c'". I looked in the file, but all I could find on line 4930 was: int TypeAArray::isZeroInit(Loc loc) { return true; }Not sure what's up with that one, but I don't have any familiarity with mtype. Maybe it's just fallout from the earlier error?
Feb 13 2014
On Friday, 14 February 2014 at 01:58:13 UTC, Nick Sabalausky wrote:On 2/13/2014 8:09 PM, Meta wrote:Ah, yes, there's a rogue outdated OPTLINK hiding out somewhere in my path. That should fix it, I think.I'm using Windows 7 x64, but compiling 32-bit DMD. DMD compiles fine, but the linker warns about a "Warning 9: Unknown Option : LA". After that, when trying to compile Druntime, DMD chokes with this error:Sounds like you're using an outdated OPTLINK. The /LA flag was added relatively recently and the newer DMD buildscripts use it. Try updating your copy of DMC, maybe a newer one will have the up-to-date OPTLINK. Or just replace your DMC's OPTLINK with the one that comes with DMD 2.064.2: http://downloads.dlang.org/releases/2013/dmd.2.064.2.zip"Assertion Failure: 'impl' on line 4930 in file 'mtype.c'". I looked in the file, but all I could find on line 4930 was: int TypeAArray::isZeroInit(Loc loc) { return true; }Not sure what's up with that one, but I don't have any familiarity with mtype. Maybe it's just fallout from the earlier error?
Feb 13 2014
On Friday, 14 February 2014 at 01:09:42 UTC, Meta wrote:I'm using Windows 7 x64, but compiling 32-bit DMD. DMD compiles fine, but the linker warns about a "Warning 9: Unknown Option : LA". After that, when trying to compile Druntime, DMD chokes with this error: "Assertion Failure: 'impl' on line 4930 in file 'mtype.c'". I looked in the file, but all I could find on line 4930 was: int TypeAArray::isZeroInit(Loc loc) { return true; } So I'm not really sure what's going on here, though I obviously did something wrong compiling DMD.Are you by chance trying to compile dirty druntime tree? (i.e. you've compiled it before?). If so, make clean first. I had an error along the lines of what you're describing after a recent pull, but I'm not 100% sure it's the same one.
Feb 13 2014
It seems that while pointing to the correct link got rid of the linker warning, I still can't compile druntime. On Friday, 14 February 2014 at 02:50:04 UTC, Stanislav Blinov wrote:Are you by chance trying to compile dirty druntime tree? (i.e. you've compiled it before?). If so, make clean first. I had an error along the lines of what you're describing after a recent pull, but I'm not 100% sure it's the same one.It had been compiled before, so I went one further, deleting and re-cloning druntime. However, it still dies with the same assertion failure. Here's the relevant output before it dies: dmd -lib -oflib\druntime.lib -Xfdruntime.json -m32 -O -release -inline -w -Isrc -Iimport src\object_.d src\core\atomic.d src\core\bitop.d src\core\cpuid.d src\core\demangle.d src\core\exception.d src\core\math.d src\core\memory.d src\core\runtime.d src\core\simd.d src\core\thread.d src\core\time.d src\core\vararg.d src\core\internal\hash.d src\core\internal\convert.d src\core\stdc\config.d src\core\stdc\ctype.d src\core\stdc\errno.d src\core\stdc\math.d src\core\stdc\signal.d src\core\stdc\stdarg.d src\core\stdc\stdio.d src\core\stdc\stdlib.d src\core\stdc\stdint.d src\core\stdc\stddef.d src\core\stdc\string.d src\core\stdc\time.d src\core\stdc\wchar_.d src\core\sync\barrier.d src\core\sync\condition.d src\core\sync\config.d src\core\sync\exception.d src\core\sync\mutex.d src\core\sync\rwmutex.d src\core\sync\semaphore.d src\core\sys\freebsd\execinfo.d src\core\sys\freebsd\sys\event.d src\core\sys\posix\signal.d src\core\sys\posix\dirent.d src\core\sys\posix\sys\resource.d src\core\sys\posix\sys\select.d src\core\sys\posix\sys\socket.d src\core\sys\posix\sys\stat.d src\core\sys\posix\sys\wait.d src\core\sys\posix\netdb.d src\core\sys\posix\sys\ioctl.d src\core\sys\posix\sys\utsname.d src\core\sys\posix\netinet\in_.d src\core\sys\windows\dbghelp.d src\core\sys\windows\dll.d src\core\sys\windows\stacktrace.d src\core\sys\windows\threadaux.d src\core\sys\windows\windows.d src\gc\gc.d src\gc\os.d src\gc\bits.d src\gc\stats.d src\gc\proxy.d src\rt\aApply.d src\rt\aApplyR.d src\rt\aaA.d src\rt\adi.d src\rt\alloca.d src\rt\arrayassign.d src\rt\arraybyte.d src\rt\arraycast.d src\rt\arraycat.d src\rt\arraydouble.d src\rt\arrayfloat.d src\rt\arrayint.d src\rt\arrayreal.d src\rt\arrayshort.d src\rt\cast_.d src\rt\cmath2.d src\rt\cover.d src\rt\critical_.d src\rt\deh.d src\rt\deh_win32.d src\rt\deh_win64_posix.d src\rt\dmain2.d src\rt\invariant.d src\rt\lifetime.d src\rt\llmath.d src\rt\memory.d src\rt\memset.d src\rt\minfo.d src\rt\monitor_.d src\rt\obj.d src\rt\qsort.d src\rt\sections.d src\rt\sections_freebsd.d src\rt\sections_linux.d src\rt\sections_osx.d src\rt\sections_solaris.d src\rt\sections_win32.d src\rt\sections_win64.d src\rt\switch_.d src\rt\tlsgc.d src\rt\trace.d src\rt\util\array.d src\rt\util\container.d src\rt\util\hash.d src\rt\util\string.d src\rt\util\utf.d src\rt\typeinfo\ti_AC.d src\rt\typeinfo\ti_Acdouble.d src\rt\typeinfo\ti_Acfloat.d src\rt\typeinfo\ti_Acreal.d src\rt\typeinfo\ti_Adouble.d src\rt\typeinfo\ti_Afloat.d src\rt\typeinfo\ti_Ag.d src\rt\typeinfo\ti_Aint.d src\rt\typeinfo\ti_Along.d src\rt\typeinfo\ti_Areal.d src\rt\typeinfo\ti_Ashort.d src\rt\typeinfo\ti_byte.d src\rt\typeinfo\ti_C.d src\rt\typeinfo\ti_cdouble.d src\rt\typeinfo\ti_cfloat.d src\rt\typeinfo\ti_char.d src\rt\typeinfo\ti_creal.d src\rt\typeinfo\ti_dchar.d src\rt\typeinfo\ti_delegate.d src\rt\typeinfo\ti_double.d src\rt\typeinfo\ti_float.d src\rt\typeinfo\ti_idouble.d src\rt\typeinfo\ti_ifloat.d src\rt\typeinfo\ti_int.d src\rt\typeinfo\ti_ireal.d src\rt\typeinfo\ti_long.d src\rt\typeinfo\ti_ptr.d src\rt\typeinfo\ti_real.d src\rt\typeinfo\ti_short.d src\rt\typeinfo\ti_ubyte.d src\rt\typeinfo\ti_uint.d src\rt\typeinfo\ti_ulong.d src\rt\typeinfo\ti_ushort.d src\rt\typeinfo\ti_void.d src\rt\typeinfo\ti_wchar.d src\etc\linux\memoryerror.d errno_c.obj src\rt\minit.obj Assertion failure: 'impl' on line 4930 in file 'mtype.c' abnormal program termination --- errorlevel 1
Feb 15 2014
On Saturday, 15 February 2014 at 19:24:23 UTC, Meta wrote:It seems that while pointing to the correct link got rid of the linker warning, I still can't compile druntime. On Friday, 14 February 2014 at 02:50:04 UTC, Stanislav Blinov wrote:What about dmd itself? Have you rebuilt it from scratch too?Are you by chance trying to compile dirty druntime tree?It had been compiled before, so I went one further, deleting and re-cloning druntime. However, it still dies with the same assertion failure. Here's the relevant output before it dies:
Feb 15 2014
On Saturday, 15 February 2014 at 22:05:00 UTC, Stanislav Blinov wrote:On Saturday, 15 February 2014 at 19:24:23 UTC, Meta wrote:Yes, DMD builds fine, and I tried to build druntime from a fresh DMD compile.It seems that while pointing to the correct link got rid of the linker warning, I still can't compile druntime. On Friday, 14 February 2014 at 02:50:04 UTC, Stanislav Blinov wrote:What about dmd itself? Have you rebuilt it from scratch too?Are you by chance trying to compile dirty druntime tree?It had been compiled before, so I went one further, deleting and re-cloning druntime. However, it still dies with the same assertion failure. Here's the relevant output before it dies:
Feb 15 2014
On Saturday, 15 February 2014 at 23:04:26 UTC, Meta wrote:That is bizarre. Which git commits are you using for dmd and druntime?What about dmd itself? Have you rebuilt it from scratch too?Yes, DMD builds fine, and I tried to build druntime from a fresh DMD compile.
Feb 15 2014
On Saturday, 15 February 2014 at 23:37:40 UTC, Stanislav Blinov wrote:On Saturday, 15 February 2014 at 23:04:26 UTC, Meta wrote:Whatever's currently in master for both DMD and druntime.That is bizarre. Which git commits are you using for dmd and druntime?What about dmd itself? Have you rebuilt it from scratch too?Yes, DMD builds fine, and I tried to build druntime from a fresh DMD compile.
Feb 15 2014
On Sunday, 16 February 2014 at 01:34:53 UTC, Meta wrote:win32.mak for druntime uses whatever dmd is in your PATH. My guess is on your machine it's not the same as dmd that's built in git working copy, i.e. it tries to use your installed dmd. I've just dusted off my Win7 VM, made pulls for dmd and druntime and built both, though I had to edit druntime's win32.mak so that DMD variable points to the dmd executable I've built.That is bizarre. Which git commits are you using for dmd and druntime?Whatever's currently in master for both DMD and druntime.
Feb 15 2014
On Sunday, 16 February 2014 at 03:11:00 UTC, Stanislav Blinov wrote:On Sunday, 16 February 2014 at 01:34:53 UTC, Meta wrote:Ah, finally. That was it. Thanks for the tip.win32.mak for druntime uses whatever dmd is in your PATH. My guess is on your machine it's not the same as dmd that's built in git working copy, i.e. it tries to use your installed dmd. I've just dusted off my Win7 VM, made pulls for dmd and druntime and built both, though I had to edit druntime's win32.mak so that DMD variable points to the dmd executable I've built.That is bizarre. Which git commits are you using for dmd and druntime?Whatever's currently in master for both DMD and druntime.
Feb 15 2014
On Sunday, 16 February 2014 at 03:16:20 UTC, Meta wrote:On Sunday, 16 February 2014 at 03:11:00 UTC, Stanislav Blinov wrote:Heh. Sorry that took so long. I knew the error looked familiar but you got me puzzled when a clean rebuild didn't help. In the end that was one more reason to install VirtualBox to revive my Windows VM which I've been putting off for a while now :)win32.mak for druntime uses whatever dmd is in your PATH.Ah, finally. That was it. Thanks for the tip.
Feb 15 2014