Date: Wed, 26 Jul 2023 18:58:01 +0000 From: bugzilla-noreply@freebsd.org To: bugs@FreeBSD.org Subject: [Bug 272740] CURRENT with ZFS not bootable when built with LLVM from ports Message-ID: <bug-272740-227@https.bugs.freebsd.org/bugzilla/>
next in thread | raw e-mail | index | archive | help
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=3D272740 Bug ID: 272740 Summary: CURRENT with ZFS not bootable when built with LLVM from ports Product: Base System Version: CURRENT Hardware: amd64 OS: Any Status: New Severity: Affects Only Me Priority: --- Component: kern Assignee: bugs@FreeBSD.org Reporter: bsd@orsolic.org Building -CURRENT (2023-07-17 be4c7f273508) without system compiler (with LLVM16 from ports) results in unbootable system: Preloaded elf kernel "/boot/kernel/kernel" at 0xffffffff82328000. Preloaded elf obj module "/boot/kernel/zfs.ko" at 0xffffffff82329090. Preloaded boot_entropy_cache "/boot/entropy" at 0xffffffff823298f8. Preloaded elf obj module "/boot/kernel/cryptodev.ko" at 0xffffffff82329950. Preloaded hostuuid "/etc/hostid" at 0xffffffff8232a140. kldload: unexpected relocation type 42, symbol index 8662 link_elf_obj: symbol __stack_chk_guard undefined KLD file zfs.ko - could not finalize loading ... Trying to mount root from zfs:builder/ROOT/b4 []... Mounting from zfs:builder/ROOT/b4 failed with error 2: unknown file system. Loader variables: vfs.root.mountfrom=3Dzfs:builder/ROOT/b4 Manual root filesystem specification: <fstype>:<device> [options] Mount <device> using filesystem <fstype> and with the specified (optional) option list. eg. ufs:/dev/da0s1a zfs:zroot/ROOT/default cd9660:/dev/cd0 ro (which is equivalent to: mount -t cd9660 -o ro /dev/cd0 /) ? List valid disk boot devices . Yield 1 second (for background tasks) <empty line> Abort manual input Patching and rebuilding LLVM16 with this patch results in bootable system: --- llvm/lib/CodeGen/TargetLoweringBase.cpp.orig 2023-06-11 00:58:16.000000000 +0200 +++ llvm/lib/CodeGen/TargetLoweringBase.cpp 2023-07-15 14:43:52.1519580= 00 +0200 @@ -1979,8 +1979,7 @@ // FreeBSD has "__stack_chk_guard" defined externally on libc.so if (TM.getRelocationModel() =3D=3D Reloc::Static && - !TM.getTargetTriple().isWindowsGNUEnvironment() && - !TM.getTargetTriple().isOSFreeBSD()) + !TM.getTargetTriple().isWindowsGNUEnvironment()) GV->setDSOLocal(true); } } Patch was taken from: https://cgit.freebsd.org/src/commit/?h=3Dstable/13&id=3De8e5d75e6a9676e76c3= bfd6d1d52561ffbb40846 Few months ago it was possible to use LLVM from ports to build kernel and world, but I don't remember the details. This patch was tested in bhyve VM and on real hardware. On real hardware it was possible to boot system without patched compiler wh= en zfs.ko (options ZFS and GEOM_ELI with devices crypto and cryptodev) is built into the kernel. But then other modules (acpi_ibm, iic, drm, i915kms, acpi_video, ... pf, various ng_* and so on) will fail to load with same reason. Didn't try including zfs.ko into the kernel in the VM. --=20 You are receiving this mail because: You are the assignee for the bug.=
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?bug-272740-227>