Rename foo.sym -> foo.exp

Remove foo.map from the repo and generate it on demand
Use a loader option file for HP-UX ld to explicitly export symbols
This commit is contained in:
Todd C. Miller
2012-06-20 12:58:16 -04:00
parent b0475b59dc
commit bcfeddc998
15 changed files with 139 additions and 70 deletions

View File

@@ -127,14 +127,12 @@ mkpkg
pathnames.h.in
plugins/sample/Makefile.in
plugins/sample/sample_plugin.c
plugins/sample/sample_plugin.map
plugins/sample/sample_plugin.sym
plugins/sample/sample_plugin.exp
plugins/sample_group/Makefile.in
plugins/sample_group/getgrent.c
plugins/sample_group/plugin_test.c
plugins/sample_group/sample_group.c
plugins/sample_group/sample_group.map
plugins/sample_group/sample_group.sym
plugins/sample_group/sample_group.exp
plugins/sudoers/Makefile.in
plugins/sudoers/aixcrypt.exp
plugins/sudoers/alias.c
@@ -260,10 +258,9 @@ plugins/sudoers/set_perms.c
plugins/sudoers/sudo_nss.c
plugins/sudoers/sudo_nss.h
plugins/sudoers/sudoers.c
plugins/sudoers/sudoers.exp
plugins/sudoers/sudoers.h
plugins/sudoers/sudoers.in
plugins/sudoers/sudoers.map
plugins/sudoers/sudoers.sym
plugins/sudoers/sudoers2ldif
plugins/sudoers/sudoers_version.h
plugins/sudoers/sudoreplay.c
@@ -278,8 +275,7 @@ plugins/sudoers/tsgetgrpw.h
plugins/sudoers/visudo.c
plugins/system_group/Makefile.in
plugins/system_group/system_group.c
plugins/system_group/system_group.map
plugins/system_group/system_group.sym
plugins/system_group/system_group.exp
pp
src/Makefile.in
src/conversation.c

59
configure vendored
View File

@@ -740,6 +740,8 @@ SUDO_OBJS
SUDOERS_OBJS
COMMON_OBJS
LT_LDEXPORTS
LT_LDDEP
LT_LDOPT
LT_LDMAP
LT_LDFLAGS
SUDOERS_LDFLAGS
@@ -2883,6 +2885,8 @@ $as_echo "$as_me: Configuring Sudo version $PACKAGE_VERSION" >&6;}
@@ -2951,7 +2955,8 @@ AUTH_EXCL=
AUTH_EXCL_DEF=
AUTH_DEF=passwd
SUDO_NLS=disabled
LT_LDEXPORTS="-export-symbols \$(symfile)"
LT_LDEXPORTS="-export-symbols \$(shlib_exp)"
LT_LDDEP="\$(shlib_exp)"
CHECKSHADOW=true
shadow_defs=
@@ -20132,6 +20137,7 @@ if test x"`eval 'as_val=${'$as_CACHEVAR'};$as_echo "$as_val"'`" = xyes; then :
CFLAGS="${CFLAGS} -fvisibility=hidden"
LT_LDEXPORTS=
LT_LDDEP=
else
@@ -20173,6 +20179,7 @@ if test x"$ax_cv_check_cflags___Bhidden_def" = xyes; then :
CFLAGS="${CFLAGS} -Bhidden_def"
LT_LDEXPORTS=
LT_LDDEP=
else
:
@@ -20217,6 +20224,7 @@ if test x"`eval 'as_val=${'$as_CACHEVAR'};$as_echo "$as_val"'`" = xyes; then :
CFLAGS="${CFLAGS} -xldscope=hidden"
LT_LDEXPORTS=
LT_LDDEP=
else
:
@@ -20239,8 +20247,10 @@ if test -n "$LT_LDEXPORTS"; then
EOF
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ld supports anonymous map files" >&5
$as_echo_n "checking whether ld supports anonymous map files... " >&6; }
_CFLAGS="$CFLAGS"
CFLAGS="$CFLAGS $lt_prog_compiler_pic"
_LDFLAGS="$LDFLAGS"
LDFLAGS="$LDFLAGS -fPIC -shared -Wl,--version-script,./conftest.map"
LDFLAGS="$LDFLAGS -fpic -shared -Wl,--version-script,./conftest.map"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
int foo;
@@ -20254,11 +20264,12 @@ main ()
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
LT_LDEXPORTS=; LT_LDMAP="-Wl,--version-script,\$(mapfile)"
LT_LDEXPORTS=; LT_LDDEP="\$(shlib_map)"; LT_LDMAP="-Wl,--version-script,\$(shlib_map)"
fi
rm -f core conftest.err conftest.$ac_objext \
conftest$ac_exeext conftest.$ac_ext
CFLAGS="$_CFLAGS"
LDFLAGS="$_LDFLAGS"
else
case "$host" in
@@ -20271,8 +20282,10 @@ rm -f core conftest.err conftest.$ac_objext \
EOF
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ld supports anonymous map files" >&5
$as_echo_n "checking whether ld supports anonymous map files... " >&6; }
_CFLAGS="$CFLAGS"
CFLAGS="$CFLAGS $lt_prog_compiler_pic"
_LDFLAGS="$LDFLAGS"
LDFLAGS="$LDFLAGS -fPIC -shared -Wl,-M,./conftest.map"
LDFLAGS="$LDFLAGS -shared -Wl,-M,./conftest.map"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
int foo;
@@ -20286,11 +20299,47 @@ main ()
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
LT_LDEXPORTS=; LT_LDMAP="-Wl,-M,\$(mapfile)"
LT_LDEXPORTS=; LT_LDDEP="\$(shlib_map)"; LT_LDMAP="-Wl,-M,\$(shlib_map)"
fi
rm -f core conftest.err conftest.$ac_objext \
conftest$ac_exeext conftest.$ac_ext
CFLAGS="$_CFLAGS"
LDFLAGS="$_LDFLAGS"
;;
*-*-hpux*)
cat > conftest.opt <<-EOF
+e foo
EOF
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ld supports controlling exported symbols" >&5
$as_echo_n "checking whether ld supports controlling exported symbols... " >&6; }
_CFLAGS="$CFLAGS"
CFLAGS="$CFLAGS $lt_prog_compiler_pic"
_LDFLAGS="$LDFLAGS"
if test -n "$GCC"; then
LDFLAGS="$LDFLAGS -shared -Wl,-c,./conftest.opt"
else
LDFLAGS="$LDFLAGS -Wl,-b -Wl,-c,./conftest.opt"
fi
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
int foo;
int
main ()
{
;
return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
LT_LDEXPORTS=; LT_LDDEP="\$(shlib_opt)"; LT_LDOPT="-Wl,-c,\$(shlib_opt)"
fi
rm -f core conftest.err conftest.$ac_objext \
conftest$ac_exeext conftest.$ac_ext
CFLAGS="$_CFLAGS"
LDFLAGS="$_LDFLAGS"
;;
esac

View File

@@ -22,6 +22,8 @@ AC_SUBST([LDFLAGS])
AC_SUBST([SUDOERS_LDFLAGS])
AC_SUBST([LT_LDFLAGS])
AC_SUBST([LT_LDMAP])
AC_SUBST([LT_LDOPT])
AC_SUBST([LT_LDDEP])
AC_SUBST([LT_LDEXPORTS])
AC_SUBST([COMMON_OBJS])
AC_SUBST([SUDOERS_OBJS])
@@ -178,7 +180,8 @@ AUTH_EXCL=
AUTH_EXCL_DEF=
AUTH_DEF=passwd
SUDO_NLS=disabled
LT_LDEXPORTS="-export-symbols \$(symfile)"
LT_LDEXPORTS="-export-symbols \$(shlib_exp)"
LT_LDDEP="\$(shlib_exp)"
dnl
dnl Other vaiables
@@ -3178,6 +3181,7 @@ AX_CHECK_COMPILE_FLAG([-fvisibility=hidden], [
AC_DEFINE(HAVE_DSO_VISIBILITY)
CFLAGS="${CFLAGS} -fvisibility=hidden"
LT_LDEXPORTS=
LT_LDDEP=
], [
if test -z "$GCC"; then
case "$host" in
@@ -3186,6 +3190,7 @@ AX_CHECK_COMPILE_FLAG([-fvisibility=hidden], [
AC_DEFINE(HAVE_DSO_VISIBILITY)
CFLAGS="${CFLAGS} -Bhidden_def"
LT_LDEXPORTS=
LT_LDDEP=
])
;;
*-*-solaris2*)
@@ -3193,6 +3198,7 @@ AX_CHECK_COMPILE_FLAG([-fvisibility=hidden], [
AC_DEFINE(HAVE_DSO_VISIBILITY)
CFLAGS="${CFLAGS} -xldscope=hidden"
LT_LDEXPORTS=
LT_LDDEP=
])
;;
esac
@@ -3213,11 +3219,14 @@ if test -n "$LT_LDEXPORTS"; then
};
EOF
AC_MSG_CHECKING([whether ld supports anonymous map files])
_CFLAGS="$CFLAGS"
CFLAGS="$CFLAGS $lt_prog_compiler_pic"
_LDFLAGS="$LDFLAGS"
LDFLAGS="$LDFLAGS -fPIC -shared -Wl,--version-script,./conftest.map"
LDFLAGS="$LDFLAGS -fpic -shared -Wl,--version-script,./conftest.map"
AC_TRY_LINK([int foo;], [], [
LT_LDEXPORTS=; LT_LDMAP="-Wl,--version-script,\$(mapfile)"
LT_LDEXPORTS=; LT_LDDEP="\$(shlib_map)"; LT_LDMAP="-Wl,--version-script,\$(shlib_map)"
])
CFLAGS="$_CFLAGS"
LDFLAGS="$_LDFLAGS"
else
case "$host" in
@@ -3229,11 +3238,33 @@ if test -n "$LT_LDEXPORTS"; then
};
EOF
AC_MSG_CHECKING([whether ld supports anonymous map files])
_CFLAGS="$CFLAGS"
CFLAGS="$CFLAGS $lt_prog_compiler_pic"
_LDFLAGS="$LDFLAGS"
LDFLAGS="$LDFLAGS -fPIC -shared -Wl,-M,./conftest.map"
LDFLAGS="$LDFLAGS -shared -Wl,-M,./conftest.map"
AC_TRY_LINK([int foo;], [], [
LT_LDEXPORTS=; LT_LDMAP="-Wl,-M,\$(mapfile)"
LT_LDEXPORTS=; LT_LDDEP="\$(shlib_map)"; LT_LDMAP="-Wl,-M,\$(shlib_map)"
])
CFLAGS="$_CFLAGS"
LDFLAGS="$_LDFLAGS"
;;
*-*-hpux*)
cat > conftest.opt <<-EOF
+e foo
EOF
AC_MSG_CHECKING([whether ld supports controlling exported symbols])
_CFLAGS="$CFLAGS"
CFLAGS="$CFLAGS $lt_prog_compiler_pic"
_LDFLAGS="$LDFLAGS"
if test -n "$GCC"; then
LDFLAGS="$LDFLAGS -shared -Wl,-c,./conftest.opt"
else
LDFLAGS="$LDFLAGS -Wl,-b -Wl,-c,./conftest.opt"
fi
AC_TRY_LINK([int foo;], [], [
LT_LDEXPORTS=; LT_LDDEP="\$(shlib_opt)"; LT_LDOPT="-Wl,-c,\$(shlib_opt)"
])
CFLAGS="$_CFLAGS"
LDFLAGS="$_LDFLAGS"
;;
esac

View File

@@ -43,7 +43,7 @@ CFLAGS = @CFLAGS@
# Flags to pass to the link stage
LDFLAGS = @LDFLAGS@
LT_LDFLAGS = @LT_LDFLAGS@ @LT_LDMAP@ @LT_LDEXPORTS@
LT_LDFLAGS = @LT_LDFLAGS@ @LT_LDMAP@ @LT_LDOPT@ @LT_LDEXPORTS@
# Where to install things...
prefix = @prefix@
@@ -59,8 +59,9 @@ plugindir = @PLUGINDIR@
# File extension, mode and map file to use for shared libraries/objects
soext = @SOEXT@
shlib_mode = @SHLIB_MODE@
mapfile = $(srcdir)/sample_plugin.map
symfile = $(srcdir)/sample_plugin.sym
shlib_exp = $(srcdir)/sample_plugin.exp
shlib_map = sample_plugin.map
shlib_opt = sample_plugin.opt
# OS dependent defines
DEFS = @OSDEFS@
@@ -85,7 +86,13 @@ Makefile: $(srcdir)/Makefile.in
.c.lo:
$(LIBTOOL) --mode=compile $(CC) -c $(CPPFLAGS) $(CFLAGS) $(DEFS) $<
sample_plugin.la: $(OBJS)
$(shlib_map): $(shlib_exp)
@awk 'BEGIN { print "{\n\tglobal:" } { print "\t\t"$$0";" } END { print "\tlocal:\n\t\t*;\n};" }' $(shlib_exp) > $@
$(shlib_opt): $(shlib_exp)
@sed 's/^/+e /' $(shlib_exp) > $@
sample_plugin.la: $(OBJS) @LT_LDDEP@
$(LIBTOOL) --mode=link $(CC) $(LDFLAGS) $(LT_LDFLAGS) -o $@ $(OBJS) $(LIBS) -module -avoid-version -rpath $(plugindir)
pre-install:

View File

@@ -1,8 +0,0 @@
{
global:
# Policy and I/O plugin structs
sample_policy;
sample_io;
local:
*;
};

View File

@@ -44,7 +44,7 @@ CFLAGS = @CFLAGS@
# Flags to pass to the link stage
LDFLAGS = @LDFLAGS@
LT_LDFLAGS = @LT_LDFLAGS@ @LT_LDMAP@ @LT_LDEXPORTS@
LT_LDFLAGS = @LT_LDFLAGS@ @LT_LDMAP@ @LT_LDOPT@ @LT_LDEXPORTS@
# Where to install things...
prefix = @prefix@
@@ -60,8 +60,9 @@ plugindir = @PLUGINDIR@
# File extension, mode and map file to use for shared libraries/objects
soext = @SOEXT@
shlib_mode = @SHLIB_MODE@
mapfile = $(srcdir)/sample_group.map
symfile = $(srcdir)/sample_group.sym
shlib_exp = $(srcdir)/sample_group.exp
shlib_map = sample_group.map
shlib_opt = sample_group.opt
# OS dependent defines
DEFS = @OSDEFS@
@@ -86,7 +87,13 @@ Makefile: $(srcdir)/Makefile.in
.c.lo:
$(LIBTOOL) --mode=compile $(CC) -c $(CPPFLAGS) $(CFLAGS) $(DEFS) $<
sample_group.la: $(OBJS) $(LT_LIBS)
$(shlib_map): $(shlib_exp)
@awk 'BEGIN { print "{\n\tglobal:" } { print "\t\t"$$0";" } END { print "\tlocal:\n\t\t*;\n};" }' $(shlib_exp) > $@
$(shlib_opt): $(shlib_exp)
@sed 's/^/+e /' $(shlib_exp) > $@
sample_group.la: $(OBJS) $(LT_LIBS) @LT_LDDEP@
$(LIBTOOL) --mode=link $(CC) $(LDFLAGS) $(LT_LDFLAGS) -o $@ $(OBJS) $(LIBS) -module -avoid-version -rpath $(plugindir)
pre-install:

View File

@@ -1,7 +0,0 @@
{
global:
# Group plugin structure
group_plugin;
local:
*;
};

View File

@@ -58,7 +58,7 @@ CFLAGS = @CFLAGS@
# Flags to pass to the link stage
LDFLAGS = @LDFLAGS@
LT_LDFLAGS = @SUDOERS_LDFLAGS@ @LT_LDFLAGS@ @LT_LDMAP@ @LT_LDEXPORTS@
LT_LDFLAGS = @SUDOERS_LDFLAGS@ @LT_LDFLAGS@ @LT_LDMAP@ @LT_LDOPT@ @LT_LDEXPORTS@
# Where to install things...
prefix = @prefix@
@@ -74,8 +74,9 @@ localstatedir = @localstatedir@
# File extension, mode and map file to use for shared libraries/objects
soext = @SOEXT@
shlib_mode = @SHLIB_MODE@
mapfile = $(srcdir)/sudoers.map
symfile = $(srcdir)/sudoers.sym
shlib_exp = $(srcdir)/sudoers.exp
shlib_map = sudoers.map
shlib_opt = sudoers.opt
# Directory in which to install the sudoers plugin
plugindir = @PLUGINDIR@
@@ -158,6 +159,12 @@ all: $(PROGS)
.c.lo:
$(LIBTOOL) --mode=compile $(CC) -c $(CPPFLAGS) $(CFLAGS) $(DEFS) $<
$(shlib_map): $(shlib_exp)
@awk 'BEGIN { print "{\n\tglobal:" } { print "\t\t"$$0";" } END { print "\tlocal:\n\t\t*;\n};" }' $(shlib_exp) > $@
$(shlib_opt): $(shlib_exp)
@sed 's/^/+e /' $(shlib_exp) > $@
# Prevent default rules from building .c files from .l and .y files
.l.c:
@@ -169,7 +176,7 @@ Makefile: $(srcdir)/Makefile.in
libparsesudoers.la: $(LIBPARSESUDOERS_OBJS)
$(LIBTOOL) --mode=link $(CC) -o $@ $(LIBPARSESUDOERS_OBJS) -no-install
sudoers.la: $(SUDOERS_OBJS) $(LT_LIBS) libparsesudoers.la
sudoers.la: $(SUDOERS_OBJS) $(LT_LIBS) libparsesudoers.la @LT_LDDEP@
$(LIBTOOL) @LT_STATIC@ --mode=link $(CC) $(LDFLAGS) $(LT_LDFLAGS) -o $@ $(SUDOERS_OBJS) libparsesudoers.la $(SUDOERS_LIBS) -module -avoid-version -rpath $(plugindir)
visudo: libparsesudoers.la $(VISUDO_OBJS) $(LT_LIBS)
@@ -296,7 +303,7 @@ check: $(TEST_PROGS) visudo testsudoers
./check_iolog_path $(srcdir)/regress/iolog_path/data; \
rval=`expr $$rval + $$?`; \
if [ X"$(soext)" != X"" ]; then \
./check_symbols .libs/sudoers$(soext) $(symfile); \
./check_symbols .libs/sudoers$(soext) $(shlib_exp); \
rval=`expr $$rval + $$?`; \
fi; \
./check_wrap $(srcdir)/regress/logging/check_wrap.in > check_wrap.out; \

View File

@@ -1,13 +0,0 @@
{
global:
# Policy and I/O plugin structs
sudoers_policy;
sudoers_io;
# Group cache functions for system_group plugin
sudo_getgrgid;
sudo_getgrnam;
sudo_gr_addref;
sudo_gr_delref;
local:
*;
};

View File

@@ -44,7 +44,7 @@ CFLAGS = @CFLAGS@
# Flags to pass to the link stage
LDFLAGS = @LDFLAGS@
LT_LDFLAGS = @LT_LDFLAGS@ @LT_LDMAP@ @LT_LDEXPORTS@
LT_LDFLAGS = @LT_LDFLAGS@ @LT_LDMAP@ @LT_LDOPT@ @LT_LDEXPORTS@
# Where to install things...
prefix = @prefix@
@@ -60,8 +60,9 @@ plugindir = @PLUGINDIR@
# File extension, mode and map file to use for shared libraries/objects
soext = @SOEXT@
shlib_mode = @SHLIB_MODE@
mapfile = $(srcdir)/system_group.map
symfile = $(srcdir)/system_group.sym
shlib_exp = $(srcdir)/system_group.exp
shlib_map = system_group.map
shlib_opt = system_group.opt
# OS dependent defines
DEFS = @OSDEFS@
@@ -86,7 +87,13 @@ Makefile: $(srcdir)/Makefile.in
.c.lo:
$(LIBTOOL) --mode=compile $(CC) -c $(CPPFLAGS) $(CFLAGS) $(DEFS) $<
system_group.la: $(OBJS) $(LT_LIBS)
$(shlib_map): $(shlib_exp)
@awk 'BEGIN { print "{\n\tglobal:" } { print "\t\t"$$0";" } END { print "\tlocal:\n\t\t*;\n};" }' $(shlib_exp) > $@
$(shlib_opt): $(shlib_exp)
@sed 's/^/+e /' $(shlib_exp) > $@
system_group.la: $(OBJS) $(LT_LIBS) @LT_LDDEP@
$(LIBTOOL) --mode=link $(CC) $(LDFLAGS) $(LT_LDFLAGS) -o $@ $(OBJS) $(LIBS) -module -avoid-version -rpath $(plugindir)
pre-install:

View File

@@ -1,7 +0,0 @@
{
global:
# Group plugin structure
group_plugin;
local:
*;
};