Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

2.5-step builds/what if ZFS but it parallelised/proper out-of-tree support/2:34 -> 1:36 (all)/1:51 -> 1:01 (userland) #13316

Closed
wants to merge 31 commits into from

Conversation

nabijaczleweli
Copy link
Contributor

@nabijaczleweli nabijaczleweli commented Apr 10, 2022

Motivation and Context

I think the recognised medical term for watching one object be built at a time when changing a library on your 24-CPU machine is "apoplexia".

Description

Everything (except the includes and bulk of the tests, which take incredible advantage from nobase_, and are instant anyway now) is one Makefile. This means that (a) we have proper dependency tracking, (b) there's make lib cmd (and udev, which I split out of cmd toward the end) targets if you just want some, and (c) lib/ and cmd/ build into top_builddir, which means (c1) you can do make zfs zed libzpool.la etc/systemd/system/zfs-mount-generator and have just them be built and (c2) actually using anything out of the build directory, especially the libraries, or especially especially tracing the binaries, is infinitely easier.

Despite this, everything is still its own Makefile.am, if it wants to be.
Cf. https://www.gnu.org/software/automake/manual/html_node/Include.html for syntax

I, also, did everything here out-of-tree, which meant fixing a bunch of bits. Especially pyzfs which was entirely and silently broken. And shat into the source tree. Python moment.
And the lists are sorted now as well.

And a bit more. See individual commit messages for details and partial diffs.

TODO/question: is the small obsolete_name pruning good enough as-is or should I get rid of --obsolete-{name,version} as well, or?

Diffs

The funny one first:

-rw-r--r-- 1 nabijaczleweli users 33335632 Apr 10 23:53 zfs-2.1.99.tar.gz
-rw-r--r-- 1 nabijaczleweli users 35794421 Apr 10 23:54 zfs-2.1.99.tar.gz

Yes, that's 34.14 -> 31.79 (-2.34) MiB (gzip -9ed!). Uncompressed it's

nabijaczleweli@tarta:~/uwu/oot$ zcat zfs-2.1.99.tar.gz | wc -c
63713280
nabijaczleweli@tarta:~/uwu/cur$ zcat zfs-2.1.99.tar.gz | wc -c
72837120

for 69.46 -> 60.76 (-8.70) MiB.

Because this removes 291 Makefile.ins from the distribution.

Otherwise, diffs from this:

tar -taf zfs-2.1.99.tar.gz | sort > zfs-2.1.99.tar.gz.listing
tar -tvaf zfs-2.1.99.tar.gz | awk '{$2=$4=$5="";print $6 "\t" $0}' | sort | cut -f2- | column -t > zfs-2.1.99.tar.gz.listing-v
find instdest/ | sort > instdest.listing
tar -cf - instdest/ | tar -tvf - | sed 's/ -> /_->_/' | awk '{$2=$3=$4=$5="";print $6 "\t" $0}' | sort | cut -f2- | column -t | sed 's/_->_/ -> /' > instdest.listing-v

dist (fname, no Makefiles)

diff --git a/./zfs-2.1.99.tar.gz.listing b/../oot/zfs-2.1.99.tar.gz.listing
index 58caa4921..99023805a 100644
--- a/./zfs-2.1.99.tar.gz.listing
+++ b/../oot/zfs-2.1.99.tar.gz.listing
-zfs-2.1.99/cmd/arcstat/
-zfs-2.1.99/cmd/arcstat/arcstat.in
-zfs-2.1.99/cmd/arc_summary/
-zfs-2.1.99/cmd/arc_summary/arc_summary3
-zfs-2.1.99/cmd/dbufstat/
-zfs-2.1.99/cmd/dbufstat/dbufstat.in
-zfs-2.1.99/cmd/fsck_zfs/
-zfs-2.1.99/cmd/fsck_zfs/fsck.zfs
-zfs-2.1.99/cmd/fsck_zfs/fsck.zfs.in
+zfs-2.1.99/cmd/arcstat.in
+zfs-2.1.99/cmd/arc_summary
+zfs-2.1.99/cmd/dbufstat.in
+zfs-2.1.99/cmd/fsck.zfs.in
-zfs-2.1.99/cmd/mount_zfs/
-zfs-2.1.99/cmd/mount_zfs/mount_zfs.c
+zfs-2.1.99/cmd/mount_zfs.c
-zfs-2.1.99/cmd/vdev_id/
-zfs-2.1.99/cmd/vdev_id/vdev_id
-zfs-2.1.99/cmd/zfs_ids_to_path/
-zfs-2.1.99/cmd/zfs_ids_to_path/zfs_ids_to_path.c
+zfs-2.1.99/cmd/zfs_ids_to_path.c
-zfs-2.1.99/cmd/zgenhostid/
-zfs-2.1.99/cmd/zgenhostid/zgenhostid.c
-zfs-2.1.99/cmd/zhack/
-zfs-2.1.99/cmd/zhack/zhack.c
+zfs-2.1.99/cmd/zgenhostid.c
+zfs-2.1.99/cmd/zhack.c
-zfs-2.1.99/cmd/ztest/
-zfs-2.1.99/cmd/ztest/ztest.c
-zfs-2.1.99/cmd/zvol_id/
-zfs-2.1.99/cmd/zvol_id/zvol_id_main.c
-zfs-2.1.99/cmd/zvol_wait/
-zfs-2.1.99/cmd/zvol_wait/zvol_wait
+zfs-2.1.99/cmd/ztest.c
+zfs-2.1.99/cmd/zvol_wait
-zfs-2.1.99/config/Abigail.am
-zfs-2.1.99/config/config.awk
-zfs-2.1.99/contrib/bash_completion.d/zfs
-zfs-2.1.99/etc/systemd/system/50-zfs.preset.in
+zfs-2.1.99/etc/systemd/system/50-zfs.preset
-zfs-2.1.99/lib/libspl/include/util/
-zfs-2.1.99/lib/libspl/include/util/sscanf.h
+zfs-2.1.99/man/man1/test-runner.1
-zfs-2.1.99/tests/test-runner/man/
-zfs-2.1.99/tests/test-runner/man/test-runner.1
-zfs-2.1.99/tests/zfs-tests/tests/functional/pam/utilities.kshlib
+zfs-2.1.99/tests/zfs-tests/tests/functional/pam/utilities.kshlib.in
-zfs-2.1.99/tests/zfs-tests/tests/stress/
+zfs-2.1.99/udev/vdev_id
+zfs-2.1.99/udev/zvol_id.c

dist (size+mode, no Makefiles):

diff --git a/./zfs-2.1.99.tar.gz.listing-v b/../oot/zfs-2.1.99.tar.gz.listing-v
index e212eee27..f60107e22 100644
--- a/./zfs-2.1.99.tar.gz.listing-v
+++ b/../oot/zfs-2.1.99.tar.gz.listing-v
--rwxr-xr-x  59        zfs-2.1.99/autogen.sh
--rwxr-xr-x  16877     zfs-2.1.99/cmd/arcstat/arcstat.in
-drwxr-xr-x  0         zfs-2.1.99/cmd/arcstat/
--rwxr-xr-x  33957     zfs-2.1.99/cmd/arc_summary/arc_summary3
-drwxr-xr-x  0         zfs-2.1.99/cmd/arc_summary/
--rwxr-xr-x  22445     zfs-2.1.99/cmd/dbufstat/dbufstat.in
-drwxr-xr-x  0         zfs-2.1.99/cmd/dbufstat/
+-rwxr-xr-x  87        zfs-2.1.99/autogen.sh
+-rwxr-xr-x  16877     zfs-2.1.99/cmd/arcstat.in
+-rwxr-xr-x  33957     zfs-2.1.99/cmd/arc_summary
+-rwxr-xr-x  22445     zfs-2.1.99/cmd/dbufstat.in
-drwxr-xr-x  0         zfs-2.1.99/cmd/fsck_zfs/
--rwxr-xr-x  766       zfs-2.1.99/cmd/fsck_zfs/fsck.zfs.in
--rwxr-xr-x  772       zfs-2.1.99/cmd/fsck_zfs/fsck.zfs
-drwxr-xr-x  0         zfs-2.1.99/cmd/mount_zfs/
--rw-r--r--  11395     zfs-2.1.99/cmd/mount_zfs/mount_zfs.c
+-rwxr-xr-x  756       zfs-2.1.99/cmd/fsck.zfs.in
+-rw-r--r--  11395     zfs-2.1.99/cmd/mount_zfs.c
-drwxr-xr-x  0         zfs-2.1.99/cmd/vdev_id/
--rwxr-xr-x  20994     zfs-2.1.99/cmd/vdev_id/vdev_id
-drwxr-xr-x  0         zfs-2.1.99/cmd/zfs_ids_to_path/
--rw-r--r--  2425      zfs-2.1.99/cmd/zfs_ids_to_path/zfs_ids_to_path.c
+-rw-r--r--  2425      zfs-2.1.99/cmd/zfs_ids_to_path.c
-drwxr-xr-x  0         zfs-2.1.99/cmd/zgenhostid/
--rw-r--r--  3504      zfs-2.1.99/cmd/zgenhostid/zgenhostid.c
-drwxr-xr-x  0         zfs-2.1.99/cmd/zhack/
--rw-r--r--  16766     zfs-2.1.99/cmd/zhack/zhack.c
+-rw-r--r--  3504      zfs-2.1.99/cmd/zgenhostid.c
+-rw-r--r--  16766     zfs-2.1.99/cmd/zhack.c
-drwxr-xr-x  0         zfs-2.1.99/cmd/ztest/
--rw-r--r--  214637    zfs-2.1.99/cmd/ztest/ztest.c
-drwxr-xr-x  0         zfs-2.1.99/cmd/zvol_id/
--rw-r--r--  3166      zfs-2.1.99/cmd/zvol_id/zvol_id_main.c
-drwxr-xr-x  0         zfs-2.1.99/cmd/zvol_wait/
--rwxr-xr-x  2551      zfs-2.1.99/cmd/zvol_wait/zvol_wait
+-rw-r--r--  214637    zfs-2.1.99/cmd/ztest.c
+-rwxr-xr-x  2551      zfs-2.1.99/cmd/zvol_wait
--rw-r--r--  1678      zfs-2.1.99/config/Abigail.am
--rw-r--r--  148       zfs-2.1.99/config/always-cppcheck.m4
+-rw-r--r--  259       zfs-2.1.99/config/always-cppcheck.m4
--rw-r--r--  639       zfs-2.1.99/config/always-system.m4
+-rw-r--r--  737       zfs-2.1.99/config/always-system.m4
--rw-r--r--  334       zfs-2.1.99/config/config.awk
--rw-r--r--  295       zfs-2.1.99/config/CppCheck.am
+-rw-r--r--  749       zfs-2.1.99/config/CppCheck.am
--rw-r--r--  3567      zfs-2.1.99/config/Rules.am
--rw-r--r--  1837      zfs-2.1.99/config/Shellcheck.am
--rw-r--r--  1335      zfs-2.1.99/config/Substfiles.am
+-rw-r--r--  3577      zfs-2.1.99/config/Rules.am
+-rw-r--r--  1876      zfs-2.1.99/config/Shellcheck.am
+-rw-r--r--  1488      zfs-2.1.99/config/Substfiles.am
--rw-r--r--  15824     zfs-2.1.99/configure.ac
--rwxr-xr-x  2503235   zfs-2.1.99/configure
+-rw-r--r--  2685      zfs-2.1.99/configure.ac
+-rwxr-xr-x  2455399   zfs-2.1.99/configure
--rw-r--r--  1256      zfs-2.1.99/config/user.m4
+-rw-r--r--  945       zfs-2.1.99/config/user.m4
--rw-r--r--  1926      zfs-2.1.99/config/user-systemd.m4
--rw-r--r--  276       zfs-2.1.99/config/user-sysvinit.m4
+-rw-r--r--  1955      zfs-2.1.99/config/user-systemd.m4
+-rw-r--r--  249       zfs-2.1.99/config/user-sysvinit.m4
--rw-r--r--  15136     zfs-2.1.99/contrib/bash_completion.d/zfs
--rw-r--r--  1865      zfs-2.1.99/contrib/pyzfs/setup.py.in
+-rw-r--r--  1916      zfs-2.1.99/contrib/pyzfs/setup.py.in
--rwxr-xr-x  1534      zfs-2.1.99/copy-builtin
+-rwxr-xr-x  1189      zfs-2.1.99/copy-builtin
--rw-r--r--  239       zfs-2.1.99/etc/systemd/system/50-zfs.preset.in
+-rw-r--r--  239       zfs-2.1.99/etc/systemd/system/50-zfs.preset
-drwxr-xr-x  0         zfs-2.1.99/lib/libspl/include/util/
--rw-r--r--  1017      zfs-2.1.99/lib/libspl/include/util/sscanf.h
--rw-r--r--  11357     zfs-2.1.99/lib/libzfs/libzfs_import.c
+-rw-r--r--  11242     zfs-2.1.99/lib/libzfs/libzfs_import.c
--rw-r--r--  137462    zfs-2.1.99/lib/libzfs/libzfs_pool.c
+-rw-r--r--  137470    zfs-2.1.99/lib/libzfs/libzfs_pool.c
+-rw-r--r--  7390      zfs-2.1.99/man/man1/test-runner.1
--rw-r--r--  212       zfs-2.1.99/META
+-rw-r--r--  199       zfs-2.1.99/META
--rw-r--r--  21745     zfs-2.1.99/module/icp/algs/edonr/edonr.c
+-rw-r--r--  21676     zfs-2.1.99/module/icp/algs/edonr/edonr.c
--rw-r--r--  78246     zfs-2.1.99/module/zfs/vdev_removal.c
+-rw-r--r--  78161     zfs-2.1.99/module/zfs/vdev_removal.c
--rwxr-xr-x  4601      zfs-2.1.99/scripts/zfs-helpers.sh
+-rwxr-xr-x  4545      zfs-2.1.99/scripts/zfs-helpers.sh
--rwxr-xr-x  18614     zfs-2.1.99/scripts/zfs-tests.sh
--rwxr-xr-x  13989     zfs-2.1.99/scripts/zimport.sh
+-rwxr-xr-x  18498     zfs-2.1.99/scripts/zfs-tests.sh
+-rwxr-xr-x  13971     zfs-2.1.99/scripts/zimport.sh
-drwxr-xr-x  0         zfs-2.1.99/tests/test-runner/man/
--rw-r--r--  7390      zfs-2.1.99/tests/test-runner/man/test-runner.1
--rw-r--r--  33981     zfs-2.1.99/tests/zfs-tests/cmd/draid.c
+-rw-r--r--  33931     zfs-2.1.99/tests/zfs-tests/cmd/draid.c
--rw-r--r--  1514      zfs-2.1.99/tests/zfs-tests/tests/functional/pam/utilities.kshlib
+-rw-r--r--  1505      zfs-2.1.99/tests/zfs-tests/tests/functional/pam/utilities.kshlib.in
-drwxr-xr-x  0         zfs-2.1.99/tests/zfs-tests/tests/stress/
+-rwxr-xr-x  20994     zfs-2.1.99/udev/vdev_id
+-rw-r--r--  3166      zfs-2.1.99/udev/zvol_id.c

The Makefile parts of the dist would put me over the 64k limit, so:
zfs-2.1.99.tar.gz.listing.diff-Makefiles.gz
zfs-2.1.99.tar.gz.listing-v.diff-Makefiles.gz

install (bare):

diff --git a/./instdest.listing b/../oot/instdest.listing
index 0403df6d5..1879cf408 100644
--- a/./instdest.listing
+++ b/../oot/instdest.listing
+instdest/usr/local/etc/bash_completion.d
+instdest/usr/local/etc/bash_completion.d/zfs
-instdest/usr/local/include/libspl/sscanf.h
-instdest/usr/local/src/spl-2.1.99
-instdest/usr/local/src/spl-2.1.99/5.10.0-13-amd64
-instdest/usr/local/src/spl-2.1.99/include
-instdest/usr/local/src/spl-2.1.99/spl_config.h.in
-instdest/usr/local/src/spl-2.1.99/spl.release.in
-instdest/usr/local/src/zfs-2.1.99/5.10.0-13-amd64/spl_config.h
-instdest/usr/local/src/zfs-2.1.99/5.10.0-13-amd64/spl.release

install (mode):

diff --git a/./instdest.listing-v b/../oot/instdest.listing-v
index c48a01bc4..2ba966ce2 100644
--- a/./instdest.listing-v
+++ b/../oot/instdest.listing-v
+drwxr-xr-x  instdest/usr/local/etc/bash_completion.d/
+-rw-r--r--  instdest/usr/local/etc/bash_completion.d/zfs
--rw-r--r--  instdest/usr/local/include/libspl/sscanf.h
--rwxr-xr-x  instdest/usr/local/share/zfs/zfs-tests/tests/functional/cli_root/zfs_jail/jail.conf
+-rw-r--r--  instdest/usr/local/share/zfs/zfs-tests/tests/functional/cli_root/zfs_jail/jail.conf
--rwxr-xr-x  instdest/usr/local/share/zfs/zfs-tests/tests/functional/pam/utilities.kshlib
+-rw-r--r--  instdest/usr/local/share/zfs/zfs-tests/tests/functional/pam/utilities.kshlib
--rwxr-xr-x  instdest/usr/local/share/zfs/zfs-tests/tests/functional/trim/trim.cfg
+-rw-r--r--  instdest/usr/local/share/zfs/zfs-tests/tests/functional/trim/trim.cfg
--rwxr-xr-x  instdest/usr/local/share/zfs/zfs-tests/tests/functional/trim/trim.kshlib
+-rw-r--r--  instdest/usr/local/share/zfs/zfs-tests/tests/functional/trim/trim.kshlib
-lrwxrwxrwx  instdest/usr/local/src/spl-2.1.99/5.10.0-13-amd64 -> ../zfs-2.1.99/5.10.0-13-amd64
-drwxr-xr-x  instdest/usr/local/src/spl-2.1.99/
-lrwxrwxrwx  instdest/usr/local/src/spl-2.1.99/include -> ../zfs-2.1.99/include/spl
-lrwxrwxrwx  instdest/usr/local/src/spl-2.1.99/spl_config.h.in -> ../zfs-2.1.99/zfs_config.h.in
-lrwxrwxrwx  instdest/usr/local/src/spl-2.1.99/spl.release.in -> ../zfs-2.1.99/zfs.release.in
-lrwxrwxrwx  instdest/usr/local/src/zfs-2.1.99/5.10.0-13-amd64/spl_config.h -> zfs_config.h
-lrwxrwxrwx  instdest/usr/local/src/zfs-2.1.99/5.10.0-13-amd64/spl.release -> zfs.release

Measurements

All taken on my flat computer (two E5645s, for 2x6x2 CPUs, 96G @ 1600MT/s) on Bullseye with Clang trunk -O3 and LLD. Old source resided on tmpfs, new source on disk (but it all came out the ARC, so I'm not retaking these, but it probably means it's a tad more pessimistic than spherical in vacuum). Both build directories on tmpfs.

All before/after bash time outputs. make lib cmd udev is make -C lib && make -C cmd on old tree.
Where indicated, parallelisation factors are provided, calculated as (user+sys)/real.

autogen.sh after:        before:
  real    0m38.693s      0m52.355s        (-13.67s)
  user    0m36.544s      0m50.149s
  sys     0m1.664s       0m1.772s

configure after:         before:
  real    0m59.085s      1m9.423s         (-10.34s)
  user    4m21.216s      4m30.080s
  sys     1m7.268s       1m11.328s
          5.56x          4.92x

make -j25 after:         before:
  real    1m36.821s      2m34.181s        (-57.36s)
  user    21m43.081s     19m47.144s
  sys     3m6.356s       2m52.616s
          15.38x         8.82x

make -j25 lib cmd udev:  after: before:
  real    1m1.690s       1m51.591s        (-49.90s)
  user    12m8.904s      10m37.732s
  sys     1m50.114s      1m36.097s
          13.60x         6.58x

nothing to be done: make -j25
  real    0m4.294s       0m5.161s         (-0.87s)
  user    0m4.396s       0m4.813s
  sys     0m1.340s       0m1.626s

touch module/avl/avl.c make -j25
  real    0m7.410s       0m13.706s        (-6.30s)
  user    0m13.904s      0m12.789s
  sys     0m4.954s       0m4.539s
          2.55x          1.26x

touch avl.c make -j25 lib cmd udev:
  real    0m3.741s       0m8.929s         (-5.19s)
  user    0m6.627s       0m7.111s
  sys     0m2.677s       0m2.451s

touch libzfs_diff make -j25 lib cmd udev:
  real    0m2.787s       0m5.879s         (-3.09s)
  user    0m4.487s       0m4.932s
  sys     0m1.478s       0m1.308s

make clean after:        before:
  real    0m2.084s       0m4.532s         (-2.45s)
  user    0m1.442s       0m3.000s
  sys     0m0.687s       0m1.711s

make dist after:         before:
  real    0m14.550s      0m24.964s        (-10.41s)
  user    0m10.819s      0m19.761s
  sys     0m4.421s       0m7.834s

make install after:      before:
  real    0m14.785s      0m18.526s        (-3.75s)
  user    0m11.120s      0m14.640s
  sys     0m5.541s       0m6.800s

Types of changes

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Performance enhancement (non-breaking change which improves efficiency)
  • Code cleanup (non-breaking change which makes code smaller or more readable)
  • Breaking change (fix or feature that would cause existing functionality to change)
  • Library ABI change (libzfs, libzfs_core, libnvpair, libuutil and libzfsbootenv)
  • Documentation (a change to man pages or other documentation)

Checklist:

  • My code follows the OpenZFS code style requirements.
  • I have updated the documentation accordingly.
  • I have read the contributing document.
  • I have added tests to cover my changes. – hopefully none apply
  • I have run the ZFS Test Suite with this change applied. – CI take my hand
  • All commit messages are properly formatted and contain Signed-off-by.

@nabijaczleweli
Copy link
Contributor Author

nabijaczleweli commented Apr 10, 2022

@rincebrain: you may find it humorous that, despite #12978, this still waits for zstd to be built for like five-to-tenish seconds, and all attempts at reordering it to start earlier were met with worse performance. The only solution I foresee would be cleaving it into more files, but from a cursory glance at upstream this is already as small as they're gonna be?

@nabijaczleweli
Copy link
Contributor Author

This does mean we need MAKE=gmake for configure to bootstrap properly on FreeBSD (apparently), but we already require gmake, so all this really means is updating the buildd configuration.

@rincebrain
Copy link
Contributor

Nice, looking into making this go more aggressively was on my long tail TODO also.

I'm kind of fascinated to look at why it's expensive to compile zstd in many smaller units, though - it's not like we're doing LTO, and I don't recall running across anything extremely criminal when perusing the source trees...annoying, but not horrifying.

Maybe all the preprocessor substitutions are just that expensive.

@nabijaczleweli
Copy link
Contributor Author

nabijaczleweli commented Apr 11, 2022

Yeah, overnight FreeBSD test/build also passed so this just needs MAKE=gmake on configure. Linus linux seems to be hung up on zkobj->zko_kobj_type.default_attrs = zkobj->zko_default_attrs; so also unrelated.

@nabijaczleweli
Copy link
Contributor Author

ha ha. CentOS 7 has automake 1.13.4. %reldir%/%canon_reldir% started existing are "New in 1.14:" according to the NEWS. kms.

@nabijaczleweli
Copy link
Contributor Author

Hm, not all is lost. CentOS 8 automake packages (1.16.1) do Just Work for this, since automake is arch=all. I don't think it'd be too far out there to require 1.14+ and install an updated rpm on CentOS 7 CI (like we already do via EPEL), right?

@mskarbek
Copy link
Contributor

mskarbek commented Apr 11, 2022

@nabijaczleweli there is no automake in EPEL, and never will be. EPEL does not provide updated packages of base repo versions. On CI/just to build kmod packages for the official repo should be ok, but don't expect from people to have newer automake on their RHEL7/CentOS 7 installations.

@nabijaczleweli
Copy link
Contributor Author

nabijaczleweli commented Apr 11, 2022

EPEL not providing updates explains why I didn't find it there, yeah. Although I still in that case don't get what

# To minimize EPEL leakage, disable by default...

is supposed to do

behlendorf pushed a commit to openzfs/zfs-buildbot that referenced this pull request Apr 11, 2022
We already require it, but since openzfs/zfs#13316
it's also required for proper bootstrapping
@nabijaczleweli nabijaczleweli force-pushed the library-cmd branch 2 times, most recently from 42dcdd9 to bd4cb82 Compare April 11, 2022 23:49
@nabijaczleweli
Copy link
Contributor Author

Oddly, perhaps hilariously, despite identical cmdlines, save for the paths of course, for cppcheck across trunk and this I'm getting errors on this but not on trunk, which leads me to wonder if it's actually run on trunk.

@nabijaczleweli
Copy link
Contributor Author

Oh. It isn't for kernel code lol. Or for anything behind a VPATH, for that matter:

make: Entering directory '/home/nabijaczleweli/uwu/cur/lib/libicp'
cppcheck -j24 --std=c99 --quiet --max-configs=1 --error-exitcode=2 --inline-suppr -U_KERNEL -include ../../zfs_config.h -I../../include -I../../include -I../../module/icp/include -I../../lib/libspl/include -I../../lib/libspl/include/os/linux  spi/kcf_spi.c api/kcf_ctxops.c api/kcf_cipher.c api/kcf_mac.c algs/aes/aes_impl_aesni.c algs/aes/aes_impl_generic.c algs/aes/aes_impl_x86-64.c algs/aes/aes_impl.c algs/aes/aes_modes.c algs/edonr/edonr.c algs/modes/modes.c algs/modes/cbc.c algs/modes/gcm_generic.c algs/modes/gcm_pclmulqdq.c algs/modes/gcm.c algs/modes/ctr.c algs/modes/ccm.c algs/modes/ecb.c algs/sha2/sha2.c algs/skein/skein.c algs/skein/skein_block.c algs/skein/skein_iv.c illumos-crypto.c io/aes.c io/sha2_mod.c io/skein_mod.c core/kcf_sched.c core/kcf_prov_lib.c core/kcf_callprov.c core/kcf_mech_tabs.c core/kcf_prov_tabs.c asm-x86_64/aes/aeskey.c asm-x86_64/aes/aes_amd64.S asm-x86_64/aes/aes_aesni.S asm-x86_64/modes/gcm_pclmulqdq.S asm-x86_64/modes/aesni-gcm-x86_64.S asm-x86_64/modes/ghash-x86_64.S asm-x86_64/sha2/sha256_impl.S asm-x86_64/sha2/sha512_impl.S

This obviously can't find asm-x86_64/sha2/sha512_impl.S because that'd be ../../module/icp/asm-x86_64/sha2/sha512_impl.S. Or any other file.

Very usefully, cppcheck doesn't report this as an error until it can't find any file and it always can because (without --quiet):

Checking ../../zfs_config.h ...

I can turn off checking nodist_ (kernel) sources for now, or maybe we should get rid of entirely since the quality of its annotations is such (this is trunk, but on bullseye, so I think newer than the CI):

cppcheck -j24 --std=c99 --quiet --max-configs=1 --error-exitcode=2 --inline-suppr -U_KERNEL -include ../../zfs_config.h -I../../include -I../../include -I../../module/icp/include -I../../lib/libspl/include -I../../lib/libspl/include/os/linux  zdb.c zdb_il.c zdb.h
zdb.c:4807:6: error: Uninitialized variable: zc_word [uninitvar]
 if (ZIO_CHECKSUM_EQUAL(actual_cksum, expected_cksum))
     ^

@nabijaczleweli
Copy link
Contributor Author

A fun side-effect of cppcheck being Quality is that #13330 doesn't even get to ABI checks.

@nabijaczleweli nabijaczleweli force-pushed the library-cmd branch 2 times, most recently from b51a9b9 to bc6257d Compare April 20, 2022 20:54
@nabijaczleweli
Copy link
Contributor Author

Rebased. AFAICT the only thing this is missing is a decision w.r.t either getting rid of cppcheck entirely or (temporarily?) removing it from the lint target.

@nabijaczleweli
Copy link
Contributor Author

FreeBSD main build error:

--- fse_compress.o ---
/var/lib/buildbot/slaves/zfs/FreeBSD_main_amd64__TEST_/build/zfs/module/zstd/lib/compress/fse_compress.c:307:12: error: variable 'size' set but not used [-Werror,-Wunused-but-set-variable]
    size_t size;
           ^
1 error generated.

seems like a clang bug given

FSE_CTable* FSE_createCTable (unsigned maxSymbolValue, unsigned tableLog)
{
    size_t size;
    if (tableLog > FSE_TABLELOG_ABSOLUTE_MAX) tableLog = FSE_TABLELOG_ABSOLUTE_MAX;
    size = FSE_CTABLE_SIZE_U32 (tableLog, maxSymbolValue) * sizeof(U32);
    return (FSE_CTable*)malloc(size);
}

@nabijaczleweli
Copy link
Contributor Author

Also happens on other PRs so this is an unrelated Clang bug. CI seems to be otherwise clean. Rebased.

@nabijaczleweli
Copy link
Contributor Author

nabijaczleweli commented Apr 24, 2022

CI failures appear unrelated.

@behlendorf I'd like your opinion on what to do with cppcheck, given #13316 (comment) and the state of the annotations it gives us on GHA rn – the obvious two takes are "just rip it out" since it does nothing or "remove it from lint:" because Maybe It'll Be Useful or "stop feeding it kernel sources and assembly" and have it still be undiagnosably borderline useless. you know which one I think superiour.

@behlendorf
Copy link
Contributor

@nabijaczleweli what I've observed with the PRs in that cppcheck doesn't appear to catch much (if anything) that wouldn't have been caught by gcc or clang. That said, I'm not convinced it's entirely without value. Why don't we limit it to solely to user space for now as long as we believe it is correctly checking that code. If that's not the case, then we should go ahead and remove it entirely. I'd wouldn't want to keep the cppcheck target unless we're running it regularly in the CI.

andrewc12 pushed a commit to andrewc12/openzfs that referenced this pull request Oct 1, 2022
No installation diff, dist lost
  -zfs-2.1.99/cmd/fsck_zfs/fsck.zfs
which was distributed erroneously, since it's generated

Also clean gitrev on clean

Also add -e 'any possible bashisms' to default checkbashisms flags,
and fully parallelise it and shellcheck, and it works out-of-tree, too

Also align the Release in the dist META file correctly

Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Signed-off-by: Ahelenia Ziemiańska <nabijaczleweli@nabijaczleweli.xyz>
Closes openzfs#13316
andrewc12 pushed a commit to andrewc12/openzfs that referenced this pull request Oct 1, 2022
…tly)

Only down to tests/zfs-tests/tests, but pull out C programs into the
main Makefile ‒ this means we get correct dependency tracking for all
programs (and parallelise across them)

dist diff:
  -zfs-2.1.99/tests/zfs-tests/tests/stress/
  -zfs-2.1.99/tests/zfs-tests/tests/stress/Makefile.am
  -zfs-2.1.99/tests/zfs-tests/tests/stress/Makefile.in

Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Signed-off-by: Ahelenia Ziemiańska <nabijaczleweli@nabijaczleweli.xyz>
Closes openzfs#13316
andrewc12 pushed a commit to andrewc12/openzfs that referenced this pull request Oct 1, 2022
No installation diff, dist lost
  -zfs-2.1.99/cmd/fsck_zfs/fsck.zfs
which was distributed erroneously, since it's generated

Also clean gitrev on clean

Also add -e 'any possible bashisms' to default checkbashisms flags,
and fully parallelise it and shellcheck, and it works out-of-tree, too

Also align the Release in the dist META file correctly

Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Signed-off-by: Ahelenia Ziemiańska <nabijaczleweli@nabijaczleweli.xyz>
Closes openzfs#13316
andrewc12 pushed a commit to andrewc12/openzfs that referenced this pull request Oct 1, 2022
…tly)

Only down to tests/zfs-tests/tests, but pull out C programs into the
main Makefile ‒ this means we get correct dependency tracking for all
programs (and parallelise across them)

dist diff:
  -zfs-2.1.99/tests/zfs-tests/tests/stress/
  -zfs-2.1.99/tests/zfs-tests/tests/stress/Makefile.am
  -zfs-2.1.99/tests/zfs-tests/tests/stress/Makefile.in

Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Signed-off-by: Ahelenia Ziemiańska <nabijaczleweli@nabijaczleweli.xyz>
Closes openzfs#13316
andrewc12 pushed a commit to andrewc12/openzfs that referenced this pull request Oct 1, 2022
No installation diff, dist lost
  -zfs-2.1.99/cmd/fsck_zfs/fsck.zfs
which was distributed erroneously, since it's generated

Also clean gitrev on clean

Also add -e 'any possible bashisms' to default checkbashisms flags,
and fully parallelise it and shellcheck, and it works out-of-tree, too

Also align the Release in the dist META file correctly

Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Signed-off-by: Ahelenia Ziemiańska <nabijaczleweli@nabijaczleweli.xyz>
Closes openzfs#13316
andrewc12 pushed a commit to andrewc12/openzfs that referenced this pull request Oct 1, 2022
…tly)

Only down to tests/zfs-tests/tests, but pull out C programs into the
main Makefile ‒ this means we get correct dependency tracking for all
programs (and parallelise across them)

dist diff:
  -zfs-2.1.99/tests/zfs-tests/tests/stress/
  -zfs-2.1.99/tests/zfs-tests/tests/stress/Makefile.am
  -zfs-2.1.99/tests/zfs-tests/tests/stress/Makefile.in

Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Signed-off-by: Ahelenia Ziemiańska <nabijaczleweli@nabijaczleweli.xyz>
Closes openzfs#13316
andrewc12 pushed a commit to andrewc12/openzfs that referenced this pull request Oct 1, 2022
No installation diff, dist lost
  -zfs-2.1.99/cmd/fsck_zfs/fsck.zfs
which was distributed erroneously, since it's generated

Also clean gitrev on clean

Also add -e 'any possible bashisms' to default checkbashisms flags,
and fully parallelise it and shellcheck, and it works out-of-tree, too

Also align the Release in the dist META file correctly

Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Signed-off-by: Ahelenia Ziemiańska <nabijaczleweli@nabijaczleweli.xyz>
Closes openzfs#13316
andrewc12 pushed a commit to andrewc12/openzfs that referenced this pull request Oct 1, 2022
…tly)

Only down to tests/zfs-tests/tests, but pull out C programs into the
main Makefile ‒ this means we get correct dependency tracking for all
programs (and parallelise across them)

dist diff:
  -zfs-2.1.99/tests/zfs-tests/tests/stress/
  -zfs-2.1.99/tests/zfs-tests/tests/stress/Makefile.am
  -zfs-2.1.99/tests/zfs-tests/tests/stress/Makefile.in

Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Signed-off-by: Ahelenia Ziemiańska <nabijaczleweli@nabijaczleweli.xyz>
Closes openzfs#13316
andrewc12 pushed a commit to andrewc12/openzfs that referenced this pull request Oct 1, 2022
No installation diff, dist lost
  -zfs-2.1.99/cmd/fsck_zfs/fsck.zfs
which was distributed erroneously, since it's generated

Also clean gitrev on clean

Also add -e 'any possible bashisms' to default checkbashisms flags,
and fully parallelise it and shellcheck, and it works out-of-tree, too

Also align the Release in the dist META file correctly

Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Signed-off-by: Ahelenia Ziemiańska <nabijaczleweli@nabijaczleweli.xyz>
Closes openzfs#13316
andrewc12 pushed a commit to andrewc12/openzfs that referenced this pull request Oct 1, 2022
…tly)

Only down to tests/zfs-tests/tests, but pull out C programs into the
main Makefile ‒ this means we get correct dependency tracking for all
programs (and parallelise across them)

dist diff:
  -zfs-2.1.99/tests/zfs-tests/tests/stress/
  -zfs-2.1.99/tests/zfs-tests/tests/stress/Makefile.am
  -zfs-2.1.99/tests/zfs-tests/tests/stress/Makefile.in

Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Signed-off-by: Ahelenia Ziemiańska <nabijaczleweli@nabijaczleweli.xyz>
Closes openzfs#13316
andrewc12 pushed a commit to andrewc12/openzfs that referenced this pull request Oct 1, 2022
No installation diff, dist lost
  -zfs-2.1.99/cmd/fsck_zfs/fsck.zfs
which was distributed erroneously, since it's generated

Also clean gitrev on clean

Also add -e 'any possible bashisms' to default checkbashisms flags,
and fully parallelise it and shellcheck, and it works out-of-tree, too

Also align the Release in the dist META file correctly

Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Signed-off-by: Ahelenia Ziemiańska <nabijaczleweli@nabijaczleweli.xyz>
Closes openzfs#13316
andrewc12 pushed a commit to andrewc12/openzfs that referenced this pull request Oct 1, 2022
…tly)

Only down to tests/zfs-tests/tests, but pull out C programs into the
main Makefile ‒ this means we get correct dependency tracking for all
programs (and parallelise across them)

dist diff:
  -zfs-2.1.99/tests/zfs-tests/tests/stress/
  -zfs-2.1.99/tests/zfs-tests/tests/stress/Makefile.am
  -zfs-2.1.99/tests/zfs-tests/tests/stress/Makefile.in

Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Signed-off-by: Ahelenia Ziemiańska <nabijaczleweli@nabijaczleweli.xyz>
Closes openzfs#13316
andrewc12 pushed a commit to andrewc12/openzfs that referenced this pull request Oct 1, 2022
No installation diff, dist lost
  -zfs-2.1.99/cmd/fsck_zfs/fsck.zfs
which was distributed erroneously, since it's generated

Also clean gitrev on clean

Also add -e 'any possible bashisms' to default checkbashisms flags,
and fully parallelise it and shellcheck, and it works out-of-tree, too

Also align the Release in the dist META file correctly

Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Signed-off-by: Ahelenia Ziemiańska <nabijaczleweli@nabijaczleweli.xyz>
Closes openzfs#13316
andrewc12 pushed a commit to andrewc12/openzfs that referenced this pull request Oct 1, 2022
…tly)

Only down to tests/zfs-tests/tests, but pull out C programs into the
main Makefile ‒ this means we get correct dependency tracking for all
programs (and parallelise across them)

dist diff:
  -zfs-2.1.99/tests/zfs-tests/tests/stress/
  -zfs-2.1.99/tests/zfs-tests/tests/stress/Makefile.am
  -zfs-2.1.99/tests/zfs-tests/tests/stress/Makefile.in

Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Signed-off-by: Ahelenia Ziemiańska <nabijaczleweli@nabijaczleweli.xyz>
Closes openzfs#13316
andrewc12 pushed a commit to andrewc12/openzfs that referenced this pull request Oct 1, 2022
No installation diff, dist lost
  -zfs-2.1.99/cmd/fsck_zfs/fsck.zfs
which was distributed erroneously, since it's generated

Also clean gitrev on clean

Also add -e 'any possible bashisms' to default checkbashisms flags,
and fully parallelise it and shellcheck, and it works out-of-tree, too

Also align the Release in the dist META file correctly

Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Signed-off-by: Ahelenia Ziemiańska <nabijaczleweli@nabijaczleweli.xyz>
Closes openzfs#13316
andrewc12 pushed a commit to andrewc12/openzfs that referenced this pull request Oct 1, 2022
…tly)

Only down to tests/zfs-tests/tests, but pull out C programs into the
main Makefile ‒ this means we get correct dependency tracking for all
programs (and parallelise across them)

dist diff:
  -zfs-2.1.99/tests/zfs-tests/tests/stress/
  -zfs-2.1.99/tests/zfs-tests/tests/stress/Makefile.am
  -zfs-2.1.99/tests/zfs-tests/tests/stress/Makefile.in

Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Signed-off-by: Ahelenia Ziemiańska <nabijaczleweli@nabijaczleweli.xyz>
Closes openzfs#13316
andrewc12 pushed a commit to andrewc12/openzfs that referenced this pull request Oct 1, 2022
No installation diff, dist lost
  -zfs-2.1.99/cmd/fsck_zfs/fsck.zfs
which was distributed erroneously, since it's generated

Also clean gitrev on clean

Also add -e 'any possible bashisms' to default checkbashisms flags,
and fully parallelise it and shellcheck, and it works out-of-tree, too

Also align the Release in the dist META file correctly

Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Signed-off-by: Ahelenia Ziemiańska <nabijaczleweli@nabijaczleweli.xyz>
Closes openzfs#13316
andrewc12 pushed a commit to andrewc12/openzfs that referenced this pull request Oct 1, 2022
…tly)

Only down to tests/zfs-tests/tests, but pull out C programs into the
main Makefile ‒ this means we get correct dependency tracking for all
programs (and parallelise across them)

dist diff:
  -zfs-2.1.99/tests/zfs-tests/tests/stress/
  -zfs-2.1.99/tests/zfs-tests/tests/stress/Makefile.am
  -zfs-2.1.99/tests/zfs-tests/tests/stress/Makefile.in

Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Signed-off-by: Ahelenia Ziemiańska <nabijaczleweli@nabijaczleweli.xyz>
Closes openzfs#13316
andrewc12 pushed a commit to andrewc12/openzfs that referenced this pull request Oct 2, 2022
No installation diff, dist lost
  -zfs-2.1.99/cmd/fsck_zfs/fsck.zfs
which was distributed erroneously, since it's generated

Also clean gitrev on clean

Also add -e 'any possible bashisms' to default checkbashisms flags,
and fully parallelise it and shellcheck, and it works out-of-tree, too

Also align the Release in the dist META file correctly

Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Signed-off-by: Ahelenia Ziemiańska <nabijaczleweli@nabijaczleweli.xyz>
Closes openzfs#13316
andrewc12 pushed a commit to andrewc12/openzfs that referenced this pull request Oct 2, 2022
…tly)

Only down to tests/zfs-tests/tests, but pull out C programs into the
main Makefile ‒ this means we get correct dependency tracking for all
programs (and parallelise across them)

dist diff:
  -zfs-2.1.99/tests/zfs-tests/tests/stress/
  -zfs-2.1.99/tests/zfs-tests/tests/stress/Makefile.am
  -zfs-2.1.99/tests/zfs-tests/tests/stress/Makefile.in

Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Signed-off-by: Ahelenia Ziemiańska <nabijaczleweli@nabijaczleweli.xyz>
Closes openzfs#13316
andrewc12 pushed a commit to andrewc12/openzfs that referenced this pull request Oct 6, 2022
No installation diff, dist lost
  -zfs-2.1.99/cmd/fsck_zfs/fsck.zfs
which was distributed erroneously, since it's generated

Also clean gitrev on clean

Also add -e 'any possible bashisms' to default checkbashisms flags,
and fully parallelise it and shellcheck, and it works out-of-tree, too

Also align the Release in the dist META file correctly

Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Signed-off-by: Ahelenia Ziemiańska <nabijaczleweli@nabijaczleweli.xyz>
Closes openzfs#13316
andrewc12 pushed a commit to andrewc12/openzfs that referenced this pull request Oct 6, 2022
…tly)

Only down to tests/zfs-tests/tests, but pull out C programs into the
main Makefile ‒ this means we get correct dependency tracking for all
programs (and parallelise across them)

dist diff:
  -zfs-2.1.99/tests/zfs-tests/tests/stress/
  -zfs-2.1.99/tests/zfs-tests/tests/stress/Makefile.am
  -zfs-2.1.99/tests/zfs-tests/tests/stress/Makefile.in

Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Signed-off-by: Ahelenia Ziemiańska <nabijaczleweli@nabijaczleweli.xyz>
Closes openzfs#13316
andrewc12 pushed a commit to andrewc12/openzfs that referenced this pull request Oct 6, 2022
No installation diff, dist lost
  -zfs-2.1.99/cmd/fsck_zfs/fsck.zfs
which was distributed erroneously, since it's generated

Also clean gitrev on clean

Also add -e 'any possible bashisms' to default checkbashisms flags,
and fully parallelise it and shellcheck, and it works out-of-tree, too

Also align the Release in the dist META file correctly

Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Signed-off-by: Ahelenia Ziemiańska <nabijaczleweli@nabijaczleweli.xyz>
Closes openzfs#13316
andrewc12 pushed a commit to andrewc12/openzfs that referenced this pull request Oct 6, 2022
…tly)

Only down to tests/zfs-tests/tests, but pull out C programs into the
main Makefile ‒ this means we get correct dependency tracking for all
programs (and parallelise across them)

dist diff:
  -zfs-2.1.99/tests/zfs-tests/tests/stress/
  -zfs-2.1.99/tests/zfs-tests/tests/stress/Makefile.am
  -zfs-2.1.99/tests/zfs-tests/tests/stress/Makefile.in

Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Signed-off-by: Ahelenia Ziemiańska <nabijaczleweli@nabijaczleweli.xyz>
Closes openzfs#13316
andrewc12 pushed a commit to andrewc12/openzfs that referenced this pull request Oct 6, 2022
No installation diff, dist lost
  -zfs-2.1.99/cmd/fsck_zfs/fsck.zfs
which was distributed erroneously, since it's generated

Also clean gitrev on clean

Also add -e 'any possible bashisms' to default checkbashisms flags,
and fully parallelise it and shellcheck, and it works out-of-tree, too

Also align the Release in the dist META file correctly

Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Signed-off-by: Ahelenia Ziemiańska <nabijaczleweli@nabijaczleweli.xyz>
Closes openzfs#13316
andrewc12 pushed a commit to andrewc12/openzfs that referenced this pull request Oct 6, 2022
…tly)

Only down to tests/zfs-tests/tests, but pull out C programs into the
main Makefile ‒ this means we get correct dependency tracking for all
programs (and parallelise across them)

dist diff:
  -zfs-2.1.99/tests/zfs-tests/tests/stress/
  -zfs-2.1.99/tests/zfs-tests/tests/stress/Makefile.am
  -zfs-2.1.99/tests/zfs-tests/tests/stress/Makefile.in

Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Signed-off-by: Ahelenia Ziemiańska <nabijaczleweli@nabijaczleweli.xyz>
Closes openzfs#13316
andrewc12 pushed a commit to andrewc12/openzfs that referenced this pull request Oct 9, 2022
No installation diff, dist lost
  -zfs-2.1.99/cmd/fsck_zfs/fsck.zfs
which was distributed erroneously, since it's generated

Also clean gitrev on clean

Also add -e 'any possible bashisms' to default checkbashisms flags,
and fully parallelise it and shellcheck, and it works out-of-tree, too

Also align the Release in the dist META file correctly

Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Signed-off-by: Ahelenia Ziemiańska <nabijaczleweli@nabijaczleweli.xyz>
Closes openzfs#13316
andrewc12 pushed a commit to andrewc12/openzfs that referenced this pull request Oct 9, 2022
…tly)

Only down to tests/zfs-tests/tests, but pull out C programs into the
main Makefile ‒ this means we get correct dependency tracking for all
programs (and parallelise across them)

dist diff:
  -zfs-2.1.99/tests/zfs-tests/tests/stress/
  -zfs-2.1.99/tests/zfs-tests/tests/stress/Makefile.am
  -zfs-2.1.99/tests/zfs-tests/tests/stress/Makefile.in

Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Signed-off-by: Ahelenia Ziemiańska <nabijaczleweli@nabijaczleweli.xyz>
Closes openzfs#13316
tonyhutter pushed a commit that referenced this pull request Nov 30, 2023
The order in fs/Makefile doesn't matter,
the order in fs/Kconfig is preserved (ext2 is included as the first
thing in the first if BUILD block, and only once), but I don't think it
matters much either, realistically

Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Signed-off-by: Ahelenia Ziemiańska <nabijaczleweli@nabijaczleweli.xyz>
Closes #13316
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Status: Accepted Ready to integrate (reviewed, tested) Type: Building Indicates an issue related to building binaries
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants