Re: OpenBSD/spac64 by LLVM toolchain

Theo Buehler <[email protected]>
Newsgroups gmane.os.openbsd.tech
Message-ID <[email protected]>
On Sun, Jul 05, 2026 at 11:56:06AM +0200, Kirill A. Korinsky wrote:
> tech@,
> 
> Here a diff which allows me to build OpenBSD/spac64 by llvm toolchain.
> 
> My test cycle from clean snapshot was:
> 
> 1. Rebuild clang / lld
> 
> cd /usr/src/gnu/usr.bin/clang
> doas make clean
> doas -u build make CC=clang CXX=clang++ -j8
> doas make install
> 
> 2. Rebuild clang / lld as system compiler
> 
> cd /usr/src/share/mk
> doas make install
> cd /usr/src/gnu/usr.bin/clang
> doas make clean
> doas -u build make CC=clang CXX=clang++ LD=ld.lld -j8
> doas make install
> 
> 3. Rebuild the system itself
> 
> cd /usr/src
> doas make build -j8

This make build step (which does include an install step) does not
complete on my M3k since static binaries segfault in _start(). Once ksh
is installed and linked to sh, the system is pretty much broken.

-static -no-pie binaries work.

Here's a simple debug session if it helps. I can leave the machine in
this state for a bit in case someone has a suggestion, but I would like
to do some other testing on it later today.

$ cc --version; ld --version
OpenBSD clang version 22.1.6
Target: sparc64-unknown-openbsd7.9
Thread model: posix
InstalledDir: /usr/bin
LLD 22.1.6 (compatible with GNU linkers)
$ cat test.c
int main(void) { return 27; }
$ cc -g -o test-dynamic test.c
$ ./test-dynamic; echo $?
27
$ cc -g -static -o test-static test.c
$ ktrace ./test-static
Segmentation fault (core dumped)
$ kdump
   825 ktrace   RET   ktrace 0
   825 ktrace   CALL  execve(0xfffffed2694a97df,0xfffffed2694a9670,0xfffffed2694a9680)
   825 ktrace   NAMI  "./test-static"
   825 ktrace   ARGS
	[0] = "./test-static"
   825 test-static RET   execve JUSTRETURN
   825 test-static PSIG  SIGSEGV SIG_DFL code=SEGV_ACCERR addr=0x18ad1077d0 trapno=1
   825 test-static NAMI  "test-static.core"
$ egdb -q test-static
Reading symbols from test-static...
(gdb) start
Temporary breakpoint 1 at 0x107d84: file test.c, line 1.
Starting program: /tmp/test-static

Program received signal SIGSEGV, Segmentation fault.
0x000000d5124077d4 in _start ()
(gdb) disas
Dump of assembler code for function _start:
   0x000000d5124077b4 <+0>:	mov  %g0, %fp
   0x000000d5124077b8 <+4>:	sub  %sp, 0xb0, %sp
   0x000000d5124077bc <+8>:	add  %sp, 0x8af, %l3
   0x000000d5124077c0 <+12>:	add  %l3, 0x80, %o0
   0x000000d5124077c4 <+16>:	mov  %o0, %l0
   0x000000d5124077c8 <+20>:	call  0xd5124077d4 <_start+32>
   0x000000d5124077cc <+24>:	nop
   0x000000d5124077d0 <+28>:	call  0xd5125247e0
=> 0x000000d5124077d4 <+32>:	ld  [ %o7 + 8 ], %o2
   0x000000d5124077d8 <+36>:	sll  %o2, 2, %o2
   0x000000d5124077dc <+40>:	sra  %o2, 0, %o2
   0x000000d5124077e0 <+44>:	add  %o2, %o7, %o2
   0x000000d5124077e4 <+48>:	call  0xd512407800 <_dl_boot_bind>
   0x000000d5124077e8 <+52>:	mov  %l3, %o1
   0x000000d5124077ec <+56>:	add  %sp, 0xb0, %sp
   0x000000d5124077f0 <+60>:	add  %sp, 0x87f, %o0
   0x000000d5124077f4 <+64>:	b  %icc, 0xd512407a4c
   0x000000d5124077f8 <+68>:	mov  %g0, %o1
End of assembler dump.
(gdb) info registers
g0             0x0                 0
g1             0x0                 0
g2             0x0                 0
g3             0x0                 0
g4             0x0                 0
g5             0x0                 0
g6             0x0                 0
g7             0x0                 0
o0             0xfffffe562b3fc6c0  -1828930468160
o1             0x0                 0
o2             0x0                 0
o3             0x0                 0
o4             0x0                 0
o5             0x0                 0
sp             0xfffffe562b3fbd91  0xfffffe562b3fbd91
o7             0xd5124077c8        915134248904
l0             0xfffffe562b3fc6c0  -1828930468160
l1             0x0                 0
l2             0x0                 0
l3             0xfffffe562b3fc640  -1828930468288
l4             0x0                 0
l5             0x0                 0
l6             0x0                 0
l7             0x0                 0
i0             0x0                 0
i1             0x0                 0
i2             0x0                 0
i3             0x0                 0
i4             0x0                 0
i5             0x0                 0
fp             0x0                 0x0
i7             0x6a19207ccd54d741  7645177562831050561
pc             0xd5124077d4        0xd5124077d4 <_start+32>
npc            0xd5124077d8        0xd5124077d8 <_start+36>
state          0x82000201          2181038593
fsr            0x0                 [ ]
fprs           <unavailable>
y              0x0                 0
cwp            0x1                 1
pstate         0x2                 [ IE ]
asi            0x82                130
ccr            0x0                 [ ]
(gdb)
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.