2020-01-24 22:15:39

by Brendan Higgins

[permalink] [raw]
Subject: [PATCH v3] uml: make CONFIG_STATIC_LINK actually static

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/[email protected]/#t
Signed-off-by: Brendan Higgins <[email protected]>
---
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


2020-02-08 01:10:12

by Brendan Higgins

[permalink] [raw]
Subject: Re: [PATCH v3] uml: make CONFIG_STATIC_LINK actually static

On Fri, Jan 24, 2020 at 2:14 PM Brendan Higgins
<[email protected]> 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/[email protected]/#t
> Signed-off-by: Brendan Higgins <[email protected]>
> ---

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
>

2020-02-08 07:58:16

by Anton Ivanov

[permalink] [raw]
Subject: 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
> <[email protected]> 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/[email protected]/#t
>> Signed-off-by: Brendan Higgins <[email protected]>
>> ---
>
> 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
> [email protected]
> http://lists.infradead.org/mailman/listinfo/linux-um
>


--
Anton R. Ivanov
Cambridgegreys Limited. Registered in England. Company Number 10273661
https://www.cambridgegreys.com/

2020-02-10 14:57:38

by Anton Ivanov

[permalink] [raw]
Subject: Re: [PATCH v3] uml: make CONFIG_STATIC_LINK actually static



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/[email protected]/#t
> Signed-off-by: Brendan Higgins <[email protected]>
> ---
> 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 <[email protected]>

--
Anton R. Ivanov
Cambridgegreys Limited. Registered in England. Company Number 10273661
https://www.cambridgegreys.com/

2020-03-29 22:50:55

by Richard Weinberger

[permalink] [raw]
Subject: Re: [PATCH v3] uml: make CONFIG_STATIC_LINK actually static

----- Ursprüngliche Mail -----
> Von: "anton ivanov" <[email protected]>
> An: "Brendan Higgins" <[email protected]>, "Jeff Dike" <[email protected]>, "richard" <[email protected]>, "Geert
> Uytterhoeven" <[email protected]>, "James McMechan" <[email protected]>
> CC: "linux-um" <[email protected]>, "linux-kernel" <[email protected]>, "davidgow"
> <[email protected]>
> 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
>> <[email protected]> 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/[email protected]/#t
>>> Signed-off-by: Brendan Higgins <[email protected]>
>>> ---
>>
>> Ping.
>
> ICMP echo reply,
>
> I thought I acked it :)
>
> If not - apologies.

Applied, thanks!

Thanks,
//richard