Message ID | 20191210212108.222514-1-brendanhiggins@google.com |
---|---|
State | Superseded |
Headers | show |
Series | [v1] uml: make CONFIG_STATIC_LINK actually static | expand |
Hi Brendan, On Tue, Dec 10, 2019 at 10:21 PM Brendan Higgins <brendanhiggins@google.com> wrote: > Currently, CONFIG_STATIC_LINK can be enabled with options which cannot > be statically linked, namely UML_NET_VECTOR, UML_NET_VDE, and > UML_NET_PCAP; this is because glibc tries to load NSS which does not > support being statically linked. So make CONFIG_STATIC_LINK depend on > !UML_NET_VECTOR && !UML_NET_VDE && !UML_NET_PCAP. > > Link: https://lore.kernel.org/lkml/f658f317-be54-ed75-8296-c373c2dcc697@cambridgegreys.com/#t > Signed-off-by: Brendan Higgins <brendanhiggins@google.com> > --- > arch/um/Kconfig | 4 ++++ > 1 file changed, 4 insertions(+) > > diff --git a/arch/um/Kconfig b/arch/um/Kconfig > index 2a6d04fcb3e91..1ddc8745123f2 100644 > --- a/arch/um/Kconfig > +++ b/arch/um/Kconfig > @@ -63,6 +63,7 @@ source "arch/$(HEADER_ARCH)/um/Kconfig" > > config STATIC_LINK > bool "Force a static link" > + depends on !UML_NET_VECTOR && !UML_NET_VDE && !UML_NET_PCAP "depends on !FORBID_STATIC_LINK"? Then all the drivers that are incompatible with static linking can just select FORBID_STATIC_LINK in their own Kconfig block. > default n > help > This option gives you the ability to force a static link of UML. > @@ -72,6 +73,9 @@ config STATIC_LINK > Additionally, this option enables using higher memory spaces (up to > 2.75G) for UML. > > + NOTE: This option is incompatible with some networking features which > + depend on features that require being dynamically loaded (like NSS). > + > config LD_SCRIPT_STATIC > bool > default y > -- > 2.24.0.525.g8f36a354ae-goog Gr{oetje,eeting}s, Geert
On Wed, Dec 11, 2019 at 9:40 AM Geert Uytterhoeven <geert@linux-m68k.org> wrote: > > Hi Brendan, > > On Tue, Dec 10, 2019 at 10:21 PM Brendan Higgins > <brendanhiggins@google.com> wrote: > > Currently, CONFIG_STATIC_LINK can be enabled with options which cannot > > be statically linked, namely UML_NET_VECTOR, UML_NET_VDE, and > > UML_NET_PCAP; this is because glibc tries to load NSS which does not > > support being statically linked. So make CONFIG_STATIC_LINK depend on > > !UML_NET_VECTOR && !UML_NET_VDE && !UML_NET_PCAP. > > > > Link: https://lore.kernel.org/lkml/f658f317-be54-ed75-8296-c373c2dcc697@cambridgegreys.com/#t > > Signed-off-by: Brendan Higgins <brendanhiggins@google.com> > > --- > > arch/um/Kconfig | 4 ++++ > > 1 file changed, 4 insertions(+) > > > > diff --git a/arch/um/Kconfig b/arch/um/Kconfig > > index 2a6d04fcb3e91..1ddc8745123f2 100644 > > --- a/arch/um/Kconfig > > +++ b/arch/um/Kconfig > > @@ -63,6 +63,7 @@ source "arch/$(HEADER_ARCH)/um/Kconfig" > > > > config STATIC_LINK > > bool "Force a static link" > > + depends on !UML_NET_VECTOR && !UML_NET_VDE && !UML_NET_PCAP > > "depends on !FORBID_STATIC_LINK"? > > Then all the drivers that are incompatible with static linking can just > select FORBID_STATIC_LINK in their own Kconfig block. Makes sense!
Resent for the mailing list since my webmail decided to try to send html... I agree that at least the UML_NET_VECTOR is not compatible with static linking at the moment, but I was running a statically linked UML with PCAP back in December. I was having no problems, but I don't remember if I was using PCAP itself... I seem to remember a minor patch I did to fix a symbol conflict but nothing of note. I have not played around with UML_NET_VECTOR since I run the normal networking. And I did not find any config info with a quick googling the vector version so I just ignored it. Enjoy. Jim McMechan
On Sun, Jan 19, 2020 at 4:30 PM James McMechan <james_mcmechan@hotmail.com> wrote: > > Resent for the mailing list since my webmail decided to try to send html... > > I agree that at least the UML_NET_VECTOR is not compatible with static linking at the moment, > but I was running a statically linked UML with PCAP back in December. > I was having no problems, but I don't remember if I was using PCAP itself... I was just going off of what Anton and Johannes said in regard to PCAP; it seems to have deviated from the libpcap library, so I have been unable to test it: http://lists.infradead.org/pipermail/linux-um/2019-December/002548.html Anton, do you have the fix for PCAP out yet? > I seem to remember a minor patch I did to fix a symbol conflict but nothing of note. > I have not played around with UML_NET_VECTOR since I run the normal networking. > And I did not find any config info with a quick googling the vector version so I just ignored it. Nevertheless, VDE still causes the linker to complain. Cheers
diff --git a/arch/um/Kconfig b/arch/um/Kconfig index 2a6d04fcb3e91..1ddc8745123f2 100644 --- a/arch/um/Kconfig +++ b/arch/um/Kconfig @@ -63,6 +63,7 @@ source "arch/$(HEADER_ARCH)/um/Kconfig" config STATIC_LINK bool "Force a static link" + depends on !UML_NET_VECTOR && !UML_NET_VDE && !UML_NET_PCAP default n help This option gives you the ability to force a static link of UML. @@ -72,6 +73,9 @@ config STATIC_LINK Additionally, this option enables using higher memory spaces (up to 2.75G) for UML. + NOTE: This option is incompatible with some networking features which + depend on features that require being dynamically loaded (like NSS). + config LD_SCRIPT_STATIC bool default y
Currently, CONFIG_STATIC_LINK can be enabled with options which cannot be statically linked, namely UML_NET_VECTOR, UML_NET_VDE, and UML_NET_PCAP; this is because glibc tries to load NSS which does not support being statically linked. So make CONFIG_STATIC_LINK depend on !UML_NET_VECTOR && !UML_NET_VDE && !UML_NET_PCAP. Link: https://lore.kernel.org/lkml/f658f317-be54-ed75-8296-c373c2dcc697@cambridgegreys.com/#t Signed-off-by: Brendan Higgins <brendanhiggins@google.com> --- arch/um/Kconfig | 4 ++++ 1 file changed, 4 insertions(+)