From 4a07bbc28edbcfbdd3725a03a90d3c6a7daa5df0 Mon Sep 17 00:00:00 2001 From: Anders Kaseorg Date: Thu, 8 May 2008 07:49:26 -0400 Subject: [PATCH] Use a version script to hide internal symbols. Signed-off-by: Anders Kaseorg --- Makefile | 8 +++++--- libnss_nonlocal.map | 24 ++++++++++++++++++++++++ 2 files changed, 29 insertions(+), 3 deletions(-) create mode 100644 libnss_nonlocal.map diff --git a/Makefile b/Makefile index 58e185f..10d1306 100644 --- a/Makefile +++ b/Makefile @@ -11,8 +11,10 @@ ALL_LDFLAGS = $(LDFLAGS) -shared -Wl,-x all: libnss_nonlocal.so.2 linktest -libnss_nonlocal.so.2: nonlocal-passwd.o nonlocal-group.o nonlocal-shadow.o - $(CC) -o $@ $(ALL_LDFLAGS) -Wl,-soname,$@ $^ $(LOADLIBES) $(LDLIBS) +OBJS = nonlocal-passwd.o nonlocal-group.o nonlocal-shadow.o + +libnss_nonlocal.so.2: $(OBJS) libnss_nonlocal.map + $(CC) -o $@ $(ALL_LDFLAGS) -Wl,-soname,$@ -Wl,--version-script=libnss_nonlocal.map $(OBJS) $(LOADLIBES) $(LDLIBS) %.o: %.c $(CC) -c $(ALL_CFLAGS) $(CPPFLAGS) $< @@ -29,6 +31,6 @@ install: libnss_nonlocal.so.2 $(INSTALL) -m a+r,u+w $< $(DESTDIR)$(libdir)/ clean: - rm -f *.so.* *.o test-nonlocal + rm -f *.so.* *.o .PHONY: all linktest install clean diff --git a/libnss_nonlocal.map b/libnss_nonlocal.map new file mode 100644 index 0000000..9082d5d --- /dev/null +++ b/libnss_nonlocal.map @@ -0,0 +1,24 @@ +GLIBC_2.0 { + global: + _nss_nonlocal_setpwent; + _nss_nonlocal_endpwent; + _nss_nonlocal_getpwent_r; + _nss_nonlocal_getpwuid_r; + _nss_nonlocal_getpwnam_r; + + _nss_nonlocal_setspent; + _nss_nonlocal_endspent; + _nss_nonlocal_getspent_r; + _nss_nonlocal_getspnam_r; + + _nss_nonlocal_setgrent; + _nss_nonlocal_endgrent; + _nss_nonlocal_getgrent_r; + _nss_nonlocal_getgrgid_r; + _nss_nonlocal_getgrnam_r; + + _nss_nonlocal_initgroups_dyn; + + local: + *; +}; -- 2.45.0