-
-
Notifications
You must be signed in to change notification settings - Fork 312
Open
Description
I built c3c entirely from scratch on Windows using MinGW-w64+GCC (under the MSYS2 shell).
But then, when I try to compile a simple C3 test using flags --cc gcc --linker=custom gcc I see the following issues:
- the specified linker is not used (lld-link is used instead of gcc)
- there are undefined symbols related to the standard libraries (maybe due to the above issue)
echo -e "import std::io;\nfn void main()\n{\nio::printn(\"Hello world!\");\n}" |
c3c compile - --cc gcc --linker=custom gcclld-link: error: <root>: undefined symbol: mainCRTStartup
lld-link: error: undefined symbol: _tls_index
>>> referenced by C:\Prog\winlibs14.2.0msvcrt\custombuilt64\lib\c3\std\collections\list.c3:370
>>> R:\winlibs14.2.0msvcrt64\_TMP_\c3c4331.tmp\obj\windows-x64\std_collections_list.std.os.backtrace.Backtrace.obj:(std_collections_list$std.os.backtrace.Backtrace$.List.ensure_capacity)
>>> referenced by C:\Prog\winlibs14.2.0msvcrt\custombuilt64\lib\c3\std\collections\list.c3:372
>>> R:\winlibs14.2.0msvcrt64\_TMP_\c3c4331.tmp\obj\windows-x64\std_collections_list.std.os.backtrace.Backtrace.obj:(std_collections_list$std.os.backtrace.Backtrace$.List.ensure_capacity)
>>> referenced by C:\Prog\winlibs14.2.0msvcrt\custombuilt64\lib\c3\std\os\win32\exception.c3:138
>>> R:\winlibs14.2.0msvcrt64\_TMP_\c3c4331.tmp\obj\windows-x64\std.os.win32.obj:(std.os.win32.exception_handler)
>>> referenced 22 more times
lld-link: error: undefined symbol: __security_cookie
>>> referenced by C:\Prog\winlibs14.2.0msvcrt\custombuilt64\lib\c3\std\os\win32\exception.c3:134
>>> R:\winlibs14.2.0msvcrt64\_TMP_\c3c4331.tmp\obj\windows-x64\std.os.win32.obj:(std.os.win32.exception_handler)
>>> referenced by C:\Prog\winlibs14.2.0msvcrt\custombuilt64\lib\c3\std\os\win32\process.c3:182
>>> R:\winlibs14.2.0msvcrt64\_TMP_\c3c4331.tmp\obj\windows-x64\std.os.win32.obj:(std.os.win32.resolve_backtrace)
>>> referenced by C:\Prog\winlibs14.2.0msvcrt\custombuilt64\lib\c3\std\io\formatter_private.c3:211
>>> R:\winlibs14.2.0msvcrt64\_TMP_\c3c4331.tmp\obj\windows-x64\std.io.obj:(std.io.Formatter.floatformat)
>>> referenced 4 more times
lld-link: error: undefined symbol: __security_check_cookie
>>> referenced by C:\Prog\winlibs14.2.0msvcrt\custombuilt64\lib\c3\std\os\win32\exception.c3:172
>>> R:\winlibs14.2.0msvcrt64\_TMP_\c3c4331.tmp\obj\windows-x64\std.os.win32.obj:(std.os.win32.exception_handler)
>>> referenced by C:\Prog\winlibs14.2.0msvcrt\custombuilt64\lib\c3\std\os\win32\exception.c3:174
>>> R:\winlibs14.2.0msvcrt64\_TMP_\c3c4331.tmp\obj\windows-x64\std.os.win32.obj:(std.os.win32.exception_handler)
>>> referenced by C:\Prog\winlibs14.2.0msvcrt\custombuilt64\lib\c3\std\os\win32\process.c3:190
>>> R:\winlibs14.2.0msvcrt64\_TMP_\c3c4331.tmp\obj\windows-x64\std.os.win32.obj:(std.os.win32.resolve_backtrace)
>>> referenced 51 more times
lld-link: error: undefined symbol: SetUnhandledExceptionFilter
>>> referenced by C:\Prog\winlibs14.2.0msvcrt\custombuilt64\lib\c3\std\os\win32\exception.c3:185
>>> R:\winlibs14.2.0msvcrt64\_TMP_\c3c4331.tmp\obj\windows-x64\std.os.win32.obj:(std.os.win32.init_exception_handler)
lld-link: error: undefined symbol: memset
>>> referenced by C:\Prog\winlibs14.2.0msvcrt\custombuilt64\lib\c3\std\os\win32\process.c3:170
>>> R:\winlibs14.2.0msvcrt64\_TMP_\c3c4331.tmp\obj\windows-x64\std.os.win32.obj:(std.os.win32.symbolize_backtrace)
>>> referenced by C:\Prog\winlibs14.2.0msvcrt\custombuilt64\lib\c3\std\os\win32\process.c3:184
>>> R:\winlibs14.2.0msvcrt64\_TMP_\c3c4331.tmp\obj\windows-x64\std.os.win32.obj:(std.os.win32.resolve_backtrace)
>>> referenced by C:\Prog\winlibs14.2.0msvcrt\custombuilt64\lib\c3\std\os\win32\process.c3:192
>>> R:\winlibs14.2.0msvcrt64\_TMP_\c3c4331.tmp\obj\windows-x64\std.os.win32.obj:(std.os.win32.resolve_backtrace)
>>> referenced 13 more times
lld-link: error: undefined symbol: GetCurrentProcess
>>> referenced by C:\Prog\winlibs14.2.0msvcrt\custombuilt64\lib\c3\std\os\win32\process.c3:172
>>> R:\winlibs14.2.0msvcrt64\_TMP_\c3c4331.tmp\obj\windows-x64\std.os.win32.obj:(std.os.win32.symbolize_backtrace)
lld-link: error: undefined symbol: SymInitialize
>>> referenced by C:\Prog\winlibs14.2.0msvcrt\custombuilt64\lib\c3\std\os\win32\process.c3:173
>>> R:\winlibs14.2.0msvcrt64\_TMP_\c3c4331.tmp\obj\windows-x64\std.os.win32.obj:(std.os.win32.symbolize_backtrace)
lld-link: error: undefined symbol: SymCleanup
>>> referenced by C:\Prog\winlibs14.2.0msvcrt\custombuilt64\lib\c3\std\os\win32\process.c3:174
>>> R:\winlibs14.2.0msvcrt64\_TMP_\c3c4331.tmp\obj\windows-x64\std.os.win32.obj:(std.os.win32.symbolize_backtrace)
lld-link: error: undefined symbol: SymFromAddr
>>> referenced by C:\Prog\winlibs14.2.0msvcrt\custombuilt64\lib\c3\std\os\win32\process.c3:188
>>> R:\winlibs14.2.0msvcrt64\_TMP_\c3c4331.tmp\obj\windows-x64\std.os.win32.obj:(std.os.win32.resolve_backtrace)
lld-link: error: undefined symbol: SymGetModuleInfo64
>>> referenced by C:\Prog\winlibs14.2.0msvcrt\custombuilt64\lib\c3\std\os\win32\process.c3:194
>>> R:\winlibs14.2.0msvcrt64\_TMP_\c3c4331.tmp\obj\windows-x64\std.os.win32.obj:(std.os.win32.resolve_backtrace)
lld-link: error: undefined symbol: UnDecorateSymbolName
>>> referenced by C:\Prog\winlibs14.2.0msvcrt\custombuilt64\lib\c3\std\os\win32\process.c3:200
>>> R:\winlibs14.2.0msvcrt64\_TMP_\c3c4331.tmp\obj\windows-x64\std.os.win32.obj:(std.os.win32.resolve_backtrace)
lld-link: error: undefined symbol: SymGetLineFromAddr64
>>> referenced by C:\Prog\winlibs14.2.0msvcrt\custombuilt64\lib\c3\std\os\win32\process.c3:205
>>> R:\winlibs14.2.0msvcrt64\_TMP_\c3c4331.tmp\obj\windows-x64\std.os.win32.obj:(std.os.win32.resolve_backtrace)
lld-link: error: undefined symbol: RtlCaptureStackBackTrace
>>> referenced by C:\Prog\winlibs14.2.0msvcrt\custombuilt64\lib\c3\std\os\backtrace.c3:81
>>> R:\winlibs14.2.0msvcrt64\_TMP_\c3c4331.tmp\obj\windows-x64\std.os.backtrace.obj:(std.os.backtrace.capture_current)
lld-link: error: undefined symbol: _fltused
>>> referenced by R:\winlibs14.2.0msvcrt64\_TMP_\c3c4331.tmp\obj\windows-x64\std.math.math_rt.obj
>>> referenced by R:\winlibs14.2.0msvcrt64\_TMP_\c3c4331.tmp\obj\windows-x64\std.math.obj
>>> referenced by R:\winlibs14.2.0msvcrt64\_TMP_\c3c4331.tmp\obj\windows-x64\std.io.obj
lld-link: error: undefined symbol: _get_errno
>>> referenced by C:\Prog\winlibs14.2.0msvcrt\custombuilt64\lib\c3\std\libc\libc.c3:44
>>> R:\winlibs14.2.0msvcrt64\_TMP_\c3c4331.tmp\obj\windows-x64\libc.obj:(libc.errno)
lld-link: error: undefined symbol: _fseeki64
>>> referenced by C:\Prog\winlibs14.2.0msvcrt\custombuilt64\lib\c3\std\io\os\file_libc.c3:54
>>> R:\winlibs14.2.0msvcrt64\_TMP_\c3c4331.tmp\obj\windows-x64\std.io.os.obj:(std.io.os.native_fseek)
lld-link: error: undefined symbol: _ftelli64
>>> referenced by C:\Prog\winlibs14.2.0msvcrt\custombuilt64\lib\c3\std\io\os\file_libc.c3:60
>>> R:\winlibs14.2.0msvcrt64\_TMP_\c3c4331.tmp\obj\windows-x64\std.io.os.obj:(std.io.os.native_ftell)
lld-link: error: undefined symbol: fwrite
>>> referenced by C:\Prog\winlibs14.2.0msvcrt\custombuilt64\lib\c3\std\io\os\file_libc.c3:66
>>> R:\winlibs14.2.0msvcrt64\_TMP_\c3c4331.tmp\obj\windows-x64\std.io.os.obj:(std.io.os.native_fwrite)
lld-link: error: undefined symbol: fputc
>>> referenced by C:\Prog\winlibs14.2.0msvcrt\custombuilt64\lib\c3\std\io\os\file_libc.c3:71
>>> R:\winlibs14.2.0msvcrt64\_TMP_\c3c4331.tmp\obj\windows-x64\std.io.os.obj:(std.io.os.native_fputc)
lld-link: error: too many errors emitted, stopping now (use /errorlimit:0 to see all errors)
Failed to create an executable: (null)
Metadata
Metadata
Assignees
Labels
No labels