summary refs log tree commit diff
path: root/FAQ.in
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>1998-04-07 16:19:36 +0000
committerUlrich Drepper <drepper@redhat.com>1998-04-07 16:19:36 +0000
commit6ca96fe202d5031bd34794b81798651a07839075 (patch)
tree5684b91ae1d63086f43b1742b04a6b0440fd0e5b /FAQ.in
parent6916c5e1fa03596836767d10648a26eff9d6a8e2 (diff)
downloadglibc-6ca96fe202d5031bd34794b81798651a07839075.tar.gz
glibc-6ca96fe202d5031bd34794b81798651a07839075.tar.xz
glibc-6ca96fe202d5031bd34794b81798651a07839075.zip
Update.
1998-04-04  Andreas Jaeger  <aj@arthur.rhein-neckar.de>

	* resolv/Makefile: Include ../Makeconfig - needed for building
	static NSS module.

1998-04-04  Andreas Jaeger  <aj@arthur.rhein-neckar.de>

	* hesiod/Makefile (libnss_hesiod-inhibit-o): Remove condition for
	static-nss since we don't want hesiod in the static NSS.

	* nss/Makefile: Build only nss_files as static.

	* nss/function.def: Remove support for service db.

1998-04-04 09:44  H.J. Lu  <hjl@gnu.org>

	* Makeconfig (CPPFLAGS-.oS): Add -DPIC.

1998-04-04 18:29  Tim Waugh  <tim@cyberelk.demon.co.uk>

	* posix/wordexp-test.c: Make IFS per test-case.
Diffstat (limited to 'FAQ.in')
-rw-r--r--FAQ.in27
1 files changed, 27 insertions, 0 deletions
diff --git a/FAQ.in b/FAQ.in
index e0e7342279..aee939dde5 100644
--- a/FAQ.in
+++ b/FAQ.in
@@ -625,6 +625,33 @@ If you're upgrading from glibc 2.0.x to 2.1 you have to recompile
 libstdc++ since the library compiled for 2.0 is not compatible due to the new
 Large File Support (LFS) in version 2.1.
 
+??	Even statically linked programs need some shared libraries
+	which is not acceptable for me.  What can I do?
+
+{AJ} NSS (for details just type `info libc "Name Service Switch"')
+won't work properly without shared libraries.  NSS allows using
+different services (e.g. NIS, files, db, hesiod) by just changing one
+configuration file (/etc/nsswitch.conf) without relinking any
+programs.  The only disadvantage is that now static libraries need to
+access shared libraries.  This is handled transparently by the GNU C
+library.
+
+A solution is to configure glibc with --enable-static-nss.  In this
+case you can create a static binary that will use only the services
+dns and files (change /etc/nsswitch.conf for this).  You need
+to link explicitly against all these services. For example:
+
+  gcc -static test-netdb.c -o test-netdb.c \
+    -lc -lnss_files -lnss_dns -lresolv
+
+The problem with this approach is that you've got to link every static
+program that uses NSS routines with all those libraries.
+
+{UD} In fact, one cannot say anymore that a libc compiled with this
+option is using NSS.  There is no switch anymore.  Therefore it is
+*highly* recommended *not* to use --enable-static-nss since this makes
+the behaviour of the programs on the system inconsistent.
+
 ? Source and binary incompatibilities, and what to do about them
 
 ??	I expect GNU libc to be 100% source code compatible with