2021-06-09 22:55:12

by Helge Deller

[permalink] [raw]
Subject: Re: linux-parisc compile failure in current git

On 6/1/21 12:21 PM, Meelis Roos wrote:
> Upstream Linux git fails to compile on gentoo hppa -  .config below.
> I have 2 gcc-s as always:
> $ gcc-config -l
>  [1] hppa2.0-unknown-linux-gnu-9.3.0
>  [2] hppa2.0-unknown-linux-gnu-10.2.0 *
>
>  [3] hppa64-unknown-linux-gnu-10.2.0 *


I see the same issue too, but only when compiling natively on a parisc machine.
Cross-compiling on a x86 box works nicely.

First I thought it's a problem with setting the "cross_compiling" flag in ./Makefile.
But that's not sufficient.

On a x86 machine (which builds fine) I get
SRCARCH=parisc SUBARCH=x86 UTS_MACHINE=parisc
The arch/parisc/kernel/asm-offsets.c file gets preprocessed via:
hppa64-linux-gnu-gcc

On a native 32bit parisc machine I have:
SRCARCH=parisc SUBARCH=parisc UTS_MACHINE=parisc
Here the arch/parisc/kernel/asm-offsets.c file gets preprocessed via:
gcc
Instead here the native hppa64-linux-gnu-gcc (cross compiler) should have been used too, since
we build a 64-bit hppa kernel (CONFIG_64BIT is set).
Note, on hppa we don't have an "-m64" compiler flag as on x86.

Mashahiro, do you maybe have an idea what gets wrong here, or which
patch has changed the behaviour how the asm-offsets.c file gets preprocessed?

Thanks,
Helge


> $ hppa2.0-unknown-linux-gnu-gcc -v
> Using built-in specs.
> COLLECT_GCC=hppa2.0-unknown-linux-gnu-gcc
> COLLECT_LTO_WRAPPER=/usr/libexec/gcc/hppa2.0-unknown-linux-gnu/10.2.0/lto-wrapper
> Target: hppa2.0-unknown-linux-gnu
> Configured with: /var/tmp/portage/sys-devel/gcc-10.2.0-r5/work/gcc-10.2.0/configure --host=hppa2.0-unknown-linux-gnu --build=hppa2.0-unknown-linux-gnu --prefix=/usr --bindir=/usr/hppa2.0-unknown-linux-gnu/gcc-bin/10.2.0 --includedir=/usr/lib/gcc/hppa2.0-unknown-linux-gnu/10.2.0/include --datadir=/usr/share/gcc-data/hppa2.0-unknown-linux-gnu/10.2.0 --mandir=/usr/share/gcc-data/hppa2.0-unknown-linux-gnu/10.2.0/man --infodir=/usr/share/gcc-data/hppa2.0-unknown-linux-gnu/10.2.0/info --with-gxx-include-dir=/usr/lib/gcc/hppa2.0-unknown-linux-gnu/10.2.0/include/g++-v10 --with-python-dir=/share/gcc-data/hppa2.0-unknown-linux-gnu/10.2.0/python --enable-languages=c,c++,fortran --enable-obsolete --enable-secureplt --disable-werror --with-system-zlib --enable-nls --without-included-gettext --enable-checking=release --with-bugurl=https://bugs.gentoo.org/ --with-pkgversion='Gentoo 10.2.0-r5 p6' --disable-esp --enable-libstdcxx-time --enable-shared --enable-threads=posix
> --enable-__cxa_atexit --enable-clocale=gnu --disable-multilib --disable-fixed-point --enable-libgomp --disable-libssp --disable-libada --disable-systemtap --disable-vtable-verify --disable-libvtv --without-zstd --enable-lto --without-isl --disable-libsanitizer --enable-default-pie --disable-default-ssp
>
> hppa64-unknown-linux-gnu-gcc -v
> Using built-in specs.
> COLLECT_GCC=hppa64-unknown-linux-gnu-gcc
> COLLECT_LTO_WRAPPER=/usr/libexec/gcc/hppa64-unknown-linux-gnu/10.2.0/lto-wrapper
> Target: hppa64-unknown-linux-gnu
> Configured with: /var/tmp/portage/sys-devel/kgcc64-10.2.0/work/gcc-10.2.0/configure --host=hppa2.0-unknown-linux-gnu --target=hppa64-unknown-linux-gnu --build=hppa2.0-unknown-linux-gnu --prefix=/usr --bindir=/usr/hppa2.0-unknown-linux-gnu/hppa64-unknown-linux-gnu/gcc-bin/10.2.0 --includedir=/usr/lib/gcc/hppa64-unknown-linux-gnu/10.2.0/include --datadir=/usr/share/gcc-data/hppa64-unknown-linux-gnu/10.2.0 --mandir=/usr/share/gcc-data/hppa64-unknown-linux-gnu/10.2.0/man --infodir=/usr/share/gcc-data/hppa64-unknown-linux-gnu/10.2.0/info --with-gxx-include-dir=/usr/lib/gcc/hppa64-unknown-linux-gnu/10.2.0/include/g++-v10 --with-python-dir=/share/gcc-data/hppa64-unknown-linux-gnu/10.2.0/python --enable-languages=c --enable-obsolete --enable-secureplt --disable-werror --with-system-zlib --enable-nls --without-included-gettext --with-bugurl=https://bugs.gentoo.org/ --with-pkgversion='Gentoo 10.2.0 p1' --disable-libstdcxx-pch --enable-poison-system-directories --disable-shared
> --disable-libquadmath --disable-libatomic --disable-threads --without-headers --disable-bootstrap --enable-__cxa_atexit --enable-clocale=gnu --disable-multilib --disable-libgomp --disable-libssp --enable-lto --without-isl --disable-libsanitizer
> Thread model: single
> Supported LTO compression algorithms: zlib zstd
> gcc version 10.2.0 (Gentoo 10.2.0 p1)
>
>
>
>
>   SYNC    include/config/auto.conf.cmd
>   UPD     include/config/kernel.release
>   UPD     include/generated/utsrelease.h
>   CC      arch/parisc/kernel/asm-offsets.s
> In file included from ./arch/parisc/include/asm/bitops.h:203,
>                  from ./include/linux/bitops.h:32,
>                  from ./include/linux/kernel.h:12,
>                  from ./arch/parisc/include/asm/bug.h:5,
>                  from ./include/linux/bug.h:5,
>                  from ./include/linux/thread_info.h:12,
>                  from ./include/asm-generic/current.h:5,
>                  from ./arch/parisc/include/generated/asm/current.h:1,
>                  from ./include/linux/sched.h:12,
>                  from arch/parisc/kernel/asm-offsets.c:18:
> ./include/asm-generic/bitops/__fls.h: In function ‘__fls’:
> ./include/asm-generic/bitops/__fls.h:18:21: warning: left shift count >= width of type [-Wshift-count-overflow]
>    18 |  if (!(word & (~0ul << 32))) {
>       |                     ^~
> ./include/asm-generic/bitops/__fls.h:20:8: warning: left shift count >= width of type [-Wshift-count-overflow]
>    20 |   word <<= 32;
>       |        ^~~
> ./include/asm-generic/bitops/__fls.h:23:21: warning: left shift count >= width of type [-Wshift-count-overflow]
>    23 |  if (!(word & (~0ul << (BITS_PER_LONG-16)))) {
>       |                     ^~
> ./include/asm-generic/bitops/__fls.h:27:21: warning: left shift count >= width of type [-Wshift-count-overflow]
>    27 |  if (!(word & (~0ul << (BITS_PER_LONG-8)))) {
>       |                     ^~
> ./include/asm-generic/bitops/__fls.h:31:21: warning: left shift count >= width of type [-Wshift-count-overflow]
>    31 |  if (!(word & (~0ul << (BITS_PER_LONG-4)))) {
>       |                     ^~
> ./include/asm-generic/bitops/__fls.h:35:21: warning: left shift count >= width of type [-Wshift-count-overflow]
>    35 |  if (!(word & (~0ul << (BITS_PER_LONG-2)))) {
>       |                     ^~
> ./include/asm-generic/bitops/__fls.h:39:21: warning: left shift count >= width of type [-Wshift-count-overflow]
>    39 |  if (!(word & (~0ul << (BITS_PER_LONG-1))))
>       |                     ^~
> In file included from ./arch/parisc/include/asm/processor.h:17,
>                  from ./arch/parisc/include/asm/thread_info.h:8,
>                  from ./include/linux/thread_info.h:59,
>                  from ./include/asm-generic/current.h:5,
>                  from ./arch/parisc/include/generated/asm/current.h:1,
>                  from ./include/linux/sched.h:12,
>                  from arch/parisc/kernel/asm-offsets.c:18:
> ./arch/parisc/include/asm/pdc.h: At top level:
> ./arch/parisc/include/asm/pdc.h:75:10: warning: ‘struct pdc_memory_table’ declared inside parameter list will not be visible outside of this definition or declaration
>    75 |   struct pdc_memory_table *tbl, unsigned long entries);
>       |          ^~~~~~~~~~~~~~~~
> ./arch/parisc/include/asm/pdc.h:74:30: warning: ‘struct pdc_memory_table_raddr’ declared inside parameter list will not be visible outside of this definition or declaration
>    74 | int pdc_mem_mem_table(struct pdc_memory_table_raddr *r_addr,
>       |                              ^~~~~~~~~~~~~~~~~~~~~~
> In file included from ././include/linux/compiler_types.h:65,
>                  from <command-line>:
> ./include/linux/smp.h:34:26: error: requested alignment ‘20’ is not a positive power of 2
>    34 |  __aligned(sizeof(struct __call_single_data));
>       |                          ^~~~~~~~~~~~~~~~~~
> ./include/linux/compiler_attributes.h:52:68: note: in definition of macro ‘__aligned’
>    52 | #define __aligned(x)                    __attribute__((__aligned__(x)))
>       |                                                                    ^
> In file included from ./include/linux/mm.h:33,
>                  from ./include/linux/pid_namespace.h:7,
>                  from ./include/linux/ptrace.h:10,
>                  from arch/parisc/kernel/asm-offsets.c:20:
> ./include/linux/pgtable.h: In function ‘pud_index’:
> ./include/linux/pgtable.h:59:18: warning: right shift count >= width of type [-Wshift-count-overflow]
>    59 |  return (address >> PUD_SHIFT) & (PTRS_PER_PUD - 1);
>       |                  ^~
> ./include/linux/pgtable.h: In function ‘pgd_offset_pgd’:
> ./include/linux/pgtable.h:66:29: warning: right shift count >= width of type [-Wshift-count-overflow]
>    66 | #define pgd_index(a)  (((a) >> PGDIR_SHIFT) & (PTRS_PER_PGD - 1))
>       |                             ^~
> ./include/linux/pgtable.h:106:16: note: in expansion of macro ‘pgd_index’
>   106 |  return (pgd + pgd_index(address));
>       |                ^~~~~~~~~
> In file included from ./include/linux/stringhash.h:7,
>                  from ./include/linux/dcache.h:15,
>                  from ./include/linux/fs.h:8,
>                  from ./include/linux/huge_mm.h:8,
>                  from ./include/linux/mm.h:726,
>                  from ./include/linux/pid_namespace.h:7,
>                  from ./include/linux/ptrace.h:10,
>                  from arch/parisc/kernel/asm-offsets.c:20:
> ./include/linux/hash.h: In function ‘hash32_ptr’:
> ./include/linux/hash.h:99:14: warning: right shift count >= width of type [-Wshift-count-overflow]
>    99 |  val ^= (val >> 32);
>       |              ^~
> In file included from arch/parisc/kernel/asm-offsets.c:22:
> arch/parisc/kernel/asm-offsets.c: In function ‘main’:
> arch/parisc/kernel/asm-offsets.c:272:36: warning: right shift count >= width of type [-Wshift-count-overflow]
>   272 |  DEFINE(ASM_PGD_ENTRY, PAGE_OFFSET >> PGDIR_SHIFT);
>       |                                    ^~
> ./include/linux/kbuild.h:6:62: note: in definition of macro ‘DEFINE’
>     6 |  asm volatile("\n.ascii \"->" #sym " %0 " #val "\"" : : "i" (val))
>       |                                                              ^~~
> make[1]: *** [scripts/Makefile.build:117: arch/parisc/kernel/asm-offsets.s] Error 1
> make: *** [Makefile:1232: prepare0] Error 2
> mroos@rp2470 ~/linux $ git pull && make oldconfig && make  && echo OK
> Already up to date.
> #
> # No change to .config
> #
>   CC      arch/parisc/kernel/asm-offsets.s
> In file included from ./arch/parisc/include/asm/bitops.h:203,
>                  from ./include/linux/bitops.h:32,
>                  from ./include/linux/kernel.h:12,
>                  from ./arch/parisc/include/asm/bug.h:5,
>                  from ./include/linux/bug.h:5,
>                  from ./include/linux/thread_info.h:12,
>                  from ./include/asm-generic/current.h:5,
>                  from ./arch/parisc/include/generated/asm/current.h:1,
>                  from ./include/linux/sched.h:12,
>                  from arch/parisc/kernel/asm-offsets.c:18:
> ./include/asm-generic/bitops/__fls.h: In function ‘__fls’:
> ./include/asm-generic/bitops/__fls.h:18:21: warning: left shift count >= width of type [-Wshift-count-overflow]
>    18 |  if (!(word & (~0ul << 32))) {
>       |                     ^~
> ./include/asm-generic/bitops/__fls.h:20:8: warning: left shift count >= width of type [-Wshift-count-overflow]
>    20 |   word <<= 32;
>       |        ^~~
> ./include/asm-generic/bitops/__fls.h:23:21: warning: left shift count >= width of type [-Wshift-count-overflow]
>    23 |  if (!(word & (~0ul << (BITS_PER_LONG-16)))) {
>       |                     ^~
> ./include/asm-generic/bitops/__fls.h:27:21: warning: left shift count >= width of type [-Wshift-count-overflow]
>    27 |  if (!(word & (~0ul << (BITS_PER_LONG-8)))) {
>       |                     ^~
> ./include/asm-generic/bitops/__fls.h:31:21: warning: left shift count >= width of type [-Wshift-count-overflow]
>    31 |  if (!(word & (~0ul << (BITS_PER_LONG-4)))) {
>       |                     ^~
> ./include/asm-generic/bitops/__fls.h:35:21: warning: left shift count >= width of type [-Wshift-count-overflow]
>    35 |  if (!(word & (~0ul << (BITS_PER_LONG-2)))) {
>       |                     ^~
> ./include/asm-generic/bitops/__fls.h:39:21: warning: left shift count >= width of type [-Wshift-count-overflow]
>    39 |  if (!(word & (~0ul << (BITS_PER_LONG-1))))
>       |                     ^~
> In file included from ./arch/parisc/include/asm/processor.h:17,
>                  from ./arch/parisc/include/asm/thread_info.h:8,
>                  from ./include/linux/thread_info.h:59,
>                  from ./include/asm-generic/current.h:5,
>                  from ./arch/parisc/include/generated/asm/current.h:1,
>                  from ./include/linux/sched.h:12,
>                  from arch/parisc/kernel/asm-offsets.c:18:
> ./arch/parisc/include/asm/pdc.h: At top level:
> ./arch/parisc/include/asm/pdc.h:75:10: warning: ‘struct pdc_memory_table’ declared inside parameter list will not be visible outside of this definition or declaration
>    75 |   struct pdc_memory_table *tbl, unsigned long entries);
>       |          ^~~~~~~~~~~~~~~~
> ./arch/parisc/include/asm/pdc.h:74:30: warning: ‘struct pdc_memory_table_raddr’ declared inside parameter list will not be visible outside of this definition or declaration
>    74 | int pdc_mem_mem_table(struct pdc_memory_table_raddr *r_addr,
>       |                              ^~~~~~~~~~~~~~~~~~~~~~
> In file included from ././include/linux/compiler_types.h:65,
>                  from <command-line>:
> ./include/linux/smp.h:34:26: error: requested alignment ‘20’ is not a positive power of 2
>    34 |  __aligned(sizeof(struct __call_single_data));
>       |                          ^~~~~~~~~~~~~~~~~~
> ./include/linux/compiler_attributes.h:52:68: note: in definition of macro ‘__aligned’
>    52 | #define __aligned(x)                    __attribute__((__aligned__(x)))
>       |                                                                    ^
> In file included from ./include/linux/mm.h:33,
>                  from ./include/linux/pid_namespace.h:7,
>                  from ./include/linux/ptrace.h:10,
>                  from arch/parisc/kernel/asm-offsets.c:20:
> ./include/linux/pgtable.h: In function ‘pud_index’:
> ./include/linux/pgtable.h:59:18: warning: right shift count >= width of type [-Wshift-count-overflow]
>    59 |  return (address >> PUD_SHIFT) & (PTRS_PER_PUD - 1);
>       |                  ^~
> ./include/linux/pgtable.h: In function ‘pgd_offset_pgd’:
> ./include/linux/pgtable.h:66:29: warning: right shift count >= width of type [-Wshift-count-overflow]
>    66 | #define pgd_index(a)  (((a) >> PGDIR_SHIFT) & (PTRS_PER_PGD - 1))
>       |                             ^~
> ./include/linux/pgtable.h:106:16: note: in expansion of macro ‘pgd_index’
>   106 |  return (pgd + pgd_index(address));
>       |                ^~~~~~~~~
> In file included from ./include/linux/stringhash.h:7,
>                  from ./include/linux/dcache.h:15,
>                  from ./include/linux/fs.h:8,
>                  from ./include/linux/huge_mm.h:8,
>                  from ./include/linux/mm.h:726,
>                  from ./include/linux/pid_namespace.h:7,
>                  from ./include/linux/ptrace.h:10,
>                  from arch/parisc/kernel/asm-offsets.c:20:
> ./include/linux/hash.h: In function ‘hash32_ptr’:
> ./include/linux/hash.h:99:14: warning: right shift count >= width of type [-Wshift-count-overflow]
>    99 |  val ^= (val >> 32);
>       |              ^~
> In file included from arch/parisc/kernel/asm-offsets.c:22:
> arch/parisc/kernel/asm-offsets.c: In function ‘main’:
> arch/parisc/kernel/asm-offsets.c:272:36: warning: right shift count >= width of type [-Wshift-count-overflow]
>   272 |  DEFINE(ASM_PGD_ENTRY, PAGE_OFFSET >> PGDIR_SHIFT);
>       |                                    ^~
> ./include/linux/kbuild.h:6:62: note: in definition of macro ‘DEFINE’
>     6 |  asm volatile("\n.ascii \"->" #sym " %0 " #val "\"" : : "i" (val))
>       |                                                              ^~~
> make[1]: *** [scripts/Makefile.build:117: arch/parisc/kernel/asm-offsets.s] Error 1
> make: *** [Makefile:1232: prepare0] Error 2
>
>
> .config:
> #
> # Automatically generated file; DO NOT EDIT.
> # Linux/parisc 5.13.0-rc4 Kernel Configuration
> #
> CONFIG_CC_VERSION_TEXT="gcc (Gentoo 10.2.0-r5 p6) 10.2.0"
> CONFIG_CC_IS_GCC=y
> CONFIG_GCC_VERSION=100200
> CONFIG_CLANG_VERSION=0
> CONFIG_AS_IS_GNU=y
> CONFIG_AS_VERSION=23502
> CONFIG_LD_IS_BFD=y
> CONFIG_LD_VERSION=23502
> CONFIG_LLD_VERSION=0
> CONFIG_CC_CAN_LINK=y
> CONFIG_CC_CAN_LINK_STATIC=y
> CONFIG_CC_HAS_ASM_GOTO=y
> CONFIG_CC_HAS_ASM_INLINE=y
> CONFIG_IRQ_WORK=y
> CONFIG_BUILDTIME_TABLE_SORT=y
>
> #
> # General setup
> #
> CONFIG_BROKEN_ON_SMP=y
> CONFIG_INIT_ENV_ARG_LIMIT=32
> # CONFIG_COMPILE_TEST is not set
> CONFIG_LOCALVERSION=""
> CONFIG_LOCALVERSION_AUTO=y
> CONFIG_BUILD_SALT=""
> CONFIG_HAVE_KERNEL_GZIP=y
> CONFIG_HAVE_KERNEL_BZIP2=y
> CONFIG_HAVE_KERNEL_LZMA=y
> CONFIG_HAVE_KERNEL_XZ=y
> CONFIG_HAVE_KERNEL_LZO=y
> CONFIG_HAVE_KERNEL_LZ4=y
> # CONFIG_KERNEL_GZIP is not set
> # CONFIG_KERNEL_BZIP2 is not set
> # CONFIG_KERNEL_LZMA is not set
> # CONFIG_KERNEL_XZ is not set
> CONFIG_KERNEL_LZO=y
> # CONFIG_KERNEL_LZ4 is not set
> CONFIG_DEFAULT_INIT=""
> CONFIG_DEFAULT_HOSTNAME="rp2470"
> CONFIG_SWAP=y
> CONFIG_SYSVIPC=y
> CONFIG_SYSVIPC_SYSCTL=y
> CONFIG_POSIX_MQUEUE=y
> CONFIG_POSIX_MQUEUE_SYSCTL=y
> # CONFIG_WATCH_QUEUE is not set
> CONFIG_CROSS_MEMORY_ATTACH=y
> # CONFIG_USELIB is not set
> # CONFIG_AUDIT is not set
> CONFIG_HAVE_ARCH_AUDITSYSCALL=y
>
> #
> # IRQ subsystem
> #
> CONFIG_GENERIC_IRQ_PROBE=y
> # end of IRQ subsystem
>
> CONFIG_LEGACY_TIMER_TICK=y
> CONFIG_BPF=y
>
> #
> # BPF subsystem
> #
> CONFIG_BPF_SYSCALL=y
> # CONFIG_BPF_UNPRIV_DEFAULT_OFF is not set
> # CONFIG_BPF_PRELOAD is not set
> # end of BPF subsystem
>
> CONFIG_PREEMPT_NONE=y
> # CONFIG_PREEMPT_VOLUNTARY is not set
> # CONFIG_PREEMPT is not set
>
> #
> # CPU/Task time and stats accounting
> #
> CONFIG_TICK_CPU_ACCOUNTING=y
> # CONFIG_BSD_PROCESS_ACCT is not set
> # CONFIG_TASKSTATS is not set
> # CONFIG_PSI is not set
> # end of CPU/Task time and stats accounting
>
> #
> # RCU Subsystem
> #
> CONFIG_TINY_RCU=y
> # CONFIG_RCU_EXPERT is not set
> CONFIG_SRCU=y
> CONFIG_TINY_SRCU=y
> CONFIG_TASKS_RCU_GENERIC=y
> CONFIG_TASKS_TRACE_RCU=y
> # end of RCU Subsystem
>
> # CONFIG_IKCONFIG is not set
> # CONFIG_IKHEADERS is not set
> CONFIG_LOG_BUF_SHIFT=17
> CONFIG_PRINTK_SAFE_LOG_BUF_SHIFT=13
> CONFIG_GENERIC_SCHED_CLOCK=y
>
> #
> # Scheduler features
> #
> # end of Scheduler features
>
> CONFIG_CGROUPS=y
> # CONFIG_MEMCG is not set
> # CONFIG_BLK_CGROUP is not set
> # CONFIG_CGROUP_SCHED is not set
> # CONFIG_CGROUP_PIDS is not set
> # CONFIG_CGROUP_RDMA is not set
> # CONFIG_CGROUP_FREEZER is not set
> # CONFIG_CGROUP_HUGETLB is not set
> # CONFIG_CGROUP_DEVICE is not set
> # CONFIG_CGROUP_CPUACCT is not set
> CONFIG_CGROUP_BPF=y
> # CONFIG_CGROUP_MISC is not set
> # CONFIG_CGROUP_DEBUG is not set
> CONFIG_SOCK_CGROUP_DATA=y
> CONFIG_NAMESPACES=y
> CONFIG_UTS_NS=y
> CONFIG_IPC_NS=y
> CONFIG_USER_NS=y
> CONFIG_PID_NS=y
> CONFIG_NET_NS=y
> # CONFIG_CHECKPOINT_RESTORE is not set
> # CONFIG_SCHED_AUTOGROUP is not set
> # CONFIG_SYSFS_DEPRECATED is not set
> # CONFIG_RELAY is not set
> # CONFIG_BLK_DEV_INITRD is not set
> # CONFIG_BOOT_CONFIG is not set
> CONFIG_CC_OPTIMIZE_FOR_PERFORMANCE=y
> # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
> CONFIG_SYSCTL=y
> CONFIG_SYSCTL_EXCEPTION_TRACE=y
> CONFIG_SYSCTL_ARCH_UNALIGN_ALLOW=y
> # CONFIG_EXPERT is not set
> CONFIG_MULTIUSER=y
> CONFIG_SGETMASK_SYSCALL=y
> CONFIG_SYSFS_SYSCALL=y
> CONFIG_FHANDLE=y
> CONFIG_POSIX_TIMERS=y
> CONFIG_PRINTK=y
> CONFIG_BUG=y
> CONFIG_ELF_CORE=y
> CONFIG_BASE_FULL=y
> CONFIG_FUTEX=y
> CONFIG_FUTEX_PI=y
> CONFIG_EPOLL=y
> CONFIG_SIGNALFD=y
> CONFIG_TIMERFD=y
> CONFIG_EVENTFD=y
> CONFIG_SHMEM=y
> CONFIG_AIO=y
> CONFIG_IO_URING=y
> CONFIG_ADVISE_SYSCALLS=y
> CONFIG_MEMBARRIER=y
> CONFIG_KALLSYMS=y
> # CONFIG_KALLSYMS_ALL is not set
> CONFIG_KALLSYMS_BASE_RELATIVE=y
> CONFIG_USERFAULTFD=y
> # CONFIG_EMBEDDED is not set
> CONFIG_HAVE_PERF_EVENTS=y
>
> #
> # Kernel Performance Events And Counters
> #
> # CONFIG_PERF_EVENTS is not set
> # end of Kernel Performance Events And Counters
>
> CONFIG_VM_EVENT_COUNTERS=y
> CONFIG_SLUB_DEBUG=y
> # CONFIG_COMPAT_BRK is not set
> # CONFIG_SLAB is not set
> CONFIG_SLUB=y
> CONFIG_SLAB_MERGE_DEFAULT=y
> # CONFIG_SLAB_FREELIST_RANDOM is not set
> # CONFIG_SLAB_FREELIST_HARDENED is not set
> # CONFIG_SHUFFLE_PAGE_ALLOCATOR is not set
> # CONFIG_PROFILING is not set
> # end of General setup
>
> CONFIG_PARISC=y
> CONFIG_CPU_BIG_ENDIAN=y
> CONFIG_MMU=y
> CONFIG_STACK_GROWSUP=y
> CONFIG_ARCH_DEFCONFIG="arch/parisc/configs/generic-64bit_defconfig"
> CONFIG_GENERIC_BUG=y
> CONFIG_GENERIC_HWEIGHT=y
> CONFIG_GENERIC_CALIBRATE_DELAY=y
> CONFIG_STACKTRACE_SUPPORT=y
> CONFIG_PGTABLE_LEVELS=3
>
> #
> # Processor type and features
> #
> # CONFIG_PA7000 is not set
> # CONFIG_PA7100LC is not set
> # CONFIG_PA7200 is not set
> # CONFIG_PA7300LC is not set
> CONFIG_PA8X00=y
> CONFIG_PA20=y
> CONFIG_PREFETCH=y
> # CONFIG_MLONGCALLS is not set
> CONFIG_64BIT=y
> CONFIG_PARISC_PAGE_SIZE_4KB=y
> CONFIG_PARISC_SELF_EXTRACT=y
> # CONFIG_SMP is not set
> CONFIG_IRQSTACKS=y
> CONFIG_ARCH_SELECT_MEMORY_MODEL=y
> CONFIG_ARCH_SPARSEMEM_ENABLE=y
> CONFIG_ARCH_FLATMEM_ENABLE=y
> CONFIG_ARCH_SPARSEMEM_DEFAULT=y
> # CONFIG_HZ_100 is not set
> CONFIG_HZ_250=y
> # CONFIG_HZ_300 is not set
> # CONFIG_HZ_1000 is not set
> CONFIG_HZ=250
> CONFIG_COMPAT=y
> CONFIG_SYSVIPC_COMPAT=y
> CONFIG_AUDIT_ARCH=y
> # CONFIG_KEXEC is not set
> # CONFIG_KEXEC_FILE is not set
> # end of Processor type and features
>
> #
> # Firmware Drivers
> #
> # CONFIG_FW_CFG_SYSFS is not set
> # CONFIG_GOOGLE_FIRMWARE is not set
>
> #
> # Tegra firmware driver
> #
> # end of Tegra firmware driver
> # end of Firmware Drivers
>
> #
> # Bus options (PCI, PCMCIA, EISA, GSC, ISA)
> #
> # CONFIG_GSC is not set
> CONFIG_PCI_LBA=y
> CONFIG_IOSAPIC=y
> CONFIG_IOMMU_SBA=y
> # end of Bus options (PCI, PCMCIA, EISA, GSC, ISA)
>
> #
> # PA-RISC specific drivers
> #
> CONFIG_SUPERIO=y
> CONFIG_CHASSIS_LCD_LED=y
> CONFIG_PDC_CHASSIS=y
> CONFIG_PDC_CHASSIS_WARN=y
> CONFIG_PDC_STABLE=y
> # end of PA-RISC specific drivers
>
> #
> # General architecture-dependent options
> #
> CONFIG_SET_FS=y
> # CONFIG_KPROBES is not set
> CONFIG_JUMP_LABEL=y
> # CONFIG_STATIC_KEYS_SELFTEST is not set
> CONFIG_HAVE_64BIT_ALIGNED_ACCESS=y
> CONFIG_HAVE_KPROBES=y
> CONFIG_HAVE_KRETPROBES=y
> CONFIG_HAVE_KPROBES_ON_FTRACE=y
> CONFIG_HAVE_ARCH_TRACEHOOK=y
> CONFIG_GENERIC_SMP_IDLE_THREAD=y
> CONFIG_HAVE_REGS_AND_STACK_ACCESS_API=y
> CONFIG_HAVE_ARCH_JUMP_LABEL=y
> CONFIG_HAVE_ARCH_JUMP_LABEL_RELATIVE=y
> CONFIG_ARCH_HAVE_NMI_SAFE_CMPXCHG=y
> CONFIG_HAVE_ARCH_SECCOMP=y
> CONFIG_HAVE_ARCH_SECCOMP_FILTER=y
> CONFIG_SECCOMP=y
> CONFIG_SECCOMP_FILTER=y
> # CONFIG_SECCOMP_CACHE_DEBUG is not set
> CONFIG_LTO_NONE=y
> CONFIG_HAVE_VIRT_CPU_ACCOUNTING_GEN=y
> CONFIG_HAVE_MOD_ARCH_SPECIFIC=y
> CONFIG_MODULES_USE_ELF_RELA=y
> CONFIG_HAVE_SOFTIRQ_ON_OWN_STACK=y
> CONFIG_ARCH_HAS_ELF_RANDOMIZE=y
> CONFIG_HAVE_ARCH_HASH=y
> CONFIG_CLONE_BACKWARDS=y
> CONFIG_COMPAT_32BIT_TIME=y
> CONFIG_CPU_NO_EFFICIENT_FFS=y
> CONFIG_ARCH_HAS_STRICT_KERNEL_RWX=y
> CONFIG_STRICT_KERNEL_RWX=y
>
> #
> # GCOV-based kernel profiling
> #
> # end of GCOV-based kernel profiling
> # end of General architecture-dependent options
>
> CONFIG_RT_MUTEXES=y
> CONFIG_BASE_SMALL=0
> CONFIG_MODULES=y
> # CONFIG_MODULE_FORCE_LOAD is not set
> CONFIG_MODULE_UNLOAD=y
> # CONFIG_MODULE_FORCE_UNLOAD is not set
> # CONFIG_MODVERSIONS is not set
> # CONFIG_MODULE_SRCVERSION_ALL is not set
> # CONFIG_MODULE_SIG is not set
> CONFIG_MODULE_COMPRESS_NONE=y
> # CONFIG_MODULE_COMPRESS_GZIP is not set
> # CONFIG_MODULE_COMPRESS_XZ is not set
> # CONFIG_MODULE_COMPRESS_ZSTD is not set
> # CONFIG_MODULE_ALLOW_MISSING_NAMESPACE_IMPORTS is not set
> CONFIG_MODPROBE_PATH="/sbin/modprobe"
> CONFIG_INIT_ALL_POSSIBLE=y
> CONFIG_BLOCK=y
> CONFIG_BLK_SCSI_REQUEST=y
> CONFIG_BLK_DEV_BSG=y
> # CONFIG_BLK_DEV_BSGLIB is not set
> # CONFIG_BLK_DEV_INTEGRITY is not set
> # CONFIG_BLK_DEV_ZONED is not set
> # CONFIG_BLK_CMDLINE_PARSER is not set
> # CONFIG_BLK_WBT is not set
> # CONFIG_BLK_SED_OPAL is not set
> # CONFIG_BLK_INLINE_ENCRYPTION is not set
>
> #
> # Partition Types
> #
> # CONFIG_PARTITION_ADVANCED is not set
> CONFIG_MSDOS_PARTITION=y
> CONFIG_EFI_PARTITION=y
> # end of Partition Types
>
> CONFIG_BLOCK_COMPAT=y
> CONFIG_BLK_MQ_PCI=y
>
> #
> # IO Schedulers
> #
> CONFIG_MQ_IOSCHED_DEADLINE=m
> # CONFIG_MQ_IOSCHED_KYBER is not set
> # CONFIG_IOSCHED_BFQ is not set
> # end of IO Schedulers
>
> CONFIG_INLINE_SPIN_UNLOCK_IRQ=y
> CONFIG_INLINE_READ_UNLOCK=y
> CONFIG_INLINE_READ_UNLOCK_IRQ=y
> CONFIG_INLINE_WRITE_UNLOCK=y
> CONFIG_INLINE_WRITE_UNLOCK_IRQ=y
>
> #
> # Executable file formats
> #
> CONFIG_BINFMT_ELF=y
> CONFIG_COMPAT_BINFMT_ELF=y
> CONFIG_ELFCORE=y
> CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS=y
> CONFIG_BINFMT_SCRIPT=y
> CONFIG_BINFMT_MISC=y
> CONFIG_COREDUMP=y
> # end of Executable file formats
>
> #
> # Memory Management options
> #
> CONFIG_SELECT_MEMORY_MODEL=y
> # CONFIG_FLATMEM_MANUAL is not set
> CONFIG_SPARSEMEM_MANUAL=y
> CONFIG_SPARSEMEM=y
> CONFIG_SPARSEMEM_EXTREME=y
> CONFIG_SPLIT_PTLOCK_CPUS=4
> # CONFIG_COMPACTION is not set
> # CONFIG_PAGE_REPORTING is not set
> CONFIG_PHYS_ADDR_T_64BIT=y
> CONFIG_VIRT_TO_BUS=y
> # CONFIG_KSM is not set
> CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
> CONFIG_ARCH_SUPPORTS_MEMORY_FAILURE=y
> # CONFIG_MEMORY_FAILURE is not set
> CONFIG_NEED_PER_CPU_KM=y
> # CONFIG_CLEANCACHE is not set
> # CONFIG_FRONTSWAP is not set
> # CONFIG_CMA is not set
> # CONFIG_ZPOOL is not set
> # CONFIG_ZBUD is not set
> # CONFIG_ZSMALLOC is not set
> CONFIG_STACK_MAX_DEFAULT_SIZE_MB=100
> # CONFIG_IDLE_PAGE_TRACKING is not set
> # CONFIG_PERCPU_STATS is not set
>
> #
> # GUP_TEST needs to have DEBUG_FS enabled
> #
> # end of Memory Management options
>
> CONFIG_NET=y
> CONFIG_SKB_EXTENSIONS=y
>
> #
> # Networking options
> #
> CONFIG_PACKET=y
> CONFIG_PACKET_DIAG=m
> CONFIG_UNIX=y
> CONFIG_UNIX_SCM=y
> CONFIG_UNIX_DIAG=m
> # CONFIG_TLS is not set
> CONFIG_XFRM=y
> # CONFIG_XFRM_USER is not set
> # CONFIG_XFRM_INTERFACE is not set
> # CONFIG_XFRM_SUB_POLICY is not set
> # CONFIG_XFRM_MIGRATE is not set
> # CONFIG_XFRM_STATISTICS is not set
> # CONFIG_NET_KEY is not set
> # CONFIG_XDP_SOCKETS is not set
> CONFIG_INET=y
> CONFIG_IP_MULTICAST=y
> # CONFIG_IP_ADVANCED_ROUTER is not set
> # CONFIG_IP_PNP is not set
> # CONFIG_NET_IPIP is not set
> # CONFIG_NET_IPGRE_DEMUX is not set
> CONFIG_NET_IP_TUNNEL=m
> # CONFIG_IP_MROUTE is not set
> CONFIG_SYN_COOKIES=y
> # CONFIG_NET_IPVTI is not set
> # CONFIG_NET_FOU is not set
> # CONFIG_NET_FOU_IP_TUNNELS is not set
> # CONFIG_INET_AH is not set
> # CONFIG_INET_ESP is not set
> # CONFIG_INET_IPCOMP is not set
> CONFIG_INET_TUNNEL=m
> CONFIG_INET_DIAG=m
> CONFIG_INET_TCP_DIAG=m
> CONFIG_INET_UDP_DIAG=m
> CONFIG_INET_RAW_DIAG=m
> # CONFIG_INET_DIAG_DESTROY is not set
> # CONFIG_TCP_CONG_ADVANCED is not set
> CONFIG_TCP_CONG_CUBIC=y
> CONFIG_DEFAULT_TCP_CONG="cubic"
> # CONFIG_TCP_MD5SIG is not set
> CONFIG_IPV6=y
> CONFIG_IPV6_ROUTER_PREF=y
> CONFIG_IPV6_ROUTE_INFO=y
> CONFIG_IPV6_OPTIMISTIC_DAD=y
> # CONFIG_INET6_AH is not set
> # CONFIG_INET6_ESP is not set
> # CONFIG_INET6_IPCOMP is not set
> CONFIG_IPV6_MIP6=m
> CONFIG_INET6_TUNNEL=m
> # CONFIG_IPV6_VTI is not set
> CONFIG_IPV6_SIT=m
> CONFIG_IPV6_SIT_6RD=y
> CONFIG_IPV6_NDISC_NODETYPE=y
> CONFIG_IPV6_TUNNEL=m
> # CONFIG_IPV6_MULTIPLE_TABLES is not set
> # CONFIG_IPV6_MROUTE is not set
> # CONFIG_IPV6_SEG6_LWTUNNEL is not set
> # CONFIG_IPV6_SEG6_HMAC is not set
> # CONFIG_IPV6_RPL_LWTUNNEL is not set
> # CONFIG_MPTCP is not set
> # CONFIG_NETWORK_SECMARK is not set
> # CONFIG_NETWORK_PHY_TIMESTAMPING is not set
> # CONFIG_NETFILTER is not set
> # CONFIG_BPFILTER is not set
> # CONFIG_IP_DCCP is not set
> # CONFIG_IP_SCTP is not set
> # CONFIG_RDS is not set
> # CONFIG_TIPC is not set
> # CONFIG_ATM is not set
> # CONFIG_L2TP is not set
> # CONFIG_BRIDGE is not set
> # CONFIG_NET_DSA is not set
> # CONFIG_VLAN_8021Q is not set
> # CONFIG_DECNET is not set
> # CONFIG_LLC2 is not set
> # CONFIG_ATALK is not set
> # CONFIG_X25 is not set
> # CONFIG_LAPB is not set
> # CONFIG_PHONET is not set
> # CONFIG_6LOWPAN is not set
> # CONFIG_IEEE802154 is not set
> # CONFIG_NET_SCHED is not set
> # CONFIG_DCB is not set
> # CONFIG_BATMAN_ADV is not set
> # CONFIG_OPENVSWITCH is not set
> # CONFIG_VSOCKETS is not set
> CONFIG_NETLINK_DIAG=m
> # CONFIG_MPLS is not set
> # CONFIG_NET_NSH is not set
> # CONFIG_HSR is not set
> # CONFIG_NET_SWITCHDEV is not set
> # CONFIG_NET_L3_MASTER_DEV is not set
> # CONFIG_QRTR is not set
> # CONFIG_NET_NCSI is not set
> # CONFIG_CGROUP_NET_PRIO is not set
> # CONFIG_CGROUP_NET_CLASSID is not set
> CONFIG_NET_RX_BUSY_POLL=y
> CONFIG_BQL=y
> CONFIG_BPF_STREAM_PARSER=y
>
> #
> # Network testing
> #
> # CONFIG_NET_PKTGEN is not set
> # end of Network testing
> # end of Networking options
>
> # CONFIG_HAMRADIO is not set
> # CONFIG_CAN is not set
> # CONFIG_BT is not set
> # CONFIG_AF_RXRPC is not set
> # CONFIG_AF_KCM is not set
> CONFIG_STREAM_PARSER=y
> # CONFIG_WIRELESS is not set
> # CONFIG_RFKILL is not set
> # CONFIG_NET_9P is not set
> # CONFIG_CAIF is not set
> # CONFIG_CEPH_LIB is not set
> # CONFIG_NFC is not set
> # CONFIG_PSAMPLE is not set
> # CONFIG_NET_IFE is not set
> # CONFIG_LWTUNNEL is not set
> CONFIG_DST_CACHE=y
> CONFIG_GRO_CELLS=y
> CONFIG_NET_SOCK_MSG=y
> # CONFIG_FAILOVER is not set
> CONFIG_ETHTOOL_NETLINK=y
>
> #
> # Device Drivers
> #
> CONFIG_HAVE_PCI=y
> CONFIG_PCI=y
> # CONFIG_PCIEPORTBUS is not set
> CONFIG_PCIEASPM=y
> CONFIG_PCIEASPM_DEFAULT=y
> # CONFIG_PCIEASPM_POWERSAVE is not set
> # CONFIG_PCIEASPM_POWER_SUPERSAVE is not set
> # CONFIG_PCIEASPM_PERFORMANCE is not set
> # CONFIG_PCIE_PTM is not set
> # CONFIG_PCI_MSI is not set
> CONFIG_PCI_QUIRKS=y
> # CONFIG_PCI_DEBUG is not set
> # CONFIG_PCI_STUB is not set
> # CONFIG_PCI_IOV is not set
> # CONFIG_PCI_PRI is not set
> # CONFIG_PCI_PASID is not set
> # CONFIG_HOTPLUG_PCI is not set
>
> #
> # PCI controller drivers
> #
>
> #
> # DesignWare PCI Core Support
> #
> # end of DesignWare PCI Core Support
>
> #
> # Mobiveil PCIe Core Support
> #
> # end of Mobiveil PCIe Core Support
>
> #
> # Cadence PCIe controllers support
> #
> # end of Cadence PCIe controllers support
> # end of PCI controller drivers
>
> #
> # PCI Endpoint
> #
> # CONFIG_PCI_ENDPOINT is not set
> # end of PCI Endpoint
>
> #
> # PCI switch controller drivers
> #
> # CONFIG_PCI_SW_SWITCHTEC is not set
> # end of PCI switch controller drivers
>
> # CONFIG_CXL_BUS is not set
> # CONFIG_PCCARD is not set
> # CONFIG_RAPIDIO is not set
>
> #
> # Generic Driver Options
> #
> # CONFIG_UEVENT_HELPER is not set
> CONFIG_DEVTMPFS=y
> CONFIG_DEVTMPFS_MOUNT=y
> CONFIG_STANDALONE=y
> CONFIG_PREVENT_FIRMWARE_BUILD=y
>
> #
> # Firmware loader
> #
> CONFIG_FW_LOADER=y
> CONFIG_EXTRA_FIRMWARE=""
> # CONFIG_FW_LOADER_USER_HELPER is not set
> # CONFIG_FW_LOADER_COMPRESS is not set
> # end of Firmware loader
>
> CONFIG_ALLOW_DEV_COREDUMP=y
> # CONFIG_DEBUG_DRIVER is not set
> # CONFIG_DEBUG_DEVRES is not set
> # CONFIG_DEBUG_TEST_DRIVER_REMOVE is not set
> # CONFIG_TEST_ASYNC_DRIVER_PROBE is not set
> CONFIG_GENERIC_CPU_DEVICES=y
> # end of Generic Driver Options
>
> #
> # Bus devices
> #
> # CONFIG_MHI_BUS is not set
> # end of Bus devices
>
> # CONFIG_CONNECTOR is not set
> # CONFIG_GNSS is not set
> # CONFIG_MTD is not set
> # CONFIG_OF is not set
> CONFIG_ARCH_MIGHT_HAVE_PC_PARPORT=y
> # CONFIG_PARPORT is not set
> CONFIG_BLK_DEV=y
> # CONFIG_BLK_DEV_NULL_BLK is not set
> CONFIG_CDROM=m
> # CONFIG_BLK_DEV_PCIESSD_MTIP32XX is not set
> CONFIG_BLK_DEV_LOOP=m
> CONFIG_BLK_DEV_LOOP_MIN_COUNT=8
> # CONFIG_BLK_DEV_CRYPTOLOOP is not set
> # CONFIG_BLK_DEV_DRBD is not set
> # CONFIG_BLK_DEV_NBD is not set
> # CONFIG_BLK_DEV_SX8 is not set
> # CONFIG_BLK_DEV_RAM is not set
> # CONFIG_CDROM_PKTCDVD is not set
> # CONFIG_ATA_OVER_ETH is not set
> # CONFIG_BLK_DEV_RBD is not set
> # CONFIG_BLK_DEV_RSXX is not set
>
> #
> # NVME Support
> #
> # CONFIG_BLK_DEV_NVME is not set
> # CONFIG_NVME_FC is not set
> # CONFIG_NVME_TCP is not set
> # end of NVME Support
>
> #
> # Misc devices
> #
> # CONFIG_DUMMY_IRQ is not set
> # CONFIG_PHANTOM is not set
> # CONFIG_TIFM_CORE is not set
> # CONFIG_ENCLOSURE_SERVICES is not set
> # CONFIG_HP_ILO is not set
> # CONFIG_SRAM is not set
> # CONFIG_DW_XDATA_PCIE is not set
> # CONFIG_PCI_ENDPOINT_TEST is not set
> # CONFIG_XILINX_SDFEC is not set
> # CONFIG_C2PORT is not set
>
> #
> # EEPROM support
> #
> # CONFIG_EEPROM_93CX6 is not set
> # end of EEPROM support
>
> # CONFIG_CB710_CORE is not set
>
> #
> # Texas Instruments shared transport line discipline
> #
> # end of Texas Instruments shared transport line discipline
>
> #
> # Altera FPGA firmware download module (requires I2C)
> #
> # CONFIG_GENWQE is not set
> # CONFIG_ECHO is not set
> # CONFIG_MISC_ALCOR_PCI is not set
> # CONFIG_MISC_RTSX_PCI is not set
> # CONFIG_HABANA_AI is not set
> # CONFIG_PVPANIC is not set
> # end of Misc devices
>
> CONFIG_HAVE_IDE=y
> # CONFIG_IDE is not set
>
> #
> # SCSI device support
> #
> CONFIG_SCSI_MOD=y
> # CONFIG_RAID_ATTRS is not set
> CONFIG_SCSI=y
> CONFIG_SCSI_DMA=y
> # CONFIG_SCSI_PROC_FS is not set
>
> #
> # SCSI support type (disk, tape, CD-ROM)
> #
> CONFIG_BLK_DEV_SD=y
> CONFIG_CHR_DEV_ST=m
> CONFIG_BLK_DEV_SR=m
> CONFIG_CHR_DEV_SG=y
> CONFIG_CHR_DEV_SCH=m
> # CONFIG_SCSI_CONSTANTS is not set
> # CONFIG_SCSI_LOGGING is not set
> CONFIG_SCSI_SCAN_ASYNC=y
>
> #
> # SCSI Transports
> #
> CONFIG_SCSI_SPI_ATTRS=y
> # CONFIG_SCSI_FC_ATTRS is not set
> # CONFIG_SCSI_ISCSI_ATTRS is not set
> # CONFIG_SCSI_SAS_ATTRS is not set
> # CONFIG_SCSI_SAS_LIBSAS is not set
> # CONFIG_SCSI_SRP_ATTRS is not set
> # end of SCSI Transports
>
> CONFIG_SCSI_LOWLEVEL=y
> # CONFIG_ISCSI_TCP is not set
> # CONFIG_ISCSI_BOOT_SYSFS is not set
> # CONFIG_SCSI_CXGB3_ISCSI is not set
> # CONFIG_SCSI_CXGB4_ISCSI is not set
> # CONFIG_SCSI_BNX2_ISCSI is not set
> # CONFIG_BE2ISCSI is not set
> # CONFIG_BLK_DEV_3W_XXXX_RAID is not set
> # CONFIG_SCSI_HPSA is not set
> # CONFIG_SCSI_3W_9XXX is not set
> # CONFIG_SCSI_3W_SAS is not set
> # CONFIG_SCSI_ACARD is not set
> # CONFIG_SCSI_AACRAID is not set
> CONFIG_SCSI_AIC7XXX=m
> CONFIG_AIC7XXX_CMDS_PER_DEVICE=32
> CONFIG_AIC7XXX_RESET_DELAY_MS=5000
> CONFIG_AIC7XXX_DEBUG_ENABLE=y
> CONFIG_AIC7XXX_DEBUG_MASK=0
> CONFIG_AIC7XXX_REG_PRETTY_PRINT=y
> # CONFIG_SCSI_AIC79XX is not set
> # CONFIG_SCSI_AIC94XX is not set
> # CONFIG_SCSI_MVSAS is not set
> # CONFIG_SCSI_MVUMI is not set
> # CONFIG_SCSI_DPT_I2O is not set
> # CONFIG_SCSI_ADVANSYS is not set
> # CONFIG_SCSI_ARCMSR is not set
> # CONFIG_SCSI_ESAS2R is not set
> # CONFIG_MEGARAID_NEWGEN is not set
> # CONFIG_MEGARAID_LEGACY is not set
> # CONFIG_MEGARAID_SAS is not set
> # CONFIG_SCSI_MPT3SAS is not set
> # CONFIG_SCSI_MPT2SAS is not set
> # CONFIG_SCSI_SMARTPQI is not set
> # CONFIG_SCSI_UFSHCD is not set
> # CONFIG_SCSI_HPTIOP is not set
> # CONFIG_SCSI_BUSLOGIC is not set
> # CONFIG_SCSI_MYRB is not set
> # CONFIG_SCSI_SNIC is not set
> # CONFIG_SCSI_DMX3191D is not set
> # CONFIG_SCSI_FDOMAIN_PCI is not set
> # CONFIG_SCSI_IPS is not set
> # CONFIG_SCSI_INITIO is not set
> # CONFIG_SCSI_INIA100 is not set
> # CONFIG_SCSI_STEX is not set
> CONFIG_SCSI_SYM53C8XX_2=y
> CONFIG_SCSI_SYM53C8XX_DMA_ADDRESSING_MODE=1
> CONFIG_SCSI_SYM53C8XX_DEFAULT_TAGS=16
> CONFIG_SCSI_SYM53C8XX_MAX_TAGS=64
> CONFIG_SCSI_SYM53C8XX_MMIO=y
> # CONFIG_SCSI_QLOGIC_1280 is not set
> # CONFIG_SCSI_QLA_ISCSI is not set
> # CONFIG_SCSI_DC395x is not set
> # CONFIG_SCSI_AM53C974 is not set
> # CONFIG_SCSI_WD719X is not set
> # CONFIG_SCSI_DEBUG is not set
> # CONFIG_SCSI_PMCRAID is not set
> # CONFIG_SCSI_PM8001 is not set
> # CONFIG_SCSI_DH is not set
> # end of SCSI device support
>
> # CONFIG_ATA is not set
> # CONFIG_MD is not set
> # CONFIG_TARGET_CORE is not set
> CONFIG_FUSION=y
> CONFIG_FUSION_SPI=m
> # CONFIG_FUSION_SAS is not set
> CONFIG_FUSION_MAX_SGE=128
> CONFIG_FUSION_CTL=m
> # CONFIG_FUSION_LOGGING is not set
>
> #
> # IEEE 1394 (FireWire) support
> #
> # CONFIG_FIREWIRE is not set
> # CONFIG_FIREWIRE_NOSY is not set
> # end of IEEE 1394 (FireWire) support
>
> CONFIG_NETDEVICES=y
> CONFIG_NET_CORE=y
> # CONFIG_BONDING is not set
> # CONFIG_DUMMY is not set
> # CONFIG_WIREGUARD is not set
> # CONFIG_EQUALIZER is not set
> # CONFIG_NET_FC is not set
> # CONFIG_NET_TEAM is not set
> # CONFIG_MACVLAN is not set
> # CONFIG_IPVLAN is not set
> # CONFIG_VXLAN is not set
> # CONFIG_GENEVE is not set
> # CONFIG_BAREUDP is not set
> # CONFIG_GTP is not set
> # CONFIG_MACSEC is not set
> CONFIG_NETCONSOLE=y
> CONFIG_NETPOLL=y
> CONFIG_NET_POLL_CONTROLLER=y
> CONFIG_TUN=m
> # CONFIG_TUN_VNET_CROSS_LE is not set
> # CONFIG_VETH is not set
> # CONFIG_NLMON is not set
> # CONFIG_ARCNET is not set
> CONFIG_ETHERNET=y
> # CONFIG_NET_VENDOR_3COM is not set
> # CONFIG_NET_VENDOR_ADAPTEC is not set
> # CONFIG_NET_VENDOR_AGERE is not set
> # CONFIG_NET_VENDOR_ALACRITECH is not set
> # CONFIG_NET_VENDOR_ALTEON is not set
> # CONFIG_ALTERA_TSE is not set
> # CONFIG_NET_VENDOR_AMAZON is not set
> # CONFIG_NET_VENDOR_AMD is not set
> # CONFIG_NET_VENDOR_AQUANTIA is not set
> # CONFIG_NET_VENDOR_ARC is not set
> # CONFIG_NET_VENDOR_ATHEROS is not set
> # CONFIG_NET_VENDOR_BROADCOM is not set
> # CONFIG_NET_VENDOR_BROCADE is not set
> # CONFIG_NET_VENDOR_CADENCE is not set
> # CONFIG_NET_VENDOR_CAVIUM is not set
> # CONFIG_NET_VENDOR_CHELSIO is not set
> # CONFIG_NET_VENDOR_CISCO is not set
> # CONFIG_NET_VENDOR_CORTINA is not set
> # CONFIG_DNET is not set
> CONFIG_NET_VENDOR_DEC=y
> CONFIG_NET_TULIP=y
> # CONFIG_DE2104X is not set
> CONFIG_TULIP=y
> CONFIG_TULIP_MWI=y
> CONFIG_TULIP_MMIO=y
> CONFIG_TULIP_NAPI=y
> CONFIG_TULIP_NAPI_HW_MITIGATION=y
> # CONFIG_DE4X5 is not set
> # CONFIG_WINBOND_840 is not set
> # CONFIG_DM9102 is not set
> # CONFIG_ULI526X is not set
> # CONFIG_NET_VENDOR_DLINK is not set
> # CONFIG_NET_VENDOR_EMULEX is not set
> # CONFIG_NET_VENDOR_EZCHIP is not set
> # CONFIG_NET_VENDOR_GOOGLE is not set
> # CONFIG_NET_VENDOR_HUAWEI is not set
> # CONFIG_NET_VENDOR_INTEL is not set
> # CONFIG_NET_VENDOR_MICROSOFT is not set
> # CONFIG_JME is not set
> # CONFIG_NET_VENDOR_MARVELL is not set
> # CONFIG_NET_VENDOR_MELLANOX is not set
> # CONFIG_NET_VENDOR_MICREL is not set
> # CONFIG_NET_VENDOR_MICROCHIP is not set
> # CONFIG_NET_VENDOR_MICROSEMI is not set
> # CONFIG_NET_VENDOR_MYRI is not set
> # CONFIG_FEALNX is not set
> # CONFIG_NET_VENDOR_NATSEMI is not set
> # CONFIG_NET_VENDOR_NETERION is not set
> # CONFIG_NET_VENDOR_NETRONOME is not set
> # CONFIG_NET_VENDOR_NI is not set
> # CONFIG_NET_VENDOR_NVIDIA is not set
> # CONFIG_NET_VENDOR_OKI is not set
> # CONFIG_ETHOC is not set
> # CONFIG_NET_VENDOR_PACKET_ENGINES is not set
> # CONFIG_NET_VENDOR_PENSANDO is not set
> # CONFIG_NET_VENDOR_QLOGIC is not set
> # CONFIG_NET_VENDOR_QUALCOMM is not set
> # CONFIG_NET_VENDOR_RDC is not set
> # CONFIG_NET_VENDOR_REALTEK is not set
> # CONFIG_NET_VENDOR_RENESAS is not set
> # CONFIG_NET_VENDOR_ROCKER is not set
> # CONFIG_NET_VENDOR_SAMSUNG is not set
> # CONFIG_NET_VENDOR_SEEQ is not set
> # CONFIG_NET_VENDOR_SOLARFLARE is not set
> # CONFIG_NET_VENDOR_SILAN is not set
> # CONFIG_NET_VENDOR_SIS is not set
> # CONFIG_NET_VENDOR_SMSC is not set
> # CONFIG_NET_VENDOR_SOCIONEXT is not set
> # CONFIG_NET_VENDOR_STMICRO is not set
> # CONFIG_NET_VENDOR_SUN is not set
> # CONFIG_NET_VENDOR_SYNOPSYS is not set
> # CONFIG_NET_VENDOR_TEHUTI is not set
> # CONFIG_NET_VENDOR_TI is not set
> # CONFIG_NET_VENDOR_VIA is not set
> # CONFIG_NET_VENDOR_WIZNET is not set
> # CONFIG_NET_VENDOR_XILINX is not set
> # CONFIG_FDDI is not set
> # CONFIG_HIPPI is not set
> # CONFIG_PHYLIB is not set
> # CONFIG_MDIO_DEVICE is not set
>
> #
> # PCS device drivers
> #
> # end of PCS device drivers
>
> # CONFIG_PPP is not set
> # CONFIG_SLIP is not set
>
> #
> # Host-side USB support is needed for USB Network Adapter support
> #
> # CONFIG_WLAN is not set
> # CONFIG_WAN is not set
> # CONFIG_WWAN is not set
> # CONFIG_VMXNET3 is not set
> # CONFIG_NET_FAILOVER is not set
> # CONFIG_ISDN is not set
> # CONFIG_NVM is not set
>
> #
> # Input device support
> #
> CONFIG_INPUT=y
> # CONFIG_INPUT_FF_MEMLESS is not set
> # CONFIG_INPUT_SPARSEKMAP is not set
> # CONFIG_INPUT_MATRIXKMAP is not set
>
> #
> # Userland interfaces
> #
> # CONFIG_INPUT_MOUSEDEV is not set
> # CONFIG_INPUT_JOYDEV is not set
> # CONFIG_INPUT_EVDEV is not set
> # CONFIG_INPUT_EVBUG is not set
>
> #
> # Input Device Drivers
> #
> # CONFIG_INPUT_KEYBOARD is not set
> # CONFIG_INPUT_MOUSE is not set
> # CONFIG_INPUT_JOYSTICK is not set
> # CONFIG_INPUT_TABLET is not set
> # CONFIG_INPUT_TOUCHSCREEN is not set
> # CONFIG_INPUT_MISC is not set
> # CONFIG_RMI4_CORE is not set
>
> #
> # Hardware I/O ports
> #
> # CONFIG_SERIO is not set
> # CONFIG_GAMEPORT is not set
> # end of Hardware I/O ports
> # end of Input device support
>
> #
> # Character devices
> #
> CONFIG_TTY=y
> CONFIG_VT=y
> CONFIG_CONSOLE_TRANSLATIONS=y
> CONFIG_VT_CONSOLE=y
> CONFIG_HW_CONSOLE=y
> # CONFIG_VT_HW_CONSOLE_BINDING is not set
> CONFIG_UNIX98_PTYS=y
> # CONFIG_LEGACY_PTYS is not set
> # CONFIG_LDISC_AUTOLOAD is not set
>
> #
> # Serial drivers
> #
> CONFIG_SERIAL_EARLYCON=y
> CONFIG_SERIAL_8250=y
> # CONFIG_SERIAL_8250_DEPRECATED_OPTIONS is not set
> # CONFIG_SERIAL_8250_16550A_VARIANTS is not set
> # CONFIG_SERIAL_8250_FINTEK is not set
> CONFIG_SERIAL_8250_CONSOLE=y
> CONFIG_SERIAL_8250_PCI=y
> # CONFIG_SERIAL_8250_EXAR is not set
> CONFIG_SERIAL_8250_NR_UARTS=4
> CONFIG_SERIAL_8250_RUNTIME_UARTS=4
> # CONFIG_SERIAL_8250_EXTENDED is not set
> # CONFIG_SERIAL_8250_DW is not set
> # CONFIG_SERIAL_8250_RT288X is not set
>
> #
> # Non-8250 serial port support
> #
> # CONFIG_SERIAL_UARTLITE is not set
> # CONFIG_PDC_CONSOLE is not set
> CONFIG_SERIAL_CORE=y
> CONFIG_SERIAL_CORE_CONSOLE=y
> # CONFIG_SERIAL_JSM is not set
> # CONFIG_SERIAL_SCCNXP is not set
> # CONFIG_SERIAL_ALTERA_JTAGUART is not set
> # CONFIG_SERIAL_ALTERA_UART is not set
> # CONFIG_SERIAL_ARC is not set
> # CONFIG_SERIAL_RP2 is not set
> # CONFIG_SERIAL_FSL_LPUART is not set
> # CONFIG_SERIAL_FSL_LINFLEXUART is not set
> # end of Serial drivers
>
> # CONFIG_SERIAL_NONSTANDARD is not set
> # CONFIG_N_GSM is not set
> # CONFIG_NOZOMI is not set
> # CONFIG_NULL_TTY is not set
> # CONFIG_SERIAL_DEV_BUS is not set
> # CONFIG_VIRTIO_CONSOLE is not set
> # CONFIG_IPMI_HANDLER is not set
> # CONFIG_HW_RANDOM is not set
> # CONFIG_APPLICOM is not set
> CONFIG_DEVMEM=y
> # CONFIG_RAW_DRIVER is not set
> CONFIG_DEVPORT=y
> # CONFIG_TCG_TPM is not set
> # CONFIG_XILLYBUS is not set
> # end of Character devices
>
> CONFIG_RANDOM_TRUST_BOOTLOADER=y
>
> #
> # I2C support
> #
> # CONFIG_I2C is not set
> # end of I2C support
>
> # CONFIG_I3C is not set
> # CONFIG_SPI is not set
> # CONFIG_SPMI is not set
> # CONFIG_HSI is not set
> # CONFIG_PPS is not set
>
> #
> # PTP clock support
> #
> # CONFIG_PTP_1588_CLOCK is not set
>
> #
> # Enable PHYLIB and NETWORK_PHY_TIMESTAMPING to see the additional clocks.
> #
> # end of PTP clock support
>
> # CONFIG_PINCTRL is not set
> # CONFIG_GPIOLIB is not set
> # CONFIG_W1 is not set
> # CONFIG_POWER_RESET is not set
> # CONFIG_POWER_SUPPLY is not set
> # CONFIG_HWMON is not set
> # CONFIG_THERMAL is not set
> # CONFIG_WATCHDOG is not set
> CONFIG_SSB_POSSIBLE=y
> # CONFIG_SSB is not set
> CONFIG_BCMA_POSSIBLE=y
> # CONFIG_BCMA is not set
>
> #
> # Multifunction device drivers
> #
> # CONFIG_MFD_MADERA is not set
> # CONFIG_HTC_PASIC3 is not set
> # CONFIG_LPC_ICH is not set
> # CONFIG_LPC_SCH is not set
> # CONFIG_MFD_INTEL_PMT is not set
> # CONFIG_MFD_JANZ_CMODIO is not set
> # CONFIG_MFD_KEMPLD is not set
> # CONFIG_MFD_MT6397 is not set
> # CONFIG_MFD_RDC321X is not set
> # CONFIG_MFD_SM501 is not set
> # CONFIG_MFD_SYSCON is not set
> # CONFIG_MFD_TI_AM335X_TSCADC is not set
> # CONFIG_MFD_TQMX86 is not set
> # CONFIG_MFD_VX855 is not set
> # end of Multifunction device drivers
>
> # CONFIG_REGULATOR is not set
> # CONFIG_RC_CORE is not set
> # CONFIG_MEDIA_CEC_SUPPORT is not set
> # CONFIG_MEDIA_SUPPORT is not set
>
> #
> # Graphics support
> #
> # CONFIG_AGP is not set
> CONFIG_VGA_ARB=y
> CONFIG_VGA_ARB_MAX_GPUS=16
> # CONFIG_DRM is not set
>
> #
> # ARM devices
> #
> # end of ARM devices
>
> #
> # Frame buffer Devices
> #
> # CONFIG_FB is not set
> # end of Frame buffer Devices
>
> #
> # Backlight & LCD device support
> #
> # CONFIG_LCD_CLASS_DEVICE is not set
> # CONFIG_BACKLIGHT_CLASS_DEVICE is not set
> # end of Backlight & LCD device support
>
> #
> # Console display driver support
> #
> CONFIG_DUMMY_CONSOLE=y
> CONFIG_DUMMY_CONSOLE_COLUMNS=160
> CONFIG_DUMMY_CONSOLE_ROWS=64
> CONFIG_STI_CONSOLE=y
> # end of Console display driver support
> # end of Graphics support
>
> # CONFIG_SOUND is not set
>
> #
> # HID support
> #
> # CONFIG_HID is not set
> # end of HID support
>
> CONFIG_USB_OHCI_LITTLE_ENDIAN=y
> # CONFIG_USB_SUPPORT is not set
> # CONFIG_MMC is not set
> # CONFIG_MEMSTICK is not set
> # CONFIG_NEW_LEDS is not set
> # CONFIG_ACCESSIBILITY is not set
> # CONFIG_INFINIBAND is not set
> CONFIG_RTC_LIB=y
> CONFIG_RTC_CLASS=y
> CONFIG_RTC_HCTOSYS=y
> CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
> CONFIG_RTC_SYSTOHC=y
> CONFIG_RTC_SYSTOHC_DEVICE="rtc0"
> # CONFIG_RTC_DEBUG is not set
> CONFIG_RTC_NVMEM=y
>
> #
> # RTC interfaces
> #
> CONFIG_RTC_INTF_SYSFS=y
> CONFIG_RTC_INTF_PROC=y
> CONFIG_RTC_INTF_DEV=y
> CONFIG_RTC_INTF_DEV_UIE_EMUL=y
> # CONFIG_RTC_DRV_TEST is not set
>
> #
> # I2C RTC drivers
> #
>
> #
> # SPI RTC drivers
> #
>
> #
> # SPI and I2C RTC drivers
> #
>
> #
> # Platform RTC drivers
> #
> # CONFIG_RTC_DRV_DS1286 is not set
> # CONFIG_RTC_DRV_DS1511 is not set
> # CONFIG_RTC_DRV_DS1553 is not set
> # CONFIG_RTC_DRV_DS1685_FAMILY is not set
> # CONFIG_RTC_DRV_DS1742 is not set
> # CONFIG_RTC_DRV_DS2404 is not set
> # CONFIG_RTC_DRV_STK17TA8 is not set
> # CONFIG_RTC_DRV_M48T86 is not set
> # CONFIG_RTC_DRV_M48T35 is not set
> # CONFIG_RTC_DRV_M48T59 is not set
> # CONFIG_RTC_DRV_MSM6242 is not set
> # CONFIG_RTC_DRV_BQ4802 is not set
> # CONFIG_RTC_DRV_RP5C01 is not set
> # CONFIG_RTC_DRV_V3020 is not set
>
> #
> # on-CPU RTC drivers
> #
> CONFIG_RTC_DRV_GENERIC=y
> # CONFIG_RTC_DRV_FTRTC010 is not set
>
> #
> # HID Sensor RTC drivers
> #
> # CONFIG_RTC_DRV_GOLDFISH is not set
> # CONFIG_DMADEVICES is not set
>
> #
> # DMABUF options
> #
> # CONFIG_SYNC_FILE is not set
> # CONFIG_DMABUF_MOVE_NOTIFY is not set
> # CONFIG_DMABUF_DEBUG is not set
> # CONFIG_DMABUF_HEAPS is not set
> # end of DMABUF options
>
> # CONFIG_AUXDISPLAY is not set
> # CONFIG_UIO is not set
> # CONFIG_VFIO is not set
> # CONFIG_VIRT_DRIVERS is not set
> # CONFIG_VIRTIO_MENU is not set
> # CONFIG_VDPA is not set
> # CONFIG_VHOST_MENU is not set
>
> #
> # Microsoft Hyper-V guest support
> #
> # end of Microsoft Hyper-V guest support
>
> # CONFIG_GREYBUS is not set
> # CONFIG_COMEDI is not set
> # CONFIG_STAGING is not set
> # CONFIG_GOLDFISH is not set
> # CONFIG_COMMON_CLK is not set
> # CONFIG_HWSPINLOCK is not set
> # CONFIG_MAILBOX is not set
> # CONFIG_IOMMU_SUPPORT is not set
>
> #
> # Remoteproc drivers
> #
> # CONFIG_REMOTEPROC is not set
> # end of Remoteproc drivers
>
> #
> # Rpmsg drivers
> #
> # CONFIG_RPMSG_VIRTIO is not set
> # end of Rpmsg drivers
>
> #
> # SOC (System On Chip) specific Drivers
> #
>
> #
> # Amlogic SoC drivers
> #
> # end of Amlogic SoC drivers
>
> #
> # Broadcom SoC drivers
> #
> # end of Broadcom SoC drivers
>
> #
> # NXP/Freescale QorIQ SoC drivers
> #
> # end of NXP/Freescale QorIQ SoC drivers
>
> #
> # i.MX SoC drivers
> #
> # end of i.MX SoC drivers
>
> #
> # Enable LiteX SoC Builder specific drivers
> #
> # end of Enable LiteX SoC Builder specific drivers
>
> #
> # Qualcomm SoC drivers
> #
> # end of Qualcomm SoC drivers
>
> # CONFIG_SOC_TI is not set
>
> #
> # Xilinx SoC drivers
> #
> # end of Xilinx SoC drivers
> # end of SOC (System On Chip) specific Drivers
>
> # CONFIG_PM_DEVFREQ is not set
> # CONFIG_EXTCON is not set
> # CONFIG_MEMORY is not set
> # CONFIG_IIO is not set
> # CONFIG_NTB is not set
> # CONFIG_VME_BUS is not set
> # CONFIG_PWM is not set
>
> #
> # IRQ chip support
> #
> # end of IRQ chip support
>
> # CONFIG_IPACK_BUS is not set
> # CONFIG_RESET_CONTROLLER is not set
>
> #
> # PHY Subsystem
> #
> # CONFIG_GENERIC_PHY is not set
> # CONFIG_BCM_KONA_USB2_PHY is not set
> # CONFIG_PHY_PXA_28NM_HSIC is not set
> # CONFIG_PHY_PXA_28NM_USB2 is not set
> # end of PHY Subsystem
>
> # CONFIG_POWERCAP is not set
> # CONFIG_MCB is not set
> # CONFIG_RAS is not set
> # CONFIG_USB4 is not set
>
> #
> # Android
> #
> # CONFIG_ANDROID is not set
> # end of Android
>
> # CONFIG_LIBNVDIMM is not set
> # CONFIG_DAX is not set
> CONFIG_NVMEM=y
> CONFIG_NVMEM_SYSFS=y
> # CONFIG_NVMEM_RMEM is not set
>
> #
> # HW tracing support
> #
> # CONFIG_STM is not set
> # CONFIG_INTEL_TH is not set
> # end of HW tracing support
>
> # CONFIG_FPGA is not set
> # CONFIG_SIOX is not set
> # CONFIG_SLIMBUS is not set
> # CONFIG_INTERCONNECT is not set
> # CONFIG_COUNTER is not set
> # end of Device Drivers
>
> #
> # File systems
> #
> # CONFIG_VALIDATE_FS_PARSER is not set
> CONFIG_FS_IOMAP=y
> # CONFIG_EXT2_FS is not set
> # CONFIG_EXT3_FS is not set
> CONFIG_EXT4_FS=y
> CONFIG_EXT4_USE_FOR_EXT2=y
> CONFIG_EXT4_FS_POSIX_ACL=y
> CONFIG_EXT4_FS_SECURITY=y
> # CONFIG_EXT4_DEBUG is not set
> CONFIG_JBD2=y
> # CONFIG_JBD2_DEBUG is not set
> CONFIG_FS_MBCACHE=y
> # CONFIG_REISERFS_FS is not set
> # CONFIG_JFS_FS is not set
> # CONFIG_XFS_FS is not set
> # CONFIG_GFS2_FS is not set
> # CONFIG_BTRFS_FS is not set
> # CONFIG_NILFS2_FS is not set
> # CONFIG_F2FS_FS is not set
> # CONFIG_FS_DAX is not set
> CONFIG_FS_POSIX_ACL=y
> CONFIG_EXPORTFS=y
> # CONFIG_EXPORTFS_BLOCK_OPS is not set
> CONFIG_FILE_LOCKING=y
> CONFIG_MANDATORY_FILE_LOCKING=y
> # CONFIG_FS_ENCRYPTION is not set
> # CONFIG_FS_VERITY is not set
> CONFIG_FSNOTIFY=y
> CONFIG_DNOTIFY=y
> CONFIG_INOTIFY_USER=y
> CONFIG_FANOTIFY=y
> # CONFIG_QUOTA is not set
> # CONFIG_AUTOFS4_FS is not set
> CONFIG_AUTOFS_FS=m
> CONFIG_FUSE_FS=m
> CONFIG_CUSE=m
> # CONFIG_VIRTIO_FS is not set
> # CONFIG_OVERLAY_FS is not set
>
> #
> # Caches
> #
> # CONFIG_FSCACHE is not set
> # end of Caches
>
> #
> # CD-ROM/DVD Filesystems
> #
> # CONFIG_ISO9660_FS is not set
> # CONFIG_UDF_FS is not set
> # end of CD-ROM/DVD Filesystems
>
> #
> # DOS/FAT/EXFAT/NT Filesystems
> #
> # CONFIG_MSDOS_FS is not set
> # CONFIG_VFAT_FS is not set
> # CONFIG_EXFAT_FS is not set
> # CONFIG_NTFS_FS is not set
> # end of DOS/FAT/EXFAT/NT Filesystems
>
> #
> # Pseudo filesystems
> #
> CONFIG_PROC_FS=y
> # CONFIG_PROC_KCORE is not set
> CONFIG_PROC_SYSCTL=y
> CONFIG_PROC_PAGE_MONITOR=y
> # CONFIG_PROC_CHILDREN is not set
> CONFIG_KERNFS=y
> CONFIG_SYSFS=y
> CONFIG_TMPFS=y
> CONFIG_TMPFS_POSIX_ACL=y
> CONFIG_TMPFS_XATTR=y
> # CONFIG_TMPFS_INODE64 is not set
> CONFIG_ARCH_SUPPORTS_HUGETLBFS=y
> CONFIG_HUGETLBFS=y
> CONFIG_HUGETLB_PAGE=y
> CONFIG_MEMFD_CREATE=y
> # CONFIG_CONFIGFS_FS is not set
> # end of Pseudo filesystems
>
> # CONFIG_MISC_FILESYSTEMS is not set
> # CONFIG_NETWORK_FILESYSTEMS is not set
> # CONFIG_NLS is not set
> # CONFIG_UNICODE is not set
> CONFIG_IO_WQ=y
> # end of File systems
>
> #
> # Security options
> #
> # CONFIG_KEYS is not set
> # CONFIG_SECURITY_DMESG_RESTRICT is not set
> # CONFIG_SECURITY is not set
> # CONFIG_SECURITYFS is not set
> CONFIG_HAVE_HARDENED_USERCOPY_ALLOCATOR=y
> CONFIG_HARDENED_USERCOPY=y
> CONFIG_HARDENED_USERCOPY_FALLBACK=y
> # CONFIG_STATIC_USERMODEHELPER is not set
> CONFIG_DEFAULT_SECURITY_DAC=y
> CONFIG_LSM="yama,loadpin,safesetid,integrity,selinux,smack,tomoyo,apparmor"
>
> #
> # Kernel hardening options
> #
>
> #
> # Memory initialization
> #
> CONFIG_INIT_STACK_NONE=y
> # CONFIG_INIT_ON_ALLOC_DEFAULT_ON is not set
> # CONFIG_INIT_ON_FREE_DEFAULT_ON is not set
> # end of Memory initialization
> # end of Kernel hardening options
> # end of Security options
>
> CONFIG_CRYPTO=y
>
> #
> # Crypto core or helper
> #
> CONFIG_CRYPTO_ALGAPI=y
> CONFIG_CRYPTO_ALGAPI2=y
> CONFIG_CRYPTO_HASH=y
> CONFIG_CRYPTO_HASH2=y
> # CONFIG_CRYPTO_MANAGER is not set
> # CONFIG_CRYPTO_USER is not set
> CONFIG_CRYPTO_MANAGER_DISABLE_TESTS=y
> # CONFIG_CRYPTO_NULL is not set
> # CONFIG_CRYPTO_CRYPTD is not set
> # CONFIG_CRYPTO_AUTHENC is not set
> # CONFIG_CRYPTO_TEST is not set
>
> #
> # Public-key cryptography
> #
> # CONFIG_CRYPTO_RSA is not set
> # CONFIG_CRYPTO_DH is not set
> # CONFIG_CRYPTO_ECDH is not set
> # CONFIG_CRYPTO_ECDSA is not set
> # CONFIG_CRYPTO_ECRDSA is not set
> # CONFIG_CRYPTO_SM2 is not set
> # CONFIG_CRYPTO_CURVE25519 is not set
>
> #
> # Authenticated Encryption with Associated Data
> #
> # CONFIG_CRYPTO_CCM is not set
> # CONFIG_CRYPTO_GCM is not set
> # CONFIG_CRYPTO_CHACHA20POLY1305 is not set
> # CONFIG_CRYPTO_AEGIS128 is not set
> # CONFIG_CRYPTO_SEQIV is not set
> # CONFIG_CRYPTO_ECHAINIV is not set
>
> #
> # Block modes
> #
> # CONFIG_CRYPTO_CBC is not set
> # CONFIG_CRYPTO_CFB is not set
> # CONFIG_CRYPTO_CTR is not set
> # CONFIG_CRYPTO_CTS is not set
> # CONFIG_CRYPTO_ECB is not set
> # CONFIG_CRYPTO_LRW is not set
> # CONFIG_CRYPTO_OFB is not set
> # CONFIG_CRYPTO_PCBC is not set
> # CONFIG_CRYPTO_XTS is not set
> # CONFIG_CRYPTO_KEYWRAP is not set
> # CONFIG_CRYPTO_ADIANTUM is not set
> # CONFIG_CRYPTO_ESSIV is not set
>
> #
> # Hash modes
> #
> # CONFIG_CRYPTO_CMAC is not set
> # CONFIG_CRYPTO_HMAC is not set
> # CONFIG_CRYPTO_XCBC is not set
> # CONFIG_CRYPTO_VMAC is not set
>
> #
> # Digest
> #
> CONFIG_CRYPTO_CRC32C=y
> # CONFIG_CRYPTO_CRC32 is not set
> # CONFIG_CRYPTO_XXHASH is not set
> # CONFIG_CRYPTO_BLAKE2B is not set
> # CONFIG_CRYPTO_BLAKE2S is not set
> # CONFIG_CRYPTO_CRCT10DIF is not set
> # CONFIG_CRYPTO_GHASH is not set
> # CONFIG_CRYPTO_POLY1305 is not set
> # CONFIG_CRYPTO_MD4 is not set
> # CONFIG_CRYPTO_MD5 is not set
> # CONFIG_CRYPTO_MICHAEL_MIC is not set
> # CONFIG_CRYPTO_RMD160 is not set
> # CONFIG_CRYPTO_SHA1 is not set
> # CONFIG_CRYPTO_SHA256 is not set
> # CONFIG_CRYPTO_SHA512 is not set
> # CONFIG_CRYPTO_SHA3 is not set
> # CONFIG_CRYPTO_SM3 is not set
> # CONFIG_CRYPTO_STREEBOG is not set
> # CONFIG_CRYPTO_WP512 is not set
>
> #
> # Ciphers
> #
> # CONFIG_CRYPTO_AES is not set
> # CONFIG_CRYPTO_AES_TI is not set
> # CONFIG_CRYPTO_BLOWFISH is not set
> # CONFIG_CRYPTO_CAMELLIA is not set
> # CONFIG_CRYPTO_CAST5 is not set
> # CONFIG_CRYPTO_CAST6 is not set
> # CONFIG_CRYPTO_DES is not set
> # CONFIG_CRYPTO_FCRYPT is not set
> # CONFIG_CRYPTO_CHACHA20 is not set
> # CONFIG_CRYPTO_SERPENT is not set
> # CONFIG_CRYPTO_SM4 is not set
> # CONFIG_CRYPTO_TWOFISH is not set
>
> #
> # Compression
> #
> # CONFIG_CRYPTO_DEFLATE is not set
> # CONFIG_CRYPTO_LZO is not set
> # CONFIG_CRYPTO_842 is not set
> # CONFIG_CRYPTO_LZ4 is not set
> # CONFIG_CRYPTO_LZ4HC is not set
> # CONFIG_CRYPTO_ZSTD is not set
>
> #
> # Random Number Generation
> #
> # CONFIG_CRYPTO_ANSI_CPRNG is not set
> # CONFIG_CRYPTO_DRBG_MENU is not set
> # CONFIG_CRYPTO_JITTERENTROPY is not set
> # CONFIG_CRYPTO_USER_API_HASH is not set
> # CONFIG_CRYPTO_USER_API_SKCIPHER is not set
> # CONFIG_CRYPTO_USER_API_RNG is not set
> # CONFIG_CRYPTO_USER_API_AEAD is not set
>
> #
> # Crypto library routines
> #
> # CONFIG_CRYPTO_LIB_BLAKE2S is not set
> # CONFIG_CRYPTO_LIB_CHACHA is not set
> # CONFIG_CRYPTO_LIB_CURVE25519 is not set
> CONFIG_CRYPTO_LIB_POLY1305_RSIZE=1
> # CONFIG_CRYPTO_LIB_POLY1305 is not set
> # CONFIG_CRYPTO_LIB_CHACHA20POLY1305 is not set
> # CONFIG_CRYPTO_HW is not set
>
> #
> # Certificates for signature checking
> #
> # end of Certificates for signature checking
>
> CONFIG_BINARY_PRINTF=y
>
> #
> # Library routines
> #
> # CONFIG_PACKING is not set
> CONFIG_BITREVERSE=y
> CONFIG_GENERIC_STRNCPY_FROM_USER=y
> CONFIG_GENERIC_NET_UTILS=y
> # CONFIG_CORDIC is not set
> # CONFIG_PRIME_NUMBERS is not set
> CONFIG_GENERIC_PCI_IOMAP=y
> # CONFIG_CRC_CCITT is not set
> CONFIG_CRC16=y
> # CONFIG_CRC_T10DIF is not set
> # CONFIG_CRC_ITU_T is not set
> CONFIG_CRC32=y
> # CONFIG_CRC32_SELFTEST is not set
> CONFIG_CRC32_SLICEBY8=y
> # CONFIG_CRC32_SLICEBY4 is not set
> # CONFIG_CRC32_SARWATE is not set
> # CONFIG_CRC32_BIT is not set
> # CONFIG_CRC64 is not set
> # CONFIG_CRC4 is not set
> # CONFIG_CRC7 is not set
> # CONFIG_LIBCRC32C is not set
> # CONFIG_CRC8 is not set
> # CONFIG_RANDOM32_SELFTEST is not set
> # CONFIG_XZ_DEC is not set
> CONFIG_HAS_IOMEM=y
> CONFIG_HAS_IOPORT_MAP=y
> CONFIG_HAS_DMA=y
> CONFIG_DMA_OPS=y
> CONFIG_NEED_SG_DMA_LENGTH=y
> CONFIG_NEED_DMA_MAP_STATE=y
> CONFIG_ARCH_DMA_ADDR_T_64BIT=y
> # CONFIG_DMA_API_DEBUG is not set
> CONFIG_DQL=y
> CONFIG_NLATTR=y
> # CONFIG_IRQ_POLL is not set
> CONFIG_FONT_SUPPORT=y
> # CONFIG_FONTS is not set
> CONFIG_FONT_8x8=y
> CONFIG_FONT_8x16=y
> CONFIG_SG_POOL=y
> CONFIG_ARCH_NO_SG_CHAIN=y
> CONFIG_SBITMAP=y
> # CONFIG_STRING_SELFTEST is not set
> # end of Library routines
>
> CONFIG_GENERIC_LIB_DEVMEM_IS_ALLOWED=y
>
> #
> # Kernel hacking
> #
>
> #
> # printk and dmesg options
> #
> CONFIG_PRINTK_TIME=y
> # CONFIG_PRINTK_CALLER is not set
> CONFIG_CONSOLE_LOGLEVEL_DEFAULT=7
> CONFIG_CONSOLE_LOGLEVEL_QUIET=4
> CONFIG_MESSAGE_LOGLEVEL_DEFAULT=4
> # CONFIG_BOOT_PRINTK_DELAY is not set
> # CONFIG_DYNAMIC_DEBUG is not set
> # CONFIG_DYNAMIC_DEBUG_CORE is not set
> CONFIG_SYMBOLIC_ERRNAME=y
> CONFIG_DEBUG_BUGVERBOSE=y
> # end of printk and dmesg options
>
> #
> # Compile-time checks and compiler options
> #
> # CONFIG_DEBUG_INFO is not set
> CONFIG_FRAME_WARN=1024
> # CONFIG_STRIP_ASM_SYMS is not set
> # CONFIG_READABLE_ASM is not set
> # CONFIG_HEADERS_INSTALL is not set
> # CONFIG_DEBUG_SECTION_MISMATCH is not set
> CONFIG_SECTION_MISMATCH_WARN_ONLY=y
> CONFIG_ARCH_WANT_FRAME_POINTERS=y
> # CONFIG_FRAME_POINTER is not set
> # CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set
> # end of Compile-time checks and compiler options
>
> #
> # Generic Kernel Debugging Instruments
> #
> CONFIG_MAGIC_SYSRQ=y
> CONFIG_MAGIC_SYSRQ_DEFAULT_ENABLE=0xffff
> CONFIG_MAGIC_SYSRQ_SERIAL=y
> CONFIG_MAGIC_SYSRQ_SERIAL_SEQUENCE="s"
> # CONFIG_DEBUG_FS is not set
> CONFIG_HAVE_ARCH_KGDB=y
> # CONFIG_KGDB is not set
> CONFIG_ARCH_HAS_UBSAN_SANITIZE_ALL=y
> # CONFIG_UBSAN is not set
> # end of Generic Kernel Debugging Instruments
>
> CONFIG_DEBUG_KERNEL=y
> CONFIG_DEBUG_MISC=y
>
> #
> # Memory Debugging
> #
> # CONFIG_PAGE_EXTENSION is not set
> # CONFIG_DEBUG_PAGEALLOC is not set
> # CONFIG_PAGE_OWNER is not set
> # CONFIG_PAGE_POISONING is not set
> # CONFIG_DEBUG_RODATA_TEST is not set
> # CONFIG_DEBUG_OBJECTS is not set
> # CONFIG_SLUB_DEBUG_ON is not set
> # CONFIG_SLUB_STATS is not set
> # CONFIG_DEBUG_STACK_USAGE is not set
> # CONFIG_SCHED_STACK_END_CHECK is not set
> # CONFIG_DEBUG_VM is not set
> CONFIG_DEBUG_MEMORY_INIT=y
> CONFIG_HAVE_DEBUG_STACKOVERFLOW=y
> # CONFIG_DEBUG_STACKOVERFLOW is not set
> CONFIG_CC_HAS_WORKING_NOSANITIZE_ADDRESS=y
> # end of Memory Debugging
>
> # CONFIG_DEBUG_SHIRQ is not set
>
> #
> # Debug Oops, Lockups and Hangs
> #
> # CONFIG_PANIC_ON_OOPS is not set
> CONFIG_PANIC_ON_OOPS_VALUE=0
> CONFIG_PANIC_TIMEOUT=0
> CONFIG_LOCKUP_DETECTOR=y
> CONFIG_SOFTLOCKUP_DETECTOR=y
> # CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set
> CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0
> CONFIG_DETECT_HUNG_TASK=y
> CONFIG_DEFAULT_HUNG_TASK_TIMEOUT=120
> # CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set
> CONFIG_BOOTPARAM_HUNG_TASK_PANIC_VALUE=0
> CONFIG_WQ_WATCHDOG=y
> # CONFIG_TEST_LOCKUP is not set
> # end of Debug Oops, Lockups and Hangs
>
> #
> # Scheduler Debugging
> #
> # CONFIG_SCHED_DEBUG is not set
> # CONFIG_SCHEDSTATS is not set
> # end of Scheduler Debugging
>
> # CONFIG_DEBUG_TIMEKEEPING is not set
>
> #
> # Lock Debugging (spinlocks, mutexes, etc...)
> #
> # CONFIG_DEBUG_RT_MUTEXES is not set
> # CONFIG_DEBUG_SPINLOCK is not set
> # CONFIG_DEBUG_MUTEXES is not set
> # CONFIG_DEBUG_RWSEMS is not set
> # CONFIG_DEBUG_ATOMIC_SLEEP is not set
> # CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
> # CONFIG_LOCK_TORTURE_TEST is not set
> # CONFIG_WW_MUTEX_SELFTEST is not set
> # CONFIG_SCF_TORTURE_TEST is not set
> # CONFIG_CSD_LOCK_WAIT_DEBUG is not set
> # end of Lock Debugging (spinlocks, mutexes, etc...)
>
> # CONFIG_DEBUG_IRQFLAGS is not set
> # CONFIG_STACKTRACE is not set
> # CONFIG_WARN_ALL_UNSEEDED_RANDOM is not set
> # CONFIG_DEBUG_KOBJECT is not set
>
> #
> # Debug kernel data structures
> #
> # CONFIG_DEBUG_LIST is not set
> # CONFIG_DEBUG_PLIST is not set
> # CONFIG_DEBUG_SG is not set
> # CONFIG_DEBUG_NOTIFIERS is not set
> # CONFIG_BUG_ON_DATA_CORRUPTION is not set
> # end of Debug kernel data structures
>
> # CONFIG_DEBUG_CREDENTIALS is not set
>
> #
> # RCU Debugging
> #
> # CONFIG_RCU_SCALE_TEST is not set
> # CONFIG_RCU_TORTURE_TEST is not set
> # CONFIG_RCU_REF_SCALE_TEST is not set
> # CONFIG_RCU_TRACE is not set
> # CONFIG_RCU_EQS_DEBUG is not set
> # end of RCU Debugging
>
> # CONFIG_DEBUG_WQ_FORCE_RR_CPU is not set
> # CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
> CONFIG_HAVE_FUNCTION_TRACER=y
> CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
> CONFIG_HAVE_DYNAMIC_FTRACE=y
> CONFIG_HAVE_DYNAMIC_FTRACE_WITH_REGS=y
> CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
> CONFIG_HAVE_SYSCALL_TRACEPOINTS=y
> CONFIG_TRACING_SUPPORT=y
> # CONFIG_FTRACE is not set
> # CONFIG_SAMPLES is not set
> # CONFIG_STRICT_DEVMEM is not set
>
> #
> # parisc Debugging
> #
> CONFIG_TRACE_IRQFLAGS_SUPPORT=y
> # end of parisc Debugging
>
> #
> # Kernel Testing and Coverage
> #
> # CONFIG_KUNIT is not set
> # CONFIG_NOTIFIER_ERROR_INJECTION is not set
> # CONFIG_FAULT_INJECTION is not set
> CONFIG_CC_HAS_SANCOV_TRACE_PC=y
> # CONFIG_RUNTIME_TESTING_MENU is not set
> # end of Kernel Testing and Coverage
> # end of Kernel hacking
>


2021-06-10 02:06:47

by Masahiro Yamada

[permalink] [raw]
Subject: Re: linux-parisc compile failure in current git

Hi Helge,


On Thu, Jun 10, 2021 at 7:50 AM Helge Deller <[email protected]> wrote:
>
> On 6/1/21 12:21 PM, Meelis Roos wrote:
> > Upstream Linux git fails to compile on gentoo hppa - .config below.
> > I have 2 gcc-s as always:
> > $ gcc-config -l
> > [1] hppa2.0-unknown-linux-gnu-9.3.0
> > [2] hppa2.0-unknown-linux-gnu-10.2.0 *
> >
> > [3] hppa64-unknown-linux-gnu-10.2.0 *
>
>
> I see the same issue too, but only when compiling natively on a parisc machine.
> Cross-compiling on a x86 box works nicely.
>
> First I thought it's a problem with setting the "cross_compiling" flag in ./Makefile.
> But that's not sufficient.
>
> On a x86 machine (which builds fine) I get
> SRCARCH=parisc SUBARCH=x86 UTS_MACHINE=parisc
> The arch/parisc/kernel/asm-offsets.c file gets preprocessed via:
> hppa64-linux-gnu-gcc
>
> On a native 32bit parisc machine I have:
> SRCARCH=parisc SUBARCH=parisc UTS_MACHINE=parisc
> Here the arch/parisc/kernel/asm-offsets.c file gets preprocessed via:
> gcc
> Instead here the native hppa64-linux-gnu-gcc (cross compiler) should have been used too, since
> we build a 64-bit hppa kernel (CONFIG_64BIT is set).
> Note, on hppa we don't have an "-m64" compiler flag as on x86.

I see.
hppa is not a bi-arch compiler, in other words,
http- and hppa64- are separate compilers.



>
> Mashahiro, do you maybe have an idea what gets wrong here, or which
> patch has changed the behaviour how the asm-offsets.c file gets preprocessed?


Presumably, commit 23243c1ace9fb4eae2f75e0fe0ece8e3219fb4f3

Prior to that commit, arch/parisc/Makefile was like this:

ifneq ($(SUBARCH),$(UTS_MACHINE))
ifeq ($(CROSS_COMPILE),)
...

Now I understand why arch/parisc/Makefile was written this way.

Reverting the change in arch/parisc/Makefile will restore the original behavior.

But, please keep in mind that there is an issue remaining.

Please see this code:

ifdef CONFIG_64BIT
UTS_MACHINE := parisc64
CHECKFLAGS += -D__LP64__=1
CC_ARCHES = hppa64
LD_BFD := elf64-hppa-linux
else # 32-bit
CC_ARCHES = hppa hppa2.0 hppa1.1
LD_BFD := elf32-hppa-linux
endif


UTS_MACHINE is determined by CONFIG_64BIT.

CONFIG_64BIT is defined only after Kconfig is finished.
When you are trying to configure the .config,
CONFIG_64BIT is not defined yet.
So UTS_MACHINE is always 'parisc'.

As you know, Kconfig files now have a bunch of 'cc-option' syntax
to check the compiler capability in Kconfig time.
Hence, you need to provide a proper compiler in Kconfig time too.

When you build a 64-bit parisc kernel on a 32-bit parisc machine,
Kconfig is passed with CC=gcc since SUBARCH==UTS_MACHINE==parisc.
After Kconfig, CROSS_COMPILE=hppa64-* is set,
and the kernel is built by CC=hppa64-*-gcc.
So, Kconfig evaluated a compiletely different compiler. This is pointless.


There are some options

[option 1]
revert the parisc bit of 23243c1ace9fb4eae2f75e0fe0ece8e3219fb4f3
This will restore the functionality you may want, but
as I said above, Kconfig is doing pointless things.

[option 2]
Stop using cc-cross-prefix, and pass CROSS_COMPILE explicitly.
This is what many architectures including arm, arm64 do.
You need to explicitly pass CROSS_COMPILE=aarch64-linux-gnu- etc.
if you are cross-compiling arm64.

[option 3]
Introduce ARCH=parisc64.

When you are building 64-bit kernel, you can pass ARCH=parisc64

A patch attached. (but not tested much)



--
Best Regards

Masahiro Yamada


Attachments:
parisc64.diff (1.54 kB)

2021-06-10 07:06:59

by Helge Deller

[permalink] [raw]
Subject: Re: linux-parisc compile failure in current git

Hi Masahiro,

On 6/10/21 4:03 AM, Masahiro Yamada wrote:
> On Thu, Jun 10, 2021 at 7:50 AM Helge Deller <[email protected]> wrote:
>>
>> On 6/1/21 12:21 PM, Meelis Roos wrote:
>>> Upstream Linux git fails to compile on gentoo hppa - .config below.
>>> I have 2 gcc-s as always:
>>> $ gcc-config -l
>>> [1] hppa2.0-unknown-linux-gnu-9.3.0
>>> [2] hppa2.0-unknown-linux-gnu-10.2.0 *
>>>
>>> [3] hppa64-unknown-linux-gnu-10.2.0 *
>>
>>
>> I see the same issue too, but only when compiling natively on a parisc machine.
>> Cross-compiling on a x86 box works nicely.
>>
>> First I thought it's a problem with setting the "cross_compiling" flag in ./Makefile.
>> But that's not sufficient.
>>
>> On a x86 machine (which builds fine) I get
>> SRCARCH=parisc SUBARCH=x86 UTS_MACHINE=parisc
>> The arch/parisc/kernel/asm-offsets.c file gets preprocessed via:
>> hppa64-linux-gnu-gcc
>>
>> On a native 32bit parisc machine I have:
>> SRCARCH=parisc SUBARCH=parisc UTS_MACHINE=parisc
>> Here the arch/parisc/kernel/asm-offsets.c file gets preprocessed via:
>> gcc
>> Instead here the native hppa64-linux-gnu-gcc (cross compiler) should have been used too, since
>> we build a 64-bit hppa kernel (CONFIG_64BIT is set).
>> Note, on hppa we don't have an "-m64" compiler flag as on x86.
>
> I see.
> hppa is not a bi-arch compiler, in other words,
> http- and hppa64- are separate compilers.

Yes.

>> Mashahiro, do you maybe have an idea what gets wrong here, or which
>> patch has changed the behaviour how the asm-offsets.c file gets preprocessed?
>
> Presumably, commit 23243c1ace9fb4eae2f75e0fe0ece8e3219fb4f3
>
> Prior to that commit, arch/parisc/Makefile was like this:
>
> ifneq ($(SUBARCH),$(UTS_MACHINE))
> ifeq ($(CROSS_COMPILE),)
> ...
>
> Now I understand why arch/parisc/Makefile was written this way.
>
> Reverting the change in arch/parisc/Makefile will restore the original behavior.

Sadly, reverting this change (23243c1ace9fb4eae2f75e0fe0ece8e3219fb4f3) does not
restore the original behavior.

> But, please keep in mind that there is an issue remaining.
>
> Please see this code:
>
> ifdef CONFIG_64BIT
> UTS_MACHINE := parisc64
> CHECKFLAGS += -D__LP64__=1
> CC_ARCHES = hppa64
> LD_BFD := elf64-hppa-linux
> else # 32-bit
> CC_ARCHES = hppa hppa2.0 hppa1.1
> LD_BFD := elf32-hppa-linux
> endif
>
>
> UTS_MACHINE is determined by CONFIG_64BIT.
>
> CONFIG_64BIT is defined only after Kconfig is finished.
> When you are trying to configure the .config,
> CONFIG_64BIT is not defined yet.
> So UTS_MACHINE is always 'parisc'.

Yes.
See above, but it worked when I had SUBARCH=x86 (when running my laptop).


> As you know, Kconfig files now have a bunch of 'cc-option' syntax
> to check the compiler capability in Kconfig time.
> Hence, you need to provide a proper compiler in Kconfig time too.
>
> When you build a 64-bit parisc kernel on a 32-bit parisc machine,

Please note, that we don't have a 64-bit parisc userspace yet (just kernel).
This means, that all builds on parisc machines are 32bit and do a
cross-compilation to a parisc64 kernel if requested in the .config.

> Kconfig is passed with CC=gcc since SUBARCH==UTS_MACHINE==parisc.
> After Kconfig, CROSS_COMPILE=hppa64-* is set,
> and the kernel is built by CC=hppa64-*-gcc.

Right. That is the old behaviour. Based on the CONFIG_64BIT option
the hppa64 compiler is choosen for CROSS_COMPILE.

> So, Kconfig evaluated a compiletely different compiler. This is pointless.

Yes, probably.


> There are some options
>
> [option 1]
> revert the parisc bit of 23243c1ace9fb4eae2f75e0fe0ece8e3219fb4f3
> This will restore the functionality you may want, but
> as I said above, Kconfig is doing pointless things.

as mentioned above: Doesn't solve the issue.

> [option 2]
> Stop using cc-cross-prefix, and pass CROSS_COMPILE explicitly.
> This is what many architectures including arm, arm64 do.
> You need to explicitly pass CROSS_COMPILE=aarch64-linux-gnu- etc.
> if you are cross-compiling arm64.

Might be an option, but it's not as handy as simply choosing CONFIG_64BIT
and then things are done automatically.

> [option 3]
> Introduce ARCH=parisc64.
>
> When you are building 64-bit kernel, you can pass ARCH=parisc64
> A patch attached. (but not tested much)

Tried it, but doesn't work.
asm-offsets.c is still preprocessed with 32bit compiler (gcc, not hppa20-gcc).

Thanks for your help so far!
If you like I'm happy to give you an account on a hppa64 machine to reproduce yourself.
I'll now try to bisect where it goes wrong. There must be something else before commit 23243c1ace9fb4eae2f75e0fe0ece8e3219fb4f3.

Helge

2021-06-10 15:25:19

by Meelis Roos

[permalink] [raw]
Subject: Re: linux-parisc compile failure in current git



10.06.21 05:03 Masahiro Yamada wrote:
> There are some options
>
> [option 1]
> revert the parisc bit of 23243c1ace9fb4eae2f75e0fe0ece8e3219fb4f3
> This will restore the functionality you may want, but
> as I said above, Kconfig is doing pointless things.
>
> [option 2]
> Stop using cc-cross-prefix, and pass CROSS_COMPILE explicitly.
> This is what many architectures including arm, arm64 do.
> You need to explicitly pass CROSS_COMPILE=aarch64-linux-gnu- etc.
> if you are cross-compiling arm64.
>
> [option 3]
> Introduce ARCH=parisc64.
>
> When you are building 64-bit kernel, you can pass ARCH=parisc64
>
> A patch attached. (but not tested much)

Tested on my gentoo with separate compilers. Compiles fine, boots and has so far compiled 21 paxkageswith no trouble so seems to work - thank you!

--
Meelis Roos <[email protected]>

2021-06-17 02:48:11

by Masahiro Yamada

[permalink] [raw]
Subject: Re: linux-parisc compile failure in current git

On Thu, Jun 10, 2021 at 4:04 PM Helge Deller <[email protected]> wrote:
>
> Hi Masahiro,
>
> On 6/10/21 4:03 AM, Masahiro Yamada wrote:
> > On Thu, Jun 10, 2021 at 7:50 AM Helge Deller <[email protected]> wrote:
> >>
> >> On 6/1/21 12:21 PM, Meelis Roos wrote:
> >>> Upstream Linux git fails to compile on gentoo hppa - .config below.
> >>> I have 2 gcc-s as always:
> >>> $ gcc-config -l
> >>> [1] hppa2.0-unknown-linux-gnu-9.3.0
> >>> [2] hppa2.0-unknown-linux-gnu-10.2.0 *
> >>>
> >>> [3] hppa64-unknown-linux-gnu-10.2.0 *
> >>
> >>
> >> I see the same issue too, but only when compiling natively on a parisc machine.
> >> Cross-compiling on a x86 box works nicely.
> >>
> >> First I thought it's a problem with setting the "cross_compiling" flag in ./Makefile.
> >> But that's not sufficient.
> >>
> >> On a x86 machine (which builds fine) I get
> >> SRCARCH=parisc SUBARCH=x86 UTS_MACHINE=parisc
> >> The arch/parisc/kernel/asm-offsets.c file gets preprocessed via:
> >> hppa64-linux-gnu-gcc
> >>
> >> On a native 32bit parisc machine I have:
> >> SRCARCH=parisc SUBARCH=parisc UTS_MACHINE=parisc
> >> Here the arch/parisc/kernel/asm-offsets.c file gets preprocessed via:
> >> gcc
> >> Instead here the native hppa64-linux-gnu-gcc (cross compiler) should have been used too, since
> >> we build a 64-bit hppa kernel (CONFIG_64BIT is set).
> >> Note, on hppa we don't have an "-m64" compiler flag as on x86.
> >
> > I see.
> > hppa is not a bi-arch compiler, in other words,
> > http- and hppa64- are separate compilers.
>
> Yes.
>
> >> Mashahiro, do you maybe have an idea what gets wrong here, or which
> >> patch has changed the behaviour how the asm-offsets.c file gets preprocessed?
> >
> > Presumably, commit 23243c1ace9fb4eae2f75e0fe0ece8e3219fb4f3
> >
> > Prior to that commit, arch/parisc/Makefile was like this:
> >
> > ifneq ($(SUBARCH),$(UTS_MACHINE))
> > ifeq ($(CROSS_COMPILE),)
> > ...
> >
> > Now I understand why arch/parisc/Makefile was written this way.
> >
> > Reverting the change in arch/parisc/Makefile will restore the original behavior.
>
> Sadly, reverting this change (23243c1ace9fb4eae2f75e0fe0ece8e3219fb4f3) does not
> restore the original behavior.
>
> > But, please keep in mind that there is an issue remaining.
> >
> > Please see this code:
> >
> > ifdef CONFIG_64BIT
> > UTS_MACHINE := parisc64
> > CHECKFLAGS += -D__LP64__=1
> > CC_ARCHES = hppa64
> > LD_BFD := elf64-hppa-linux
> > else # 32-bit
> > CC_ARCHES = hppa hppa2.0 hppa1.1
> > LD_BFD := elf32-hppa-linux
> > endif
> >
> >
> > UTS_MACHINE is determined by CONFIG_64BIT.
> >
> > CONFIG_64BIT is defined only after Kconfig is finished.
> > When you are trying to configure the .config,
> > CONFIG_64BIT is not defined yet.
> > So UTS_MACHINE is always 'parisc'.
>
> Yes.
> See above, but it worked when I had SUBARCH=x86 (when running my laptop).
>
>
> > As you know, Kconfig files now have a bunch of 'cc-option' syntax
> > to check the compiler capability in Kconfig time.
> > Hence, you need to provide a proper compiler in Kconfig time too.
> >
> > When you build a 64-bit parisc kernel on a 32-bit parisc machine,
>
> Please note, that we don't have a 64-bit parisc userspace yet (just kernel).
> This means, that all builds on parisc machines are 32bit and do a
> cross-compilation to a parisc64 kernel if requested in the .config.
>
> > Kconfig is passed with CC=gcc since SUBARCH==UTS_MACHINE==parisc.
> > After Kconfig, CROSS_COMPILE=hppa64-* is set,
> > and the kernel is built by CC=hppa64-*-gcc.
>
> Right. That is the old behaviour. Based on the CONFIG_64BIT option
> the hppa64 compiler is choosen for CROSS_COMPILE.
>
> > So, Kconfig evaluated a compiletely different compiler. This is pointless.
>
> Yes, probably.
>
>
> > There are some options
> >
> > [option 1]
> > revert the parisc bit of 23243c1ace9fb4eae2f75e0fe0ece8e3219fb4f3
> > This will restore the functionality you may want, but
> > as I said above, Kconfig is doing pointless things.
>
> as mentioned above: Doesn't solve the issue.
>
> > [option 2]
> > Stop using cc-cross-prefix, and pass CROSS_COMPILE explicitly.
> > This is what many architectures including arm, arm64 do.
> > You need to explicitly pass CROSS_COMPILE=aarch64-linux-gnu- etc.
> > if you are cross-compiling arm64.
>
> Might be an option, but it's not as handy as simply choosing CONFIG_64BIT
> and then things are done automatically.
>
> > [option 3]
> > Introduce ARCH=parisc64.
> >
> > When you are building 64-bit kernel, you can pass ARCH=parisc64
> > A patch attached. (but not tested much)
>
> Tried it, but doesn't work.
> asm-offsets.c is still preprocessed with 32bit compiler (gcc, not hppa20-gcc).
>
> Thanks for your help so far!
> If you like I'm happy to give you an account on a hppa64 machine to reproduce yourself.
> I'll now try to bisect where it goes wrong. There must be something else before commit 23243c1ace9fb4eae2f75e0fe0ece8e3219fb4f3.
>
> Helge


Sorry for my late reply.

Did git-bisect find something?

If necessary, I will be happy to try it on the hppa64 machine.



--
Best Regards
Masahiro Yamada

2021-06-23 20:35:25

by Helge Deller

[permalink] [raw]
Subject: Re: linux-parisc compile failure in current git

* Masahiro Yamada <[email protected]>:
> On Thu, Jun 10, 2021 at 4:04 PM Helge Deller <[email protected]> wrote:
> >
> > Hi Masahiro,
> >
> > On 6/10/21 4:03 AM, Masahiro Yamada wrote:
> > > On Thu, Jun 10, 2021 at 7:50 AM Helge Deller <[email protected]> wrote:
> > >>
> > >> On 6/1/21 12:21 PM, Meelis Roos wrote:
> > >>> Upstream Linux git fails to compile on gentoo hppa - .config below.
> > >>> I have 2 gcc-s as always:
> > >>> $ gcc-config -l
> > >>> [1] hppa2.0-unknown-linux-gnu-9.3.0
> > >>> [2] hppa2.0-unknown-linux-gnu-10.2.0 *
> > >>>
> > >>> [3] hppa64-unknown-linux-gnu-10.2.0 *
> > >>
> > >>
> > >> I see the same issue too, but only when compiling natively on a parisc machine.
> > >> Cross-compiling on a x86 box works nicely.
> > >>
> > >> First I thought it's a problem with setting the "cross_compiling" flag in ./Makefile.
> > >> But that's not sufficient.
> > >>
> > >> On a x86 machine (which builds fine) I get
> > >> SRCARCH=parisc SUBARCH=x86 UTS_MACHINE=parisc
> > >> The arch/parisc/kernel/asm-offsets.c file gets preprocessed via:
> > >> hppa64-linux-gnu-gcc
> > >>
> > >> On a native 32bit parisc machine I have:
> > >> SRCARCH=parisc SUBARCH=parisc UTS_MACHINE=parisc
> > >> Here the arch/parisc/kernel/asm-offsets.c file gets preprocessed via:
> > >> gcc
> > >> Instead here the native hppa64-linux-gnu-gcc (cross compiler) should have been used too, since
> > >> we build a 64-bit hppa kernel (CONFIG_64BIT is set).
> > >> Note, on hppa we don't have an "-m64" compiler flag as on x86.
> > >
> > > I see.
> > > hppa is not a bi-arch compiler, in other words,
> > > http- and hppa64- are separate compilers.
> >
> > Yes.
> >
> > >> Mashahiro, do you maybe have an idea what gets wrong here, or which
> > >> patch has changed the behaviour how the asm-offsets.c file gets preprocessed?
> > >
> > > Presumably, commit 23243c1ace9fb4eae2f75e0fe0ece8e3219fb4f3
> > >
> > > Prior to that commit, arch/parisc/Makefile was like this:
> > >
> > > ifneq ($(SUBARCH),$(UTS_MACHINE))
> > > ifeq ($(CROSS_COMPILE),)
> > > ...
> > >
> > > Now I understand why arch/parisc/Makefile was written this way.
> > >
> > > Reverting the change in arch/parisc/Makefile will restore the original behavior.
> >
> > Sadly, reverting this change (23243c1ace9fb4eae2f75e0fe0ece8e3219fb4f3) does not
> > restore the original behavior.
> >
> > > But, please keep in mind that there is an issue remaining.
> > >
> > > Please see this code:
> > >
> > > ifdef CONFIG_64BIT
> > > UTS_MACHINE := parisc64
> > > CHECKFLAGS += -D__LP64__=1
> > > CC_ARCHES = hppa64
> > > LD_BFD := elf64-hppa-linux
> > > else # 32-bit
> > > CC_ARCHES = hppa hppa2.0 hppa1.1
> > > LD_BFD := elf32-hppa-linux
> > > endif
> > >
> > >
> > > UTS_MACHINE is determined by CONFIG_64BIT.
> > >
> > > CONFIG_64BIT is defined only after Kconfig is finished.
> > > When you are trying to configure the .config,
> > > CONFIG_64BIT is not defined yet.
> > > So UTS_MACHINE is always 'parisc'.
> >
> > Yes.
> > See above, but it worked when I had SUBARCH=x86 (when running my laptop).
> >
> >
> > > As you know, Kconfig files now have a bunch of 'cc-option' syntax
> > > to check the compiler capability in Kconfig time.
> > > Hence, you need to provide a proper compiler in Kconfig time too.
> > >
> > > When you build a 64-bit parisc kernel on a 32-bit parisc machine,
> >
> > Please note, that we don't have a 64-bit parisc userspace yet (just kernel).
> > This means, that all builds on parisc machines are 32bit and do a
> > cross-compilation to a parisc64 kernel if requested in the .config.
> >
> > > Kconfig is passed with CC=gcc since SUBARCH==UTS_MACHINE==parisc.
> > > After Kconfig, CROSS_COMPILE=hppa64-* is set,
> > > and the kernel is built by CC=hppa64-*-gcc.
> >
> > Right. That is the old behaviour. Based on the CONFIG_64BIT option
> > the hppa64 compiler is choosen for CROSS_COMPILE.
> >
> > > So, Kconfig evaluated a compiletely different compiler. This is pointless.
> >
> > Yes, probably.
> >
> >
> > > There are some options
> > >
> > > [option 1]
> > > revert the parisc bit of 23243c1ace9fb4eae2f75e0fe0ece8e3219fb4f3
> > > This will restore the functionality you may want, but
> > > as I said above, Kconfig is doing pointless things.
> >
> > as mentioned above: Doesn't solve the issue.
> >
> > > [option 2]
> > > Stop using cc-cross-prefix, and pass CROSS_COMPILE explicitly.
> > > This is what many architectures including arm, arm64 do.
> > > You need to explicitly pass CROSS_COMPILE=aarch64-linux-gnu- etc.
> > > if you are cross-compiling arm64.
> >
> > Might be an option, but it's not as handy as simply choosing CONFIG_64BIT
> > and then things are done automatically.
> >
> > > [option 3]
> > > Introduce ARCH=parisc64.
> > >
> > > When you are building 64-bit kernel, you can pass ARCH=parisc64
> > > A patch attached. (but not tested much)
> >
> > Tried it, but doesn't work.
> > asm-offsets.c is still preprocessed with 32bit compiler (gcc, not hppa20-gcc).
> >
> > Thanks for your help so far!
> > If you like I'm happy to give you an account on a hppa64 machine to reproduce yourself.
> > I'll now try to bisect where it goes wrong. There must be something else before commit 23243c1ace9fb4eae2f75e0fe0ece8e3219fb4f3.
> >
> > Helge
>
>
> Sorry for my late reply.

Me too.... :-(

> Did git-bisect find something?

No. But I understood, that it's not a new problem.
It existed already before.

> If necessary, I will be happy to try it on the hppa64 machine.

Yes, please.
I'll send you login details in a private mail.
Attached is my last test patch (which is based on yours).

Helge

-----

diff --git a/Makefile b/Makefile
index ed669b2d705d..47a972f859f5 100644
--- a/Makefile
+++ b/Makefile
@@ -399,6 +399,11 @@ ifeq ($(ARCH),sparc64)
SRCARCH := sparc
endif

+# Additional ARCH settings for parisc
+ifeq ($(ARCH),parisc64)
+ SRCARCH := parisc
+endif
+
export cross_compiling :=
ifneq ($(SRCARCH),$(SUBARCH))
cross_compiling := 1
diff --git a/arch/parisc/Makefile b/arch/parisc/Makefile
index aed8ea29268b..ee5890a2f62d 100644
--- a/arch/parisc/Makefile
+++ b/arch/parisc/Makefile
@@ -25,18 +25,21 @@ CHECKFLAGS += -D__hppa__=1
ifdef CONFIG_64BIT
UTS_MACHINE := parisc64
CHECKFLAGS += -D__LP64__=1
-CC_ARCHES = hppa64
LD_BFD := elf64-hppa-linux
else # 32-bit
-CC_ARCHES = hppa hppa2.0 hppa1.1
LD_BFD := elf32-hppa-linux
endif

# select defconfig based on actual architecture
-ifeq ($(shell uname -m),parisc64)
+ifeq ($(ARCH),parisc64)
KBUILD_DEFCONFIG := generic-64bit_defconfig
+ CC_ARCHES := hppa64
+else ifdef CONFIG_64BIT
+ KBUILD_DEFCONFIG := generic-64bit_defconfig
+ CC_ARCHES := hppa64
else
KBUILD_DEFCONFIG := generic-32bit_defconfig
+ CC_ARCHES := hppa hppa2.0 hppa1.1
endif

export LD_BFD
diff --git a/scripts/subarch.include b/scripts/subarch.include
index 650682821126..776849a3c500 100644
--- a/scripts/subarch.include
+++ b/scripts/subarch.include
@@ -7,7 +7,7 @@
SUBARCH := $(shell uname -m | sed -e s/i.86/x86/ -e s/x86_64/x86/ \
-e s/sun4u/sparc64/ \
-e s/arm.*/arm/ -e s/sa110/arm/ \
- -e s/s390x/s390/ -e s/parisc64/parisc/ \
+ -e s/s390x/s390/ \
-e s/ppc.*/powerpc/ -e s/mips.*/mips/ \
-e s/sh[234].*/sh/ -e s/aarch64.*/arm64/ \
-e s/riscv.*/riscv/)

2022-08-17 21:36:20

by Randy Dunlap

[permalink] [raw]
Subject: Re: linux-parisc compile failure in current git

Hi--

On 6/23/21 13:33, Helge Deller wrote:
> * Masahiro Yamada <[email protected]>:
>> On Thu, Jun 10, 2021 at 4:04 PM Helge Deller <[email protected]> wrote:
>>>
>>> Hi Masahiro,
>>>
>>> On 6/10/21 4:03 AM, Masahiro Yamada wrote:
>>>> On Thu, Jun 10, 2021 at 7:50 AM Helge Deller <[email protected]> wrote:

[snip]

>>>> But, please keep in mind that there is an issue remaining.
>>>>
>>>> Please see this code:
>>>>
>>>> ifdef CONFIG_64BIT
>>>> UTS_MACHINE := parisc64
>>>> CHECKFLAGS += -D__LP64__=1
>>>> CC_ARCHES = hppa64
>>>> LD_BFD := elf64-hppa-linux
>>>> else # 32-bit
>>>> CC_ARCHES = hppa hppa2.0 hppa1.1
>>>> LD_BFD := elf32-hppa-linux
>>>> endif
>>>>
>>>>
>>>> UTS_MACHINE is determined by CONFIG_64BIT.
>>>>
>>>> CONFIG_64BIT is defined only after Kconfig is finished.
>>>> When you are trying to configure the .config,
>>>> CONFIG_64BIT is not defined yet.
>>>> So UTS_MACHINE is always 'parisc'.
>>>
>>> Yes.
>>> See above, but it worked when I had SUBARCH=x86 (when running my laptop).
>>>
>>>
>>>> As you know, Kconfig files now have a bunch of 'cc-option' syntax
>>>> to check the compiler capability in Kconfig time.
>>>> Hence, you need to provide a proper compiler in Kconfig time too.
>>>>
>>>> When you build a 64-bit parisc kernel on a 32-bit parisc machine,
>>>
>>> Please note, that we don't have a 64-bit parisc userspace yet (just kernel).
>>> This means, that all builds on parisc machines are 32bit and do a
>>> cross-compilation to a parisc64 kernel if requested in the .config.
>>>
>>>> Kconfig is passed with CC=gcc since SUBARCH==UTS_MACHINE==parisc.
>>>> After Kconfig, CROSS_COMPILE=hppa64-* is set,
>>>> and the kernel is built by CC=hppa64-*-gcc.
>>>
>>> Right. That is the old behaviour. Based on the CONFIG_64BIT option
>>> the hppa64 compiler is choosen for CROSS_COMPILE.
>>>
>>>> So, Kconfig evaluated a compiletely different compiler. This is pointless.
>>>
>>> Yes, probably.
>>>
>>>
>>>> There are some options
>>>>
>>>> [option 1]
>>>> revert the parisc bit of 23243c1ace9fb4eae2f75e0fe0ece8e3219fb4f3
>>>> This will restore the functionality you may want, but
>>>> as I said above, Kconfig is doing pointless things.
>>>
>>> as mentioned above: Doesn't solve the issue.
>>>
>>>> [option 2]
>>>> Stop using cc-cross-prefix, and pass CROSS_COMPILE explicitly.
>>>> This is what many architectures including arm, arm64 do.
>>>> You need to explicitly pass CROSS_COMPILE=aarch64-linux-gnu- etc.
>>>> if you are cross-compiling arm64.
>>>
>>> Might be an option, but it's not as handy as simply choosing CONFIG_64BIT
>>> and then things are done automatically.
>>>
>>>> [option 3]
>>>> Introduce ARCH=parisc64.
>>>>
>>>> When you are building 64-bit kernel, you can pass ARCH=parisc64
>>>> A patch attached. (but not tested much)
>>>
>>> Tried it, but doesn't work.
>>> asm-offsets.c is still preprocessed with 32bit compiler (gcc, not hppa20-gcc).
>>>
>>> Thanks for your help so far!
>>> If you like I'm happy to give you an account on a hppa64 machine to reproduce yourself.
>>> I'll now try to bisect where it goes wrong. There must be something else before commit 23243c1ace9fb4eae2f75e0fe0ece8e3219fb4f3.
>>>
>>> Helge
>>
>>
>> Sorry for my late reply.
>
> Me too.... :-(

Sorry to jump in even later, but:

I see that
$ make ARCH=parisc64 defconfig
does set CONFIG_64BIT.

Is there a way to do
$ make ARCH=parisc64 allmodconfig
?
That does not set CONFIG_64BIT in my testing.
(testing on linux-next-20220817)

I would like to have a command-line method to do that,
without editing the .config file.

Thanks.
--
~Randy

2022-08-19 11:03:39

by Helge Deller

[permalink] [raw]
Subject: Re: linux-parisc compile failure in current git

On 8/17/22 22:59, Randy Dunlap wrote:
> Hi--
>
> On 6/23/21 13:33, Helge Deller wrote:
>> * Masahiro Yamada <[email protected]>:
>>> On Thu, Jun 10, 2021 at 4:04 PM Helge Deller <[email protected]> wrote:
>>>>
>>>> Hi Masahiro,
>>>>
>>>> On 6/10/21 4:03 AM, Masahiro Yamada wrote:
>>>>> On Thu, Jun 10, 2021 at 7:50 AM Helge Deller <[email protected]> wrote:
>
> [snip]
>
>>>>> But, please keep in mind that there is an issue remaining.
>>>>>
>>>>> Please see this code:
>>>>>
>>>>> ifdef CONFIG_64BIT
>>>>> UTS_MACHINE := parisc64
>>>>> CHECKFLAGS += -D__LP64__=1
>>>>> CC_ARCHES = hppa64
>>>>> LD_BFD := elf64-hppa-linux
>>>>> else # 32-bit
>>>>> CC_ARCHES = hppa hppa2.0 hppa1.1
>>>>> LD_BFD := elf32-hppa-linux
>>>>> endif
>>>>>
>>>>>
>>>>> UTS_MACHINE is determined by CONFIG_64BIT.
>>>>>
>>>>> CONFIG_64BIT is defined only after Kconfig is finished.
>>>>> When you are trying to configure the .config,
>>>>> CONFIG_64BIT is not defined yet.
>>>>> So UTS_MACHINE is always 'parisc'.
>>>>
>>>> Yes.
>>>> See above, but it worked when I had SUBARCH=x86 (when running my laptop).
>>>>
>>>>
>>>>> As you know, Kconfig files now have a bunch of 'cc-option' syntax
>>>>> to check the compiler capability in Kconfig time.
>>>>> Hence, you need to provide a proper compiler in Kconfig time too.
>>>>>
>>>>> When you build a 64-bit parisc kernel on a 32-bit parisc machine,
>>>>
>>>> Please note, that we don't have a 64-bit parisc userspace yet (just kernel).
>>>> This means, that all builds on parisc machines are 32bit and do a
>>>> cross-compilation to a parisc64 kernel if requested in the .config.
>>>>
>>>>> Kconfig is passed with CC=gcc since SUBARCH==UTS_MACHINE==parisc.
>>>>> After Kconfig, CROSS_COMPILE=hppa64-* is set,
>>>>> and the kernel is built by CC=hppa64-*-gcc.
>>>>
>>>> Right. That is the old behaviour. Based on the CONFIG_64BIT option
>>>> the hppa64 compiler is choosen for CROSS_COMPILE.
>>>>
>>>>> So, Kconfig evaluated a compiletely different compiler. This is pointless.
>>>>
>>>> Yes, probably.
>>>>
>>>>
>>>>> There are some options
>>>>>
>>>>> [option 1]
>>>>> revert the parisc bit of 23243c1ace9fb4eae2f75e0fe0ece8e3219fb4f3
>>>>> This will restore the functionality you may want, but
>>>>> as I said above, Kconfig is doing pointless things.
>>>>
>>>> as mentioned above: Doesn't solve the issue.
>>>>
>>>>> [option 2]
>>>>> Stop using cc-cross-prefix, and pass CROSS_COMPILE explicitly.
>>>>> This is what many architectures including arm, arm64 do.
>>>>> You need to explicitly pass CROSS_COMPILE=aarch64-linux-gnu- etc.
>>>>> if you are cross-compiling arm64.
>>>>
>>>> Might be an option, but it's not as handy as simply choosing CONFIG_64BIT
>>>> and then things are done automatically.
>>>>
>>>>> [option 3]
>>>>> Introduce ARCH=parisc64.
>>>>>
>>>>> When you are building 64-bit kernel, you can pass ARCH=parisc64
>>>>> A patch attached. (but not tested much)
>>>>
>>>> Tried it, but doesn't work.
>>>> asm-offsets.c is still preprocessed with 32bit compiler (gcc, not hppa20-gcc).
>>>>
>>>> Thanks for your help so far!
>>>> If you like I'm happy to give you an account on a hppa64 machine to reproduce yourself.
>>>> I'll now try to bisect where it goes wrong. There must be something else before commit 23243c1ace9fb4eae2f75e0fe0ece8e3219fb4f3.
>>>>
>>>> Helge
>>>
>>>
>>> Sorry for my late reply.
>>
>> Me too.... :-(
>
> Sorry to jump in even later, but:
>
> I see that
> $ make ARCH=parisc64 defconfig
> does set CONFIG_64BIT.
>
> Is there a way to do
> $ make ARCH=parisc64 allmodconfig
> ?
> That does not set CONFIG_64BIT in my testing.
> (testing on linux-next-20220817)

Right. It seems to delete the CONFIG_64BIT which was set earlier.

> I would like to have a command-line method to do that,
> without editing the .config file.

I found your patch for riscv:
https://lore.kernel.org/all/[email protected]/
and added a similiar one for parisc into my for-next git tree:
https://git.kernel.org/pub/scm/linux/kernel/git/deller/parisc-linux.git/commit/?h=for-next&id=34793a5d09d9122f90acfa7e8f705436d5090d4d

Does that help?

Although, I'd prefer a generic solution for this problem, e.g.
a new KCONFIG_MIN_RAND_CONFIG=$(srctree)/arch/parisc/configs/32-bit.config
option which is used by randconfig/allmodconfig/....
Then it could be set once, and we can get rid of adding similiar patches
to the arches, e.g. in arch/parisc/Makefile it could be:
ifeq ($(ARCH),parisc64)
KBUILD_DEFCONFIG := generic-64bit_defconfig
KCONFIG_MIN_RAND_CONFIG = $(srctree)/arch/parisc/configs/64-bit.config
else
KBUILD_DEFCONFIG := generic-32bit_defconfig
KCONFIG_MIN_RAND_CONFIG = $(srctree)/arch/parisc/configs/32-bit.config
endif
Thoughts?

Helge

2022-08-19 12:50:06

by Masahiro Yamada

[permalink] [raw]
Subject: Re: linux-parisc compile failure in current git

On Thu, Aug 18, 2022 at 5:59 AM Randy Dunlap <[email protected]> wrote:
>
> Hi--
>
> On 6/23/21 13:33, Helge Deller wrote:
> > * Masahiro Yamada <[email protected]>:
> >> On Thu, Jun 10, 2021 at 4:04 PM Helge Deller <[email protected]> wrote:
> >>>
> >>> Hi Masahiro,
> >>>
> >>> On 6/10/21 4:03 AM, Masahiro Yamada wrote:
> >>>> On Thu, Jun 10, 2021 at 7:50 AM Helge Deller <[email protected]> wrote:
>
> [snip]
>
> >>>> But, please keep in mind that there is an issue remaining.
> >>>>
> >>>> Please see this code:
> >>>>
> >>>> ifdef CONFIG_64BIT
> >>>> UTS_MACHINE := parisc64
> >>>> CHECKFLAGS += -D__LP64__=1
> >>>> CC_ARCHES = hppa64
> >>>> LD_BFD := elf64-hppa-linux
> >>>> else # 32-bit
> >>>> CC_ARCHES = hppa hppa2.0 hppa1.1
> >>>> LD_BFD := elf32-hppa-linux
> >>>> endif
> >>>>
> >>>>
> >>>> UTS_MACHINE is determined by CONFIG_64BIT.
> >>>>
> >>>> CONFIG_64BIT is defined only after Kconfig is finished.
> >>>> When you are trying to configure the .config,
> >>>> CONFIG_64BIT is not defined yet.
> >>>> So UTS_MACHINE is always 'parisc'.
> >>>
> >>> Yes.
> >>> See above, but it worked when I had SUBARCH=x86 (when running my laptop).
> >>>
> >>>
> >>>> As you know, Kconfig files now have a bunch of 'cc-option' syntax
> >>>> to check the compiler capability in Kconfig time.
> >>>> Hence, you need to provide a proper compiler in Kconfig time too.
> >>>>
> >>>> When you build a 64-bit parisc kernel on a 32-bit parisc machine,
> >>>
> >>> Please note, that we don't have a 64-bit parisc userspace yet (just kernel).
> >>> This means, that all builds on parisc machines are 32bit and do a
> >>> cross-compilation to a parisc64 kernel if requested in the .config.
> >>>
> >>>> Kconfig is passed with CC=gcc since SUBARCH==UTS_MACHINE==parisc.
> >>>> After Kconfig, CROSS_COMPILE=hppa64-* is set,
> >>>> and the kernel is built by CC=hppa64-*-gcc.
> >>>
> >>> Right. That is the old behaviour. Based on the CONFIG_64BIT option
> >>> the hppa64 compiler is choosen for CROSS_COMPILE.
> >>>
> >>>> So, Kconfig evaluated a compiletely different compiler. This is pointless.
> >>>
> >>> Yes, probably.
> >>>
> >>>
> >>>> There are some options
> >>>>
> >>>> [option 1]
> >>>> revert the parisc bit of 23243c1ace9fb4eae2f75e0fe0ece8e3219fb4f3
> >>>> This will restore the functionality you may want, but
> >>>> as I said above, Kconfig is doing pointless things.
> >>>
> >>> as mentioned above: Doesn't solve the issue.
> >>>
> >>>> [option 2]
> >>>> Stop using cc-cross-prefix, and pass CROSS_COMPILE explicitly.
> >>>> This is what many architectures including arm, arm64 do.
> >>>> You need to explicitly pass CROSS_COMPILE=aarch64-linux-gnu- etc.
> >>>> if you are cross-compiling arm64.
> >>>
> >>> Might be an option, but it's not as handy as simply choosing CONFIG_64BIT
> >>> and then things are done automatically.
> >>>
> >>>> [option 3]
> >>>> Introduce ARCH=parisc64.
> >>>>
> >>>> When you are building 64-bit kernel, you can pass ARCH=parisc64
> >>>> A patch attached. (but not tested much)
> >>>
> >>> Tried it, but doesn't work.
> >>> asm-offsets.c is still preprocessed with 32bit compiler (gcc, not hppa20-gcc).
> >>>
> >>> Thanks for your help so far!
> >>> If you like I'm happy to give you an account on a hppa64 machine to reproduce yourself.
> >>> I'll now try to bisect where it goes wrong. There must be something else before commit 23243c1ace9fb4eae2f75e0fe0ece8e3219fb4f3.
> >>>
> >>> Helge
> >>
> >>
> >> Sorry for my late reply.
> >
> > Me too.... :-(
>
> Sorry to jump in even later, but:
>
> I see that
> $ make ARCH=parisc64 defconfig
> does set CONFIG_64BIT.




Strange. It does for me.



masahiro@grover:~/ref/linux-next$ make ARCH=parisc64 defconfig
*** Default configuration is based on 'generic-64bit_defconfig'
#
# configuration written to .config
#
masahiro@grover:~/ref/linux-next$ grep CONFIG_64BIT .config
CONFIG_64BIT=y










> Is there a way to do
> $ make ARCH=parisc64 allmodconfig
> ?
> That does not set CONFIG_64BIT in my testing.
> (testing on linux-next-20220817)


Right.
allmodconfig does not set CONFIG_64BIT.

I think it is the same as before.
Is this thread related?



The reason is 64BIT depends on PA8X00.

allmodconfig chooses PA7000 instead of PA8X00
in the "Processor type" choice since
PA7000 is the default.


If you apply this patch,



diff --git a/arch/parisc/Kconfig b/arch/parisc/Kconfig
index 7f059cd1196a..458b8e22e240 100644
--- a/arch/parisc/Kconfig
+++ b/arch/parisc/Kconfig
@@ -146,7 +146,7 @@ menu "Processor type and features"

choice
prompt "Processor type"
- default PA7000
+ default PA8X00

config PA7000
bool "PA7000/PA7100"





allmodconfig will start enabling CONFIG_64BIT,
but it is up to Helge.




> I would like to have a command-line method to do that,
> without editing the .config file.
>
> Thanks.
> --
> ~Randy



--
Best Regards
Masahiro Yamada

2022-08-19 14:21:03

by Helge Deller

[permalink] [raw]
Subject: Re: linux-parisc compile failure in current git

On 8/19/22 14:45, Masahiro Yamada wrote:
> On Thu, Aug 18, 2022 at 5:59 AM Randy Dunlap <[email protected]> wrote:
>>
>> Hi--
>>
>> On 6/23/21 13:33, Helge Deller wrote:
>>> * Masahiro Yamada <[email protected]>:
>>>> On Thu, Jun 10, 2021 at 4:04 PM Helge Deller <[email protected]> wrote:
>>>>>
>>>>> Hi Masahiro,
>>>>>
>>>>> On 6/10/21 4:03 AM, Masahiro Yamada wrote:
>>>>>> On Thu, Jun 10, 2021 at 7:50 AM Helge Deller <[email protected]> wrote:
>>
>> [snip]
>>
>>>>>> But, please keep in mind that there is an issue remaining.
>>>>>>
>>>>>> Please see this code:
>>>>>>
>>>>>> ifdef CONFIG_64BIT
>>>>>> UTS_MACHINE := parisc64
>>>>>> CHECKFLAGS += -D__LP64__=1
>>>>>> CC_ARCHES = hppa64
>>>>>> LD_BFD := elf64-hppa-linux
>>>>>> else # 32-bit
>>>>>> CC_ARCHES = hppa hppa2.0 hppa1.1
>>>>>> LD_BFD := elf32-hppa-linux
>>>>>> endif
>>>>>>
>>>>>>
>>>>>> UTS_MACHINE is determined by CONFIG_64BIT.
>>>>>>
>>>>>> CONFIG_64BIT is defined only after Kconfig is finished.
>>>>>> When you are trying to configure the .config,
>>>>>> CONFIG_64BIT is not defined yet.
>>>>>> So UTS_MACHINE is always 'parisc'.
>>>>>
>>>>> Yes.
>>>>> See above, but it worked when I had SUBARCH=x86 (when running my laptop).
>>>>>
>>>>>
>>>>>> As you know, Kconfig files now have a bunch of 'cc-option' syntax
>>>>>> to check the compiler capability in Kconfig time.
>>>>>> Hence, you need to provide a proper compiler in Kconfig time too.
>>>>>>
>>>>>> When you build a 64-bit parisc kernel on a 32-bit parisc machine,
>>>>>
>>>>> Please note, that we don't have a 64-bit parisc userspace yet (just kernel).
>>>>> This means, that all builds on parisc machines are 32bit and do a
>>>>> cross-compilation to a parisc64 kernel if requested in the .config.
>>>>>
>>>>>> Kconfig is passed with CC=gcc since SUBARCH==UTS_MACHINE==parisc.
>>>>>> After Kconfig, CROSS_COMPILE=hppa64-* is set,
>>>>>> and the kernel is built by CC=hppa64-*-gcc.
>>>>>
>>>>> Right. That is the old behaviour. Based on the CONFIG_64BIT option
>>>>> the hppa64 compiler is choosen for CROSS_COMPILE.
>>>>>
>>>>>> So, Kconfig evaluated a compiletely different compiler. This is pointless.
>>>>>
>>>>> Yes, probably.
>>>>>
>>>>>
>>>>>> There are some options
>>>>>>
>>>>>> [option 1]
>>>>>> revert the parisc bit of 23243c1ace9fb4eae2f75e0fe0ece8e3219fb4f3
>>>>>> This will restore the functionality you may want, but
>>>>>> as I said above, Kconfig is doing pointless things.
>>>>>
>>>>> as mentioned above: Doesn't solve the issue.
>>>>>
>>>>>> [option 2]
>>>>>> Stop using cc-cross-prefix, and pass CROSS_COMPILE explicitly.
>>>>>> This is what many architectures including arm, arm64 do.
>>>>>> You need to explicitly pass CROSS_COMPILE=aarch64-linux-gnu- etc.
>>>>>> if you are cross-compiling arm64.
>>>>>
>>>>> Might be an option, but it's not as handy as simply choosing CONFIG_64BIT
>>>>> and then things are done automatically.
>>>>>
>>>>>> [option 3]
>>>>>> Introduce ARCH=parisc64.
>>>>>>
>>>>>> When you are building 64-bit kernel, you can pass ARCH=parisc64
>>>>>> A patch attached. (but not tested much)
>>>>>
>>>>> Tried it, but doesn't work.
>>>>> asm-offsets.c is still preprocessed with 32bit compiler (gcc, not hppa20-gcc).
>>>>>
>>>>> Thanks for your help so far!
>>>>> If you like I'm happy to give you an account on a hppa64 machine to reproduce yourself.
>>>>> I'll now try to bisect where it goes wrong. There must be something else before commit 23243c1ace9fb4eae2f75e0fe0ece8e3219fb4f3.
>>>>>
>>>>> Helge
>>>>
>>>>
>>>> Sorry for my late reply.
>>>
>>> Me too.... :-(
>>
>> Sorry to jump in even later, but:
>>
>> I see that
>> $ make ARCH=parisc64 defconfig
>> does set CONFIG_64BIT.
>
> Strange. It does for me.
> masahiro@grover:~/ref/linux-next$ make ARCH=parisc64 defconfig
> *** Default configuration is based on 'generic-64bit_defconfig'
> #
> # configuration written to .config
> #
> masahiro@grover:~/ref/linux-next$ grep CONFIG_64BIT .config
> CONFIG_64BIT=y

Yes, as Randy said, this works.

>> Is there a way to do
>> $ make ARCH=parisc64 allmodconfig
>> ?
>> That does not set CONFIG_64BIT in my testing.
>> (testing on linux-next-20220817)
>
> Right.
> allmodconfig does not set CONFIG_64BIT.
>
> I think it is the same as before.

Yep.

> Is this thread related?

What thread?

> The reason is 64BIT depends on PA8X00.
>
> allmodconfig chooses PA7000 instead of PA8X00
> in the "Processor type" choice since
> PA7000 is the default.
>
>
> If you apply this patch,
>
>
>
> diff --git a/arch/parisc/Kconfig b/arch/parisc/Kconfig
> index 7f059cd1196a..458b8e22e240 100644
> --- a/arch/parisc/Kconfig
> +++ b/arch/parisc/Kconfig
> @@ -146,7 +146,7 @@ menu "Processor type and features"
>
> choice
> prompt "Processor type"
> - default PA7000
> + default PA8X00
>
> config PA7000
> bool "PA7000/PA7100"
>
> allmodconfig will start enabling CONFIG_64BIT,
> but it is up to Helge.

That patch "partly" works, in the sense that with:
make ARCH=parisc64 randconfig

you randomly end up with a 32- or 64-bit kernel.
Since "ARCH=parisc64" was given, one probably would expect a 64-bit-enabled kernel randconfig,
and with "ARCH=parisc" a 32-bit randconfig.
But, I'm not sure if this intended or not and works that way on other arches as well.

As written in the other mail, I added this patch in for-next:
https://git.kernel.org/pub/scm/linux/kernel/git/deller/parisc-linux.git/commit/?h=for-next&id=34793a5d09d9122f90acfa7e8f705436d5090d4d
The downside is, you need to give a special make target: parisc_randconfig / parisc64_randconfig

Helge

2022-08-19 18:03:14

by Masahiro Yamada

[permalink] [raw]
Subject: Re: linux-parisc compile failure in current git

On Fri, Aug 19, 2022 at 10:56 PM Helge Deller <[email protected]> wrote:
>
> On 8/19/22 14:45, Masahiro Yamada wrote:
> > On Thu, Aug 18, 2022 at 5:59 AM Randy Dunlap <[email protected]> wrote:
> >>
> >> Hi--
> >>
> >> On 6/23/21 13:33, Helge Deller wrote:
> >>> * Masahiro Yamada <[email protected]>:
> >>>> On Thu, Jun 10, 2021 at 4:04 PM Helge Deller <[email protected]> wrote:
> >>>>>
> >>>>> Hi Masahiro,
> >>>>>
> >>>>> On 6/10/21 4:03 AM, Masahiro Yamada wrote:
> >>>>>> On Thu, Jun 10, 2021 at 7:50 AM Helge Deller <[email protected]> wrote:
> >>
> >> [snip]
> >>
> >>>>>> But, please keep in mind that there is an issue remaining.
> >>>>>>
> >>>>>> Please see this code:
> >>>>>>
> >>>>>> ifdef CONFIG_64BIT
> >>>>>> UTS_MACHINE := parisc64
> >>>>>> CHECKFLAGS += -D__LP64__=1
> >>>>>> CC_ARCHES = hppa64
> >>>>>> LD_BFD := elf64-hppa-linux
> >>>>>> else # 32-bit
> >>>>>> CC_ARCHES = hppa hppa2.0 hppa1.1
> >>>>>> LD_BFD := elf32-hppa-linux
> >>>>>> endif
> >>>>>>
> >>>>>>
> >>>>>> UTS_MACHINE is determined by CONFIG_64BIT.
> >>>>>>
> >>>>>> CONFIG_64BIT is defined only after Kconfig is finished.
> >>>>>> When you are trying to configure the .config,
> >>>>>> CONFIG_64BIT is not defined yet.
> >>>>>> So UTS_MACHINE is always 'parisc'.
> >>>>>
> >>>>> Yes.
> >>>>> See above, but it worked when I had SUBARCH=x86 (when running my laptop).
> >>>>>
> >>>>>
> >>>>>> As you know, Kconfig files now have a bunch of 'cc-option' syntax
> >>>>>> to check the compiler capability in Kconfig time.
> >>>>>> Hence, you need to provide a proper compiler in Kconfig time too.
> >>>>>>
> >>>>>> When you build a 64-bit parisc kernel on a 32-bit parisc machine,
> >>>>>
> >>>>> Please note, that we don't have a 64-bit parisc userspace yet (just kernel).
> >>>>> This means, that all builds on parisc machines are 32bit and do a
> >>>>> cross-compilation to a parisc64 kernel if requested in the .config.
> >>>>>
> >>>>>> Kconfig is passed with CC=gcc since SUBARCH==UTS_MACHINE==parisc.
> >>>>>> After Kconfig, CROSS_COMPILE=hppa64-* is set,
> >>>>>> and the kernel is built by CC=hppa64-*-gcc.
> >>>>>
> >>>>> Right. That is the old behaviour. Based on the CONFIG_64BIT option
> >>>>> the hppa64 compiler is choosen for CROSS_COMPILE.
> >>>>>
> >>>>>> So, Kconfig evaluated a compiletely different compiler. This is pointless.
> >>>>>
> >>>>> Yes, probably.
> >>>>>
> >>>>>
> >>>>>> There are some options
> >>>>>>
> >>>>>> [option 1]
> >>>>>> revert the parisc bit of 23243c1ace9fb4eae2f75e0fe0ece8e3219fb4f3
> >>>>>> This will restore the functionality you may want, but
> >>>>>> as I said above, Kconfig is doing pointless things.
> >>>>>
> >>>>> as mentioned above: Doesn't solve the issue.
> >>>>>
> >>>>>> [option 2]
> >>>>>> Stop using cc-cross-prefix, and pass CROSS_COMPILE explicitly.
> >>>>>> This is what many architectures including arm, arm64 do.
> >>>>>> You need to explicitly pass CROSS_COMPILE=aarch64-linux-gnu- etc.
> >>>>>> if you are cross-compiling arm64.
> >>>>>
> >>>>> Might be an option, but it's not as handy as simply choosing CONFIG_64BIT
> >>>>> and then things are done automatically.
> >>>>>
> >>>>>> [option 3]
> >>>>>> Introduce ARCH=parisc64.
> >>>>>>
> >>>>>> When you are building 64-bit kernel, you can pass ARCH=parisc64
> >>>>>> A patch attached. (but not tested much)
> >>>>>
> >>>>> Tried it, but doesn't work.
> >>>>> asm-offsets.c is still preprocessed with 32bit compiler (gcc, not hppa20-gcc).
> >>>>>
> >>>>> Thanks for your help so far!
> >>>>> If you like I'm happy to give you an account on a hppa64 machine to reproduce yourself.
> >>>>> I'll now try to bisect where it goes wrong. There must be something else before commit 23243c1ace9fb4eae2f75e0fe0ece8e3219fb4f3.
> >>>>>
> >>>>> Helge
> >>>>
> >>>>
> >>>> Sorry for my late reply.
> >>>
> >>> Me too.... :-(
> >>
> >> Sorry to jump in even later, but:
> >>
> >> I see that
> >> $ make ARCH=parisc64 defconfig
> >> does set CONFIG_64BIT.
> >
> > Strange. It does for me.
> > masahiro@grover:~/ref/linux-next$ make ARCH=parisc64 defconfig
> > *** Default configuration is based on 'generic-64bit_defconfig'
> > #
> > # configuration written to .config
> > #
> > masahiro@grover:~/ref/linux-next$ grep CONFIG_64BIT .config
> > CONFIG_64BIT=y
>
> Yes, as Randy said, this works.
>
> >> Is there a way to do
> >> $ make ARCH=parisc64 allmodconfig
> >> ?
> >> That does not set CONFIG_64BIT in my testing.
> >> (testing on linux-next-20220817)
> >
> > Right.
> > allmodconfig does not set CONFIG_64BIT.
> >
> > I think it is the same as before.
>
> Yep.
>
> > Is this thread related?
>
> What thread?


This thread ("linux-parisc compile failure in current git")
was posted more than a year ago.

If you start a new discussion,
let's open a new thread with a proper mail subject.




>
> > The reason is 64BIT depends on PA8X00.
> >
> > allmodconfig chooses PA7000 instead of PA8X00
> > in the "Processor type" choice since
> > PA7000 is the default.
> >
> >
> > If you apply this patch,
> >
> >
> >
> > diff --git a/arch/parisc/Kconfig b/arch/parisc/Kconfig
> > index 7f059cd1196a..458b8e22e240 100644
> > --- a/arch/parisc/Kconfig
> > +++ b/arch/parisc/Kconfig
> > @@ -146,7 +146,7 @@ menu "Processor type and features"
> >
> > choice
> > prompt "Processor type"
> > - default PA7000
> > + default PA8X00
> >
> > config PA7000
> > bool "PA7000/PA7100"
> >
> > allmodconfig will start enabling CONFIG_64BIT,
> > but it is up to Helge.
>
> That patch "partly" works, in the sense that with:
> make ARCH=parisc64 randconfig
>
> you randomly end up with a 32- or 64-bit kernel.
> Since "ARCH=parisc64" was given, one probably would expect a 64-bit-enabled kernel randconfig,
> and with "ARCH=parisc" a 32-bit randconfig.
> But, I'm not sure if this intended or not and works that way on other arches as well.


Ah, OK.

Then, you can mimic sparc code.





In the top Makefile:


ifeq ($(ARCH),sparc32)
SRCARCH := sparc
endif
ifeq ($(ARCH),sparc64)
SRCARCH := sparc
endif




In arch/sparc/Kconfig:


config 64BIT
bool "64-bit kernel" if "$(ARCH)" = "sparc"
default "$(ARCH)" = "sparc64"





"make ARCH=sparc32 randconfig" always disables
CONFIG_64BIT, and randomizes the rest of options.


"make ARCH=sparc64 randconfig" always enables
CONFIG_64BIT, and randomizes the rest of options.


"make ARCH=sparc randconfig" randomizes all options,
including CONFIG_64BIT.





I suggest to introduce ARCH=parisc32





>
> As written in the other mail, I added this patch in for-next:
> https://git.kernel.org/pub/scm/linux/kernel/git/deller/parisc-linux.git/commit/?h=for-next&id=34793a5d09d9122f90acfa7e8f705436d5090d4d
> The downside is, you need to give a special make target: parisc_randconfig / parisc64_randconfig
>
> Helge



--
Best Regards
Masahiro Yamada

2022-08-19 18:13:55

by Helge Deller

[permalink] [raw]
Subject: Re: linux-parisc compile failure in current git

* Masahiro Yamada <[email protected]>:
> > > The reason is 64BIT depends on PA8X00.
> > >
> > > allmodconfig chooses PA7000 instead of PA8X00
> > > in the "Processor type" choice since
> > > PA7000 is the default.
> > >
> > >
> > > If you apply this patch,
> > >
> > >
> > >
> > > diff --git a/arch/parisc/Kconfig b/arch/parisc/Kconfig
> > > index 7f059cd1196a..458b8e22e240 100644
> > > --- a/arch/parisc/Kconfig
> > > +++ b/arch/parisc/Kconfig
> > > @@ -146,7 +146,7 @@ menu "Processor type and features"
> > >
> > > choice
> > > prompt "Processor type"
> > > - default PA7000
> > > + default PA8X00
> > >
> > > config PA7000
> > > bool "PA7000/PA7100"
> > >
> > > allmodconfig will start enabling CONFIG_64BIT,
> > > but it is up to Helge.
> >
> > That patch "partly" works, in the sense that with:
> > make ARCH=parisc64 randconfig
> >
> > you randomly end up with a 32- or 64-bit kernel.
> > Since "ARCH=parisc64" was given, one probably would expect a 64-bit-enabled kernel randconfig,
> > and with "ARCH=parisc" a 32-bit randconfig.
> > But, I'm not sure if this intended or not and works that way on other arches as well.
>
>
> Ah, OK.
>
> Then, you can mimic sparc code.
>
> In the top Makefile:
>
>
> ifeq ($(ARCH),sparc32)
> SRCARCH := sparc
> endif
> ifeq ($(ARCH),sparc64)
> SRCARCH := sparc
> endif
>
>
>
>
> In arch/sparc/Kconfig:
>
>
> config 64BIT
> bool "64-bit kernel" if "$(ARCH)" = "sparc"
> default "$(ARCH)" = "sparc64"
>
> "make ARCH=sparc32 randconfig" always disables
> CONFIG_64BIT, and randomizes the rest of options.
>
>
> "make ARCH=sparc64 randconfig" always enables
> CONFIG_64BIT, and randomizes the rest of options.
>
>
> "make ARCH=sparc randconfig" randomizes all options,
> including CONFIG_64BIT.

Ah, cool.
Thank you!

> I suggest to introduce ARCH=parisc32

No need. We already have ARCH=parisc64 or ARCH=parisc.

The patch below fixes it nicely and I've pushed it into the parisc
for-next git tree.

@Randy: Maybe you could try it as well. With that approach
you get what you want. Maybe that's a better approach for riscv64 as
well?

Helge



From a529c0a388f74a243363976af8535b10d3d69d20 Mon Sep 17 00:00:00 2001
From: Helge Deller <[email protected]>
Date: Fri, 19 Aug 2022 19:30:50 +0200
Subject: [PATCH] parisc: Enable CONFIG_64BIT for ARCH=parisc64 only

With this patch the ARCH= parameter decides if the
CONFIG_64BIT option will be set or not. This means, the
ARCH= parameter will give:

ARCH=parisc -> 32-bit kernel
ARCH=parisc64 -> 64-bit kernel

This simplifies the usage of the other config options like
randconfig, allmodconfig and allyesconfig a lot and produces
the output which is expected for parisc64 (64-bit) vs. parisc (32-bit).

Suggested-by: Masahiro Yamada <[email protected]>
Signed-off-by: Helge Deller <[email protected]>

diff --git a/arch/parisc/Kconfig b/arch/parisc/Kconfig
index 7f059cd1196a..9aede2447011 100644
--- a/arch/parisc/Kconfig
+++ b/arch/parisc/Kconfig
@@ -146,10 +146,10 @@ menu "Processor type and features"

choice
prompt "Processor type"
- default PA7000
+ default PA7000 if "$(ARCH)" = "parisc"

config PA7000
- bool "PA7000/PA7100"
+ bool "PA7000/PA7100" if "$(ARCH)" = "parisc"
help
This is the processor type of your CPU. This information is
used for optimizing purposes. In order to compile a kernel
@@ -160,21 +160,21 @@ config PA7000
which is required on some machines.

config PA7100LC
- bool "PA7100LC"
+ bool "PA7100LC" if "$(ARCH)" = "parisc"
help
Select this option for the PCX-L processor, as used in the
712, 715/64, 715/80, 715/100, 715/100XC, 725/100, 743, 748,
D200, D210, D300, D310 and E-class

config PA7200
- bool "PA7200"
+ bool "PA7200" if "$(ARCH)" = "parisc"
help
Select this option for the PCX-T' processor, as used in the
C100, C110, J100, J110, J210XC, D250, D260, D350, D360,
K100, K200, K210, K220, K400, K410 and K420

config PA7300LC
- bool "PA7300LC"
+ bool "PA7300LC" if "$(ARCH)" = "parisc"
help
Select this option for the PCX-L2 processor, as used in the
744, A180, B132L, B160L, B180L, C132L, C160L, C180L,
@@ -224,17 +224,8 @@ config MLONGCALLS
Enabling this option will probably slow down your kernel.

config 64BIT
- bool "64-bit kernel"
+ def_bool "$(ARCH)" = "parisc64"
depends on PA8X00
- help
- Enable this if you want to support 64bit kernel on PA-RISC platform.
-
- At the moment, only people willing to use more than 2GB of RAM,
- or having a 64bit-only capable PA-RISC machine should say Y here.
-
- Since there is no 64bit userland on PA-RISC, there is no point to
- enable this option otherwise. The 64bit kernel is significantly bigger
- and slower than the 32bit one.

choice
prompt "Kernel page size"

2022-08-20 01:49:33

by Randy Dunlap

[permalink] [raw]
Subject: Re: linux-parisc compile failure in current git

Hi,

On 8/19/22 10:58, Helge Deller wrote:
> * Masahiro Yamada <[email protected]>:
>>
>> Then, you can mimic sparc code.

Good idea.

> The patch below fixes it nicely and I've pushed it into the parisc
> for-next git tree.
>
> @Randy: Maybe you could try it as well. With that approach
> you get what you want. Maybe that's a better approach for riscv64 as
> well?

I like this one better than the earlier attempt.
It's more generic.


> From a529c0a388f74a243363976af8535b10d3d69d20 Mon Sep 17 00:00:00 2001
> From: Helge Deller <[email protected]>
> Date: Fri, 19 Aug 2022 19:30:50 +0200
> Subject: [PATCH] parisc: Enable CONFIG_64BIT for ARCH=parisc64 only
>
> With this patch the ARCH= parameter decides if the
> CONFIG_64BIT option will be set or not. This means, the
> ARCH= parameter will give:
>
> ARCH=parisc -> 32-bit kernel
> ARCH=parisc64 -> 64-bit kernel
>
> This simplifies the usage of the other config options like
> randconfig, allmodconfig and allyesconfig a lot and produces
> the output which is expected for parisc64 (64-bit) vs. parisc (32-bit).
>
> Suggested-by: Masahiro Yamada <[email protected]>
> Signed-off-by: Helge Deller <[email protected]>
>
> diff --git a/arch/parisc/Kconfig b/arch/parisc/Kconfig
> index 7f059cd1196a..9aede2447011 100644
> --- a/arch/parisc/Kconfig
> +++ b/arch/parisc/Kconfig
> @@ -146,10 +146,10 @@ menu "Processor type and features"
>
> choice
> prompt "Processor type"
> - default PA7000
> + default PA7000 if "$(ARCH)" = "parisc"
>
> config PA7000
> - bool "PA7000/PA7100"
> + bool "PA7000/PA7100" if "$(ARCH)" = "parisc"
> help
> This is the processor type of your CPU. This information is
> used for optimizing purposes. In order to compile a kernel
> @@ -160,21 +160,21 @@ config PA7000
> which is required on some machines.
>
> config PA7100LC
> - bool "PA7100LC"
> + bool "PA7100LC" if "$(ARCH)" = "parisc"
> help
> Select this option for the PCX-L processor, as used in the
> 712, 715/64, 715/80, 715/100, 715/100XC, 725/100, 743, 748,
> D200, D210, D300, D310 and E-class
>
> config PA7200
> - bool "PA7200"
> + bool "PA7200" if "$(ARCH)" = "parisc"
> help
> Select this option for the PCX-T' processor, as used in the
> C100, C110, J100, J110, J210XC, D250, D260, D350, D360,
> K100, K200, K210, K220, K400, K410 and K420
>
> config PA7300LC
> - bool "PA7300LC"
> + bool "PA7300LC" if "$(ARCH)" = "parisc"
> help
> Select this option for the PCX-L2 processor, as used in the
> 744, A180, B132L, B160L, B180L, C132L, C160L, C180L,
> @@ -224,17 +224,8 @@ config MLONGCALLS
> Enabling this option will probably slow down your kernel.
>
> config 64BIT
> - bool "64-bit kernel"
> + def_bool "$(ARCH)" = "parisc64"
> depends on PA8X00
> - help
> - Enable this if you want to support 64bit kernel on PA-RISC platform.
> -
> - At the moment, only people willing to use more than 2GB of RAM,
> - or having a 64bit-only capable PA-RISC machine should say Y here.
> -
> - Since there is no 64bit userland on PA-RISC, there is no point to
> - enable this option otherwise. The 64bit kernel is significantly bigger
> - and slower than the 32bit one.
>
> choice
> prompt "Kernel page size"

LGTM.
Tested-by: Randy Dunlap <[email protected]>
Reviewed-by: Randy Dunlap <[email protected]>


Thanks.
--
~Randy

2022-08-20 02:12:17

by Randy Dunlap

[permalink] [raw]
Subject: Re: linux-parisc compile failure in current git

Hi,

On 8/19/22 09:41, Masahiro Yamada wrote:
> On Fri, Aug 19, 2022 at 10:56 PM Helge Deller <[email protected]> wrote:
>>
>> On 8/19/22 14:45, Masahiro Yamada wrote:
>>> On Thu, Aug 18, 2022 at 5:59 AM Randy Dunlap <[email protected]> wrote:
>>>>

>>> Is this thread related?
>>
>> What thread?

It is related to ARCH=parisc64, but I probably should have
started a new thread instead of replying here.

> This thread ("linux-parisc compile failure in current git")
> was posted more than a year ago.
>
> If you start a new discussion,
> let's open a new thread with a proper mail subject.

Thanks.
--
~Randy