Page MenuHomeFreeBSD

stand/libsa/zfs: disable ZSTD_TRACE and DYNAMIC_BMI2 code paths
ClosedPublic

Authored by rlibby on Thu, May 7, 5:08 AM.
Tags
None
Referenced Files
F157511773: D56866.id.diff
Fri, May 22, 6:02 AM
Unknown Object (File)
Wed, May 20, 5:37 PM
Unknown Object (File)
Wed, May 20, 1:22 AM
Unknown Object (File)
Mon, May 18, 10:18 PM
Unknown Object (File)
Sun, May 17, 10:04 AM
Unknown Object (File)
Sun, May 17, 10:04 AM
Unknown Object (File)
Sun, May 17, 3:09 AM
Unknown Object (File)
Sat, May 16, 8:07 PM
Subscribers

Details

Summary

Enabling ZSTD_TRACE leaves behind undefined weak symbols, which causes a
problem for gcc builds. The bfd linker emits an obscure error about
overlapping FDEs. We don't need ZSTD_TRACE for libsa, so just disable
it.

Also disable BMI2 instruction optimizations. The addition of the
optional BMI2 code paths caused the boot loader binaries to grow larger
(28 KiB for clang, 32 KiB for gcc). The boot loader binaries are size
constrained, and this pushed the gcc-generated lua_loader.bin over the
500000 byte limit, and the clang one to within 4k of the limit.

Fixes: 8a62a2a5659d ("zfs: merge openzfs/zfs@f8e5af53e")

Test Plan

make buildworld && env MAKEOBJDIRPREFIX=/usr/obj/gcc14 CROSS_TOOLCHAIN=amd64-gcc14 make buildworld

Diff Detail

Repository
rG FreeBSD src repository
Lint
Lint Not Applicable
Unit
Tests Not Applicable