tcpdump mailing list archives
Re: Remove the eproto_db symbol exporting to keep the DLL delay-load feature on Windows
From: Guy Harris <guy () alum mit edu>
Date: Thu, 30 Jun 2016 13:14:26 -0700
On Jun 27, 2016, at 10:56 PM, Yang Luo <hsluoyb () gmail com> wrote:
Because of libpcap has exported the a data structure called eproto_db (https://github.com/the-tcpdump-group/libpcap/blob/master/nametoaddr.c#L320), when I compiled WinDump in MSVC specifying "wpcap.dll" as a delay loaded DLL, I encountered the link error 1194. The cause is here: https://msdn.microsoft.com/en-us/library/w59k653y%28v=vs.80%29.aspx?f=255&MSPPError=-2147217396. Delay loading wpcap.dll is an important part for the switch between Npcap mode and WinPcap mode. And from the comment, it seems that exporting this data is not very critical. So can we remove the "PCAP_API_DEF" at the line beginning to disable the exporting?
What the comment says is * tcpdump used to import this, and it's declared as an export on * Debian, at least, so make it a public symbol, even though we * don't officially export it by declaring it in a header file. which means that if we stop exporting it on UN*X, Debian might have to deem that an incompatible change to the ABI and that might cause significant disruption on Debian and its derivatives. Other UN*Xes that ship libpcap might have a problem, especially if they have to support third-party closed-source binaries. So, at minimum, we should continue to export it on UN*X. And that might be an issue with Windows binaries as well; I suspect WinDump, for example, imports eproto_db from WinPcap, as it's based on an older version of tcpdump that imported it from libpcap. I'll leave it up to you to determine whether introducing a possible binary incompatibility between WinPcap and Npcap is an issue. _______________________________________________ tcpdump-workers mailing list tcpdump-workers () lists tcpdump org https://lists.sandelman.ca/mailman/listinfo/tcpdump-workers
Current thread:
- Remove the eproto_db symbol exporting to keep the DLL delay-load feature on Windows Yang Luo (Jun 27)
- Re: Remove the eproto_db symbol exporting to keep the DLL delay-load feature on Windows Yang Luo (Jun 28)
- Re: Remove the eproto_db symbol exporting to keep the DLL delay-load feature on Windows Guy Harris (Jun 30)