From 2039dad2736909a9d2091b137eeab4293b508e12 Mon Sep 17 00:00:00 2001 From: Araq Date: Wed, 16 Jan 2019 21:19:38 +0100 Subject: [PATCH] koch.nim: Make bootstrapping in C++ mode robust --- koch.nim | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/koch.nim b/koch.nim index 1d636914d3..be8f759869 100644 --- a/koch.nim +++ b/koch.nim @@ -277,14 +277,16 @@ proc boot(args: string) = var output = "compiler" / "nim".exe var finalDest = "bin" / "nim".exe # default to use the 'c' command: - let defaultCommand = if getEnv("NIM_COMPILE_TO_CPP", "false") == "true": "cpp" else: "c" - let bootOptions = if args.len == 0 or args.startsWith("-"): defaultCommand else: "" - echo "boot: defaultCommand: ", defaultCommand, " bootOptions: ", bootOptions + let useCpp = getEnv("NIM_COMPILE_TO_CPP", "false") == "true" let smartNimcache = (if "release" in args: "nimcache/r_" else: "nimcache/d_") & hostOs & "_" & hostCpu copyExe(findStartNim(), 0.thVersion) - for i in 0..2: + for i in 0..2+ord(useCpp): + # do the first iteration in C mode in order to avoid problem #10315: + let defaultCommand = if useCpp and i > 0: "cpp" else: "c" + let bootOptions = if args.len == 0 or args.startsWith("-"): defaultCommand else: "" + echo "iteration: ", i+1 let extraOption = if i == 0: "--skipUserCfg --skipParentCfg"