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/e929799366e6f574c7b08d8635b18623afd3e3e1/build-end.log.
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
-- 
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux and Kernel engineering
http://free-electrons.com
_______________________________________________
devel mailing list
[email protected]
http://mailman.uclibc-ng.org/cgi-bin/mailman/listinfo/devel

Reply via email to