mirror of
https://sourceware.org/git/glibc.git
synced 2024-11-21 12:30:06 +00:00
Patch to require Python 3.4 or later to build glibc.
This patch makes Python 3.4 or later a required tool for building glibc, so allowing changes of awk, perl etc. code used in the build and test to Python code without any such changes needing makefile conditionals or to handle older Python versions. This patch makes the configure test for Python check the version and give an error if Python is missing or too old, and removes makefile conditionals that are no longer needed. It does not itself convert any code from another language to Python, and does not remove any compatibility with older Python versions from existing scripts. Tested for x86_64. * 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.
This commit is contained in:
parent
5c81be5340
commit
c6982f7efc
14
ChangeLog
14
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.
|
||||
|
8
INSTALL
8
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
|
||||
|
||||
|
2
NEWS
2
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:
|
||||
|
||||
|
7
Rules
7
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 \
|
||||
|
@ -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.
|
||||
|
29
configure
vendored
29
configure
vendored
@ -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
|
||||
|
18
configure.ac
18
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
|
||||
|
@ -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
|
||||
|
||||
|
@ -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 \
|
||||
|
@ -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
|
||||
|
||||
|
@ -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.
|
||||
|
Loading…
Reference in New Issue
Block a user