summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog14
-rw-r--r--INSTALL8
-rw-r--r--NEWS2
-rw-r--r--Rules7
-rw-r--r--benchtests/Makefile7
-rwxr-xr-xconfigure29
-rw-r--r--configure.ac18
-rw-r--r--conform/Makefile6
-rw-r--r--manual/Makefile2
-rw-r--r--manual/install.texi8
-rw-r--r--math/Makefile10
11 files changed, 50 insertions, 61 deletions
diff --git a/ChangeLog b/ChangeLog
index 5709c3cdbc..dc267e2d4d 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,17 @@
+2018-10-29 Joseph Myers <joseph@codesourcery.com>
+
+ * configure.ac (PYTHON_PROG): Use AC_CHECK_PROG_VER. Set
+ critic_missing for versions before 3.4.
+ * configure: Regenerated.
+ * manual/install.texi (Tools for Compilation): Document
+ requirement for Python to build glibc.
+ * INSTALL: Regenerated.
+ * Rules [PYTHON]: Make code unconditional.
+ * benchtests/Makefile [PYTHON]: Likewise.
+ * conform/Makefile [PYTHON]: Likewise.
+ * manual/Makefile [PYTHON]: Likewise.
+ * math/Makefile [PYTHON]: Likewise.
+
2018-10-28 Samuel Thibault <samuel.thibault@ens-lyon.org>
* hurd/hurdsig.c (_hurd_interrupted_rpc_timeout): Set to 60000.
diff --git a/INSTALL b/INSTALL
index 50bd113d55..3884ada8d8 100644
--- a/INSTALL
+++ b/INSTALL
@@ -531,11 +531,11 @@ build the GNU C Library:
work with any version of 'sed'. As of release time, 'sed' version
4.5 is the newest verified to work to build the GNU C Library.
- * Python 2.7/3.4 or later
+ * Python 3.4 or later
- Python is required to build the GNU C Library manual and to run
- some tests. As of release time, Python 3.6 is the newest verified
- to work for testing the GNU C Library.
+ Python is required to build the GNU C Library. As of release time,
+ Python 3.6 is the newest verified to work for building and testing
+ the GNU C Library.
* PExpect 4.0
diff --git a/NEWS b/NEWS
index 270abc1905..3d13b321a7 100644
--- a/NEWS
+++ b/NEWS
@@ -48,7 +48,7 @@ Deprecated and removed features, and other changes affecting compatibility:
Changes to build and runtime requirements:
-* Python is required to build the GNU C Library manual.
+* Python 3.4 or later is required to build the GNU C Library.
Security related changes:
diff --git a/Rules b/Rules
index 5abb7270aa..dd325cb3b7 100644
--- a/Rules
+++ b/Rules
@@ -114,11 +114,6 @@ tests-printers-programs := $(addprefix $(objpfx),$(tests-printers))
# .out files with the output of running the pretty printer tests.
tests-printers-out := $(patsubst %,$(objpfx)%.out,$(tests-printers))
-ifndef PYTHON
-# Mark tests-printers tests as unsupported if we don't have PYTHON.
-tests-unsupported += $(tests-printers)
-endif
-
ifeq ($(build-programs),yes)
others: $(addprefix $(objpfx),$(others) $(sysdep-others) $(extra-objs))
else
@@ -277,7 +272,6 @@ endif
endif # tests
-ifdef PYTHON
ifneq "$(strip $(tests-printers))" ""
# Static pattern rule for building the test programs for the pretty printers.
@@ -300,7 +294,6 @@ $(tests-printers-out): $(objpfx)%.out: $(objpfx)% %.py %.c $(pretty-printers) \
$(PYTHON) $*.py $*.c $(objpfx)$* $(pretty-printers) > $@; \
$(evaluate-test)
endif
-endif
.PHONY: distclean realclean subdir_distclean subdir_realclean \
diff --git a/benchtests/Makefile b/benchtests/Makefile
index 45aeb5febe..d558db475c 100644
--- a/benchtests/Makefile
+++ b/benchtests/Makefile
@@ -180,14 +180,7 @@ $(error Invalid BENCHSET value)
endif
endif
-# Define the bench target only if the target has a usable python installation.
-ifdef PYTHON
bench: bench-build bench-set bench-func bench-malloc
-else
-bench:
- @echo "The bench target needs python to run."
- @exit 1
-endif
# Target to only build the benchmark without running it. We generate locales
# only if we're building natively.
diff --git a/configure b/configure
index f30c31afdc..535e2f62e0 100755
--- a/configure
+++ b/configure
@@ -5344,19 +5344,30 @@ fi
test -n "$PYTHON_PROG" && break
done
-test -n "$PYTHON_PROG" || PYTHON_PROG="no"
-case "x$PYTHON_PROG" in
-xno|x|x:) PYTHON_PROG=no ;;
-*) ;;
-esac
-
-if test "x$PYTHON_PROG" = xno; then
- aux_missing="$aux_missing python"
+if test -z "$PYTHON_PROG"; then
+ ac_verc_fail=yes
else
- PYTHON="$PYTHON_PROG -B"
+ # Found it, now check the version.
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking version of $PYTHON_PROG" >&5
+$as_echo_n "checking version of $PYTHON_PROG... " >&6; }
+ ac_prog_version=`$PYTHON_PROG --version 2>&1 | sed -n 's/^.*Python \([0-9][0-9.]*\).*$/\1/p'`
+ case $ac_prog_version in
+ '') ac_prog_version="v. ?.??, bad"; ac_verc_fail=yes;;
+ 3.[4-9]*|3.[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, bad"; ac_verc_fail=yes;;
+ esac
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_prog_version" >&5
+$as_echo "$ac_prog_version" >&6; }
fi
+if test $ac_verc_fail = yes; then
+ critic_missing="$critic_missing python"
+fi
+
+PYTHON="$PYTHON_PROG -B"
+
test -n "$critic_missing" && as_fn_error $? "
*** These critical programs are missing or too old:$critic_missing
diff --git a/configure.ac b/configure.ac
index e983fd8faa..6cc10ede98 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1050,18 +1050,12 @@ else
fi
# Check for python3 if available, or else python.
-AC_CHECK_PROGS(PYTHON_PROG, python3 python,no)
-case "x$PYTHON_PROG" in
-xno|x|x:) PYTHON_PROG=no ;;
-*) ;;
-esac
-
-if test "x$PYTHON_PROG" = xno; then
- aux_missing="$aux_missing python"
-else
- PYTHON="$PYTHON_PROG -B"
- AC_SUBST(PYTHON)
-fi
+AC_CHECK_PROG_VER(PYTHON_PROG, python3 python, --version,
+ [Python \([0-9][0-9.]*\)],
+ [3.[4-9]*|3.[1-9][0-9]*|[4-9].*|[1-9][0-9]*],
+ critic_missing="$critic_missing python")
+PYTHON="$PYTHON_PROG -B"
+AC_SUBST(PYTHON)
test -n "$critic_missing" && AC_MSG_ERROR([
*** These critical programs are missing or too old:$critic_missing
diff --git a/conform/Makefile b/conform/Makefile
index 71e58a46c8..a2bbe0fb24 100644
--- a/conform/Makefile
+++ b/conform/Makefile
@@ -120,9 +120,7 @@ linknamespace-symlists-base := $(foreach std,$(conformtest-standards),\
symlist-$(std))
linknamespace-symlists-tests := $(addprefix $(objpfx),\
$(linknamespace-symlists-base))
-ifdef PYTHON
tests-special += $(linknamespace-symlists-tests)
-endif
linknamespace-symlist-stdlibs-base := $(foreach std,$(conformtest-standards),\
symlist-stdlibs-$(std))
@@ -130,9 +128,7 @@ linknamespace-symlist-stdlibs-tests := \
$(addprefix $(objpfx),\
$(linknamespace-symlist-stdlibs-base))
-ifdef PYTHON
tests-special += $(linknamespace-symlist-stdlibs-tests)
-endif
linknamespace-header-base := $(foreach std,\
$(conformtest-standards),\
@@ -141,9 +137,7 @@ linknamespace-header-base := $(foreach std,\
$(std)/$(h)/linknamespace.out))
linknamespace-header-tests := $(addprefix $(objpfx),\
$(linknamespace-header-base))
-ifdef PYTHON
tests-special += $(linknamespace-header-tests)
-endif
include ../Rules
diff --git a/manual/Makefile b/manual/Makefile
index 9c35c9d45f..5f6006dc09 100644
--- a/manual/Makefile
+++ b/manual/Makefile
@@ -172,7 +172,7 @@ include ../Rules
install-data subdir_install: install
# Generated files requiring python: libm-err.texi
# Generated files requiring perl: summary.texi
-ifneq ($(if $(PYTHON),$(PERL),no),no)
+ifneq ($(PERL),no)
ifneq ($(strip $(MAKEINFO)),:)
install: $(inst_infodir)/libc.info
@if $(SHELL) -c '$(INSTALL_INFO) --version' >/dev/null 2>&1; then \
diff --git a/manual/install.texi b/manual/install.texi
index 08a39f57c9..c19002340b 100644
--- a/manual/install.texi
+++ b/manual/install.texi
@@ -575,11 +575,11 @@ with any version of @code{sed}. As of release time, @code{sed} version
4.5 is the newest verified to work to build @theglibc{}.
@item
-Python 2.7/3.4 or later
+Python 3.4 or later
-Python is required to build the @glibcadj{} manual and to run some
-tests. As of release time, Python 3.6 is the newest verified to work
-for testing @theglibc{}.
+Python is required to build @theglibc{}. As of release time, Python
+3.6 is the newest verified to work for building and testing
+@theglibc{}.
@item PExpect 4.0
diff --git a/math/Makefile b/math/Makefile
index 750492b381..34db0215ef 100644
--- a/math/Makefile
+++ b/math/Makefile
@@ -255,7 +255,6 @@ tests += test-math-isinff test-math-iszero test-math-issignaling \
test-math-iscanonical test-math-cxx11 test-math-iseqsig
endif
-ifdef PYTHON
libm-vec-tests = $(addprefix test-,$(libmvec-tests))
libm-test-support = $(foreach t,$(test-types),libm-test-support-$(t))
test-extras += $(libm-test-support)
@@ -351,9 +350,7 @@ $(libm-test-c-narrow-obj): $(objpfx)libm-test%.c: libm-test%.inc \
auto-libm-test-out%
$(make-target-directory)
$(PYTHON) gen-libm-test.py -c $< -a auto-libm-test-out$* -C $@
-endif
-ifdef PYTHON
tgmath3-macros = atan2 cbrt ceil copysign erf erfc exp2 expm1 fdim floor \
fma fmax fmin fmod frexp hypot ilogb ldexp lgamma llrint \
llround log10 log1p log2 logb lrint lround nearbyint \
@@ -380,7 +377,6 @@ tests-special += $(objpfx)test-tgmath3-macro-list.out
$(objpfx)test-tgmath3-macro-list.out: gen-tgmath-tests.py
$(PYTHON) $< check-list $(tgmath3-macros) > $@; \
$(evaluate-test)
-endif
libm-test-fast-math-cflags = -fno-builtin -D__FAST_MATH__ -DTEST_FAST_MATH
libm-test-vec-cflags = $(libm-test-fast-math-cflags) -fno-inline \
@@ -476,7 +472,6 @@ $(objpfx)gen-libm-templates.stmp: Makefile
$(foreach t, $(call type-foreach, $(gen-all-calls)), \
$(objpfx)$(t).c): $(objpfx)gen-libm-templates.stmp
-ifdef PYTHON
# This must come after the inclusion of sysdeps Makefiles via Rules.
$(foreach t,$(libm-tests-normal),$(objpfx)$(t).c): $(objpfx)test-%.c:
@@ -637,11 +632,6 @@ regen-ulps: $(addprefix $(objpfx),$(libm-tests))
echo "Difference between the current baseline and the new baseline is:";\
diff -urN $(ulps-file) $(objpfx)NewUlps; \
echo "Copy $(objpfx)NewUlps to $(ulps-file) (relative to source)."
-else
-regen-ulps:
- @echo "Automatic regeneration of ULPs requires python."; \
- exit 1;
-endif
# The generated sysd-rules file defines rules like this for sources
# coming from sysdeps/ directories. These rules find the generic sources.