CyberShadow / Digger

A tool to build D and bisect old D versions
Other
57 stars 9 forks source link

Digger build not working on windows #78

Closed John-Colvin closed 4 years ago

John-Colvin commented 4 years ago

Started with a clean folder

C:\Users\jcolvin_sym\Git\dlang>digger.exe build
digger: Building spec: master
digger: First run detected.
Please be patient, cloning everything might take a few minutes...

digger: Cloning initial repository...
Cloning into 'C:\Users\jcolvin_sym\Git\dlang\work\repo.21568.22592.temp'...
remote: Counting objects: 155239, done.
remote: Compressing objects: 100% (63452/63452), done.
remote: Total 155239 (delta 98597), reused 142219 (delta 91787)
Receiving objects: 100% (155239/155239), 18.44 MiB | 448.00 KiB/s, done.
Resolving deltas: 100% (98597/98597), done.
digger: Updating repo...
Fetching origin
digger: Starting at meta repository commit 985031c61a35099b43630e81071ceca855b22fe8
digger: Building components dmd, druntime, phobos-includes, phobos, rdmd
digger: needInstalled: dmd-663a22e2a640471c01bbfcdfdb13e3b780fb8f9b-6622169c28925f9c0b2951dce7a54863
digger: Clearing temporary cache
digger: Cache miss.
digger: needBuild: dmd-663a22e2a640471c01bbfcdfdb13e3b780fb8f9b-6622169c28925f9c0b2951dce7a54863
digger: Initializing and updating submodule dmd...
Submodule 'dmd' (git://github.com/dlang/dmd) registered for path 'dmd'
Cloning into 'C:/Users/jcolvin_sym/Git/dlang/work/repo/dmd'...
Submodule path 'dmd': checked out '663a22e2a640471c01bbfcdfdb13e3b780fb8f9b'
digger: Cleaning repository dmd...
HEAD is now at 663a22e2a Merge pull request #10455 from marler8997/backendEncapsulate2
digger: Building dmd-663a22e2a640471c01bbfcdfdb13e3b780fb8f9b-6622169c28925f9c0b2951dce7a54863
digger: Preparing DigitalMars C++
digger: Installing DigitalMars C++ v8.57 to C:\Users\jcolvin_sym\Git\dlang\work\dl\dm857-snn2074-optlink80017...
digger: Downloading http://downloads.dlang.org/other/dm857c.zip to C:\Users\jcolvin_sym\Git\dlang\work\dl\dm857c.zip...
digger: Verifying dm857c.zip.21568.22592.temp...
digger: Unpacking C:\Users\jcolvin_sym\Git\dlang\work\dl\dm857c.zip to C:\Users\jcolvin_sym\Git\dlang\work\dl\dm857c...
digger: Downloading http://downloads.dlang.org/releases/2.x/2.074.0/dmd.2.074.0.windows.7z to C:\Users\jcolvin_sym\Git\dlang\work\dl\dmd.2.074.0.windows.7z...
digger: Verifying dmd.2.074.0.windows.7z.21568.22592.temp...
digger: Unpacking C:\Users\jcolvin_sym\Git\dlang\work\dl\dmd.2.074.0.windows.7z to C:\Users\jcolvin_sym\Git\dlang\work\dl\dmd.2.074.0.windows...

7-Zip 19.00 (x64) : Copyright (c) 1999-2018 Igor Pavlov : 2019-02-21

Scanning the drive for archives:
1 file, 20614650 bytes (20 MiB)

Extracting archive: C:\Users\jcolvin_sym\Git\dlang\work\dl\dmd.2.074.0.windows.7z
--
Path = C:\Users\jcolvin_sym\Git\dlang\work\dl\dmd.2.074.0.windows.7z
Type = 7z
Physical Size = 20614650
Headers Size = 22933
Method = LZMA2:24 BCJ
Solid = +
Blocks = 2

Everything is Ok

Folders: 167
Files: 2188
Size:       171252205
Compressed: 20614650
digger: Done installing DigitalMars C++ v8.57.
digger: DMC=C:\Users\jcolvin_sym\Git\dlang\work\dl\dm857-snn2074-optlink80017\bin
digger: Preparing DMD v2.079.0
digger: Installing DigitalMars D compiler v2.079.0 to C:\Users\jcolvin_sym\Git\dlang\work\dl\dmd-2.079.0...
digger: Downloading http://downloads.dlang.org/releases/2.x/2.079.0/dmd.2.079.0.windows.zip to C:\Users\jcolvin_sym\Git\dlang\work\dl\dmd.2.079.0.windows.zip...
digger: Verifying dmd.2.079.0.windows.zip.21568.22592.temp...
digger: Unpacking C:\Users\jcolvin_sym\Git\dlang\work\dl\dmd.2.079.0.windows.zip to C:\Users\jcolvin_sym\Git\dlang\work\dl\dmd-2.079.0.21568.22592.temp...
digger: Done installing DigitalMars D compiler v2.079.0.
digger: hostDC=C:\Users\jcolvin_sym\Git\dlang\work\dl\dmd-2.079.0\dmd2/windows/bin\dmd.exe
digger: Cleaning repository dmd...
HEAD is now at 663a22e2a Merge pull request #10455 from marler8997/backendEncapsulate2
digger: Environment: SystemDrive=C:
digger: Environment: TMPDIR=C:\Users\jcolvin_sym\Git\dlang\work\tmp
digger: Environment: HOME=C:\Users\jcolvin_sym\Git\dlang\work\home
digger: Environment: SystemRoot=C:\WINDOWS
digger: Environment: PATH=C:\Users\jcolvin_sym\Git\dlang\work\dl\dm857-snn2074-optlink80017\bin;C:\WINDOWS\system32;C:\WINDOWS
digger: Environment: TEMP=C:\Users\jcolvin_sym\Git\dlang\work\tmp
digger: Environment: TMP=C:\Users\jcolvin_sym\Git\dlang\work\tmp
digger: Environment: DMC=C:\Users\jcolvin_sym\Git\dlang\work\dl\dm857-snn2074-optlink80017\bin
digger: Working directory: C:\Users\jcolvin_sym\Git\dlang\work\repo\dmd\src
digger: Running: "make" -f win32.mak ^"MODEL=32^" HOST_DC=C:\Users\jcolvin_sym\Git\dlang\work\dl\dmd-2.079.0\dmd2/windows/bin\dmd.exe dmd
if not exist "..\generated\windows\release\32" mkdir ..\generated\windows\release\32

make -fwin32.mak C=dmd\backend ROOT=dmd\root MAKE="make" HOST_DC="C:\Users\jcolvin_sym\Git\dlang\work\dl\dmd-2.079.0\dmd2/windows/bin\dmd.exe" MODEL=32 CC="" LIB="lib" OBJ_MSVC="" "OPT=-o" "DEBUG=" "DDEBUG=" "DOPT=-O -release -inline" "LFLAGS=-L/delexe/la" ..\generated\windows\release\32\dmd.exe
C:\Users\jcolvin_sym\Git\dlang\work\dl\dmd-2.079.0\dmd2/windows/bin\dmd.exe -m32 -of..\generated\build.exe -debug build.d

..\generated\build.exe --called-from-make "OS=windows" "BUILD=release" "MODEL=32" "HOST_DMD=" "HOST_DC=C:\Users\jcolvin_sym\Git\dlang\work\dl\dmd-2.079.0\dmd2/windows/bin\dmd.exe" "DDEBUG=" "OBJ_MSVC=" ..\generated\windows\release\32\dmd.exe

std.process.ProcessException@std\process.d(752): Failed to spawn new process (The system cannot find the file specified.)
----------------
0x0043605C
0x0043E132
0x0045173C
0x00441CC0
0x0042AC18
0x00403B39
0x004025AD
0x004330C7
0x00433049
0x00432EE4
0x0042793F
0x77508494 in BaseThreadInitThunk
0x777241C8 in RtlAreBitsSet
0x77724198 in RtlAreBitsSet

--- errorlevel 1

--- errorlevel 1
digger: Saving to cache.
digger: Clearing temporary cache
Fatal error: Command ["make", "-f", "win32.mak", "MODEL=32", "HOST_DC=C:\\Users\\jcolvin_sym\\Git\\dlang\\work\\dl\\dmd-2.079.0\\dmd2/windows/bin\\dmd.exe", "dmd"] failed with status 1
John-Colvin commented 4 years ago

when i went in ran maually:

C:\Users\jcolvin_sym\Git\dlang\work\dl\dmd-2.079.0\dmd2/windows/bin\dmd.exe -m64 -of..\generated\build.exe -debug build.d

(note -m64) and then

..\generated\build.exe --called-from-make "OS=windows" "BUILD=release" "MODEL=32" "HOST_DMD=" "HOST_DC=C:\Users\jcolvin_sym\Git\dlang\work\dl\dmd-2.079.0\dmd2/windows/bin\dmd.exe" "DDEBUG=" "OBJ_MSVC=" ..\generated\windows\release\32\dmd.exe

a digger.exe rebuild succeeded.

CyberShadow commented 4 years ago

This looks like a bug in DMD's build scritps (build.d or makefiles). Do you think you could check and see if the problem occurs when you follow the steps Digger does manually?

GoaLitiuM commented 4 years ago

Pending fixes in DMD to address this issue: https://github.com/dlang/dmd/pull/10490 https://github.com/dlang/dmd/pull/10491

John-Colvin commented 4 years ago

This problem makes digger bisect quite unusable.

Any advice for a workaround?

CyberShadow commented 4 years ago

Any advice for a workaround?

Maybe use another OS? Digger's backend is used for dtest.dlang.io on Linux/64, so we know that should work for all points in time when master and stable aren't visibly broken.

John-Colvin commented 4 years ago

Any advice for a workaround?

Maybe use another OS? Digger's backend is used for dtest.dlang.io on Linux/64, so we know that should work for all points in time when master and stable aren't visibly broken.

I always do when I can, but in this case I'm attempting to narrow down windows 32bit specific regressions

CyberShadow commented 4 years ago

Should be fixed.

CyberShadow commented 4 years ago

@John-Colvin @Robert-M-Muench Is it working for you?

Robert-M-Muench commented 4 years ago

Sorry, a bit late... building the latest Digger works and using it to build the latest DMD works too.