about summary refs log tree commit diff
diff options
context:
space:
mode:
authorCarlos O'Donell <carlos@redhat.com>2016-12-23 13:46:56 -0500
committerCarlos O'Donell <carlos@redhat.com>2016-12-23 13:46:56 -0500
commit81e0662e5f2c342ffa413826b7b100d56677b613 (patch)
tree35dd21027a51c1714a57fb479809c0f36a071b68
parentb0a679f4fd5363809a972b697e8a0b1fc66fcbb1 (diff)
downloadglibc-81e0662e5f2c342ffa413826b7b100d56677b613.tar.gz
glibc-81e0662e5f2c342ffa413826b7b100d56677b613.tar.xz
glibc-81e0662e5f2c342ffa413826b7b100d56677b613.zip
Fix failing pretty printer tests when CPPFLAGS has optimizations.
The value of CPPFLAGS provided by the environment may have optimizations
that interfere with the pretty printer test requirements. To override
such optimizations the pretty printer tests must also specify CPPFLAGS.
The existing pretty printer tests are fixed and the
README.pretty-printers is updated with the new requirement.
-rw-r--r--ChangeLog8
-rw-r--r--README.pretty-printers7
-rw-r--r--nptl/Makefile10
-rw-r--r--nptl/test-condattr-printers.c1
4 files changed, 23 insertions, 3 deletions
diff --git a/ChangeLog b/ChangeLog
index 48ea5d8bcc..0dd96f2d0f 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,13 @@
 2016-12-24  Carlos O'Donell  <carlos@redhat.com>
 
+	* README.pretty-printers: Must specify CPPFLAGS-* also.
+	* nptl/Makefile (CPPFLAGS-test-mutexattr-printers.c): Define.
+	(CPPFLAGS-test-mutex-printers.c): Define.
+	(CPPFLAGS-test-condattr-printers.c): Define.
+	(CPPFLAGS-test-cond-printers.c): Define.
+	(CPPFLAGS-test-rwlockattr-printers.c): Define.
+	(CPPFLAGS-test-rwlock-printers.c): Define.
+
 	* nss/Makefile [ifeq (yes,$(have-thread-library))]
 	(tests): Add tst-cancel-getpwuid_r.
 	* nss/tst-cancel-getpwuid_r.c: New file.
diff --git a/README.pretty-printers b/README.pretty-printers
index 86629001e6..a2536cad80 100644
--- a/README.pretty-printers
+++ b/README.pretty-printers
@@ -126,11 +126,12 @@ You can use the existing unit tests as examples.
 
 4. Add the names of the pretty printer tests to the 'tests-printers' variable
 in your submodule's Makefile (without extensions).  In addition, for each test
-program you must define a corresponding CFLAGS-* variable and set it to
-$(CFLAGS-printers-tests) to ensure they're compiled correctly.  For example,
-test-foo-printer.c requires the following:
+program you must define a corresponding CFLAGS-* and CPPFLAGS-* variable and
+set it to $(CFLAGS-printers-tests) to ensure they're compiled correctly.  For
+example, test-foo-printer.c requires the following:
 
 CFLAGS-test-foo-printer.c := $(CFLAGS-printers-tests)
+CPPFLAGS-test-foo-printer.c := $(CFLAGS-printers-tests)
 
 Finally, if your programs need to be linked with a specific library, you can add
 its name to the 'tests-printers-libs' variable in your submodule's Makefile.
diff --git a/nptl/Makefile b/nptl/Makefile
index 7ac9196975..bed5babfd9 100644
--- a/nptl/Makefile
+++ b/nptl/Makefile
@@ -318,12 +318,22 @@ tests-printers := test-mutexattr-printers test-mutex-printers \
 		  test-condattr-printers test-cond-printers \
 		  test-rwlockattr-printers test-rwlock-printers
 
+# We must specify both CFLAGS and CPPFLAGS to override any
+# compiler options the user might have provided that conflict
+# with what we need e.g. user specifies CPPFLAGS with -O2 and
+# we need -O0.
 CFLAGS-test-mutexattr-printers.c := $(CFLAGS-printers-tests)
 CFLAGS-test-mutex-printers.c := $(CFLAGS-printers-tests)
 CFLAGS-test-condattr-printers.c := $(CFLAGS-printers-tests)
 CFLAGS-test-cond-printers.c := $(CFLAGS-printers-tests)
 CFLAGS-test-rwlockattr-printers.c := $(CFLAGS-printers-tests)
 CFLAGS-test-rwlock-printers.c := $(CFLAGS-printers-tests)
+CPPFLAGS-test-mutexattr-printers.c := $(CFLAGS-printers-tests)
+CPPFLAGS-test-mutex-printers.c := $(CFLAGS-printers-tests)
+CPPFLAGS-test-condattr-printers.c := $(CFLAGS-printers-tests)
+CPPFLAGS-test-cond-printers.c := $(CFLAGS-printers-tests)
+CPPFLAGS-test-rwlockattr-printers.c := $(CFLAGS-printers-tests)
+CPPFLAGS-test-rwlock-printers.c := $(CFLAGS-printers-tests)
 
 ifeq ($(build-shared),yes)
 tests-printers-libs := $(shared-thread-library)
diff --git a/nptl/test-condattr-printers.c b/nptl/test-condattr-printers.c
index 4db4098827..2815d02101 100644
--- a/nptl/test-condattr-printers.c
+++ b/nptl/test-condattr-printers.c
@@ -66,6 +66,7 @@ condvar_reinit (pthread_cond_t *condvar, const pthread_condattr_t *attr)
 }
 
 /* Tests setting the clock ID attribute.  */
+__attribute__ ((noinline))
 static int
 test_setclock (pthread_cond_t *condvar, pthread_condattr_t *attr)
 {