Avoid passing -no-fast-install to libtool as this results in the
build dir being left in the library path of the installed executable. Instead, we remove the "lt-" prefix from the program name in initprogname() so that the regress test output is unaffected by libtool's binary wrapper.
This commit is contained in:
@@ -512,6 +512,9 @@
|
|||||||
/* Define to 1 if you have the `setkeycreatecon' function. */
|
/* Define to 1 if you have the `setkeycreatecon' function. */
|
||||||
#undef HAVE_SETKEYCREATECON
|
#undef HAVE_SETKEYCREATECON
|
||||||
|
|
||||||
|
/* Define to 1 if you have the `setprogname' function. */
|
||||||
|
#undef HAVE_SETPROGNAME
|
||||||
|
|
||||||
/* Define to 1 if you have the `setresuid' function. */
|
/* Define to 1 if you have the `setresuid' function. */
|
||||||
#undef HAVE_SETRESUID
|
#undef HAVE_SETRESUID
|
||||||
|
|
||||||
|
10
configure
vendored
10
configure
vendored
@@ -19198,6 +19198,16 @@ if test "x$ac_cv_func_getprogname" = xyes; then :
|
|||||||
cat >>confdefs.h <<_ACEOF
|
cat >>confdefs.h <<_ACEOF
|
||||||
#define HAVE_GETPROGNAME 1
|
#define HAVE_GETPROGNAME 1
|
||||||
_ACEOF
|
_ACEOF
|
||||||
|
for ac_func in setprogname
|
||||||
|
do :
|
||||||
|
ac_fn_c_check_func "$LINENO" "setprogname" "ac_cv_func_setprogname"
|
||||||
|
if test "x$ac_cv_func_setprogname" = xyes; then :
|
||||||
|
cat >>confdefs.h <<_ACEOF
|
||||||
|
#define HAVE_SETPROGNAME 1
|
||||||
|
_ACEOF
|
||||||
|
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
else
|
else
|
||||||
|
|
||||||
|
@@ -2658,7 +2658,7 @@ done
|
|||||||
dnl
|
dnl
|
||||||
dnl Check for getprogname() or __progname
|
dnl Check for getprogname() or __progname
|
||||||
dnl
|
dnl
|
||||||
AC_CHECK_FUNCS(getprogname, , [
|
AC_CHECK_FUNCS(getprogname, [AC_CHECK_FUNCS(setprogname)], [
|
||||||
AC_MSG_CHECKING([for __progname])
|
AC_MSG_CHECKING([for __progname])
|
||||||
AC_CACHE_VAL(sudo_cv___progname, [
|
AC_CACHE_VAL(sudo_cv___progname, [
|
||||||
AC_LINK_IFELSE([AC_LANG_PROGRAM([[]], [[extern char *__progname; (void)puts(__progname);]])], [sudo_cv___progname=yes], [sudo_cv___progname=no])])
|
AC_LINK_IFELSE([AC_LANG_PROGRAM([[]], [[extern char *__progname; (void)puts(__progname);]])], [sudo_cv___progname=yes], [sudo_cv___progname=no])])
|
||||||
|
@@ -300,19 +300,6 @@ typedef struct sigaction sigaction_t;
|
|||||||
# define killpg(s) kill(-(s))
|
# define killpg(s) kill(-(s))
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/*
|
|
||||||
* If we lack getprogname(), emulate with __progname if possible.
|
|
||||||
* Otherwise, add a prototype for use with our own getprogname.c.
|
|
||||||
*/
|
|
||||||
#ifndef HAVE_GETPROGNAME
|
|
||||||
# ifdef HAVE___PROGNAME
|
|
||||||
extern const char *__progname;
|
|
||||||
# define getprogname() (__progname)
|
|
||||||
# else
|
|
||||||
__dso_public const char *getprogname(void);
|
|
||||||
# endif /* HAVE___PROGNAME */
|
|
||||||
#endif /* !HAVE_GETPROGNAME */
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Declare errno if errno.h doesn't do it for us.
|
* Declare errno if errno.h doesn't do it for us.
|
||||||
*/
|
*/
|
||||||
@@ -485,5 +472,10 @@ __dso_public int sudo_inet_pton(int af, const char *src, void *dst);
|
|||||||
# undef inet_pton
|
# undef inet_pton
|
||||||
# define inet_pton(_a, _b, _c) sudo_inet_pton((_a), (_b), (_c))
|
# define inet_pton(_a, _b, _c) sudo_inet_pton((_a), (_b), (_c))
|
||||||
#endif /* HAVE_INET_PTON */
|
#endif /* HAVE_INET_PTON */
|
||||||
|
#ifndef HAVE_GETPROGNAME
|
||||||
|
__dso_public const char *sudo_getprogname(void);
|
||||||
|
# undef getprogname
|
||||||
|
# define getprogname() sudo_getprogname()
|
||||||
|
#endif /* HAVE_GETPROGNAME */
|
||||||
|
|
||||||
#endif /* _SUDO_MISSING_H */
|
#endif /* _SUDO_MISSING_H */
|
||||||
|
@@ -54,12 +54,34 @@
|
|||||||
#include "missing.h"
|
#include "missing.h"
|
||||||
#include "sudo_util.h"
|
#include "sudo_util.h"
|
||||||
|
|
||||||
#if defined(HAVE_GETPROGNAME) || defined(HAVE___PROGNAME)
|
#if defined(HAVE_GETPROGNAME)
|
||||||
|
|
||||||
/* STUB */
|
|
||||||
void
|
void
|
||||||
initprogname(const char *name)
|
initprogname(const char *name)
|
||||||
{
|
{
|
||||||
|
# ifdef HAVE_SETPROGNAME
|
||||||
|
/* Check for libtool prefix and strip it if present. */
|
||||||
|
name = getprogname();
|
||||||
|
if (name[0] == 'l' && name[1] == 't' && name[2] == '-' && name[3] != '\0')
|
||||||
|
setprogname(name + 3);
|
||||||
|
# endif
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
#elif defined(HAVE___PROGNAME)
|
||||||
|
|
||||||
|
extern const char *__progname;
|
||||||
|
static const char *progname = "";
|
||||||
|
|
||||||
|
void
|
||||||
|
initprogname(const char *name)
|
||||||
|
{
|
||||||
|
/* Check for libtool prefix and strip it if present. */
|
||||||
|
if (__progname[0] == 'l' && __progname[1] == 't' && __progname[2] == '-' &&
|
||||||
|
__progname[3] != '\0')
|
||||||
|
progname = __progname + 3;
|
||||||
|
else
|
||||||
|
progname = __progname;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -84,7 +106,7 @@ initprogname(const char *name)
|
|||||||
if (rc != -1 || errno == EOVERFLOW) {
|
if (rc != -1 || errno == EOVERFLOW) {
|
||||||
strlcpy(ucomm, pstat.pst_ucomm, sizeof(ucomm));
|
strlcpy(ucomm, pstat.pst_ucomm, sizeof(ucomm));
|
||||||
progname = ucomm;
|
progname = ucomm;
|
||||||
return;
|
goto done;
|
||||||
}
|
}
|
||||||
#elif defined(HAVE_PROCFS_H) || defined(HAVE_SYS_PROCFS_H)
|
#elif defined(HAVE_PROCFS_H) || defined(HAVE_SYS_PROCFS_H)
|
||||||
/* XXX - configure check for psinfo.pr_fname */
|
/* XXX - configure check for psinfo.pr_fname */
|
||||||
@@ -102,7 +124,7 @@ initprogname(const char *name)
|
|||||||
if (nread == (ssize_t)sizeof(psinfo)) {
|
if (nread == (ssize_t)sizeof(psinfo)) {
|
||||||
strlcpy(ucomm, psinfo.pr_fname, sizeof(ucomm));
|
strlcpy(ucomm, psinfo.pr_fname, sizeof(ucomm));
|
||||||
progname = ucomm;
|
progname = ucomm;
|
||||||
return;
|
goto done;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#endif /* HAVE_PSTAT_GETPROC */
|
#endif /* HAVE_PSTAT_GETPROC */
|
||||||
@@ -113,12 +135,18 @@ initprogname(const char *name)
|
|||||||
base = name;
|
base = name;
|
||||||
}
|
}
|
||||||
progname = base;
|
progname = base;
|
||||||
}
|
|
||||||
|
|
||||||
|
done:
|
||||||
|
if (progname[0] == 'l' && progname[1] == 't' && progname[2] == '-' &&
|
||||||
|
progname[3] != '\0')
|
||||||
|
progname += 3;
|
||||||
|
}
|
||||||
|
#endif /* !HAVE_GETPROGNAME && !HAVE___PROGNAME */
|
||||||
|
|
||||||
|
#if !defined(HAVE_GETPROGNAME)
|
||||||
const char *
|
const char *
|
||||||
getprogname(void)
|
sudo_getprogname(void)
|
||||||
{
|
{
|
||||||
return progname;
|
return progname;
|
||||||
}
|
}
|
||||||
|
#endif /* !HAVE_GETPROGNAME */
|
||||||
#endif /* !HAVE_GETPROGNAME && !HAVE___PROGNAME */
|
|
||||||
|
@@ -23,7 +23,6 @@ aix_prep_user
|
|||||||
aix_restoreauthdb
|
aix_restoreauthdb
|
||||||
aix_setauthdb
|
aix_setauthdb
|
||||||
closefrom_fallback
|
closefrom_fallback
|
||||||
getprogname
|
|
||||||
initprogname
|
initprogname
|
||||||
isblank
|
isblank
|
||||||
sudo_asprintf
|
sudo_asprintf
|
||||||
@@ -102,6 +101,7 @@ sudo_getgrouplist
|
|||||||
sudo_getline
|
sudo_getline
|
||||||
sudo_getopt_long
|
sudo_getopt_long
|
||||||
sudo_getopt_long_only
|
sudo_getopt_long_only
|
||||||
|
sudo_getprogname
|
||||||
sudo_glob
|
sudo_glob
|
||||||
sudo_globfree
|
sudo_globfree
|
||||||
sudo_inet_pton
|
sudo_inet_pton
|
||||||
|
@@ -202,28 +202,28 @@ 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) -shrext .so
|
$(LIBTOOL) @LT_STATIC@ --mode=link $(CC) $(LDFLAGS) $(LT_LDFLAGS) -o $@ $(SUDOERS_OBJS) libparsesudoers.la $(SUDOERS_LIBS) -module -avoid-version -rpath $(plugindir) -shrext .so
|
||||||
|
|
||||||
visudo: libparsesudoers.la $(VISUDO_OBJS) $(LT_LIBS)
|
visudo: libparsesudoers.la $(VISUDO_OBJS) $(LT_LIBS)
|
||||||
$(LIBTOOL) --mode=link $(CC) -o $@ $(VISUDO_OBJS) $(LDFLAGS) $(PIE_LDFLAGS) $(SSP_LDFLAGS) libparsesudoers.la $(LIBS) $(VISUDO_LIBS) -no-fast-install
|
$(LIBTOOL) --mode=link $(CC) -o $@ $(VISUDO_OBJS) $(LDFLAGS) $(PIE_LDFLAGS) $(SSP_LDFLAGS) libparsesudoers.la $(LIBS) $(VISUDO_LIBS)
|
||||||
|
|
||||||
sudoreplay: timestr.lo $(REPLAY_OBJS) $(LT_LIBS)
|
sudoreplay: timestr.lo $(REPLAY_OBJS) $(LT_LIBS)
|
||||||
$(LIBTOOL) --mode=link $(CC) -o $@ $(REPLAY_OBJS) $(LDFLAGS) $(PIE_LDFLAGS) $(SSP_LDFLAGS) timestr.lo $(LIBS) $(REPLAY_LIBS) -no-fast-install
|
$(LIBTOOL) --mode=link $(CC) -o $@ $(REPLAY_OBJS) $(LDFLAGS) $(PIE_LDFLAGS) $(SSP_LDFLAGS) timestr.lo $(LIBS) $(REPLAY_LIBS)
|
||||||
|
|
||||||
testsudoers: libparsesudoers.la $(TEST_OBJS) $(LT_LIBS)
|
testsudoers: libparsesudoers.la $(TEST_OBJS) $(LT_LIBS)
|
||||||
$(LIBTOOL) --mode=link $(CC) -o $@ $(TEST_OBJS) $(LDFLAGS) $(PIE_LDFLAGS) $(SSP_LDFLAGS) libparsesudoers.la $(LIBS) $(TESTSUDOERS_LIBS) -no-fast-install
|
$(LIBTOOL) --mode=link $(CC) -o $@ $(TEST_OBJS) $(LDFLAGS) $(PIE_LDFLAGS) $(SSP_LDFLAGS) libparsesudoers.la $(LIBS) $(TESTSUDOERS_LIBS)
|
||||||
|
|
||||||
check_addr: $(CHECK_ADDR_OBJS) $(LT_LIBS)
|
check_addr: $(CHECK_ADDR_OBJS) $(LT_LIBS)
|
||||||
$(LIBTOOL) --mode=link $(CC) -o $@ $(CHECK_ADDR_OBJS) $(LDFLAGS) $(PIE_LDFLAGS) $(SSP_LDFLAGS) $(LIBS) $(NET_LIBS) -no-fast-install
|
$(LIBTOOL) --mode=link $(CC) -o $@ $(CHECK_ADDR_OBJS) $(LDFLAGS) $(PIE_LDFLAGS) $(SSP_LDFLAGS) $(LIBS) $(NET_LIBS)
|
||||||
|
|
||||||
check_base64: $(CHECK_BASE64_OBJS) $(LT_LIBS)
|
check_base64: $(CHECK_BASE64_OBJS) $(LT_LIBS)
|
||||||
$(LIBTOOL) --mode=link $(CC) -o $@ $(CHECK_BASE64_OBJS) $(LDFLAGS) $(PIE_LDFLAGS) $(SSP_LDFLAGS) $(LIBS) -no-fast-install
|
$(LIBTOOL) --mode=link $(CC) -o $@ $(CHECK_BASE64_OBJS) $(LDFLAGS) $(PIE_LDFLAGS) $(SSP_LDFLAGS) $(LIBS)
|
||||||
|
|
||||||
check_digest: $(CHECK_DIGEST_OBJS) $(LT_LIBS)
|
check_digest: $(CHECK_DIGEST_OBJS) $(LT_LIBS)
|
||||||
$(LIBTOOL) --mode=link $(CC) -o $@ $(CHECK_DIGEST_OBJS) $(LDFLAGS) $(PIE_LDFLAGS) $(SSP_LDFLAGS) $(LIBS) @LIBMD@ -no-fast-install
|
$(LIBTOOL) --mode=link $(CC) -o $@ $(CHECK_DIGEST_OBJS) $(LDFLAGS) $(PIE_LDFLAGS) $(SSP_LDFLAGS) $(LIBS) @LIBMD@
|
||||||
|
|
||||||
check_fill: $(CHECK_FILL_OBJS) $(LT_LIBS)
|
check_fill: $(CHECK_FILL_OBJS) $(LT_LIBS)
|
||||||
$(LIBTOOL) --mode=link $(CC) -o $@ $(CHECK_FILL_OBJS) $(LDFLAGS) $(PIE_LDFLAGS) $(SSP_LDFLAGS) $(LIBS) -no-fast-install
|
$(LIBTOOL) --mode=link $(CC) -o $@ $(CHECK_FILL_OBJS) $(LDFLAGS) $(PIE_LDFLAGS) $(SSP_LDFLAGS) $(LIBS)
|
||||||
|
|
||||||
check_iolog_path: $(CHECK_IOLOG_PATH_OBJS) $(LT_LIBS)
|
check_iolog_path: $(CHECK_IOLOG_PATH_OBJS) $(LT_LIBS)
|
||||||
$(LIBTOOL) --mode=link $(CC) -o $@ $(CHECK_IOLOG_PATH_OBJS) $(LDFLAGS) $(PIE_LDFLAGS) $(SSP_LDFLAGS) $(LIBS) -no-fast-install
|
$(LIBTOOL) --mode=link $(CC) -o $@ $(CHECK_IOLOG_PATH_OBJS) $(LDFLAGS) $(PIE_LDFLAGS) $(SSP_LDFLAGS) $(LIBS)
|
||||||
|
|
||||||
# We need to link check_symbols with -lpthread on HP-UX since LDAP uses threads
|
# We need to link check_symbols with -lpthread on HP-UX since LDAP uses threads
|
||||||
check_symbols: $(CHECK_SYMBOLS_OBJS) $(LT_LIBS)
|
check_symbols: $(CHECK_SYMBOLS_OBJS) $(LT_LIBS)
|
||||||
@@ -232,7 +232,7 @@ check_symbols: $(CHECK_SYMBOLS_OBJS) $(LT_LIBS)
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
check_wrap: $(CHECK_WRAP_OBJS) $(LT_LIBS)
|
check_wrap: $(CHECK_WRAP_OBJS) $(LT_LIBS)
|
||||||
$(LIBTOOL) --mode=link $(CC) -o $@ $(CHECK_WRAP_OBJS) $(LDFLAGS) $(PIE_LDFLAGS) $(SSP_LDFLAGS) $(LIBS) -no-fast-install
|
$(LIBTOOL) --mode=link $(CC) -o $@ $(CHECK_WRAP_OBJS) $(LDFLAGS) $(PIE_LDFLAGS) $(SSP_LDFLAGS) $(LIBS)
|
||||||
|
|
||||||
GENERATED = gram.h gram.c toke.c def_data.c def_data.h getdate.c
|
GENERATED = gram.h gram.c toke.c def_data.c def_data.h getdate.c
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user