Thread (28 messages) flat view 28 messages, 5 authors, 2015-05-13

Re: [PATCH 1/5] selftests: Add futex functional tests

From: Darren Hart <hidden>
Date: 2015-05-12 17:05:53
Also in: lkml
Subsystem: futex subsystem, kernel selftest framework, the rest · Maintainers: Thomas Gleixner, Ingo Molnar, Shuah Khan, Shuah Khan, Linus Torvalds

On Tue, May 12, 2015 at 10:47:14AM -0600, Shuah Khan wrote:
On 05/12/2015 10:10 AM, Darren Hart wrote:
quoted
On 5/12/15, 3:02 AM, "Cyril Hrubis" [off-list ref] wrote:
quoted
Hi!
quoted
I'm happy to do that, but I would like to make sure I'm doing the right
thing.
The right thing here is to add -pthread to CFLAGS which sets both flags
for preprocessor and linker (see man gcc).
Hi Cyril,

Thanks. I read that, and mentioned it, but my concern with -pthread in the
CFLAGS and LDFLAGS is that it is a non-standard compiler flag. I
understand we have a number of gcc-isms in our build - but do we want to
add more?

I'm also struggling to find any kind of prescribed documentation on this
beyond the short blurb in the gcc man page which describes what this
option does, but not when to use it. I'll need something concrete to
justify changes to testcase Makefiles to Shuah.

Unfortunately, all these options are functional for me, while some are not
for Shuah, so I'm currently having to rely on documentation which seems
pretty sparse.
Hi Daren,

My goals are really simple. make kselftest doesn't break. All tests
compile and run and install or fail gracefully when dependencies aren't
met. As long as the above are met, I don't really worry about what
individual test Makefiles do.
Understood. Given the variability across distros/compiler versions, the
"doesn't break" part isn't as straight forward as it should be. I could fix
this so it builds for you and me, but I'm trying to build confidence that I'm
doing this "correctly" so it doesn't break in other scenarios - since I'm not
seeing any breakage on my systems.

Shuah, which distro and compiler version are you seeing the build failure on?
I'd like to at least reproduce that so I can be confident my next version will
at least build in your environment.

Currently, the only direction I have is gcc man page and Cyril's advocacy for
-pthread. Does the following work for you (it still does for me)?

From 0b7284551d6419520d5ce8833e177ba5b8be2286 Mon Sep 17 00:00:00 2001
Message-Id: [off-list ref]
From: Darren Hart <dvhart-VuQAYsv1563Yd54FQh9/CA@public.gmane.org>
Date: Tue, 12 May 2015 09:54:39 -0700
Subject: [PATCH] selftests/futex: Add -pthread to CFLAGS and LDFLAGS

Certain environments fail to build with the "-lpthread -lrt" LDFLAGS.
Using "-pthread" instead of "-lpthread" resolves this and is the
documented mechanism in the gcc man page.

Signed-off-by: Darren Hart <dvhart-VuQAYsv1563Yd54FQh9/CA@public.gmane.org>
---
 tools/testing/selftests/futex/functional/Makefile | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/tools/testing/selftests/futex/functional/Makefile b/tools/testing/selftests/futex/functional/Makefile
index e64d43b..9d6b75e 100644
--- a/tools/testing/selftests/futex/functional/Makefile
+++ b/tools/testing/selftests/futex/functional/Makefile
@@ -1,6 +1,6 @@
 INCLUDES := -I../include -I../../
-CFLAGS := $(CFLAGS) -g -O2 -Wall -D_GNU_SOURCE $(INCLUDES)
-LDFLAGS := $(LDFLAGS) -lpthread -lrt
+CFLAGS := $(CFLAGS) -g -O2 -Wall -D_GNU_SOURCE -pthread $(INCLUDES)
+LDFLAGS := $(LDFLAGS) -pthread -lrt
 
 HEADERS := ../include/futextest.h
 TARGETS := \
-- 
2.1.4


-- 
Darren Hart
Intel Open Source Technology Center
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help