[deller-parisc:5.17-vdso-mini-3 1/1] arch/parisc/kernel/vdso32/sigtramp.S:39: Error: unknown pseudo-op: `.proc'

From: kernel test robot
Date: Fri Jan 28 2022 - 21:00:53 EST


tree: https://git.kernel.org/pub/scm/linux/kernel/git/deller/parisc-linux.git 5.17-vdso-mini-3
head: 8d7e3770fb1fb6c01147f8ebf2914cd2037fac16
commit: 8d7e3770fb1fb6c01147f8ebf2914cd2037fac16 [1/1] parisc: Add vDSO support
config: parisc-generic-64bit_defconfig (https://download.01.org/0day-ci/archive/20220129/202201290925.4WPmV6eS-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=8d7e3770fb1fb6c01147f8ebf2914cd2037fac16
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 8d7e3770fb1fb6c01147f8ebf2914cd2037fac16
# 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

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@xxxxxxxxx>

All errors (new ones prefixed by >>):

arch/parisc/kernel/vdso64/Makefile:30: FORCE prerequisite is missing
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/sigtramp.o] Error 1
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
make[2]: *** [arch/parisc/kernel/vdso32/Makefile:34: arch/parisc/kernel/vdso32/restart_syscall.o] Error 1
make[2]: Target 'include/generated/vdso32-offsets.h' not remade because of errors.
make[1]: *** [arch/parisc/Makefile:186: 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 +39 arch/parisc/kernel/vdso32/sigtramp.S

12
13 .text
14
15 /* Gdb expects the trampoline is on the stack and the pc is offset from
16 a 64-byte boundary by 0, 4 or 5 instructions. Since the vdso trampoline
17 is not on the stack, we need a new variant with different offsets and
18 data to tell gdb where to find the signal context on the stack.
19
20 Here we put the offset to the context data at the start of the trampoline
21 region and offset the first trampoline by 2 instructions. Please do
22 not change the trampoline as the code in gdb depends on the following
23 instruction sequence exactly.
24 */
25 .align 64
26 .word SIGFRAME_CONTEXT_REGS32
27
28 /* The nop here is a hack. The dwarf2 unwind routines subtract 1 from
29 the return address to get an address in the middle of the presumed
30 call instruction. Since we don't have a call here, we artifically
31 extend the range covered by the unwind info by adding a nop before
32 the real start.
33 */
34 nop
35
36 .globl __kernel_sigtramp_rt
37 .type __kernel_sigtramp_rt, @function
38 __kernel_sigtramp_rt:
> 39 .proc
> 40 .callinfo FRAME=ASM_SIGFRAME_SIZE32,CALLS,SAVE_RP
> 41 .entry
42
43 .Lsigrt_start = . - 4
> 44 0: ldi 0, %r25 /* (in_syscall=0) */
> 45 ldi __NR_rt_sigreturn, %r20
> 46 ble 0x100(%sr2, %r0)
47 nop
48
49 1: ldi 1, %r25 /* (in_syscall=1) */
50 ldi __NR_rt_sigreturn, %r20
51 ble 0x100(%sr2, %r0)
52 nop
53 .Lsigrt_end:
> 54 .exit
> 55 .procend
56 .size __kernel_sigtramp_rt,.-__kernel_sigtramp_rt
57
58
59 .section .eh_frame,"a",@progbits
60
61 /* This is where the mcontext_t struct can be found on the stack. */
62 #define PTREGS SIGFRAME_CONTEXT_REGS32 /* 32-bit process offset is -672 */
63
64 /* Register REGNO can be found at offset OFS of the mcontext_t structure. */
65 .macro rsave regno,ofs
66 .byte 0x05 /* DW_CFA_offset_extended */
67 .uleb128 \regno; /* regno */
68 .uleb128 \ofs /* factored offset */
69 .endm
70
71 .Lcie:
72 .long .Lcie_end - .Lcie_start
73 .Lcie_start:
74 .long 0 /* CIE ID */
75 .byte 1 /* Version number */
> 76 .stringz "zRS" /* NUL-terminated augmentation string */

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@xxxxxxxxxxxx