Re: [deller-parisc:5.17-vdso-mini-3 1/1] arch/parisc/kernel/vdso32/restart_syscall.S:16: Error: bad or irreducible absolute expression

From: Helge Deller
Date: Thu Feb 03 2022 - 13:03:27 EST


On 2/3/22 15:37, kernel test robot wrote:
> tree: https://git.kernel.org/pub/scm/linux/kernel/git/deller/parisc-linux.git 5.17-vdso-mini-3
> head: 62c208e2c93066ee050644384bb12ca1d0b2bdb1
> commit: 62c208e2c93066ee050644384bb12ca1d0b2bdb1 [1/1] parisc: Add initial vDSO support
> config: parisc-generic-64bit_defconfig (https://download.01.org/0day-ci/archive/20220203/202202032200.IMpqlhlW-lkp@xxxxxxxxx/config)
> compiler: hppa64-linux-gcc (GCC) 11.2.0
> reproduce (this is a W=1 build):
> wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
> chmod +x ~/bin/make.cross
> # https://git.kernel.org/pub/scm/linux/kernel/git/deller/parisc-linux.git/commit/?id=62c208e2c93066ee050644384bb12ca1d0b2bdb1
> git remote add deller-parisc https://git.kernel.org/pub/scm/linux/kernel/git/deller/parisc-linux.git
> git fetch --no-tags deller-parisc 5.17-vdso-mini-3
> git checkout 62c208e2c93066ee050644384bb12ca1d0b2bdb1
> # save the config file to linux build tree
> mkdir build_dir
> COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-11.2.0 make.cross O=build_dir ARCH=parisc prepare


Please drop the "ARCH=parisc" in this prepare command, so this is sufficient:

COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-11.2.0 make.cross O=build_dir prepare


> If you fix the issue, kindly add following tag as appropriate
> Reported-by: kernel test robot <lkp@xxxxxxxxx>
>
> All errors (new ones prefixed by >>):
>
> scripts/genksyms/parse.y: warning: 9 shift/reduce conflicts [-Wconflicts-sr]
> scripts/genksyms/parse.y: warning: 5 reduce/reduce conflicts [-Wconflicts-rr]

> arch/parisc/kernel/vdso64/Makefile:30: FORCE prerequisite is missing


Since I'm not a GNU make/Makefile expert, I currently don't know how to prevent this
"FORCE prerequisite is missing" warning.
Any help is welcome here :-)

Helge





> arch/parisc/kernel/vdso32/restart_syscall.S: Assembler messages:
>>> arch/parisc/kernel/vdso32/restart_syscall.S:16: Error: bad or irreducible absolute expression
>>> arch/parisc/kernel/vdso32/restart_syscall.S:16: Error: junk at end of line, first unrecognized character is `:'
>>> arch/parisc/kernel/vdso32/restart_syscall.S:26: Error: no such instruction: `ldw 0(%sp),%r31'
>>> arch/parisc/kernel/vdso32/restart_syscall.S:29: Error: no such instruction: `be 0x100(%sr2,%r0)'
>>> arch/parisc/kernel/vdso32/restart_syscall.S:30: Error: no such instruction: `ldi 0,%r20'
>>> arch/parisc/kernel/vdso32/restart_syscall.S:32: Error: .cfi_endproc without corresponding .cfi_startproc
> arch/parisc/kernel/vdso32/sigtramp.S: Assembler messages:
>>> arch/parisc/kernel/vdso32/sigtramp.S:39: Error: unknown pseudo-op: `.proc'
>>> arch/parisc/kernel/vdso32/sigtramp.S:40: Error: unknown pseudo-op: `.callinfo'
>>> arch/parisc/kernel/vdso32/sigtramp.S:41: Error: unknown pseudo-op: `.entry'
>>> arch/parisc/kernel/vdso32/sigtramp.S:44: Error: no such instruction: `ldi 0,%r25'
>>> arch/parisc/kernel/vdso32/sigtramp.S:45: Error: no such instruction: `ldi 173,%r20'
>>> arch/parisc/kernel/vdso32/sigtramp.S:46: Error: no such instruction: `ble 0x100(%sr2,%r0)'
> arch/parisc/kernel/vdso32/sigtramp.S:49: Error: no such instruction: `ldi 1,%r25'
> arch/parisc/kernel/vdso32/sigtramp.S:50: Error: no such instruction: `ldi 173,%r20'
> arch/parisc/kernel/vdso32/sigtramp.S:51: Error: no such instruction: `ble 0x100(%sr2,%r0)'
>>> arch/parisc/kernel/vdso32/sigtramp.S:54: Error: unknown pseudo-op: `.exit'
>>> arch/parisc/kernel/vdso32/sigtramp.S:55: Error: unknown pseudo-op: `.procend'
>>> arch/parisc/kernel/vdso32/sigtramp.S:76: Error: unknown pseudo-op: `.stringz'
> make[2]: *** [arch/parisc/kernel/vdso32/Makefile:34: arch/parisc/kernel/vdso32/restart_syscall.o] Error 1
> make[2]: *** [arch/parisc/kernel/vdso32/Makefile:34: arch/parisc/kernel/vdso32/sigtramp.o] Error 1
> make[2]: Target 'include/generated/vdso32-offsets.h' not remade because of errors.
> make[1]: *** [arch/parisc/Makefile:188: vdso_prepare] Error 2
> make[1]: Target 'prepare' not remade because of errors.
> make: *** [Makefile:219: __sub-make] Error 2
> make: Target 'prepare' not remade because of errors.
>
>
> vim +16 arch/parisc/kernel/vdso32/restart_syscall.S
>
> 13
> 14 .text
> 15
> > 16 ENTRY_CFI(__kernel_restart_syscall)
> 17 /*
> 18 * Setup a trampoline to restart the syscall
> 19 * with __NR_restart_syscall
> 20 */
> 21
> 22 /* load return pointer */
> 23 #if defined(__VDSO64__)
> 24 ldd 0(%sp), %r31
> 25 #elif defined(__VDSO32__)
> > 26 ldw 0(%sp), %r31
> 27 #endif
> 28
> > 29 be 0x100(%sr2, %r0)
> > 30 ldi __NR_restart_syscall, %r20
> 31
> > 32 ENDPROC_CFI(__kernel_restart_syscall)
>
> ---
> 0-DAY CI Kernel Test Service, Intel Corporation
> https://lists.01.org/hyperkitty/list/kbuild-all@xxxxxxxxxxxx
>