aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/Bitcode/Writer/BitcodeWriter.cpp
diff options
context:
space:
mode:
authorNico Weber <nicolasweber@gmx.de>2018-10-03 17:01:39 +0000
committerNico Weber <nicolasweber@gmx.de>2018-10-03 17:01:39 +0000
commitd37782627772fe13927baa282276c0af591f2b75 (patch)
treeb01a8713a53c2e238bd3c0a79d143954992c06e2 /llvm/lib/Bitcode/Writer/BitcodeWriter.cpp
parent2c59475c064476d321d9c92bd88e7333e9657ce8 (diff)
downloadllvm-d37782627772fe13927baa282276c0af591f2b75.zip
llvm-d37782627772fe13927baa282276c0af591f2b75.tar.gz
llvm-d37782627772fe13927baa282276c0af591f2b75.tar.bz2
lld-link: Several tweaks to default entry point selection.
Three related changes: 1. link.exe uses the presence of main and wmain to decide if it should call mainCRTStartup or wmainCRTStartup, even if /nodefaultlib is passed. For compatibility, remove FindMain logic. 2. Default to the non-wide entrypoint if main is not found. This has two effects: 2a. In normal links, lld-link now prints lld-link: error: undefined symbol: _main >>> referenced by f:\dd\vctools\crt\vcstartup\src\startup\exe_common.inl:78 >>> libcmt.lib(exe_main.obj):("int __cdecl invoke_main(void)" (?invoke_main@@YAHXZ)) >>> referenced by f:\dd\vctools\crt\vcstartup\src\startup\exe_common.inl:283 >>> libcmt.lib(exe_main.obj):("int __cdecl __scrt_common_main_seh(void)" (?__scrt_common_main_seh@@YAHXZ)) instead of lld-link: error: entry point must be defined This is arguably a better error message, since it now mentions that _main is missing. (This matches link.exe's diagnostic in this case.) 2b. With /nodefautlib, we now default to mainCRTStartup if no main() is present, again matching link.exe. This makes r337407 obsolete. This means if you have a cc file containing both mainCRTStartup and wmainCRTStartup and you pass /nodefaultlib /subsystem:console, lld-link will now call mainCRTStartup, matching link.exe 3. Print a warning if both main and wmain are present, similar to link.exe's LNK4067. Differential Revision: https://reviews.llvm.org/D52832 llvm-svn: 343698
Diffstat (limited to 'llvm/lib/Bitcode/Writer/BitcodeWriter.cpp')
0 files changed, 0 insertions, 0 deletions