All of lore.kernel.org
 help / color / mirror / Atom feed
* [deller-parisc:5.17-vdso-mini-3 1/1] arch/parisc/kernel/vdso32/sigtramp.S:39: Error: unknown pseudo-op: `.proc'
@ 2022-01-29  2:00 ` kernel test robot
  0 siblings, 0 replies; 8+ messages in thread
From: kernel test robot @ 2022-01-29  2:00 UTC (permalink / raw)
  To: Helge Deller; +Cc: kbuild-all, linux-kernel

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@intel.com/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@intel.com>

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@lists.01.org

^ permalink raw reply	[flat|nested] 8+ messages in thread

* [deller-parisc:5.17-vdso-mini-3 1/1] arch/parisc/kernel/vdso32/sigtramp.S:39: Error: unknown pseudo-op: `.proc'
@ 2022-01-29  2:00 ` kernel test robot
  0 siblings, 0 replies; 8+ messages in thread
From: kernel test robot @ 2022-01-29  2:00 UTC (permalink / raw)
  To: kbuild-all

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

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(a)intel.com/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@intel.com>

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(a)lists.01.org

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [deller-parisc:5.17-vdso-mini-3 1/1] arch/parisc/kernel/vdso32/sigtramp.S:39: Error: unknown pseudo-op: `.proc'
  2022-01-29  2:00 ` kernel test robot
@ 2022-01-29 17:50   ` Helge Deller
  -1 siblings, 0 replies; 8+ messages in thread
From: Helge Deller @ 2022-01-29 17:50 UTC (permalink / raw)
  To: kernel test robot; +Cc: kbuild-all, linux-kernel, John David Anglin

On 1/29/22 03:00, kernel test robot wrote:
> 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@intel.com/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

I'm somewhat confused by those errors.

There are two changes which happened in the parisc port:

1.) If you want to build a 64bit kernel, you now need "ARCH=parisc64". Before "ARCH=parisc" was sufficient,
but now ARCH=parisc64 builds 64bit kernel, and ARCH=parisc builds the 32bit kernel.

2.) The patch which is being complained about here is, that it adds an initial vDSO, which
includes builds the 64- and 32-bit vDSO in the same build.
So, on a 64bit kernel build (which seems to happen here), the 32-bit gcc-11 compiler needs to be
installed as well in order to be able to build the 32-bit "compat" vDSO.
Maybe the errors here are happening, because the 32bit hppa cross compiler is missing?

Could you please check ?

Helge


> 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 */

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [deller-parisc:5.17-vdso-mini-3 1/1] arch/parisc/kernel/vdso32/sigtramp.S:39: Error: unknown pseudo-op: `.proc'
@ 2022-01-29 17:50   ` Helge Deller
  0 siblings, 0 replies; 8+ messages in thread
From: Helge Deller @ 2022-01-29 17:50 UTC (permalink / raw)
  To: kbuild-all

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

On 1/29/22 03:00, kernel test robot wrote:
> 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(a)intel.com/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

I'm somewhat confused by those errors.

There are two changes which happened in the parisc port:

1.) If you want to build a 64bit kernel, you now need "ARCH=parisc64". Before "ARCH=parisc" was sufficient,
but now ARCH=parisc64 builds 64bit kernel, and ARCH=parisc builds the 32bit kernel.

2.) The patch which is being complained about here is, that it adds an initial vDSO, which
includes builds the 64- and 32-bit vDSO in the same build.
So, on a 64bit kernel build (which seems to happen here), the 32-bit gcc-11 compiler needs to be
installed as well in order to be able to build the 32-bit "compat" vDSO.
Maybe the errors here are happening, because the 32bit hppa cross compiler is missing?

Could you please check ?

Helge


> 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 */

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [kbuild-all] Re: [deller-parisc:5.17-vdso-mini-3 1/1] arch/parisc/kernel/vdso32/sigtramp.S:39: Error: unknown pseudo-op: `.proc'
  2022-01-29 17:50   ` Helge Deller
@ 2022-01-30  6:53     ` Chen, Rong A
  -1 siblings, 0 replies; 8+ messages in thread
From: Chen, Rong A @ 2022-01-30  6:53 UTC (permalink / raw)
  To: Helge Deller, kernel test robot
  Cc: kbuild-all, linux-kernel, John David Anglin



On 1/30/2022 1:50 AM, Helge Deller wrote:
> On 1/29/22 03:00, kernel test robot wrote:
>> 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@intel.com/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
> 
> I'm somewhat confused by those errors.
> 
> There are two changes which happened in the parisc port:
> 
> 1.) If you want to build a 64bit kernel, you now need "ARCH=parisc64". Before "ARCH=parisc" was sufficient,
> but now ARCH=parisc64 builds 64bit kernel, and ARCH=parisc builds the 32bit kernel.

Hi Helge,

Thanks for the explanation, we'll update to use ARCH=parisc64 for 64bit 
kernel.

> 
> 2.) The patch which is being complained about here is, that it adds an initial vDSO, which
> includes builds the 64- and 32-bit vDSO in the same build.
> So, on a 64bit kernel build (which seems to happen here), the 32-bit gcc-11 compiler needs to be
> installed as well in order to be able to build the 32-bit "compat" vDSO.
> Maybe the errors here are happening, because the 32bit hppa cross compiler is missing?

I tried the below command, the error still exists, is there anything wrong?

$make W=1 --keep-going CROSS_COMPILE=hppa64-linux- -j32 O=./build_dir 
ARCH=parisc64 prepare
...
Assembler messages:
../arch/parisc/kernel/vdso32/sigtramp.S:39: Error: unknown pseudo-op: 
`.proc'
../arch/parisc/kernel/vdso32/restart_syscall.S:16: Error: bad or 
irreducible absolute expression
../arch/parisc/kernel/vdso32/sigtramp.S:40: Error: unknown pseudo-op: 
`.callinfo'
../arch/parisc/kernel/vdso32/restart_syscall.S:16: Error: junk at end of 
line, first unrecognized character is `:'
../arch/parisc/kernel/vdso32/sigtramp.S:41: Error: unknown pseudo-op: 
`.entry'
../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/sigtramp.S:44: Error: no such instruction: 
`ldi 0,%r25'
../arch/parisc/kernel/vdso32/restart_syscall.S:30: Error: no such 
instruction: `ldi 0,%r20'

Best Regards,
Rong Chen

> 
> Could you please check ?
> 
> Helge
> 
> 
>> 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 */
> _______________________________________________
> kbuild-all mailing list -- kbuild-all@lists.01.org
> To unsubscribe send an email to kbuild-all-leave@lists.01.org
> 

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [deller-parisc:5.17-vdso-mini-3 1/1] arch/parisc/kernel/vdso32/sigtramp.S:39: Error: unknown pseudo-op: `.proc'
@ 2022-01-30  6:53     ` Chen, Rong A
  0 siblings, 0 replies; 8+ messages in thread
From: Chen, Rong A @ 2022-01-30  6:53 UTC (permalink / raw)
  To: kbuild-all

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



On 1/30/2022 1:50 AM, Helge Deller wrote:
> On 1/29/22 03:00, kernel test robot wrote:
>> 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(a)intel.com/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
> 
> I'm somewhat confused by those errors.
> 
> There are two changes which happened in the parisc port:
> 
> 1.) If you want to build a 64bit kernel, you now need "ARCH=parisc64". Before "ARCH=parisc" was sufficient,
> but now ARCH=parisc64 builds 64bit kernel, and ARCH=parisc builds the 32bit kernel.

Hi Helge,

Thanks for the explanation, we'll update to use ARCH=parisc64 for 64bit 
kernel.

> 
> 2.) The patch which is being complained about here is, that it adds an initial vDSO, which
> includes builds the 64- and 32-bit vDSO in the same build.
> So, on a 64bit kernel build (which seems to happen here), the 32-bit gcc-11 compiler needs to be
> installed as well in order to be able to build the 32-bit "compat" vDSO.
> Maybe the errors here are happening, because the 32bit hppa cross compiler is missing?

I tried the below command, the error still exists, is there anything wrong?

$make W=1 --keep-going CROSS_COMPILE=hppa64-linux- -j32 O=./build_dir 
ARCH=parisc64 prepare
...
Assembler messages:
../arch/parisc/kernel/vdso32/sigtramp.S:39: Error: unknown pseudo-op: 
`.proc'
../arch/parisc/kernel/vdso32/restart_syscall.S:16: Error: bad or 
irreducible absolute expression
../arch/parisc/kernel/vdso32/sigtramp.S:40: Error: unknown pseudo-op: 
`.callinfo'
../arch/parisc/kernel/vdso32/restart_syscall.S:16: Error: junk at end of 
line, first unrecognized character is `:'
../arch/parisc/kernel/vdso32/sigtramp.S:41: Error: unknown pseudo-op: 
`.entry'
../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/sigtramp.S:44: Error: no such instruction: 
`ldi 0,%r25'
../arch/parisc/kernel/vdso32/restart_syscall.S:30: Error: no such 
instruction: `ldi 0,%r20'

Best Regards,
Rong Chen

> 
> Could you please check ?
> 
> Helge
> 
> 
>> 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 */
> _______________________________________________
> kbuild-all mailing list -- kbuild-all(a)lists.01.org
> To unsubscribe send an email to kbuild-all-leave(a)lists.01.org
> 

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [kbuild-all] Re: [deller-parisc:5.17-vdso-mini-3 1/1] arch/parisc/kernel/vdso32/sigtramp.S:39: Error: unknown pseudo-op: `.proc'
  2022-01-30  6:53     ` Chen, Rong A
@ 2022-01-30 10:47       ` Helge Deller
  -1 siblings, 0 replies; 8+ messages in thread
From: Helge Deller @ 2022-01-30 10:47 UTC (permalink / raw)
  To: Chen, Rong A, kernel test robot
  Cc: kbuild-all, linux-kernel, John David Anglin

Hello Rong Chen,

On 1/30/22 07:53, Chen, Rong A wrote:
> On 1/30/2022 1:50 AM, Helge Deller wrote:
>> On 1/29/22 03:00, kernel test robot wrote:
>>> 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@intel.com/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
>>
>> I'm somewhat confused by those errors.
>>
>> There are two changes which happened in the parisc port:
>>
>> 1.) If you want to build a 64bit kernel, you now need "ARCH=parisc64". Before "ARCH=parisc" was sufficient,
>> but now ARCH=parisc64 builds 64bit kernel, and ARCH=parisc builds the 32bit kernel.
>
> Hi Helge,
>
> Thanks for the explanation, we'll update to use ARCH=parisc64 for 64bit kernel.
>
>>
>> 2.) The patch which is being complained about here is, that it adds an initial vDSO, which
>> includes builds the 64- and 32-bit vDSO in the same build.
>> So, on a 64bit kernel build (which seems to happen here), the 32-bit gcc-11 compiler needs to be
>> installed as well in order to be able to build the 32-bit "compat" vDSO.
>> Maybe the errors here are happening, because the 32bit hppa cross compiler is missing?
>
> I tried the below command, the error still exists, is there anything wrong?
>
> $make W=1 --keep-going CROSS_COMPILE=hppa64-linux- -j32 O=./build_dir ARCH=parisc64 prepare

Please drop the "CROSS_COMPILE=hppa64-linux-" part.
It will autodetect the cross compiler, so this is sufficient:

make W=1 --keep-going -j32 O=./build_dir ARCH=parisc64 prepare

Helge

> ...
> Assembler messages:
> ../arch/parisc/kernel/vdso32/sigtramp.S:39: Error: unknown pseudo-op: `.proc'
> ../arch/parisc/kernel/vdso32/restart_syscall.S:16: Error: bad or irreducible absolute expression
> ../arch/parisc/kernel/vdso32/sigtramp.S:40: Error: unknown pseudo-op: `.callinfo'
> ../arch/parisc/kernel/vdso32/restart_syscall.S:16: Error: junk at end of line, first unrecognized character is `:'
> ../arch/parisc/kernel/vdso32/sigtramp.S:41: Error: unknown pseudo-op: `.entry'
> ../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/sigtramp.S:44: Error: no such instruction: `ldi 0,%r25'
> ../arch/parisc/kernel/vdso32/restart_syscall.S:30: Error: no such instruction: `ldi 0,%r20'
>
> Best Regards,
> Rong Chen
>
>>
>> Could you please check ?
>>
>> Helge
>>
>>
>>> 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 */
>> _______________________________________________
>> kbuild-all mailing list -- kbuild-all@lists.01.org
>> To unsubscribe send an email to kbuild-all-leave@lists.01.org
>>


^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [deller-parisc:5.17-vdso-mini-3 1/1] arch/parisc/kernel/vdso32/sigtramp.S:39: Error: unknown pseudo-op: `.proc'
@ 2022-01-30 10:47       ` Helge Deller
  0 siblings, 0 replies; 8+ messages in thread
From: Helge Deller @ 2022-01-30 10:47 UTC (permalink / raw)
  To: kbuild-all

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

Hello Rong Chen,

On 1/30/22 07:53, Chen, Rong A wrote:
> On 1/30/2022 1:50 AM, Helge Deller wrote:
>> On 1/29/22 03:00, kernel test robot wrote:
>>> 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(a)intel.com/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
>>
>> I'm somewhat confused by those errors.
>>
>> There are two changes which happened in the parisc port:
>>
>> 1.) If you want to build a 64bit kernel, you now need "ARCH=parisc64". Before "ARCH=parisc" was sufficient,
>> but now ARCH=parisc64 builds 64bit kernel, and ARCH=parisc builds the 32bit kernel.
>
> Hi Helge,
>
> Thanks for the explanation, we'll update to use ARCH=parisc64 for 64bit kernel.
>
>>
>> 2.) The patch which is being complained about here is, that it adds an initial vDSO, which
>> includes builds the 64- and 32-bit vDSO in the same build.
>> So, on a 64bit kernel build (which seems to happen here), the 32-bit gcc-11 compiler needs to be
>> installed as well in order to be able to build the 32-bit "compat" vDSO.
>> Maybe the errors here are happening, because the 32bit hppa cross compiler is missing?
>
> I tried the below command, the error still exists, is there anything wrong?
>
> $make W=1 --keep-going CROSS_COMPILE=hppa64-linux- -j32 O=./build_dir ARCH=parisc64 prepare

Please drop the "CROSS_COMPILE=hppa64-linux-" part.
It will autodetect the cross compiler, so this is sufficient:

make W=1 --keep-going -j32 O=./build_dir ARCH=parisc64 prepare

Helge

> ...
> Assembler messages:
> ../arch/parisc/kernel/vdso32/sigtramp.S:39: Error: unknown pseudo-op: `.proc'
> ../arch/parisc/kernel/vdso32/restart_syscall.S:16: Error: bad or irreducible absolute expression
> ../arch/parisc/kernel/vdso32/sigtramp.S:40: Error: unknown pseudo-op: `.callinfo'
> ../arch/parisc/kernel/vdso32/restart_syscall.S:16: Error: junk at end of line, first unrecognized character is `:'
> ../arch/parisc/kernel/vdso32/sigtramp.S:41: Error: unknown pseudo-op: `.entry'
> ../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/sigtramp.S:44: Error: no such instruction: `ldi 0,%r25'
> ../arch/parisc/kernel/vdso32/restart_syscall.S:30: Error: no such instruction: `ldi 0,%r20'
>
> Best Regards,
> Rong Chen
>
>>
>> Could you please check ?
>>
>> Helge
>>
>>
>>> 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 */
>> _______________________________________________
>> kbuild-all mailing list -- kbuild-all(a)lists.01.org
>> To unsubscribe send an email to kbuild-all-leave(a)lists.01.org
>>

^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2022-01-30 10:49 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-01-29  2:00 [deller-parisc:5.17-vdso-mini-3 1/1] arch/parisc/kernel/vdso32/sigtramp.S:39: Error: unknown pseudo-op: `.proc' kernel test robot
2022-01-29  2:00 ` kernel test robot
2022-01-29 17:50 ` Helge Deller
2022-01-29 17:50   ` Helge Deller
2022-01-30  6:53   ` [kbuild-all] " Chen, Rong A
2022-01-30  6:53     ` Chen, Rong A
2022-01-30 10:47     ` [kbuild-all] " Helge Deller
2022-01-30 10:47       ` Helge Deller

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.