Re: [kbuild-all] Re: sparc64-linux-gcc: error: unrecognized command-line option '-mxsave'

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 





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: /root/linux/tools/testing/selftests/vm/protection_keys_32] Error 1 sparc64-linux-gcc -Wall -I ../../../../usr/include -no-pie -m64 -mxsave protection_keys.c -lrt -lpthread -lrt -ldl -o /root/linux/tools/testing/selftests/vm/protection_keys_64
sparc64-linux-gcc: error: unrecognized command-line option '-mxsave'
make: *** [Makefile:115: /root/linux/tools/testing/selftests/vm/protection_keys_64] Error 1

and I attached the full build output for your reference.

Best Regards,
Rong Chen
make: Entering directory '/root/linux/tools/testing/selftests/vm'
/bin/sh ./check_config.sh sparc64-linux-gcc
make --no-builtin-rules ARCH=sparc64 -C ../../../.. headers_install
make[1]: Entering directory '/root/linux'
make -C /root/linux/build_dir -f /root/linux/Makefile headers_install
make[2]: Entering directory '/root/linux/build_dir'
set -e; mkdir -p include/generated/uapi/linux/; trap "rm -f include/generated/uapi/linux/.version.h.tmp" EXIT; { 	if [  0 -gt 255 ]; then echo \#define LINUX_VERSION_CODE 331263; else echo \#define LINUX_VERSION_CODE 331008; fi; echo '#define KERNEL_VERSION(a,b,c) (((a) << 16) + ((b) << 8) + ((c) > 255 ? 255 : (c)))'; echo \#define LINUX_VERSION_MAJOR 5; echo \#define LINUX_VERSION_PATCHLEVEL  13; echo \#define LINUX_VERSION_SUBLEVEL  0; } > include/generated/uapi/linux/.version.h.tmp; if [ ! -r include/generated/uapi/linux/version.h ] || ! cmp -s include/generated/uapi/linux/version.h include/generated/uapi/linux/.version.h.tmp; then : '  UPD     include/generated/uapi/linux/version.h'; mv -f include/generated/uapi/linux/.version.h.tmp include/generated/uapi/linux/version.h; fi
make -f ../scripts/Makefile.build obj=scripts/basic
rm -f .tmp_quiet_recordmcount
make -f ../scripts/Makefile.build obj=scripts scripts/unifdef
make -f ../scripts/Makefile.asm-generic obj=arch/sparc/include/generated/uapi/asm \
generic=include/uapi/asm-generic
make -f ../scripts/Makefile.build obj=arch/sparc/kernel/syscalls all
make -f ../scripts/Makefile.headersinst obj=include/uapi
make -f ../scripts/Makefile.headersinst obj=arch/sparc/include/uapi
  mkdir -p ./usr; rsync -mrl --include='*/' --include='*\.h' --exclude='*' usr/include ./usr
make[2]: Leaving directory '/root/linux/build_dir'
make[1]: Leaving directory '/root/linux'
sparc64-linux-gcc -Wall -I ../../../../usr/include  -no-pie    compaction_test.c -lrt -lpthread -o /root/linux/tools/testing/selftests/vm/compaction_test
sparc64-linux-gcc -Wall -I ../../../../usr/include  -no-pie    gup_test.c ../../../../mm/gup_test.h -lrt -lpthread -o /root/linux/tools/testing/selftests/vm/gup_test
sparc64-linux-gcc -Wall -I ../../../../usr/include  -no-pie    hmm-tests.c local_config.h -lrt -lpthread  -o /root/linux/tools/testing/selftests/vm/hmm-tests
sparc64-linux-gcc -Wall -I ../../../../usr/include  -no-pie    hugepage-mmap.c -lrt -lpthread -o /root/linux/tools/testing/selftests/vm/hugepage-mmap
sparc64-linux-gcc -Wall -I ../../../../usr/include  -no-pie    hugepage-shm.c -lrt -lpthread -o /root/linux/tools/testing/selftests/vm/hugepage-shm
sparc64-linux-gcc -Wall -I ../../../../usr/include  -no-pie    khugepaged.c -lrt -lpthread -o /root/linux/tools/testing/selftests/vm/khugepaged
sparc64-linux-gcc -Wall -I ../../../../usr/include  -no-pie    madv_populate.c -lrt -lpthread -o /root/linux/tools/testing/selftests/vm/madv_populate
madv_populate.c:334:2: warning: #warning "missing MADV_POPULATE_READ or MADV_POPULATE_WRITE definition" [-Wcpp]
  334 | #warning "missing MADV_POPULATE_READ or MADV_POPULATE_WRITE definition"
      |  ^~~~~~~
sparc64-linux-gcc -Wall -I ../../../../usr/include  -no-pie    map_fixed_noreplace.c -lrt -lpthread -o /root/linux/tools/testing/selftests/vm/map_fixed_noreplace
sparc64-linux-gcc -Wall -I ../../../../usr/include  -no-pie    map_hugetlb.c -lrt -lpthread -o /root/linux/tools/testing/selftests/vm/map_hugetlb
sparc64-linux-gcc -Wall -I ../../../../usr/include  -no-pie    map_populate.c -lrt -lpthread -o /root/linux/tools/testing/selftests/vm/map_populate
sparc64-linux-gcc -Wall -I ../../../../usr/include  -no-pie    mlock-random-test.c -lrt -lpthread -lcap -o /root/linux/tools/testing/selftests/vm/mlock-random-test
mlock-random-test.c:8:10: fatal error: sys/capability.h: No such file or directory
    8 | #include <sys/capability.h>
      |          ^~~~~~~~~~~~~~~~~~
compilation terminated.
make: *** [../lib.mk:144: /root/linux/tools/testing/selftests/vm/mlock-random-test] Error 1
sparc64-linux-gcc -Wall -I ../../../../usr/include  -no-pie    mlock2-tests.c -lrt -lpthread -o /root/linux/tools/testing/selftests/vm/mlock2-tests
sparc64-linux-gcc -Wall -I ../../../../usr/include  -no-pie    mremap_dontunmap.c -lrt -lpthread -o /root/linux/tools/testing/selftests/vm/mremap_dontunmap
sparc64-linux-gcc -Wall -I ../../../../usr/include  -no-pie    mremap_test.c -lrt -lpthread -o /root/linux/tools/testing/selftests/vm/mremap_test
sparc64-linux-gcc -Wall -I ../../../../usr/include  -no-pie    on-fault-limit.c -lrt -lpthread -o /root/linux/tools/testing/selftests/vm/on-fault-limit
sparc64-linux-gcc -Wall -I ../../../../usr/include  -no-pie    thuge-gen.c -lrt -lpthread -o /root/linux/tools/testing/selftests/vm/thuge-gen
sparc64-linux-gcc -Wall -I ../../../../usr/include  -no-pie    transhuge-stress.c -lrt -lpthread -o /root/linux/tools/testing/selftests/vm/transhuge-stress
sparc64-linux-gcc -Wall -I ../../../../usr/include  -no-pie    userfaultfd.c -lrt -lpthread -o /root/linux/tools/testing/selftests/vm/userfaultfd
userfaultfd.c:338:58: error: '_UFFDIO_CONTINUE' undeclared here (not in a function)
  338 |  .expected_ioctls = UFFD_API_RANGE_IOCTLS_BASIC & ~(1 << _UFFDIO_CONTINUE),
      |                                                          ^~~~~~~~~~~~~~~~
userfaultfd.c: In function 'userfaultfd_open':
userfaultfd.c:350:60: error: 'UFFD_USER_MODE_ONLY' undeclared (first use in this function)
  350 |  uffd = syscall(__NR_userfaultfd, O_CLOEXEC | O_NONBLOCK | UFFD_USER_MODE_ONLY);
      |                                                            ^~~~~~~~~~~~~~~~~~~
userfaultfd.c:350:60: note: each undeclared identifier is reported only once for each function it appears in
userfaultfd.c: In function 'continue_range':
userfaultfd.c:476:25: error: storage size of 'req' isn't known
  476 |  struct uffdio_continue req;
      |                         ^~~
userfaultfd.c:483:17: error: 'UFFDIO_CONTINUE' undeclared (first use in this function)
  483 |  if (ioctl(ufd, UFFDIO_CONTINUE, &req))
      |                 ^~~~~~~~~~~~~~~
userfaultfd.c:476:25: warning: unused variable 'req' [-Wunused-variable]
  476 |  struct uffdio_continue req;
      |                         ^~~
userfaultfd.c: In function 'uffd_handle_page_fault':
userfaultfd.c:637:40: error: 'UFFD_PAGEFAULT_FLAG_MINOR' undeclared (first use in this function); did you mean 'UFFD_PAGEFAULT_FLAG_WP'?
  637 |  } else if (msg->arg.pagefault.flags & UFFD_PAGEFAULT_FLAG_MINOR) {
      |                                        ^~~~~~~~~~~~~~~~~~~~~~~~~
      |                                        UFFD_PAGEFAULT_FLAG_WP
userfaultfd.c: In function 'userfaultfd_minor_test':
userfaultfd.c:1206:18: error: 'UFFD_FEATURE_MINOR_HUGETLBFS' undeclared (first use in this function); did you mean 'UFFD_FEATURE_MISSING_HUGETLBFS'?
 1206 |   req_features = UFFD_FEATURE_MINOR_HUGETLBFS;
      |                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
      |                  UFFD_FEATURE_MISSING_HUGETLBFS
userfaultfd.c:1208:18: error: 'UFFD_FEATURE_MINOR_SHMEM' undeclared (first use in this function); did you mean 'UFFD_FEATURE_MISSING_SHMEM'?
 1208 |   req_features = UFFD_FEATURE_MINOR_SHMEM;
      |                  ^~~~~~~~~~~~~~~~~~~~~~~~
      |                  UFFD_FEATURE_MISSING_SHMEM
userfaultfd.c:1223:25: error: 'UFFDIO_REGISTER_MODE_MINOR' undeclared (first use in this function); did you mean 'UFFDIO_REGISTER_MODE_WP'?
 1223 |  uffdio_register.mode = UFFDIO_REGISTER_MODE_MINOR;
      |                         ^~~~~~~~~~~~~~~~~~~~~~~~~~
      |                         UFFDIO_REGISTER_MODE_WP
make: *** [../lib.mk:144: /root/linux/tools/testing/selftests/vm/userfaultfd] Error 1
sparc64-linux-gcc -Wall -I ../../../../usr/include  -no-pie    split_huge_page_test.c -lrt -lpthread -o /root/linux/tools/testing/selftests/vm/split_huge_page_test
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: /root/linux/tools/testing/selftests/vm/protection_keys_32] Error 1
sparc64-linux-gcc -Wall -I ../../../../usr/include  -no-pie -m64 -mxsave  protection_keys.c -lrt -lpthread -lrt -ldl -o /root/linux/tools/testing/selftests/vm/protection_keys_64
sparc64-linux-gcc: error: unrecognized command-line option '-mxsave'
make: *** [Makefile:115: /root/linux/tools/testing/selftests/vm/protection_keys_64] Error 1
sparc64-linux-gcc -Wall -I ../../../../usr/include  -no-pie    va_128TBswitch.c -lrt -lpthread -o /root/linux/tools/testing/selftests/vm/va_128TBswitch
sparc64-linux-gcc -Wall -I ../../../../usr/include  -no-pie    virtual_address_range.c -lrt -lpthread -o /root/linux/tools/testing/selftests/vm/virtual_address_range
sparc64-linux-gcc -Wall -I ../../../../usr/include  -no-pie    write_to_hugetlbfs.c -lrt -lpthread -o /root/linux/tools/testing/selftests/vm/write_to_hugetlbfs

Warning: missing libhugetlbfs support. Some HMM tests will be skipped.

make: Target 'all' not remade because of errors.
make: Leaving directory '/root/linux/tools/testing/selftests/vm'

[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Bugtraq]     [Linux OMAP]     [Linux MIPS]     [eCos]     [Asterisk Internet PBX]     [Linux API]

  Powered by Linux