Commit 33631793 authored by Brendan Higgins's avatar Brendan Higgins Committed by Richard Weinberger

um: 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/f658f317-be54-ed75-8296-c373c2dcc697@cambridgegreys.com/#tSigned-off-by: default avatarBrendan Higgins <brendanhiggins@google.com>
Acked-By: default avatarAnton Ivanov <anton.ivanov@cambridgegreys.com>
Signed-off-by: default avatarRichard Weinberger <richard@nod.at>
parent 5bef0a15
...@@ -62,9 +62,12 @@ config NR_CPUS ...@@ -62,9 +62,12 @@ config NR_CPUS
source "arch/$(HEADER_ARCH)/um/Kconfig" source "arch/$(HEADER_ARCH)/um/Kconfig"
config FORBID_STATIC_LINK
bool
config STATIC_LINK config STATIC_LINK
bool "Force a static link" bool "Force a static link"
default n depends on !FORBID_STATIC_LINK
help help
This option gives you the ability to force a static link of UML. 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 Normally, UML is linked as a shared binary. This is inconvenient for
...@@ -73,6 +76,9 @@ config STATIC_LINK ...@@ -73,6 +76,9 @@ config STATIC_LINK
Additionally, this option enables using higher memory spaces (up to Additionally, this option enables using higher memory spaces (up to
2.75G) for UML. 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 config LD_SCRIPT_STATIC
bool bool
default y default y
......
...@@ -234,6 +234,7 @@ config UML_NET_DAEMON ...@@ -234,6 +234,7 @@ config UML_NET_DAEMON
config UML_NET_VECTOR config UML_NET_VECTOR
bool "Vector I/O high performance network devices" bool "Vector I/O high performance network devices"
depends on UML_NET depends on UML_NET
select FORBID_STATIC_LINK
help help
This User-Mode Linux network driver uses multi-message send This User-Mode Linux network driver uses multi-message send
and receive functions. The host running the UML guest must have and receive functions. The host running the UML guest must have
...@@ -245,6 +246,7 @@ config UML_NET_VECTOR ...@@ -245,6 +246,7 @@ config UML_NET_VECTOR
config UML_NET_VDE config UML_NET_VDE
bool "VDE transport (obsolete)" bool "VDE transport (obsolete)"
depends on UML_NET depends on UML_NET
select FORBID_STATIC_LINK
help help
This User-Mode Linux network transport allows one or more running This User-Mode Linux network transport allows one or more running
UMLs on a single host to communicate with each other and also UMLs on a single host to communicate with each other and also
...@@ -292,6 +294,7 @@ config UML_NET_MCAST ...@@ -292,6 +294,7 @@ config UML_NET_MCAST
config UML_NET_PCAP config UML_NET_PCAP
bool "pcap transport (obsolete)" bool "pcap transport (obsolete)"
depends on UML_NET depends on UML_NET
select FORBID_STATIC_LINK
help help
The pcap transport makes a pcap packet stream on the host look The pcap transport makes a pcap packet stream on the host look
like an ethernet device inside UML. This is useful for making like an ethernet device inside UML. This is useful for making
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment