Message ID | 20200124221401.210449-1-brendanhiggins@google.com |
---|---|
State | Accepted |
Headers | show |
Series | [v3] uml: make CONFIG_STATIC_LINK actually static | expand |
On Fri, Jan 24, 2020 at 2:14 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> > --- Ping. > arch/um/Kconfig | 8 +++++++- > arch/um/drivers/Kconfig | 3 +++ > 2 files changed, 10 insertions(+), 1 deletion(-) > > diff --git a/arch/um/Kconfig b/arch/um/Kconfig > index 0917f8443c285..28d62151fb2ed 100644 > --- a/arch/um/Kconfig > +++ b/arch/um/Kconfig > @@ -62,9 +62,12 @@ config NR_CPUS > > source "arch/$(HEADER_ARCH)/um/Kconfig" > > +config FORBID_STATIC_LINK > + bool > + > config STATIC_LINK > bool "Force a static link" > - default n > + depends on !FORBID_STATIC_LINK > help > This option gives you the ability to force a static link of UML. > Normally, UML is linked as a shared binary. This is inconvenient for > @@ -73,6 +76,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 > diff --git a/arch/um/drivers/Kconfig b/arch/um/drivers/Kconfig > index 72d4170557820..9160ead56e33c 100644 > --- a/arch/um/drivers/Kconfig > +++ b/arch/um/drivers/Kconfig > @@ -234,6 +234,7 @@ config UML_NET_DAEMON > config UML_NET_VECTOR > bool "Vector I/O high performance network devices" > depends on UML_NET > + select FORBID_STATIC_LINK > help > This User-Mode Linux network driver uses multi-message send > and receive functions. The host running the UML guest must have > @@ -245,6 +246,7 @@ config UML_NET_VECTOR > config UML_NET_VDE > bool "VDE transport (obsolete)" > depends on UML_NET > + select FORBID_STATIC_LINK > help > This User-Mode Linux network transport allows one or more running > UMLs on a single host to communicate with each other and also > @@ -292,6 +294,7 @@ config UML_NET_MCAST > config UML_NET_PCAP > bool "pcap transport (obsolete)" > depends on UML_NET > + select FORBID_STATIC_LINK > help > The pcap transport makes a pcap packet stream on the host look > like an ethernet device inside UML. This is useful for making > -- > 2.25.0.341.g760bfbb309-goog >
On 08/02/2020 01:07, Brendan Higgins wrote: > On Fri, Jan 24, 2020 at 2:14 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> >> --- > > Ping. ICMP echo reply, I thought I acked it :) If not - apologies. A. > >> arch/um/Kconfig | 8 +++++++- >> arch/um/drivers/Kconfig | 3 +++ >> 2 files changed, 10 insertions(+), 1 deletion(-) >> >> diff --git a/arch/um/Kconfig b/arch/um/Kconfig >> index 0917f8443c285..28d62151fb2ed 100644 >> --- a/arch/um/Kconfig >> +++ b/arch/um/Kconfig >> @@ -62,9 +62,12 @@ config NR_CPUS >> >> source "arch/$(HEADER_ARCH)/um/Kconfig" >> >> +config FORBID_STATIC_LINK >> + bool >> + >> config STATIC_LINK >> bool "Force a static link" >> - default n >> + depends on !FORBID_STATIC_LINK >> help >> This option gives you the ability to force a static link of UML. >> Normally, UML is linked as a shared binary. This is inconvenient for >> @@ -73,6 +76,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 >> diff --git a/arch/um/drivers/Kconfig b/arch/um/drivers/Kconfig >> index 72d4170557820..9160ead56e33c 100644 >> --- a/arch/um/drivers/Kconfig >> +++ b/arch/um/drivers/Kconfig >> @@ -234,6 +234,7 @@ config UML_NET_DAEMON >> config UML_NET_VECTOR >> bool "Vector I/O high performance network devices" >> depends on UML_NET >> + select FORBID_STATIC_LINK >> help >> This User-Mode Linux network driver uses multi-message send >> and receive functions. The host running the UML guest must have >> @@ -245,6 +246,7 @@ config UML_NET_VECTOR >> config UML_NET_VDE >> bool "VDE transport (obsolete)" >> depends on UML_NET >> + select FORBID_STATIC_LINK >> help >> This User-Mode Linux network transport allows one or more running >> UMLs on a single host to communicate with each other and also >> @@ -292,6 +294,7 @@ config UML_NET_MCAST >> config UML_NET_PCAP >> bool "pcap transport (obsolete)" >> depends on UML_NET >> + select FORBID_STATIC_LINK >> help >> The pcap transport makes a pcap packet stream on the host look >> like an ethernet device inside UML. This is useful for making >> -- >> 2.25.0.341.g760bfbb309-goog >> > > _______________________________________________ > linux-um mailing list > linux-um@lists.infradead.org > http://lists.infradead.org/mailman/listinfo/linux-um >
On 24/01/2020 22:14, Brendan Higgins 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 | 8 +++++++- > arch/um/drivers/Kconfig | 3 +++ > 2 files changed, 10 insertions(+), 1 deletion(-) > > diff --git a/arch/um/Kconfig b/arch/um/Kconfig > index 0917f8443c285..28d62151fb2ed 100644 > --- a/arch/um/Kconfig > +++ b/arch/um/Kconfig > @@ -62,9 +62,12 @@ config NR_CPUS > > source "arch/$(HEADER_ARCH)/um/Kconfig" > > +config FORBID_STATIC_LINK > + bool > + > config STATIC_LINK > bool "Force a static link" > - default n > + depends on !FORBID_STATIC_LINK > help > This option gives you the ability to force a static link of UML. > Normally, UML is linked as a shared binary. This is inconvenient for > @@ -73,6 +76,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 > diff --git a/arch/um/drivers/Kconfig b/arch/um/drivers/Kconfig > index 72d4170557820..9160ead56e33c 100644 > --- a/arch/um/drivers/Kconfig > +++ b/arch/um/drivers/Kconfig > @@ -234,6 +234,7 @@ config UML_NET_DAEMON > config UML_NET_VECTOR > bool "Vector I/O high performance network devices" > depends on UML_NET > + select FORBID_STATIC_LINK > help > This User-Mode Linux network driver uses multi-message send > and receive functions. The host running the UML guest must have > @@ -245,6 +246,7 @@ config UML_NET_VECTOR > config UML_NET_VDE > bool "VDE transport (obsolete)" > depends on UML_NET > + select FORBID_STATIC_LINK > help > This User-Mode Linux network transport allows one or more running > UMLs on a single host to communicate with each other and also > @@ -292,6 +294,7 @@ config UML_NET_MCAST > config UML_NET_PCAP > bool "pcap transport (obsolete)" > depends on UML_NET > + select FORBID_STATIC_LINK > help > The pcap transport makes a pcap packet stream on the host look > like an ethernet device inside UML. This is useful for making > Acked-By: Anton Ivanov <anton.ivanov@cambridgegreys.com>
----- Ursprüngliche Mail ----- > Von: "anton ivanov" <anton.ivanov@cambridgegreys.com> > An: "Brendan Higgins" <brendanhiggins@google.com>, "Jeff Dike" <jdike@addtoit.com>, "richard" <richard@nod.at>, "Geert > Uytterhoeven" <geert@linux-m68k.org>, "James McMechan" <james_mcmechan@hotmail.com> > CC: "linux-um" <linux-um@lists.infradead.org>, "linux-kernel" <linux-kernel@vger.kernel.org>, "davidgow" > <davidgow@google.com> > Gesendet: Samstag, 8. Februar 2020 08:56:58 > Betreff: Re: [PATCH v3] uml: make CONFIG_STATIC_LINK actually static > On 08/02/2020 01:07, Brendan Higgins wrote: >> On Fri, Jan 24, 2020 at 2:14 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> >>> --- >> >> Ping. > > ICMP echo reply, > > I thought I acked it :) > > If not - apologies. Applied, thanks! Thanks, //richard
diff --git a/arch/um/Kconfig b/arch/um/Kconfig index 0917f8443c285..28d62151fb2ed 100644 --- a/arch/um/Kconfig +++ b/arch/um/Kconfig @@ -62,9 +62,12 @@ config NR_CPUS source "arch/$(HEADER_ARCH)/um/Kconfig" +config FORBID_STATIC_LINK + bool + config STATIC_LINK bool "Force a static link" - default n + depends on !FORBID_STATIC_LINK help This option gives you the ability to force a static link of UML. Normally, UML is linked as a shared binary. This is inconvenient for @@ -73,6 +76,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 diff --git a/arch/um/drivers/Kconfig b/arch/um/drivers/Kconfig index 72d4170557820..9160ead56e33c 100644 --- a/arch/um/drivers/Kconfig +++ b/arch/um/drivers/Kconfig @@ -234,6 +234,7 @@ config UML_NET_DAEMON config UML_NET_VECTOR bool "Vector I/O high performance network devices" depends on UML_NET + select FORBID_STATIC_LINK help This User-Mode Linux network driver uses multi-message send and receive functions. The host running the UML guest must have @@ -245,6 +246,7 @@ config UML_NET_VECTOR config UML_NET_VDE bool "VDE transport (obsolete)" depends on UML_NET + select FORBID_STATIC_LINK help This User-Mode Linux network transport allows one or more running UMLs on a single host to communicate with each other and also @@ -292,6 +294,7 @@ config UML_NET_MCAST config UML_NET_PCAP bool "pcap transport (obsolete)" depends on UML_NET + select FORBID_STATIC_LINK help The pcap transport makes a pcap packet stream on the host look like an ethernet device inside UML. This is useful for making
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 | 8 +++++++- arch/um/drivers/Kconfig | 3 +++ 2 files changed, 10 insertions(+), 1 deletion(-)