All of lore.kernel.org
 help / color / mirror / Atom feed
From: Darren Hart <dvhart-VuQAYsv1563Yd54FQh9/CA@public.gmane.org>
To: Shuah Khan <shuahkh-JPH+aEBZ4P+UEJcrhfAQsw@public.gmane.org>,
	linux-api-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
	Linux Kernel Mailing List
	<linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>,
	John Stultz <john.stultz-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>
Cc: Ingo Molnar <mingo-X9Un+BFzKDI@public.gmane.org>,
	Peter Zijlstra <peterz-wEGCiKHe2LqWVfeAwA7xHQ@public.gmane.org>,
	Thomas Gleixner <tglx-hfZtesqFncYOwBW4kG4KsQ@public.gmane.org>,
	Davidlohr Bueso <dave-h16yJtLeMjHk1uMJSBkQmQ@public.gmane.org>,
	KOSAKI Motohiro
	<kosaki.motohiro-+CUm20s59erQFUHtdCDX3A@public.gmane.org>
Subject: Re: [PATCH 1/5] selftests: Add futex functional tests
Date: Mon, 11 May 2015 16:07:00 -0700	[thread overview]
Message-ID: <D1767EA1.CC3DA%dvhart@linux.intel.com> (raw)
In-Reply-To: <55512B86.2040900-JPH+aEBZ4P+UEJcrhfAQsw@public.gmane.org>

On 5/11/15, 3:21 PM, "Shuah Khan" <shuahkh-JPH+aEBZ4P+UEJcrhfAQsw@public.gmane.org> wrote:

>>>>No need for a new pull request. Have you seen these errors before:
>>>>
>>>>make[2]: Entering directory
>>>>'/mnt/data/lkml/linux-kselftest/tools/testing/selftests/futex'
>>>>for DIR in functional; do make -C $DIR all ; done
>>>>make[3]: Entering directory
>>>>'/mnt/data/lkml/linux-kselftest/tools/testing/selftests/futex/functiona
>>>>l'
>>>>gcc  -g -O2 -Wall -D_GNU_SOURCE -I../include -I../../   -lpthread -lrt
>>>>futex_requeue_pi.c ../include/futextest.h   -o futex_requeue_pi
>>>>/tmp/cc2UgUVs.o: In function `create_rt_thread':
>>>>/mnt/data/lkml/linux-kselftest/tools/testing/selftests/futex/functional
>>>>/fu
>>>>tex_requeue_pi.c:102:
>>>>undefined reference to `pthread_create'
>>>>/tmp/cc2UgUVs.o: In function `unit_test':
>>>>/mnt/data/lkml/linux-kselftest/tools/testing/selftests/futex/functional
>>>>/fu
>>>>tex_requeue_pi.c:342:
>>>>undefined reference to `pthread_join'
>>>>/mnt/data/lkml/linux-kselftest/tools/testing/selftests/futex/functional
>>>>/fu
>>>>tex_requeue_pi.c:347:
>>>>undefined reference to `pthread_join'
>>>>/mnt/data/lkml/linux-kselftest/tools/testing/selftests/futex/functional
>>>>/fu
>>>>tex_requeue_pi.c:346:
>>>>undefined reference to `pthread_join'
>>>>collect2: error: ld returned 1 exit status
>>>><builtin>: recipe for target 'futex_requeue_pi' failed
>>>>make[3]: *** [futex_requeue_pi] Error 1
>>>>make[3]: Leaving directory
>>>>'/mnt/data/lkml/linux-kselftest/tools/testing/selftests/futex/functiona
>>>>l'
>>>>Makefile:7: recipe for target 'all' failed
>>>>
>>>>I am running make kselftest target when I saw the above build failures.
>>>>kselftest run doesn't fail which is good, however futex tests won't
>>>>run with this failure.
>>>
>>>I have not seen these errors whilst developing with futextest for the
>>>kernel. That looks like you may be missing the pthread development
>>>headers
>>>from your build machine.
>>>
>>>Those are provided by libc6-dev on my Debian systems.
>>>
>>I do have lib6-dev installed. timers uses pthread compiles fine.
>>So does mqueue. I am not sure what is going on with futex tests
>>though. I am guessing it has to do with library link order.
>>The following fixed it for me:
>>-LDFLAGS := $(LDFLAGS) -lpthread -lrt
>>+LDFLAGS := $(LDFLAGS) -pthread -lrt
>>Could you please make this change and resend the patch series.
>>I prefer patch series over pull request.
>>thanks,
>>-- Shuah
>
>Sorry full diff:
>
>
>diff --git a/tools/testing/selftests/futex/functional/Makefile
>b/tools/testing/selftests/futex/functional/Makefile
>index e64d43b..b8a2e9b 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
>+LDFLAGS := $(LDFLAGS) -pthread -lrt


I'm happy to do that, but I would like to make sure I'm doing the right
thing.

I'm building with:
$ gcc --version
gcc (Debian 4.9.2-10) 4.9.2


What's there now works for me:
	LDFLAGS := $(LDFLAGS) -lpthread -lrt


What you propose also works for me:
	LDFLAGS := $(LDFLAGS) -pthread -lrt


I notice that most other test cases list -lrt first, including timers:
	LDFLAGS += -lrt -lpthread

Which works for me for timers - does that work for you? I assume so. It
also works for futexes for me. I've found references out there suggesting
-lrt should always come before -lpthread.

I suspect you are correct as -pthread provides flags for both the
preprocessor and the linker, however, I'm still concerned about the
ordering.

John - did you deliberately choose to use "-lrt -lpthread" ?

If ordering matters and -pthread is preferred over -lpthread, then perhaps
the "right way" is:

 LDFLAGS += -lrt -pthread


Since -pthread also impacts the pre-processor, it seems that if used, it
should be present in both LDFLAGS as well as CFLAGS. However, I've also
read that -pthread is a non-standard compiler option and is best avoided.

If so, and if the reversed order works for you, "-lrt -lpthread", perhaps
that would be the "right fix".

I'd like to answer this once and for all for all tests we add to selftest.

-- 
Darren Hart
Intel Open Source Technology Center

WARNING: multiple messages have this Message-ID (diff)
From: Darren Hart <dvhart@linux.intel.com>
To: Shuah Khan <shuahkh@osg.samsung.com>, <linux-api@vger.kernel.org>,
	Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
	John Stultz <john.stultz@linaro.org>
Cc: Ingo Molnar <mingo@elte.hu>,
	Peter Zijlstra <peterz@infradead.org>,
	Thomas Gleixner <tglx@linutronix.de>,
	Davidlohr Bueso <dave@stgolabs.net>,
	KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>
Subject: Re: [PATCH 1/5] selftests: Add futex functional tests
Date: Mon, 11 May 2015 16:07:00 -0700	[thread overview]
Message-ID: <D1767EA1.CC3DA%dvhart@linux.intel.com> (raw)
In-Reply-To: <55512B86.2040900@osg.samsung.com>

On 5/11/15, 3:21 PM, "Shuah Khan" <shuahkh@osg.samsung.com> wrote:

>>>>No need for a new pull request. Have you seen these errors before:
>>>>
>>>>make[2]: Entering directory
>>>>'/mnt/data/lkml/linux-kselftest/tools/testing/selftests/futex'
>>>>for DIR in functional; do make -C $DIR all ; done
>>>>make[3]: Entering directory
>>>>'/mnt/data/lkml/linux-kselftest/tools/testing/selftests/futex/functiona
>>>>l'
>>>>gcc  -g -O2 -Wall -D_GNU_SOURCE -I../include -I../../   -lpthread -lrt
>>>>futex_requeue_pi.c ../include/futextest.h   -o futex_requeue_pi
>>>>/tmp/cc2UgUVs.o: In function `create_rt_thread':
>>>>/mnt/data/lkml/linux-kselftest/tools/testing/selftests/futex/functional
>>>>/fu
>>>>tex_requeue_pi.c:102:
>>>>undefined reference to `pthread_create'
>>>>/tmp/cc2UgUVs.o: In function `unit_test':
>>>>/mnt/data/lkml/linux-kselftest/tools/testing/selftests/futex/functional
>>>>/fu
>>>>tex_requeue_pi.c:342:
>>>>undefined reference to `pthread_join'
>>>>/mnt/data/lkml/linux-kselftest/tools/testing/selftests/futex/functional
>>>>/fu
>>>>tex_requeue_pi.c:347:
>>>>undefined reference to `pthread_join'
>>>>/mnt/data/lkml/linux-kselftest/tools/testing/selftests/futex/functional
>>>>/fu
>>>>tex_requeue_pi.c:346:
>>>>undefined reference to `pthread_join'
>>>>collect2: error: ld returned 1 exit status
>>>><builtin>: recipe for target 'futex_requeue_pi' failed
>>>>make[3]: *** [futex_requeue_pi] Error 1
>>>>make[3]: Leaving directory
>>>>'/mnt/data/lkml/linux-kselftest/tools/testing/selftests/futex/functiona
>>>>l'
>>>>Makefile:7: recipe for target 'all' failed
>>>>
>>>>I am running make kselftest target when I saw the above build failures.
>>>>kselftest run doesn't fail which is good, however futex tests won't
>>>>run with this failure.
>>>
>>>I have not seen these errors whilst developing with futextest for the
>>>kernel. That looks like you may be missing the pthread development
>>>headers
>>>from your build machine.
>>>
>>>Those are provided by libc6-dev on my Debian systems.
>>>
>>I do have lib6-dev installed. timers uses pthread compiles fine.
>>So does mqueue. I am not sure what is going on with futex tests
>>though. I am guessing it has to do with library link order.
>>The following fixed it for me:
>>-LDFLAGS := $(LDFLAGS) -lpthread -lrt
>>+LDFLAGS := $(LDFLAGS) -pthread -lrt
>>Could you please make this change and resend the patch series.
>>I prefer patch series over pull request.
>>thanks,
>>-- Shuah
>
>Sorry full diff:
>
>
>diff --git a/tools/testing/selftests/futex/functional/Makefile
>b/tools/testing/selftests/futex/functional/Makefile
>index e64d43b..b8a2e9b 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
>+LDFLAGS := $(LDFLAGS) -pthread -lrt


I'm happy to do that, but I would like to make sure I'm doing the right
thing.

I'm building with:
$ gcc --version
gcc (Debian 4.9.2-10) 4.9.2


What's there now works for me:
	LDFLAGS := $(LDFLAGS) -lpthread -lrt


What you propose also works for me:
	LDFLAGS := $(LDFLAGS) -pthread -lrt


I notice that most other test cases list -lrt first, including timers:
	LDFLAGS += -lrt -lpthread

Which works for me for timers - does that work for you? I assume so. It
also works for futexes for me. I've found references out there suggesting
-lrt should always come before -lpthread.

I suspect you are correct as -pthread provides flags for both the
preprocessor and the linker, however, I'm still concerned about the
ordering.

John - did you deliberately choose to use "-lrt -lpthread" ?

If ordering matters and -pthread is preferred over -lpthread, then perhaps
the "right way" is:

 LDFLAGS += -lrt -pthread


Since -pthread also impacts the pre-processor, it seems that if used, it
should be present in both LDFLAGS as well as CFLAGS. However, I've also
read that -pthread is a non-standard compiler option and is best avoided.

If so, and if the reversed order works for you, "-lrt -lpthread", perhaps
that would be the "right fix".

I'd like to answer this once and for all for all tests we add to selftest.

-- 
Darren Hart
Intel Open Source Technology Center




  parent reply	other threads:[~2015-05-11 23:07 UTC|newest]

Thread overview: 55+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-05-08 22:09 [GIT PULL v2] selftest: Add futex functional tests Darren Hart
2015-05-08 22:09 ` Darren Hart
2015-05-08 22:09 ` [PATCH 1/5] selftests: " Darren Hart
     [not found]   ` <57d921b1c30e8258ca4b2f55637424527317e92f.1431121818.git.dvhart-VuQAYsv1563Yd54FQh9/CA@public.gmane.org>
     [not found]     ` <cover.1431121818.git.dvhart-VuQAYsv1563Yd54FQh9/CA@public.gmane.org>
2015-05-08 22:09       ` [PATCH 2/5] selftest/futex: Update Makefile to use lib.mk Darren Hart
2015-05-08 22:09         ` Darren Hart
2015-05-08 22:09       ` [PATCH 4/5] selftest: Add futex tests to the top-level Makefile Darren Hart
2015-05-08 22:09         ` Darren Hart
2015-05-08 22:09       ` [PATCH 5/5] kselftest: Add exit code defines Darren Hart
2015-05-08 22:09         ` Darren Hart
2015-05-11 18:06   ` [PATCH 1/5] selftests: Add futex functional tests Shuah Khan
2015-05-11 18:22     ` Darren Hart
2015-05-11 18:22       ` Darren Hart
2015-05-11 18:55       ` Shuah Khan
     [not found]         ` <5550FB2C.1000403-JPH+aEBZ4P+UEJcrhfAQsw@public.gmane.org>
2015-05-11 19:47           ` Darren Hart
2015-05-11 19:47             ` Darren Hart
     [not found]             ` <D17653E0.CC29F%dvhart-VuQAYsv1563Yd54FQh9/CA@public.gmane.org>
2015-05-11 20:51               ` Shuah Khan
2015-05-11 20:51                 ` Shuah Khan
     [not found]                 ` <5551164E.5080409-JPH+aEBZ4P+UEJcrhfAQsw@public.gmane.org>
2015-05-11 21:50                   ` Darren Hart
2015-05-11 21:50                     ` Darren Hart
     [not found]                     ` <D17670E1.CC354%dvhart-VuQAYsv1563Yd54FQh9/CA@public.gmane.org>
2015-05-11 22:21                       ` Shuah Khan
2015-05-11 22:21                         ` Shuah Khan
     [not found]                         ` <55512B54.50304-JPH+aEBZ4P+UEJcrhfAQsw@public.gmane.org>
2015-05-11 22:21                           ` Shuah Khan
2015-05-11 22:21                             ` Shuah Khan
     [not found]                             ` <55512B86.2040900-JPH+aEBZ4P+UEJcrhfAQsw@public.gmane.org>
2015-05-11 23:07                               ` Darren Hart [this message]
2015-05-11 23:07                                 ` Darren Hart
     [not found]                                 ` <D1767EA1.CC3DA%dvhart-VuQAYsv1563Yd54FQh9/CA@public.gmane.org>
2015-05-11 23:23                                   ` John Stultz
2015-05-11 23:23                                     ` John Stultz
2015-05-12 10:02                                   ` Cyril Hrubis
2015-05-12 10:02                                     ` Cyril Hrubis
     [not found]                                     ` <20150512100256.GA5122-J5syqNJeCN4b1SvskN2V4Q@public.gmane.org>
2015-05-12 16:10                                       ` Darren Hart
2015-05-12 16:10                                         ` Darren Hart
     [not found]                                         ` <D1777231.CC5D0%dvhart-VuQAYsv1563Yd54FQh9/CA@public.gmane.org>
2015-05-12 16:47                                           ` Shuah Khan
2015-05-12 16:47                                             ` Shuah Khan
     [not found]                                             ` <55522E92.8090609-JPH+aEBZ4P+UEJcrhfAQsw@public.gmane.org>
2015-05-12 17:05                                               ` Darren Hart
2015-05-12 17:05                                                 ` Darren Hart
     [not found]                                                 ` <20150512170544.GA30184-JIrPihikzLEQaXB9iyTzyw@public.gmane.org>
2015-05-12 17:14                                                   ` Shuah Khan
2015-05-12 17:14                                                     ` Shuah Khan
2015-05-12 20:05                                         ` Cyril Hrubis
2015-05-12 20:15                                           ` Darren Hart
2015-05-12 20:15                                             ` Darren Hart
     [not found]                                             ` <D177AD46.CC848%dvhart-VuQAYsv1563Yd54FQh9/CA@public.gmane.org>
2015-05-12 20:40                                               ` Shuah Khan
2015-05-12 20:40                                                 ` Shuah Khan
     [not found]                                                 ` <55526544.90909-JPH+aEBZ4P+UEJcrhfAQsw@public.gmane.org>
2015-05-12 20:54                                                   ` Darren Hart
2015-05-12 20:54                                                     ` Darren Hart
2015-05-12 21:17                                                     ` Shuah Khan
2015-05-12 21:21                                                       ` Shuah Khan
     [not found]                                                         ` <55526EC8.30707-JPH+aEBZ4P+UEJcrhfAQsw@public.gmane.org>
2015-05-13  3:34                                                           ` Darren Hart
2015-05-13  3:34                                                             ` Darren Hart
2015-05-08 22:09 ` [PATCH 3/5] selftest/futex: Increment ksft pass and fail counters Darren Hart
  -- strict thread matches above, loose matches on Subject: below --
2015-03-27 22:17 [GIT PULL] selftest: Add futex functional tests Darren Hart
     [not found] ` <cover.1427493640.git.dvhart-VuQAYsv1563Yd54FQh9/CA@public.gmane.org>
2015-03-27 22:17   ` [PATCH 1/5] selftests: " Darren Hart
2015-03-27 22:17     ` Darren Hart
     [not found]     ` <597c9eabcac5da9456d6cfd6de9117591d73385e.1427493640.git.dvhart-VuQAYsv1563Yd54FQh9/CA@public.gmane.org>
2015-05-06 17:28       ` Shuah Khan
2015-05-06 17:28         ` Shuah Khan
     [not found]         ` <554A4F3A.7020504-JPH+aEBZ4P+UEJcrhfAQsw@public.gmane.org>
2015-05-06 18:04           ` Darren Hart
2015-05-06 18:04             ` Darren Hart

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=D1767EA1.CC3DA%dvhart@linux.intel.com \
    --to=dvhart-vuqaysv1563yd54fqh9/ca@public.gmane.org \
    --cc=dave-h16yJtLeMjHk1uMJSBkQmQ@public.gmane.org \
    --cc=john.stultz-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org \
    --cc=kosaki.motohiro-+CUm20s59erQFUHtdCDX3A@public.gmane.org \
    --cc=linux-api-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=mingo-X9Un+BFzKDI@public.gmane.org \
    --cc=peterz-wEGCiKHe2LqWVfeAwA7xHQ@public.gmane.org \
    --cc=shuahkh-JPH+aEBZ4P+UEJcrhfAQsw@public.gmane.org \
    --cc=tglx-hfZtesqFncYOwBW4kG4KsQ@public.gmane.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.