Thread overview |
---|
February 19, 2021 windows: imported functions in empty program executable | ||||
---|---|---|---|---|
| ||||
LDC - the LLVM D compiler (1.25.0-beta1)
File test.d contain one line:
void main () {}
Compiled to test.exe by command:
ldc2 -release -O3 test.d
Result test.exe imported many functions, for example delete registry, networking.
Is this bug, or i can change something to avoid this imports?
> dumpbin /imports test.exe
'...' - skipped lines
Dump of file test.exe
File Type: EXECUTABLE IMAGE
Section contains the following imports:
...
WS2_32.dll
...
1E WSACleanup
2F WSAGetLastError
3A WSAIoctl
58 WSAStartup
A1 accept
A2 bind
A3 closesocket
A4 connect
A7 gethostbyaddr
A8 gethostbyname
AB getpeername
AC getprotobyname
AD getprotobynumber
AE getservbyname
AF getservbyport
B0 getsockname
B1 getsockopt
B2 htonl
B4 inet_addr
B5 inet_ntoa
B8 ioctlsocket
B9 listen
BA ntohl
BB ntohs
BC recv
BD recvfrom
BF send
C0 sendto
C1 setsockopt
C2 shutdown
C3 socket
...
ADVAPI32.dll
25B RegCloseKey
264 RegCreateKeyExW
26F RegDeleteKeyW
273 RegDeleteValueW
27A RegEnumKeyExW
27D RegEnumValueW
27E RegFlushKey
28C RegOpenKeyExW
28F RegOpenKeyW
293 RegQueryInfoKeyW
299 RegQueryValueExW
2A9 RegSetValueExW
|
February 20, 2021 Re: windows: imported functions in empty program executable | ||||
---|---|---|---|---|
| ||||
Posted in reply to novice2 | On Friday, 19 February 2021 at 19:29:43 UTC, novice2 wrote:
> LDC - the LLVM D compiler (1.25.0-beta1)
>
> File test.d contain one line:
> void main () {}
>
> Compiled to test.exe by command:
> ldc2 -release -O3 test.d
>
> Result test.exe imported many functions, for example delete registry, networking.
> Is this bug, or i can change something to avoid this imports?
You've apparently used the bundled MinGW-w64-based libs, not an MSVC toolchain, which somehow results in deps on WS2_32.dll and ADVAPI32.dll. With VS 2019 on my box, the dummy executable only depends on kernel32.dll. LDC defaults to linking the MSVC runtime statically if an MSVC toolchain is available (see -mscrtlib switch).
|
February 20, 2021 Re: windows: imported functions in empty program executable | ||||
---|---|---|---|---|
| ||||
Posted in reply to kinke | On Saturday, 20 February 2021 at 06:10:38 UTC, kinke wrote:
> You've apparently used the bundled MinGW-w64-based libs [...]
It has apparently nothing to do with those libs, but with using the LLD linker instead of the MS linker. With the static MSVC libs, I still get these 2 extra DLL deps when using `-link-internally`.
|
February 20, 2021 Re: windows: imported functions in empty program executable | ||||
---|---|---|---|---|
| ||||
Posted in reply to kinke | On Saturday, 20 February 2021 at 06:14:53 UTC, kinke wrote:
> On Saturday, 20 February 2021 at 06:10:38 UTC, kinke wrote:
>> You've apparently used the bundled MinGW-w64-based libs [...]
so, this is problem with mingw and llvm linker...
|
Copyright © 1999-2021 by the D Language Foundation