Date: Sat, 31 Jul 2021 03:14:26 +0000 From: bugzilla-noreply@freebsd.org To: bugs@FreeBSD.org Subject: [Bug 257514] Can not embed ZFS into Kernel on RelEng/13.0 i386 Message-ID: <bug-257514-227@https.bugs.freebsd.org/bugzilla/>
next in thread | raw e-mail | index | archive | help
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=3D257514 Bug ID: 257514 Summary: Can not embed ZFS into Kernel on RelEng/13.0 i386 Product: Base System Version: 13.0-RELEASE Hardware: i386 OS: Any Status: New Severity: Affects Only Me Priority: --- Component: kern Assignee: bugs@FreeBSD.org Reporter: CrazyMihey@Ya.Ru Created attachment 226811 --> https://bugs.freebsd.org/bugzilla/attachment.cgi?id=3D226811&action= =3Dedit Simplyfied Kernel Configuration, Full Building Process Results and System Information Hello, Developers! & Sorry, if I do SomeThing wrong. Some Time ago, on FreeBSD (at least 11.3 & 12.1 & 12.2) on x86 32-Bit I included ZFS Support into Custom Kernel in following Way: device zfs # in =C2=AB/usr/src/sys/i386/conf/CrazyBook=C2=BB But after DownLoading RelEng/13.0 Sources, This Kernel Configuration does n= ot Build any more. :( Process of Getting 13.0: pkg install gitup sed -E -i "" "s~(releng/)([\.\,0-9]*)~\113.0~" "/usr/local/etc/gitup.conf" $(whereis -b -q time) -l rm -rf /usr/src/* /usr/src/.[!.]* /usr/obj= /* /usr/obj/.[!.]* /usr/ports/* /usr/ports/.[!.]* "/var/db/portsnap" "/var/db/gitup" $(whereis -b -q time) -l gitup "release" -v "1" && rm -Rf "/var/db/gitup/release" && for ConfigurationPath in $(find "${Src%"/"}"/sys/*/conf -prune -print); do [ -f "${ConfigurationPath}/GENER= IC" ] && printf "\"%s\"\n" "${ConfigurationPath}" && ln -f -s -v ~/Kernels/* "${ConfigurationPath}"; done First Build the Compiler: cd "/usr/src" && script -a -q "/var/tmp/$(date -j "+%Y.%m.%d-%H:%M:%S")-BuildWorld-$(sh -c 'set -o "pipefail" && egrep -i -o "^[[:space:]]*#[[:space:]]*DeFine.*BSD.*Version[[:space:]]+[[:digit:]]+" "/usr/src/sys/sys/param.h" | rev | egrep -o "[[:digit:]]+" | head -n "1" | = rev | tr -d "[[:space:]]"' || svnlite info "/usr/src" 2>"/dev/null" | grep --ignore-case -- "RevisiOn" | grep --only-matching "[[:digit:]]\+" || cat "/usr/src/.svnversion" 2>"/dev/null" | tr -d "\r\n" | grep "" || cut -f "2"= -d ":" "/usr/src/.gituprevision")-$(( "$(sysctl -n "hw.realmem")" >> 30 ))GB-$(($(sysctl -n "kern.sched.topology_spec" 2>"/dev/null" | grep --extended-regexp --ignore-case --quiet "<Flags>.*Thread.*Group.*</Flags>" >"/dev/null" 2>&1 && printf "$(($(sysctl -n "kern.smp.cpus")/2))" || printf "$(sysctl -n "kern.smp.cpus")")+1))Th.Out" $(whereis -b -q time) -l make buildworld KERNCONF=3D"CrazyBook" -j "$(($(sysctl -n "kern.sched.topology_s= pec" 2>"/dev/null" | grep --extended-regexp --ignore-case --quiet "<Flags>.*Thread.*Group.*</Flags>" >"/dev/null" 2>&1 && printf "$(($(sysctl= -n "kern.smp.cpus")/2))" || printf "$(sysctl -n "kern.smp.cpus")")+1))" # I understand, the Command looks Ugly, but this is just a Part of Future Scrip= t, where Long Expressions will be moved into Functions or AliAces=E2=80=A6 To make sure about CLang Parameters, I removed Parameter Files =C2=AB/etc/s= rc.conf=C2=BB and =C2=AB/etc/make.conf=C2=BB: rm -Rf "/etc/src.conf" "/etc/make.conf" Second try to Build a Custom Kernel: cd "/usr/src" && script -a -q "/var/tmp/$(date -j "+%Y.%m.%d-%H:%M:%S")-BuildKernel-$(sh -c 'set -o "pipefail" && egrep -i -o "^[[:space:]]*#[[:space:]]*DeFine.*BSD.*Version[[:space:]]+[[:digit:]]+" "/usr/src/sys/sys/param.h" | rev | egrep -o "[[:digit:]]+" | head -n "1" | = rev | tr -d "[[:space:]]"' || svnlite info "/usr/src" 2>"/dev/null" | grep --ignore-case -- "RevisiOn" | grep --only-matching "[[:digit:]]\+" || cat "/usr/src/.svnversion" 2>"/dev/null" | tr -d "\r\n" | grep "" || cut -f "2"= -d ":" "/usr/src/.gituprevision")-$(( "$(sysctl -n "hw.realmem")" >> 30 ))GB-$(($(sysctl -n "kern.sched.topology_spec" 2>"/dev/null" | grep --extended-regexp --ignore-case --quiet "<Flags>.*Thread.*Group.*</Flags>" >"/dev/null" 2>&1 && printf "$(($(sysctl -n "kern.smp.cpus")/2))" || printf "$(sysctl -n "kern.smp.cpus")")+1))Th.Out" $(whereis -b -q time) -l make buildkernel KERNCONF=3D"CrazyBook" -j "$(($(sysctl -n "kern.sched.topology_= spec" 2>"/dev/null" | grep --extended-regexp --ignore-case --quiet "<Flags>.*Thread.*Group.*</Flags>" >"/dev/null" 2>&1 && printf "$(($(sysctl= -n "kern.smp.cpus")/2))" || printf "$(sysctl -n "kern.smp.cpus")")+1))" && pri= ntf "\007" && sleep "0.500" && printf "\007" && sleep "1.000" && printf "\007" = && sleep "2.000" && printf "\007" && sleep "4.000" && printf "\007" Now I get Following Error: =E2=80=A6 =E2=80=A6 =E2=80=A6 =E2=80=A6 --- opensolaris_atomic.o --- cc -target i386-unknown-freebsd13.0 --sysroot=3D/usr/obj/usr/src/i386.i386/= tmp -B/usr/obj/usr/src/i386.i386/tmp/usr/bin -c -x assembler-with-cpp -DLOCORE -DFREEBSD_NAMECACHE -D_SYS_VMEM_H_ -D__KERNEL -D__KERNEL__ -nostdinc=20 -include /usr/src/sys/modules/zfs/static_ccompile.h=20 -I/usr/src/sys/contrib/openzfs/include=20 -I/usr/src/sys/contrib/openzfs/include/os/freebsd=20 -I/usr/src/sys/contrib/openzfs/include/os/freebsd/spl=20 -I/usr/src/sys/contrib/openzfs/include/os/freebsd/zfs=20=20 -I/usr/src/sys/modules/zfs -I/usr/src/sys/contrib/openzfs/module/zstd/incl= ude=20 -O2 -pipe -fno-strict-aliasing -g -nostdinc -I. -I/usr/src/sys -I/usr/src/sys/contrib/ck/include -I/usr/src/sys/contrib/libfdt -D_KERNEL -DHAVE_KERNEL_OPTION_HEADERS -include opt_global.h -fno-common -MD=20 -MF.depend.opensolaris_atomic.o -MTopensolaris_atomic.o -fdebug-prefix-map=3D./machine=3D/usr/src/sys/i386/include -fdebug-prefix-map=3D./x86=3D/usr/src/sys/x86/include -mno-mmx -mno-sse -msoft-float -ffreestanding -fwrapv -fstack-protector -Wall -Wredundant-dec= ls -Wnested-externs -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Wcast-qual -Wundef -Wno-pointer-sign -D__printf__=3D__freebsd_kprintf__ -Wmissing-include-dirs -fdiagnostics-show-option -Wno-unknown-pragmas -Wno-error-tautological-compare -Wno-error-empty-body -Wno-error-parentheses-equality -Wno-error-unused-function -Wno-error-pointer-sign -Wno-error-shift-negative-value -Wno-address-of-packed-member -Wno-format-zero-length -mno-aes -mno-avx=20 -std=3Diso9899:1999 -Wno-cast-qual -Wno-duplicate-decl-specifier -Wno-in= line=20 -Wno-missing-braces -Wno-missing-prototypes -Wno-nested-externs=20 -Wno-parentheses -Wno-pointer-arith -Wno-redundant-decls=20 -Wno-strict-prototypes -Wno-switch -Wno-undef -Wno-uninitialized=20 -Wno-unknown-pragmas -Wno-unused -include /usr/src/sys/contrib/openzfs/include/os/freebsd/spl/sys/ccompile.h=20 -I/usr/src/sys/cddl/contrib/opensolaris/uts/common -I/usr/src/sys -I/usr/src/sys/cddl/compat/opensolaris -DBUILDING_ZFS -DHAVE_UIO_ZEROCOPY=20 -DWITH_NETDUMP -D__KERNEL__ -D_SYS_CONDVAR_H_ -DSMP -DIN_FREEBSD_BASE -DHAVE_KSID -DBITS_PER_LONG=3D32 -Werror /usr/src/sys/cddl/contrib/opensolaris/common/atomic/i386/opensolaris_atomic= .S cc: error: no such file or directory: '/usr/src/sys/cddl/contrib/opensolaris/common/atomic/i386/opensolaris_atomi= c.S' cc: error: no input files *** [opensolaris_atomic.o] Error code 1 make[2]: stopped in /usr/obj/usr/src/i386.i386/sys/CrazyBook =E2=80=A6 =E2=80=A6 =E2=80=A6 =E2=80=A6 When I try to use =C2=ABoptions ZFS=C2=BB instead of =C2=ABdevice zfs=C2=BB= , or both in kernel Config, I get the same Error. The very Simplyfied Kernel Configuration, that Produces Described Error is attached to Message. Also attached Full =C2=ABMake BuildKernel=C2=BB OutPut= (Big File) and Current System =C2=ABkldstat -v=C2=BB, which shows that Modules =C2=ABz= fs_vdev=C2=BB, =C2=ABzfs_zvol=C2=BB, =C2=ABzfsctrl=C2=BB, =C2=ABzfs=C2=BB, =C2=ABopensolar= is=C2=BB are in =C2=AB/boot/kernel/kernel=C2=BB on 12.1, how to make the same in 13.0? I saw file =C2=AB/usr/src/sys/cddl/contrib/opensolaris/common/atomic/i386/opensolaris_= atomic.S=C2=BB in 12.2 Sources, but It was ReMoved in 13.0. I did not try to Copy this File from Previous Distributions, because IMHO this is a =C2=ABWrong Way=C2=BB. Why am I worried about This? 1. I Read that some Modules (for example, "IPFW", =E2=80=A6) work B= etter (Theoretically, Faster) when they are Embedded into the FreeBSD Kernel, tha= n if they are KLDLoaded during Boot. 2. SomeTimes (on Some Small-Disk Systems) is useful to make =C2=ABb= zip2 --best --verbose "/boot/kernel/kernel"=C2=BB, but It does not Work on =C2=AB/boot/kernel/*.ko=C2=BB. 3. Finally, It worked in Previous Versions of the System =E2=80=94 = so, Should work in 13.0 too. And the Solution, most likely, is not very Labor-Intensiv= e=E2=80=A6 What is the Best Way to Do in Case to Make the Kernel, including =C2=ABAll = Needed=C2=BB? is it safe to use: device zfs options KSTACK_PAGES=3D4 makeoptions WITHOUT_MODULES+=3D"opensolaris zfs" or better: options ZFS I did not Find some Detailed Documentation about This Parameters and what is the Difference between =C2=ABoptions ZFS=C2=BB and =C2=ABdevice zfs=C2=BB= =E2=80=A6 --=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-257514-227>