diff options
Diffstat (limited to 'config/nim.cfg')
-rw-r--r-- | config/nim.cfg | 49 |
1 files changed, 30 insertions, 19 deletions
diff --git a/config/nim.cfg b/config/nim.cfg index 1601ebe08..7c9958139 100644 --- a/config/nim.cfg +++ b/config/nim.cfg @@ -14,15 +14,13 @@ cc = gcc # additional options always passed to the compiler: --parallel_build: "0" # 0 to auto-detect number of processors -hint[LineTooLong]=off -@if nimHasAmbiguousEnumHint: - # not needed if hint is a style check - hint[AmbiguousEnum]=off +@if not nimHasNolineTooLong: + hint[LineTooLong]=off @end + #hint[XDeclaredButNotUsed]=off threads:on -define:nimPreviewRangeDefault # Examples of how to setup a cross-compiler: # Nim can target architectures and OSes different than the local host @@ -39,7 +37,7 @@ arm64.linux.gcc.linkerexe = "aarch64-linux-gnu-gcc" riscv32.linux.gcc.exe = "riscv64-linux-gnu-gcc" riscv32.linux.gcc.linkerexe = "riscv64-linux-gnu-gcc" riscv64.linux.gcc.exe = "riscv64-linux-gnu-gcc" -riscv64.linux.gcc.linkerexe = "arm-linux-gnueabihf-gcc" +riscv64.linux.gcc.linkerexe = "riscv64-linux-gnu-gcc" # For OpenWRT, you will also need to adjust PATH to point to your toolchain. mips.linux.gcc.exe = "mips-openwrt-linux-gcc" @@ -100,6 +98,11 @@ nimblepath="$home/.nimble/pkgs/" gcc.options.always %= "${gcc.options.always} -fsanitize=null -fsanitize-undefined-trap-on-error" @end +# Turn off threads support when compiling for bare-metal targets (--os:any) +@if any: + threads:off +@end + @if unix and mingw: # Cross compile for Windows from Linux/OSX using MinGW i386.windows.gcc.exe = "i686-w64-mingw32-gcc" @@ -174,17 +177,19 @@ nimblepath="$home/.nimble/pkgs/" # Configuration for the GNU C/C++ compiler: @if windows: #gcc.path = r"$nim\dist\mingw\bin" - @if gcc or tcc: + @if gcc: + gcc.options.linker %= "-Wl,-Bstatic -lpthread" + @end + @if tcc: tlsEmulation:on @end @end gcc.maxerrorsimpl = "-fmax-errors=3" -@if freebsd: +@if freebsd or netbsd: tlsEmulation:off @elif bsd: - # at least NetBSD has problems with thread local storage: tlsEmulation:on @end @@ -326,24 +331,30 @@ tcc.options.always = "-w" vcc.cpp.options.always%= "${vcc.cpp.options.always} /GL /Gw /Gy" vcc.options.linker %= "${vcc.options.linker} /link /LTCG:incremental" vcc.cpp.options.linker %= "${vcc.cpp.options.linker} /link /LTCG:incremental" + clang_cl.options.always%= "${clang_cl.options.always} -flto=thin" + clang_cl.cpp.options.always%= "${clang.cpp.options.always} -flto=thin" + clang.options.always%= "${clang.options.always} -flto=thin" + clang.cpp.options.always%= "${clang.cpp.options.always} -flto=thin" + clang.options.linker %= "${clang.options.linker} -flto=thin" + clang.cpp.options.linker %= "${clang.cpp.options.linker} -flto=thin" @else: vcc.options.always%= "${vcc.options.always} /GL" vcc.cpp.options.always%= "${vcc.cpp.options.always} /GL" vcc.options.linker %= "${vcc.options.linker} /link /LTCG" vcc.cpp.options.linker %= "${vcc.cpp.options.linker} /link /LTCG" + clang_cl.options.always%= "${clang_cl.options.always} -flto" + clang_cl.cpp.options.always%= "${clang.cpp.options.always} -flto" + clang.options.always%= "${clang.options.always} -flto" + clang.cpp.options.always%= "${clang.cpp.options.always} -flto" + clang.options.linker %= "${clang.options.linker} -flto" + clang.cpp.options.linker %= "${clang.cpp.options.linker} -flto" @end - clang_cl.options.always%= "${clang_cl.options.always} -flto" - clang_cl.cpp.options.always%= "${clang.cpp.options.always} -flto" - clang.options.always%= "${clang.options.always} -flto" - clang.cpp.options.always%= "${clang.cpp.options.always} -flto" icl.options.always %= "${icl.options.always} /Qipo" icl.cpp.options.always %= "${icl.cpp.options.always} /Qipo" - gcc.options.always %= "${gcc.options.always} -flto" - gcc.cpp.options.always %= "${gcc.cpp.options.always} -flto" - clang.options.linker %= "${clang.options.linker} -fuse-ld=lld -flto" - clang.cpp.options.linker %= "${clang.cpp.options.linker} -fuse-ld=lld -flto" - gcc.options.linker %= "${gcc.options.linker} -flto" - gcc.cpp.options.linker %= "${gcc.cpp.options.linker} -flto" + gcc.options.always %= "${gcc.options.always} -flto=auto" + gcc.cpp.options.always %= "${gcc.cpp.options.always} -flto=auto" + gcc.options.linker %= "${gcc.options.linker} -flto=auto -Wno-stringop-overflow" # https://github.com/nim-lang/Nim/issues/21595 + gcc.cpp.options.linker %= "${gcc.cpp.options.linker} -flto=auto" @end @if strip: gcc.options.linker %= "${gcc.options.linker} -s" |