On 05/12/2015 11:05 AM, Darren Hart wrote: > On Tue, May 12, 2015 at 10:47:14AM -0600, Shuah Khan wrote: >> On 05/12/2015 10:10 AM, Darren Hart wrote: >>> On 5/12/15, 3:02 AM, "Cyril Hrubis" <chrubis@xxxxxxx> wrote: >>> >>>> Hi! >>>>> 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: <0b7284551d6419520d5ce8833e177ba5b8be2286.1431449782.git.dvhart@xxxxxxxxxxxxxxx> > From: Darren Hart <dvhart@xxxxxxxxxxxxxxx> > 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@xxxxxxxxxxxxxxx> > --- > 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 := \ > Daren, The above worked on my system. I have gcc version 4.9.2 (Ubuntu 4.9.2-10ubuntu13) on mine just in case you need that info. thanks, -- Shuah -- Shuah Khan Sr. Linux Kernel Developer Open Source Innovation Group Samsung Research America (Silicon Valley) shuahkh@xxxxxxxxxxxxxxx | (970) 217-8978 -- To unsubscribe from this list: send the line "unsubscribe linux-api" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html