<table border="1" cellspacing="0" cellpadding="8">
    <tr>
        <th>Issue</th>
        <td>
            <a href=https://github.com/llvm/llvm-project/issues/78620>78620</a>
        </td>
    </tr>

    <tr>
        <th>Summary</th>
        <td>
            [M68k] error: unknown register name 'sp' in asm when trying to build Linux kernel
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            new issue
      </td>
    </tr>

    <tr>
      <th>Assignees</th>
      <td>
      </td>
    </tr>

    <tr>
      <th>Reporter</th>
      <td>
          glaubitz
      </td>
    </tr>
</table>

<pre>
    Trying to build the Linux/m68k kernel with clang has improved quite a bit, but unfortunately still fails early:

```
glaubitz@node54:/data/home/glaubitz/linux> make CC=clang -j32
  SYNC    include/config/auto.conf.cmd
*
* Restart config...
*
*
* Memory initialization
*
Initialize kernel stack variables at function entry
> 1. no automatic stack variable initialization (weakest) (INIT_STACK_NONE)
  2. pattern-init everything (strongest) (INIT_STACK_ALL_PATTERN) (NEW)
  3. zero-init everything (strongest and safest) (INIT_STACK_ALL_ZERO) (NEW)
choice[1-3?]: 
Enable heap memory zeroing on allocation by default (INIT_ON_ALLOC_DEFAULT_ON) [N/y/?] n
Enable heap memory zeroing on free by default (INIT_ON_FREE_DEFAULT_ON) [N/y/?] n
*
* Kernel hardening options
*
Randomize layout of sensitive kernel structures
> 1. Disable structure layout randomization (RANDSTRUCT_NONE)
  2. Fully randomize structure layout (RANDSTRUCT_FULL) (NEW)
choice[1-2?]: 
 SYSHDR  arch/m68k/include/generated/uapi/asm/unistd_32.h
  SYSTBL arch/m68k/include/generated/asm/syscall_table.h
  UPD include/generated/compile.h
  HOSTCC  scripts/asn1_compiler
  HOSTCC scripts/kallsyms
  UPD     include/config/kernel.release
  UPD include/generated/utsrelease.h
  HOSTCC  scripts/mod/mk_elfconfig
  CC scripts/mod/empty.o
  CC      scripts/mod/devicetable-offsets.s
 MKELF   scripts/mod/elfconfig.h
  HOSTCC  scripts/mod/modpost.o
 HOSTCC  scripts/mod/file2alias.o
  HOSTCC  scripts/mod/sumversion.o
 HOSTLD  scripts/mod/modpost
  CC      kernel/bounds.s
  CHKSHA1 include/linux/atomic/atomic-arch-fallback.h
  CHKSHA1 include/linux/atomic/atomic-long.h
  CHKSHA1 include/linux/atomic/atomic-instrumented.h
  CC arch/m68k/kernel/asm-offsets.s
In file included from arch/m68k/kernel/asm-offsets.c:15:
In file included from ./include/linux/sched.h:12:
./arch/m68k/include/asm/current.h:29:54: error: unknown register name 'sp' in asm
   29 | register unsigned long current_stack_pointer __asm__("sp");
      | ^
1 error generated.
make[2]: *** [scripts/Makefile.build:116: arch/m68k/kernel/asm-offsets.s] Error 1
make[1]: *** [/data/home/glaubitz/linux/Makefile:1287: prepare0] Error 2
make: *** [Makefile:234: __sub-make] Error 2
glaubitz@node54:/data/home/glaubitz/linux>
```

It seems that that the m68k backend needs to learn about register names or at least the SP register.

CC @mshockwave @0x59616e 
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJycV11z4joS_TXipQuXLWMCDzwQwDVTQ8gUkNq6--KS7TbWRZZYSSaX-fVbss1HWDI3e1MUsdHpc1r9IbeZMXwnESckeibRvMdqWyo92QlWp9z-6qUqP022-sTlDqyCtOYiB1siLLms_yI0roajPexRSxTwzm0JmWByByUzwKuDVkfM4T81twgMUm4JnUFaW6hlobStJbMoTmAsFwIKxoUBZFqcSDgl_pz45--h332a27N3ZOBLlWM0cHAa58wyQuNSVUhofAHRWDS-hguo2B5hNiPhvPWy_2dIW0qAzR-rGQAAl5moc8eQKVnwHaExq63y3J2XVXnnEZ1eLmCNxjJtoTXwPO9_MVfwC1ZKn4BLbjkT_BezXMk73PfzIp5DayzL9nBkmrNUoAFmoahl5mwBpdWnjiFcQOCBVOB8rpjl2Z3pnTAQOnpHtkdjCR27u--r79tks53OfiSr19WC0PE5QtSDA7MWtew7EsAj6pMtXWkQOjJWK7l7yDNdLpOf0-12sV51i6vFv26IQw9-oVa_ZQUmczCs-FTg34v16wP2rFQ8QxI9B_2QhDGJ5iScQru2kE1ESmQHqNq0OD-ctJLAhFBZG6T0BDkWrBb2Ivy6cqqvs2S-iKdvS_dDox49rwiNT4TGrRrIr2gVGvETlXi9WHxV5EOh_Wgrp2Q6R9noHNxmzB10zWSuKldqgp1UbUEVYFAabvnxpvx0ndlao_lQZ3Numl1dls8cuiO91Nh6uppvtuu32fZBVcW1EKeLzQO6jwTx23L5-0zT-0zD5o_Nt_kagOms7E4tQuNrr-9QomYWc0Ljmh2463pTuRvJjc2TkHrl9aTYbJ-XX6JqOczJZEyIxLpgXXnefs7hsVmmqgO_hX573WxnMwCTaX6wpmGWQdLh9B3sitozIcypMreSnxxybaY9jQKZwb_3sbamw_7OzUo5bLVPUBSdVIf94GcLw-pgT566QTR_97AcjzzDJph9VRQGrfHOO3z5sVjGD2wu8l9wVuUHZezFj89wBRdImeDMXF3-DGvq6ojacCU_0C7nn8rfB6FND6FxqmqZXzcMs28_Nt-mwU2WRPdoZlZVPLtc9F3B9gsmRMqy_TUOXycQSu7-iR2XrqMrlBbzG_vZXQtdtshMdZ_Y7xJcvM9iORRaVV-xz0g4DaLLPPGYx_vQwOdtmKxs_A2nAb0QOOhnnd92e1ZrjdI2hnRMwmkznwBqrbS7qOVeqncJGnfcWNQgWYVA6JM5EPoEXILj6YIE7px7ml3BtWwGthxcMqDTSppnfHJQXDpMkjBTJQmhI0KpY6XukAyfL6QADSmJFu1PQesdXPq7m2DcvESiZ3o-S-m0_bgn0LVuX9geXVC9Zjp04QqGDv6l7EZzWDTawQfJ4JHk3894V2earI2eHMdB44Fp9K9a9EbrXuSGgIZN5pLE1Gm_deyO4Z9Oog_H2q5CLRjEyoAtmT1_ITRztmtclDlIxNy4eVwg0xJY2jxzb-vJgNJuSHQHdEuw-XlBeLd6sxmQgV-ZUmX7d3ZEd-f_FY2HwRChl0_CfByOWQ8nwZMfDYMgHA965SQN80FRRHkU-mk4GvujcZpi_kSH44INRhnr8Qn16cAPghH1o2E48Io0HPkZjrNhGqb5KCcDHyvGhSfEsfKU3vW4MTVOnkZD6vcES1GY5q2EUonv0Cy6So7mPT1xNv203hky8AU31lxZLLeieZ15cXUXzf_PxoP3EiXYuzee5m2nO4N7tRaT0tqDaZPtMsxtWadeplz_O0-6f_2DVn9iZt0p4fx33dLs778BAAD__97sNdw">