mirror of
https://sourceware.org/git/glibc.git
synced 2024-11-21 20:40:05 +00:00
testrun.sh: Implement --tool=strace, --tool=valgrind
$(file …) appears to be the only convenient way to create files with newlines and make substitution variables. This needs make 4.0 (released in 2013), so update the requirement to match. Reviewed-by: Carlos O'Donell <carlos@redhat.com>
This commit is contained in:
parent
eb04c21373
commit
f2873d2da0
11
ChangeLog
11
ChangeLog
@ -1,3 +1,14 @@
|
|||||||
|
2018-07-04 Florian Weimer <fweimer@redhat.com>
|
||||||
|
|
||||||
|
testrun.sh: Implement --tool=strace, --tool=valgrind
|
||||||
|
* Makefile (testrun-script): Define variable.
|
||||||
|
(testrun.sh): Use variable.
|
||||||
|
* manual/install.texi (Tools for Compilation): make 4.0 or later
|
||||||
|
is required.
|
||||||
|
* configure.ac: Check for make 4.0 or later.
|
||||||
|
* INSTALL: Regenerate.
|
||||||
|
* configure: Likewise.
|
||||||
|
|
||||||
2018-07-04 Adhemerval Zanella <adhemerval.zanella@linaro.org>
|
2018-07-04 Adhemerval Zanella <adhemerval.zanella@linaro.org>
|
||||||
|
|
||||||
[BZ #23233]
|
[BZ #23233]
|
||||||
|
8
INSTALL
8
INSTALL
@ -426,13 +426,7 @@ Recommended Tools for Compilation
|
|||||||
We recommend installing the following GNU tools before attempting to
|
We recommend installing the following GNU tools before attempting to
|
||||||
build the GNU C Library:
|
build the GNU C Library:
|
||||||
|
|
||||||
* GNU 'make' 3.79 or newer
|
* GNU 'make' 4.0 or newer
|
||||||
|
|
||||||
You need the latest version of GNU 'make'. Modifying the GNU C
|
|
||||||
Library to work with other 'make' programs would be so difficult
|
|
||||||
that we recommend you port GNU 'make' instead. *Really.* We
|
|
||||||
recommend GNU 'make' version 3.79. All earlier versions have
|
|
||||||
severe bugs or lack features.
|
|
||||||
|
|
||||||
* GCC 4.9 or newer
|
* GCC 4.9 or newer
|
||||||
|
|
||||||
|
55
Makefile
55
Makefile
@ -128,17 +128,60 @@ ifeq (yes,$(build-shared))
|
|||||||
lib: $(common-objpfx)libc.so $(common-objpfx)linkobj/libc.so
|
lib: $(common-objpfx)libc.so $(common-objpfx)linkobj/libc.so
|
||||||
endif # $(build-shared)
|
endif # $(build-shared)
|
||||||
|
|
||||||
|
# Used to build testrun.sh.
|
||||||
|
define testrun-script
|
||||||
|
#!/bin/bash
|
||||||
|
builddir=`dirname "$$0"`
|
||||||
|
GCONV_PATH="$${builddir}/iconvdata"
|
||||||
|
|
||||||
|
usage () {
|
||||||
|
echo "usage: $$0 [--tool=strace] PROGRAM [ARGUMENTS...]" 2>&1
|
||||||
|
echo " $$0 --tool=valgrind PROGRAM [ARGUMENTS...]" 2>&1
|
||||||
|
}
|
||||||
|
|
||||||
|
toolname=default
|
||||||
|
while test $$# -gt 0 ; do
|
||||||
|
case "$$1" in
|
||||||
|
--tool=*)
|
||||||
|
toolname="$${1:7}"
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
--*)
|
||||||
|
usage
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
break
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
|
||||||
|
if test $$# -eq 0 ; then
|
||||||
|
usage
|
||||||
|
fi
|
||||||
|
|
||||||
|
case "$$toolname" in
|
||||||
|
default)
|
||||||
|
exec $(subst $(common-objdir),"$${builddir}", $(test-program-prefix)) \
|
||||||
|
$${1+"$$@"}
|
||||||
|
;;
|
||||||
|
strace)
|
||||||
|
exec strace $(patsubst %, -E%, $(run-program-env)) \
|
||||||
|
$(test-via-rtld-prefix) $${1+"$$@"}
|
||||||
|
;;
|
||||||
|
valgrind)
|
||||||
|
exec env $(run-program-env) valgrind $(test-via-rtld-prefix) $${1+"$$@"}
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
usage
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
endef
|
||||||
|
|
||||||
# This is a handy script for running any dynamically linked program against
|
# This is a handy script for running any dynamically linked program against
|
||||||
# the current libc build for testing.
|
# the current libc build for testing.
|
||||||
$(common-objpfx)testrun.sh: $(common-objpfx)config.make \
|
$(common-objpfx)testrun.sh: $(common-objpfx)config.make \
|
||||||
$(..)Makeconfig $(..)Makefile
|
$(..)Makeconfig $(..)Makefile
|
||||||
(echo '#!/bin/sh'; \
|
$(file >$@T, $(testrun-script))
|
||||||
echo 'builddir=`dirname "$$0"`'; \
|
|
||||||
echo 'GCONV_PATH="$${builddir}/iconvdata" \'; \
|
|
||||||
echo 'exec $(subst $(common-objdir),"$${builddir}",\
|
|
||||||
$(test-program-prefix)) $${1+"$$@"}'; \
|
|
||||||
) > $@T
|
|
||||||
chmod a+x $@T
|
chmod a+x $@T
|
||||||
mv -f $@T $@
|
mv -f $@T $@
|
||||||
postclean-generated += testrun.sh
|
postclean-generated += testrun.sh
|
||||||
|
2
NEWS
2
NEWS
@ -154,7 +154,7 @@ Deprecated and removed features, and other changes affecting compatibility:
|
|||||||
|
|
||||||
Changes to build and runtime requirements:
|
Changes to build and runtime requirements:
|
||||||
|
|
||||||
[Add changes to build and runtime requirements here]
|
GNU make 4.0 or later is now required to build glibc.
|
||||||
|
|
||||||
Security related changes:
|
Security related changes:
|
||||||
|
|
||||||
|
2
configure
vendored
2
configure
vendored
@ -4705,7 +4705,7 @@ $as_echo_n "checking version of $MAKE... " >&6; }
|
|||||||
ac_prog_version=`$MAKE --version 2>&1 | sed -n 's/^.*GNU Make[^0-9]*\([0-9][0-9.]*\).*$/\1/p'`
|
ac_prog_version=`$MAKE --version 2>&1 | sed -n 's/^.*GNU Make[^0-9]*\([0-9][0-9.]*\).*$/\1/p'`
|
||||||
case $ac_prog_version in
|
case $ac_prog_version in
|
||||||
'') ac_prog_version="v. ?.??, bad"; ac_verc_fail=yes;;
|
'') ac_prog_version="v. ?.??, bad"; ac_verc_fail=yes;;
|
||||||
3.79* | 3.[89]* | [4-9].* | [1-9][0-9]*)
|
[4-9].* | [1-9][0-9]*)
|
||||||
ac_prog_version="$ac_prog_version, ok"; ac_verc_fail=no;;
|
ac_prog_version="$ac_prog_version, ok"; ac_verc_fail=no;;
|
||||||
*) ac_prog_version="$ac_prog_version, bad"; ac_verc_fail=yes;;
|
*) ac_prog_version="$ac_prog_version, bad"; ac_verc_fail=yes;;
|
||||||
|
|
||||||
|
@ -945,7 +945,7 @@ fi
|
|||||||
AC_CHECK_TOOL_PREFIX
|
AC_CHECK_TOOL_PREFIX
|
||||||
AC_CHECK_PROG_VER(MAKE, gnumake gmake make, --version,
|
AC_CHECK_PROG_VER(MAKE, gnumake gmake make, --version,
|
||||||
[GNU Make[^0-9]*\([0-9][0-9.]*\)],
|
[GNU Make[^0-9]*\([0-9][0-9.]*\)],
|
||||||
[3.79* | 3.[89]* | [4-9].* | [1-9][0-9]*], critic_missing="$critic_missing make")
|
[[4-9].* | [1-9][0-9]*], critic_missing="$critic_missing make")
|
||||||
|
|
||||||
AC_CHECK_PROG_VER(MSGFMT, gnumsgfmt gmsgfmt msgfmt, --version,
|
AC_CHECK_PROG_VER(MSGFMT, gnumsgfmt gmsgfmt msgfmt, --version,
|
||||||
[GNU gettext.* \([0-9]*\.[0-9.]*\)],
|
[GNU gettext.* \([0-9]*\.[0-9.]*\)],
|
||||||
|
@ -473,13 +473,7 @@ build @theglibc{}:
|
|||||||
|
|
||||||
@itemize @bullet
|
@itemize @bullet
|
||||||
@item
|
@item
|
||||||
GNU @code{make} 3.79 or newer
|
GNU @code{make} 4.0 or newer
|
||||||
|
|
||||||
You need the latest version of GNU @code{make}. Modifying @theglibc{}
|
|
||||||
to work with other @code{make} programs would be so difficult that
|
|
||||||
we recommend you port GNU @code{make} instead. @strong{Really.} We
|
|
||||||
recommend GNU @code{make} version 3.79. All earlier versions have severe
|
|
||||||
bugs or lack features.
|
|
||||||
|
|
||||||
@item
|
@item
|
||||||
GCC 4.9 or newer
|
GCC 4.9 or newer
|
||||||
|
Loading…
Reference in New Issue
Block a user