[PATCH COMMITTED] Fix pretty printer failures when CPPFLAGS is defined with optimizations.

Carlos O'Donell carlos@redhat.com
Fri Dec 23 18:49:00 GMT 2016


In my build scripts I use:

export CFLAGS="-g -O2 -Wl,--build-id=none"
...
export CPPFLAGS="-g -O2 -Wl,--build-id=none"

The CPPFLAGS end up _after_ the per-test CFLAGS.

This means that the pretty printer tests compile at -O2 and fail.

The solution is that the pretty-printer tests must specify both CFLAGS and CPPFLAGS.

I've committed this as obvious until someone comes up with a better fix.

In the meantime it fixes anyone whose build specifies CPPFLAGS that conflict
with the pretty-printer requirements.

Committed.

2016-12-23  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.

diff --git a/README.pretty-printers b/README.pretty-printers
index 8662900..a2536ca 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 7ac9196..bed5bab 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)
---
-- 
Cheers,
Carlos.



More information about the Libc-alpha mailing list