Lance,
On Wed, 2 Nov 2016 15:04:07 -0600, Lance Fredrickson wrote:
I just have not concluded what exactly the problem in 1.0.19 is for you. I am willing to get back the functionality you need. I just have not understand it. So an example is always useful to get me understand your problem.
The result is that programs that require dl symbols fail to compile at all in a static matter.
I think the idea is that if you're doing a static build, then everything should be static, and there shouldn't be any shared object in the system, be they used at link time or at run time (via dlopen).
I do realize that the 'dl' in libdl stands for dynamic linking, but these static programs in some cases need these symbols nonetheless, and otherwise fail to compile. OpenVPN is one such example. It requires libdl, and it does operate as expected when compiled statically.
OpenVPN can be built with --disable-plugins, in which case it doesn't use dlopen().
SoftEtherVPN, tranmission, unbound, are just a few more I can confirm. The list would be very large.
SoftEtherVPN, transmission seem to build fine in Buildroot in a fully statically linked environment.
However, what confuses me is that this behavior is not new. We have been having build failures related to dlopen()/dlfcn.h being not available in static uClibc builds for a while. I don't see this as being new in 1.0.19.
See for example http://autobuild.buildroot.org/results/e92/e929799366e6f574c7b08d8635b18623a.... this build failure occurs because dlfcn.h is not present in a uClibc built with HAVE_SHARED disabled. And the uClibc version used in this toolchain is 1.0.17.
Best regards,
Thomas