From a7fe3e805d2ee128ac5f43b2a24201726d41cc04 Mon Sep 17 00:00:00 2001 From: Carlos O'Donell Date: Wed, 19 Jun 2024 11:48:05 -0400 Subject: [PATCH] Fix conditionals on mtrace-based tests (bug 31892) The conditionals for several mtrace-based tests in catgets, elf, libio, malloc, misc, nptl, posix, and stdio-common were incorrect leading to test failures when bootstrapping glibc without perl. The correct conditional for mtrace-based tests requires three checks: first checking for run-built-tests, then build-shared, and lastly that PERL is not equal to "no" (missing perl). Reviewed-by: Adhemerval Zanella --- catgets/Makefile | 14 +++++++++++++- elf/Makefile | 10 ++++++++-- libio/Makefile | 42 +++++++++++++++++++++++++++++++----------- misc/Makefile | 16 ++++++++++++++-- nptl/Makefile | 11 ++++++++++- posix/Makefile | 26 ++++++++++++++++++++------ stdio-common/Makefile | 34 +++++++++++++++++++++++++--------- 7 files changed, 121 insertions(+), 32 deletions(-) diff --git a/catgets/Makefile b/catgets/Makefile index 24b4560d5f..40c65eac95 100644 --- a/catgets/Makefile +++ b/catgets/Makefile @@ -43,8 +43,12 @@ tests-special += \ $(objpfx)test-gencat.out \ $(objpfx)test1.cat \ $(objpfx)test2.cat \ - $(objpfx)tst-catgets-mem.out # tests-special +ifeq (yes,$(build-shared)) +ifneq ($(PERL),no) +tests-special += $(objpfx)tst-catgets-mem.out +endif +endif endif gencat-modules = xmalloc @@ -68,9 +72,17 @@ generated += \ test1.h \ test2.cat \ test2.h \ + # generated +ifeq ($(run-built-tests),yes) +ifeq (yes,$(build-shared)) +ifneq ($(PERL),no) +generated += \ tst-catgets-mem.out \ tst-catgets.mtrace \ # generated +endif +endif +endif generated-dirs += \ de \ diff --git a/elf/Makefile b/elf/Makefile index bb6cd06dec..1105bee787 100644 --- a/elf/Makefile +++ b/elf/Makefile @@ -632,13 +632,19 @@ $(objpfx)tst-rtld-does-not-exist.out: tst-rtld-does-not-exist.sh $(objpfx)ld.so tests += $(tests-execstack-$(have-z-execstack)) ifeq ($(run-built-tests),yes) tests-special += \ - $(objpfx)noload-mem.out \ $(objpfx)tst-ldconfig-X.out \ $(objpfx)tst-ldconfig-p.out \ $(objpfx)tst-ldconfig-soname.out \ - $(objpfx)tst-leaks1-mem.out \ $(objpfx)tst-rtld-help.out \ # tests-special +ifeq (yes,$(build-shared)) +ifneq ($(PERL),no) +tests-special += \ + $(objpfx)noload-mem.out \ + $(objpfx)tst-leaks1-mem.out \ + # tests-special +endif +endif endif tlsmod17a-suffixes = 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 tlsmod18a-suffixes = 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 diff --git a/libio/Makefile b/libio/Makefile index f607edbefb..8720381fdc 100644 --- a/libio/Makefile +++ b/libio/Makefile @@ -261,15 +261,28 @@ tst-bz22415-ENV = MALLOC_TRACE=$(objpfx)tst-bz22415.mtrace \ tst-bz24228-ENV = MALLOC_TRACE=$(objpfx)tst-bz24228.mtrace \ LD_PRELOAD=$(common-objpfx)/malloc/libc_malloc_debug.so -generated += test-fmemopen.mtrace test-fmemopen.check -generated += tst-fdopen-seek-failure.mtrace tst-fdopen-seek-failure.check -generated += tst-fopenloc.mtrace tst-fopenloc.check -generated += tst-bz22415.mtrace tst-bz22415.check - aux := fileops genops stdfiles stdio strops +ifeq ($(run-built-tests),yes) +ifeq ($(build-shared),yes) +ifneq ($(PERL),no) +generated += \ + test-fmemopen.check \ + test-fmemopen.mtrace \ + tst-bz22415.check \ + tst-bz22415.mtrace \ + tst-bz24228.check \ + tst-bz24228.mtrace \ + tst-fdopen-seek-failure.check \ + tst-fdopen-seek-failure.mtrace \ + tst-fopenloc.check \ + tst-fopenloc.mtrace \ + # generated +endif +endif +endif + ifeq ($(build-shared),yes) -generated += tst-bz24228.mtrace tst-bz24228.check aux += oldfileops oldstdfiles tests += \ tst-stderr-compat \ @@ -286,16 +299,23 @@ shared-only-routines = oldiofopen oldiofdopen oldiofclose oldfileops \ ifeq ($(run-built-tests),yes) tests-special += \ - $(objpfx)test-fmemopen-mem.out \ $(objpfx)test-freopen.out \ - $(objpfx)tst-bz22415-mem.out \ - $(objpfx)tst-fdopen-seek-failure-mem.out \ # tests-special ifeq (yes,$(build-shared)) # Run tst-fopenloc-cmp.out and tst-openloc-mem.out only if shared # library is enabled since they depend on tst-fopenloc.out. -tests-special += $(objpfx)tst-fopenloc-cmp.out $(objpfx)tst-fopenloc-mem.out \ - $(objpfx)tst-bz24228-mem.out +tests-special += $(objpfx)tst-fopenloc-cmp.out +ifeq ($(build-shared),yes) +ifneq ($(PERL),no) +tests-special += \ + $(objpfx)test-fmemopen-mem.out \ + $(objpfx)tst-bz22415-mem.out \ + $(objpfx)tst-bz24228-mem.out \ + $(objpfx)tst-fdopen-seek-failure-mem.out \ + $(objpfx)tst-fopenloc-mem.out \ + # tests-special +endif +endif endif tests += \ diff --git a/misc/Makefile b/misc/Makefile index c273ec6974..5d17c562fe 100644 --- a/misc/Makefile +++ b/misc/Makefile @@ -214,12 +214,18 @@ routines_no_fortify += \ syslog \ # routines_no_fortify +ifeq ($(run-built-tests),yes) +ifeq (yes,$(build-shared)) +ifneq ($(PERL),no) generated += \ tst-allocate_once-mem.out \ tst-allocate_once.mtrace \ tst-error1-mem.out \ tst-error1.mtrace \ # generated +endif +endif +endif aux := init-misc install-lib := libg.a @@ -285,8 +291,14 @@ tests-internal += tst-fd_to_filename tests-static += tst-fd_to_filename ifeq ($(run-built-tests),yes) -tests-special += $(objpfx)tst-error1-mem.out \ - $(objpfx)tst-allocate_once-mem.out +ifeq (yes,$(build-shared)) +ifneq ($(PERL),no) +tests-special += \ + $(objpfx)tst-allocate_once-mem.out \ + $(objpfx)tst-error1-mem.out \ + # tests-special +endif +endif endif tests-container := \ diff --git a/nptl/Makefile b/nptl/Makefile index b3f8af2e1c..096eef54f2 100644 --- a/nptl/Makefile +++ b/nptl/Makefile @@ -556,10 +556,12 @@ xtests-static += tst-setuid1-static ifeq ($(run-built-tests),yes) tests-special += \ $(objpfx)tst-oddstacklimit.out \ - $(objpfx)tst-stack3-mem.out \ # tests-special ifeq ($(build-shared),yes) tests-special += $(objpfx)tst-tls6.out +ifneq ($(PERL),no) +tests-special += $(objpfx)tst-stack3-mem.out +endif endif endif @@ -617,10 +619,17 @@ tst-stack3-ENV = MALLOC_TRACE=$(objpfx)tst-stack3.mtrace \ $(objpfx)tst-stack3-mem.out: $(objpfx)tst-stack3.out $(common-objpfx)malloc/mtrace $(objpfx)tst-stack3.mtrace > $@; \ $(evaluate-test) + +ifeq ($(run-built-tests),yes) +ifeq (yes,$(build-shared)) +ifneq ($(PERL),no) generated += \ tst-stack3-mem.out \ tst-stack3.mtrace \ # generated +endif +endif +endif tst-stack4mod.sos=$(shell for i in 0 1 2 3 4 5 6 7 8 9 10 \ 11 12 13 14 15 16 17 18 19; do \ diff --git a/posix/Makefile b/posix/Makefile index a1e84853a8..2c598cd20a 100644 --- a/posix/Makefile +++ b/posix/Makefile @@ -418,6 +418,17 @@ generated += \ $(addprefix wordexp-test-result, 1 2 3 4 5 6 7 8 9 10) \ annexc \ annexc.out \ + getconf.speclist \ + ptestcases.h \ + testcases.h \ + tst-getconf.out \ + wordexp-tst.out \ + # generated + +ifeq ($(run-built-tests),yes) +ifeq (yes,$(build-shared)) +ifneq ($(PERL),no) +generated += \ bug-ga2-mem.out \ bug-ga2.mtrace \ bug-glob2-mem.out \ @@ -430,23 +441,22 @@ generated += \ bug-regex21.mtrace \ bug-regex31-mem.out \ bug-regex31.mtrace \ + bug-regex36-mem.out \ bug-regex36.mtrace \ - getconf.speclist \ - ptestcases.h \ - testcases.h \ tst-boost-mem.out \ tst-boost.mtrace \ tst-fnmatch-mem.out \ tst-fnmatch.mtrace \ - tst-getconf.out \ tst-pcre-mem.out \ tst-pcre.mtrace \ tst-rxspencer-no-utf8-mem.out \ tst-rxspencer-no-utf8.mtrace \ tst-vfork3-mem.out \ tst-vfork3.mtrace \ - wordexp-tst.out \ # generated +endif +endif +endif ifeq ($(run-built-tests),yes) ifeq (yes,$(build-shared)) @@ -461,6 +471,9 @@ endif # XXX Please note that for now we ignore the result of this test. tests-special += $(objpfx)annexc.out ifeq ($(run-built-tests),yes) +tests-special += $(objpfx)tst-getconf.out +ifeq (yes,$(build-shared)) +ifneq ($(PERL),no) tests-special += \ $(objpfx)bug-ga2-mem.out \ $(objpfx)bug-glob2-mem.out \ @@ -471,13 +484,14 @@ tests-special += \ $(objpfx)bug-regex36-mem.out \ $(objpfx)tst-boost-mem.out \ $(objpfx)tst-fnmatch-mem.out \ - $(objpfx)tst-getconf.out \ $(objpfx)tst-glob-tilde-mem.out \ $(objpfx)tst-pcre-mem.out \ $(objpfx)tst-rxspencer-no-utf8-mem.out \ $(objpfx)tst-vfork3-mem.out \ # tests-special endif +endif +endif include ../Rules diff --git a/stdio-common/Makefile b/stdio-common/Makefile index 6bc972af1a..a63c05a120 100644 --- a/stdio-common/Makefile +++ b/stdio-common/Makefile @@ -229,10 +229,6 @@ tests := \ tst-popen \ tst-popen2 \ tst-printf-binary \ - tst-printf-bz18872 \ - tst-printf-bz25691 \ - tst-printf-fp-free \ - tst-printf-fp-leak \ tst-printf-intn \ tst-printf-oct \ tst-printf-round \ @@ -261,7 +257,6 @@ tests := \ tst-vfprintf-mbs-prec \ tst-vfprintf-user-type \ tst-vfprintf-width-i18n \ - tst-vfprintf-width-prec \ tst-vfprintf-width-prec-alloc \ tst-wc-printf \ tstdiomisc \ @@ -270,6 +265,20 @@ tests := \ xbug \ # tests +ifeq ($(run-built-tests),yes) +ifeq (yes,$(build-shared)) +ifneq ($(PERL),no) +tests += \ + tst-printf-bz18872 \ + tst-printf-bz25691 \ + tst-printf-fp-free \ + tst-printf-fp-leak \ + tst-vfprintf-width-prec \ + # tests +endif +endif +endif + tests-container += \ tst-popen3 # tests-container @@ -293,14 +302,19 @@ test-srcs = \ ifeq ($(run-built-tests),yes) tests-special += \ - $(objpfx)tst-printf-bz18872-mem.out \ - $(objpfx)tst-printf-bz25691-mem.out \ - $(objpfx)tst-printf-fp-free-mem.out \ - $(objpfx)tst-printf-fp-leak-mem.out \ $(objpfx)tst-printf.out \ $(objpfx)tst-printfsz-islongdouble.out \ $(objpfx)tst-setvbuf1-cmp.out \ $(objpfx)tst-unbputc.out \ + # tests-special + +ifeq (yes,$(build-shared)) +ifneq ($(PERL),no) +tests-special += \ + $(objpfx)tst-printf-bz18872-mem.out \ + $(objpfx)tst-printf-bz25691-mem.out \ + $(objpfx)tst-printf-fp-free-mem.out \ + $(objpfx)tst-printf-fp-leak-mem.out \ $(objpfx)tst-vfprintf-width-prec-mem.out \ # tests-special @@ -317,6 +331,8 @@ generated += \ tst-vfprintf-width-prec-mem.out \ tst-vfprintf-width-prec.mtrace \ # generated +endif +endif endif # $(run-built-tests) tests-special += $(objpfx)tst-errno-manual.out