[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