All of lore.kernel.org
 help / color / mirror / Atom feed
From: Thomas Gleixner <tglx@linutronix.de>
To: "Chen, Rong A" <rong.a.chen@intel.com>,
	Dave Hansen <dave.hansen@intel.com>,
	kernel test robot <lkp@intel.com>,
	Dave Hansen <dave.hansen@linux.intel.com>
Cc: kbuild-all@lists.01.org, linux-kernel@vger.kernel.org,
	Andrew Morton <akpm@linux-foundation.org>,
	Linux Memory Management List <linux-mm@kvack.org>,
	linux-kselftest@vger.kernel.org, Shuah Khan <shuah@kernel.org>
Subject: Re: [kbuild-all] Re: sparc64-linux-gcc: error: unrecognized command-line option '-mxsave'
Date: Mon, 09 Aug 2021 12:17:46 +0200	[thread overview]
Message-ID: <87im0eudkl.ffs@tglx> (raw)
In-Reply-To: <277810e0-3887-f5d4-a150-60fdb1626e60@intel.com>

On Mon, Aug 09 2021 at 09:54, Rong A. Chen wrote:
> On 8/6/2021 8:42 PM, Thomas Gleixner wrote:
>> On Wed, Aug 04 2021 at 17:04, Rong A. Chen wrote:
>>> On 7/27/2021 10:52 PM, Dave Hansen wrote:
>>>> On 7/26/21 8:11 PM, kernel test robot wrote:
>>>>>>> sparc64-linux-gcc: error: unrecognized command-line option '-mxsave'
>>>>
>>>> Is there something else funky going on here?  All of the "-mxsave" flags
>>>> that I can find are under checks for x86 builds, like:
>>>>
>>>> 	ifeq ($(CAN_BUILD_I386),1)
>>>> 	$(BINARIES_32): CFLAGS += -m32 -mxsave
>>>> 	..
>>>>
>>>> I'm confused how we could have a sparc64 compiler (and only a sparc64
>>>> compiler) that would end up with "-mxsave" in CFLAGS.
>>>
>>> Hi Dave,
>>>
>>> We can reproduce the error and have no idea too, but we have disabled
>>> the test for selftests on non-x86 arch.
>> 
>> This smells like a host/target compiler mixup. Can you please make the
>> kernel build verbose with 'V=1' and provide the full build output?
>
> Hi Thomas,
>
> I run the below command:
>
> $make V=1 --keep-going CROSS_COMPILE=sparc64-linux- -j1 O=build_dir 
> ARCH=sparc64 -C tools/testing/selftests/vm
> ...
> sparc64-linux-gcc -Wall -I ../../../../usr/include  -no-pie -m32 -mxsave 
>   protection_keys.c -lrt -lpthread -lrt -ldl -lm -o 
> /root/linux/tools/testing/selftests/vm/protection_keys_32
> sparc64-linux-gcc: error: unrecognized command-line option '-mxsave'
> make: *** [Makefile:107:

Right. That's clearly broken because all these x8664 muck is derived
from:

  MACHINE ?= $(shell echo $(uname_M) | sed -e 's/aarch64.*/arm64/' -e 's/ppc64.*/ppc64/')

which obviously fails for cross compiling because it's looking at the
compile machine and not at the target.

Something like the below should cure that, but TBH I lost track
which one of ARCH, SUBARCH, UTS_MACHINE should be used here. The kbuild
folks should know.

Thanks,

        tglx

---
--- a/tools/testing/selftests/vm/Makefile
+++ b/tools/testing/selftests/vm/Makefile
@@ -4,7 +4,6 @@
 include local_config.mk
 
 uname_M := $(shell uname -m 2>/dev/null || echo not)
-MACHINE ?= $(shell echo $(uname_M) | sed -e 's/aarch64.*/arm64/' -e 's/ppc64.*/ppc64/')
 
 # Without this, failed build products remain, with up-to-date timestamps,
 # thus tricking Make (and you!) into believing that All Is Well, in subsequent
@@ -46,7 +45,7 @@ TEST_GEN_FILES += transhuge-stress
 TEST_GEN_FILES += userfaultfd
 TEST_GEN_FILES += split_huge_page_test
 
-ifeq ($(MACHINE),x86_64)
+ifeq ($(UTS_MACHINE),x86_64)
 CAN_BUILD_I386 := $(shell ./../x86/check_cc.sh $(CC) ../x86/trivial_32bit_program.c -m32)
 CAN_BUILD_X86_64 := $(shell ./../x86/check_cc.sh $(CC) ../x86/trivial_64bit_program.c)
 CAN_BUILD_WITH_NOPIE := $(shell ./../x86/check_cc.sh $(CC) ../x86/trivial_program.c -no-pie)
@@ -68,7 +67,7 @@ TEST_GEN_FILES += $(BINARIES_64)
 endif
 else
 
-ifneq (,$(findstring $(MACHINE),ppc64))
+ifneq (,$(findstring $(UTS_MACHINE),ppc64))
 TEST_GEN_FILES += protection_keys
 endif
 
@@ -87,7 +86,7 @@ TEST_FILES := test_vmalloc.sh
 KSFT_KHDR_INSTALL := 1
 include ../lib.mk
 
-ifeq ($(MACHINE),x86_64)
+ifeq ($(UTS_MACHINE),x86_64)
 BINARIES_32 := $(patsubst %,$(OUTPUT)/%,$(BINARIES_32))
 BINARIES_64 := $(patsubst %,$(OUTPUT)/%,$(BINARIES_64))
 

WARNING: multiple messages have this Message-ID (diff)
From: Thomas Gleixner <tglx@linutronix.de>
To: kbuild-all@lists.01.org
Subject: Re: sparc64-linux-gcc: error: unrecognized command-line option '-mxsave'
Date: Mon, 09 Aug 2021 12:17:46 +0200	[thread overview]
Message-ID: <87im0eudkl.ffs@tglx> (raw)
In-Reply-To: <277810e0-3887-f5d4-a150-60fdb1626e60@intel.com>

[-- Attachment #1: Type: text/plain, Size: 3334 bytes --]

On Mon, Aug 09 2021 at 09:54, Rong A. Chen wrote:
> On 8/6/2021 8:42 PM, Thomas Gleixner wrote:
>> On Wed, Aug 04 2021 at 17:04, Rong A. Chen wrote:
>>> On 7/27/2021 10:52 PM, Dave Hansen wrote:
>>>> On 7/26/21 8:11 PM, kernel test robot wrote:
>>>>>>> sparc64-linux-gcc: error: unrecognized command-line option '-mxsave'
>>>>
>>>> Is there something else funky going on here?  All of the "-mxsave" flags
>>>> that I can find are under checks for x86 builds, like:
>>>>
>>>> 	ifeq ($(CAN_BUILD_I386),1)
>>>> 	$(BINARIES_32): CFLAGS += -m32 -mxsave
>>>> 	..
>>>>
>>>> I'm confused how we could have a sparc64 compiler (and only a sparc64
>>>> compiler) that would end up with "-mxsave" in CFLAGS.
>>>
>>> Hi Dave,
>>>
>>> We can reproduce the error and have no idea too, but we have disabled
>>> the test for selftests on non-x86 arch.
>> 
>> This smells like a host/target compiler mixup. Can you please make the
>> kernel build verbose with 'V=1' and provide the full build output?
>
> Hi Thomas,
>
> I run the below command:
>
> $make V=1 --keep-going CROSS_COMPILE=sparc64-linux- -j1 O=build_dir 
> ARCH=sparc64 -C tools/testing/selftests/vm
> ...
> sparc64-linux-gcc -Wall -I ../../../../usr/include  -no-pie -m32 -mxsave 
>   protection_keys.c -lrt -lpthread -lrt -ldl -lm -o 
> /root/linux/tools/testing/selftests/vm/protection_keys_32
> sparc64-linux-gcc: error: unrecognized command-line option '-mxsave'
> make: *** [Makefile:107:

Right. That's clearly broken because all these x8664 muck is derived
from:

  MACHINE ?= $(shell echo $(uname_M) | sed -e 's/aarch64.*/arm64/' -e 's/ppc64.*/ppc64/')

which obviously fails for cross compiling because it's looking at the
compile machine and not at the target.

Something like the below should cure that, but TBH I lost track
which one of ARCH, SUBARCH, UTS_MACHINE should be used here. The kbuild
folks should know.

Thanks,

        tglx

---
--- a/tools/testing/selftests/vm/Makefile
+++ b/tools/testing/selftests/vm/Makefile
@@ -4,7 +4,6 @@
 include local_config.mk
 
 uname_M := $(shell uname -m 2>/dev/null || echo not)
-MACHINE ?= $(shell echo $(uname_M) | sed -e 's/aarch64.*/arm64/' -e 's/ppc64.*/ppc64/')
 
 # Without this, failed build products remain, with up-to-date timestamps,
 # thus tricking Make (and you!) into believing that All Is Well, in subsequent
@@ -46,7 +45,7 @@ TEST_GEN_FILES += transhuge-stress
 TEST_GEN_FILES += userfaultfd
 TEST_GEN_FILES += split_huge_page_test
 
-ifeq ($(MACHINE),x86_64)
+ifeq ($(UTS_MACHINE),x86_64)
 CAN_BUILD_I386 := $(shell ./../x86/check_cc.sh $(CC) ../x86/trivial_32bit_program.c -m32)
 CAN_BUILD_X86_64 := $(shell ./../x86/check_cc.sh $(CC) ../x86/trivial_64bit_program.c)
 CAN_BUILD_WITH_NOPIE := $(shell ./../x86/check_cc.sh $(CC) ../x86/trivial_program.c -no-pie)
@@ -68,7 +67,7 @@ TEST_GEN_FILES += $(BINARIES_64)
 endif
 else
 
-ifneq (,$(findstring $(MACHINE),ppc64))
+ifneq (,$(findstring $(UTS_MACHINE),ppc64))
 TEST_GEN_FILES += protection_keys
 endif
 
@@ -87,7 +86,7 @@ TEST_FILES := test_vmalloc.sh
 KSFT_KHDR_INSTALL := 1
 include ../lib.mk
 
-ifeq ($(MACHINE),x86_64)
+ifeq ($(UTS_MACHINE),x86_64)
 BINARIES_32 := $(patsubst %,$(OUTPUT)/%,$(BINARIES_32))
 BINARIES_64 := $(patsubst %,$(OUTPUT)/%,$(BINARIES_64))
 

WARNING: multiple messages have this Message-ID (diff)
From: Thomas Gleixner <tglx@linutronix.de>
To: "Chen, Rong A" <rong.a.chen@intel.com>,
	Dave Hansen <dave.hansen@intel.com>,
	kernel test robot <lkp@intel.com>,
	Dave Hansen <dave.hansen@linux.intel.com>
Cc: kbuild-all@lists.01.org, linux-kernel@vger.kernel.org,
	Andrew Morton <akpm@linux-foundation.org>,
	Linux Memory Management List
	<linux-mm@kvack.org>,linux-kselftest@vger.kernel.org,Shuah Khan
	<shuah@kernel.org>
Subject: Re: [kbuild-all] Re: sparc64-linux-gcc: error: unrecognized command-line option '-mxsave'
Date: Mon, 09 Aug 2021 12:17:46 +0200	[thread overview]
Message-ID: <87im0eudkl.ffs@tglx> (raw)
In-Reply-To: <277810e0-3887-f5d4-a150-60fdb1626e60@intel.com>

On Mon, Aug 09 2021 at 09:54, Rong A. Chen wrote:
> On 8/6/2021 8:42 PM, Thomas Gleixner wrote:
>> On Wed, Aug 04 2021 at 17:04, Rong A. Chen wrote:
>>> On 7/27/2021 10:52 PM, Dave Hansen wrote:
>>>> On 7/26/21 8:11 PM, kernel test robot wrote:
>>>>>>> sparc64-linux-gcc: error: unrecognized command-line option '-mxsave'
>>>>
>>>> Is there something else funky going on here?  All of the "-mxsave" flags
>>>> that I can find are under checks for x86 builds, like:
>>>>
>>>> 	ifeq ($(CAN_BUILD_I386),1)
>>>> 	$(BINARIES_32): CFLAGS += -m32 -mxsave
>>>> 	..
>>>>
>>>> I'm confused how we could have a sparc64 compiler (and only a sparc64
>>>> compiler) that would end up with "-mxsave" in CFLAGS.
>>>
>>> Hi Dave,
>>>
>>> We can reproduce the error and have no idea too, but we have disabled
>>> the test for selftests on non-x86 arch.
>> 
>> This smells like a host/target compiler mixup. Can you please make the
>> kernel build verbose with 'V=1' and provide the full build output?
>
> Hi Thomas,
>
> I run the below command:
>
> $make V=1 --keep-going CROSS_COMPILE=sparc64-linux- -j1 O=build_dir 
> ARCH=sparc64 -C tools/testing/selftests/vm
> ...
> sparc64-linux-gcc -Wall -I ../../../../usr/include  -no-pie -m32 -mxsave 
>   protection_keys.c -lrt -lpthread -lrt -ldl -lm -o 
> /root/linux/tools/testing/selftests/vm/protection_keys_32
> sparc64-linux-gcc: error: unrecognized command-line option '-mxsave'
> make: *** [Makefile:107:

Right. That's clearly broken because all these x8664 muck is derived
from:

  MACHINE ?= $(shell echo $(uname_M) | sed -e 's/aarch64.*/arm64/' -e 's/ppc64.*/ppc64/')

which obviously fails for cross compiling because it's looking at the
compile machine and not at the target.

Something like the below should cure that, but TBH I lost track
which one of ARCH, SUBARCH, UTS_MACHINE should be used here. The kbuild
folks should know.

Thanks,

        tglx

---
--- a/tools/testing/selftests/vm/Makefile
+++ b/tools/testing/selftests/vm/Makefile
@@ -4,7 +4,6 @@
 include local_config.mk
 
 uname_M := $(shell uname -m 2>/dev/null || echo not)
-MACHINE ?= $(shell echo $(uname_M) | sed -e 's/aarch64.*/arm64/' -e 's/ppc64.*/ppc64/')
 
 # Without this, failed build products remain, with up-to-date timestamps,
 # thus tricking Make (and you!) into believing that All Is Well, in subsequent
@@ -46,7 +45,7 @@ TEST_GEN_FILES += transhuge-stress
 TEST_GEN_FILES += userfaultfd
 TEST_GEN_FILES += split_huge_page_test
 
-ifeq ($(MACHINE),x86_64)
+ifeq ($(UTS_MACHINE),x86_64)
 CAN_BUILD_I386 := $(shell ./../x86/check_cc.sh $(CC) ../x86/trivial_32bit_program.c -m32)
 CAN_BUILD_X86_64 := $(shell ./../x86/check_cc.sh $(CC) ../x86/trivial_64bit_program.c)
 CAN_BUILD_WITH_NOPIE := $(shell ./../x86/check_cc.sh $(CC) ../x86/trivial_program.c -no-pie)
@@ -68,7 +67,7 @@ TEST_GEN_FILES += $(BINARIES_64)
 endif
 else
 
-ifneq (,$(findstring $(MACHINE),ppc64))
+ifneq (,$(findstring $(UTS_MACHINE),ppc64))
 TEST_GEN_FILES += protection_keys
 endif
 
@@ -87,7 +86,7 @@ TEST_FILES := test_vmalloc.sh
 KSFT_KHDR_INSTALL := 1
 include ../lib.mk
 
-ifeq ($(MACHINE),x86_64)
+ifeq ($(UTS_MACHINE),x86_64)
 BINARIES_32 := $(patsubst %,$(OUTPUT)/%,$(BINARIES_32))
 BINARIES_64 := $(patsubst %,$(OUTPUT)/%,$(BINARIES_64))
 


  reply	other threads:[~2021-08-09 10:17 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-07-27  3:11 sparc64-linux-gcc: error: unrecognized command-line option '-mxsave' kernel test robot
2021-07-27  3:11 ` kernel test robot
2021-07-27 14:52 ` Dave Hansen
2021-07-27 14:52   ` Dave Hansen
2021-08-04  9:04   ` Chen, Rong A
2021-08-04  9:04     ` [kbuild-all] " Chen, Rong A
2021-08-06 12:42     ` Thomas Gleixner
2021-08-06 12:42       ` [kbuild-all] " Thomas Gleixner
2021-08-09  1:54       ` Chen, Rong A
2021-08-09  1:54         ` [kbuild-all] " Chen, Rong A
2021-08-09 10:17         ` Thomas Gleixner [this message]
2021-08-09 10:17           ` Thomas Gleixner
2021-08-09 10:17           ` Thomas Gleixner

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=87im0eudkl.ffs@tglx \
    --to=tglx@linutronix.de \
    --cc=akpm@linux-foundation.org \
    --cc=dave.hansen@intel.com \
    --cc=dave.hansen@linux.intel.com \
    --cc=kbuild-all@lists.01.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-kselftest@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=lkp@intel.com \
    --cc=rong.a.chen@intel.com \
    --cc=shuah@kernel.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.