Re: [PATCH v2 5/8] selftest/x86: build both bitnesses

From: Andy Lutomirski
Date: Fri Apr 17 2015 - 18:27:27 EST


On Fri, Apr 17, 2015 at 3:24 PM, Tyler Baker <tyler.baker@xxxxxxxxxx> wrote:
> On 17 April 2015 at 15:06, Andy Lutomirski <luto@xxxxxxxxxxxxxx> wrote:
>> On Fri, Apr 17, 2015 at 3:01 PM, Tyler Baker <tyler.baker@xxxxxxxxxx> wrote:
>>> Using uname with the processor flag option in some cases can yield 'unknown'
>>> so lets use the machine flag option as it is deterministic. Add a dependency
>>> for all_32 when building on a x86 64 bit host so that both bitnesses are
>>> built in this case.
>>>
>>> Cc: Andy Lutomirski <luto@xxxxxxxxxxxxxx>
>>> Signed-off-by: Tyler Baker <tyler.baker@xxxxxxxxxx>
>>> ---
>>> tools/testing/selftests/x86/Makefile | 6 +++---
>>> 1 file changed, 3 insertions(+), 3 deletions(-)
>>>
>>> diff --git a/tools/testing/selftests/x86/Makefile b/tools/testing/selftests/x86/Makefile
>>> index f0a7918..57090ad 100644
>>> --- a/tools/testing/selftests/x86/Makefile
>>> +++ b/tools/testing/selftests/x86/Makefile
>>> @@ -7,14 +7,14 @@ BINARIES_64 := $(TARGETS_C_BOTHBITS:%=%_64)
>>>
>>> CFLAGS := -O2 -g -std=gnu99 -pthread -Wall
>>>
>>> -UNAME_P := $(shell uname -p)
>>> +UNAME_M := $(shell uname -m)
>>>
>>> # Always build 32-bit tests
>>> all: all_32
>>>
>>> # If we're on a 64-bit host, build 64-bit tests as well
>>> -ifeq ($(shell uname -p),x86_64)
>>> -all: all_64
>>> +ifeq ($(UNAME_M),x86_64)
>>> +all: all_32 all_64
>>
>> This duplicates the all: all_32 above.
>
> I agree with you but the behavior is different than expected.
>
> From a clean linux-next tree building on a 64-bit x86 host
>
> (jessie)tyler@localhost:~/Dev/kernels/linux$ git describe
> next-20150415
> (jessie)tyler@localhost:~/Dev/kernels/linux$ uname -m
> x86_64
> (jessie)tyler@localhost:~/Dev/kernels/linux$ make -C
> tools/testing/selftests/x86/
> make: Entering directory
> '/home/tyler/Dev/kernels/linux/tools/testing/selftests/x86'
> cc -m32 -o sigreturn_32 -O2 -g -std=gnu99 -pthread -Wall sigreturn.c -lrt -ldl
> make: Leaving directory
> '/home/tyler/Dev/kernels/linux/tools/testing/selftests/x86'
>
> With this series applied on top I get
>
> (jessie)tyler@localhost:~/Dev/kernels/linux$ make -C
> tools/testing/selftests/x86/
> make: Entering directory
> '/home/tyler/Dev/kernels/linux/tools/testing/selftests/x86'
> Makefile:41: warning: overriding recipe for target 'run_tests'
> ../lib.mk:12: warning: ignoring old recipe for target 'run_tests'

That can't be a good sign.

> gcc -m32 -o sigreturn_32 -O2 -g -std=gnu99 -pthread -Wall sigreturn.c -lrt -ldl
> gcc -m64 -o sigreturn_64 -O2 -g -std=gnu99 -pthread -Wall sigreturn.c -lrt -ldl
> make: Leaving directory
> '/home/tyler/Dev/kernels/linux/tools/testing/selftests/x86'
>
> Which is what I expected.

I meant specifically this line:

+all: all_32 all_64

The rest of this patch looks okay.

--Andy
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/