From: Darrick J. Wong Date: Wed, 1 Aug 2018 22:06:35 +0000 (-0500) Subject: libfrog: move crc32c code out of libxfs X-Git-Tag: v4.18.0-rc1~19 X-Git-Url: http://git.ipfire.org/?p=thirdparty%2Fxfsprogs-dev.git;a=commitdiff_plain;h=973de649842b6f96db32e5060b62e8fbcc05f033 libfrog: move crc32c code out of libxfs crc32c code isn't part of the kernel libxfs, nor should it be part of xfsprogs libxfs. Put it in libfrog since it's runtime support anyway. Signed-off-by: Darrick J. Wong Reviewed-by: Eric Sandeen Signed-off-by: Eric Sandeen --- diff --git a/.gitignore b/.gitignore index 9d92eafff..fd131b6fd 100644 --- a/.gitignore +++ b/.gitignore @@ -76,6 +76,6 @@ cscope.* /scrub/xfs_scrub_fail@.service # generated crc files -/libxfs/crc32selftest -/libxfs/crc32table.h -/libxfs/gen_crc32table +/libfrog/crc32selftest +/libfrog/crc32table.h +/libfrog/gen_crc32table diff --git a/include/crc32c.h b/include/crc32c.h new file mode 100644 index 000000000..b4d8aa05f --- /dev/null +++ b/include/crc32c.h @@ -0,0 +1,11 @@ +/* SPDX-License-Identifier: GPL-2.0 */ +/* + * Copyright (c) 2000-2005 Silicon Graphics, Inc. + * All Rights Reserved. + */ +#ifndef LIBFROG_CRC32C_H_ +#define LIBFROG_CRC32C_H_ + +extern uint32_t crc32c_le(uint32_t crc, unsigned char const *p, size_t len); + +#endif /* LIBFROG_CRC32C_H_ */ diff --git a/libfrog/Makefile b/libfrog/Makefile index d5a82434f..707666e1d 100644 --- a/libfrog/Makefile +++ b/libfrog/Makefile @@ -13,6 +13,7 @@ LT_AGE = 0 CFILES = \ avl64.c \ convert.c \ +crc32.c \ fsgeom.c \ list_sort.c \ paths.c \ @@ -23,6 +24,12 @@ topology.c \ util.c \ workqueue.c +HFILES = \ +crc32defs.h \ +crc32table.h + +LSRCFILES += gen_crc32table.c + CFILES += $(PKG_PLATFORM).c PCFILES = darwin.c freebsd.c irix.c linux.c LSRCFILES = $(shell echo $(PCFILES) | sed -e "s/$(PKG_PLATFORM).c//g") @@ -35,7 +42,25 @@ ifeq ($(HAVE_GETMNTINFO),yes) LCFLAGS += -DHAVE_GETMNTINFO endif -default: ltdepend $(LTLIBRARY) +LDIRT = gen_crc32table crc32table.h crc32selftest + +default: crc32selftest ltdepend $(LTLIBRARY) + +crc32table.h: gen_crc32table.c crc32defs.h + @echo " [CC] gen_crc32table" + $(Q) $(BUILD_CC) $(BUILD_CFLAGS) -o gen_crc32table $< + @echo " [GENERATE] $@" + $(Q) ./gen_crc32table > crc32table.h + +# The selftest binary will return an error if it fails. This is made a +# dependency of the build process so that we refuse to build the tools on broken +# systems/architectures. Hence we make sure that xfsprogs will never use a +# busted CRC calculation at build time and hence avoid putting bad CRCs down on +# disk. +crc32selftest: gen_crc32table.c crc32table.h crc32.c crc32defs.h + @echo " [TEST] CRC32" + $(Q) $(BUILD_CC) $(BUILD_CFLAGS) -D CRC32_SELFTEST=1 crc32.c -o $@ + $(Q) ./$@ include $(BUILDRULES) diff --git a/libxfs/crc32.c b/libfrog/crc32.c similarity index 100% rename from libxfs/crc32.c rename to libfrog/crc32.c diff --git a/libxfs/crc32defs.h b/libfrog/crc32defs.h similarity index 100% rename from libxfs/crc32defs.h rename to libfrog/crc32defs.h diff --git a/libxfs/gen_crc32table.c b/libfrog/gen_crc32table.c similarity index 100% rename from libxfs/gen_crc32table.c rename to libfrog/gen_crc32table.c diff --git a/libxfs/Makefile b/libxfs/Makefile index 89c6abf04..160498d72 100644 --- a/libxfs/Makefile +++ b/libxfs/Makefile @@ -48,13 +48,10 @@ HFILES = \ libxfs_io.h \ libxfs_api_defs.h \ init.h \ - crc32defs.h \ - crc32table.h \ libxfs_priv.h \ xfs_dir2_priv.h CFILES = cache.c \ - crc32.c \ defer_item.c \ init.c \ kmem.c \ @@ -99,8 +96,6 @@ CFILES = cache.c \ xfs_trans_resv.c \ xfs_types.c -LSRCFILES += gen_crc32table.c - # # Tracing flags: # -DIO_DEBUG reads and writes of buffers @@ -117,25 +112,7 @@ LTLIBS = $(LIBPTHREAD) $(LIBRT) # don't try linking xfs_repair with a debug libxfs. DEBUG = -DNDEBUG -LDIRT = gen_crc32table crc32table.h crc32selftest - -default: crc32selftest ltdepend $(LTLIBRARY) - -crc32table.h: gen_crc32table.c crc32defs.h - @echo " [CC] gen_crc32table" - $(Q) $(BUILD_CC) $(BUILD_CFLAGS) -o gen_crc32table $< - @echo " [GENERATE] $@" - $(Q) ./gen_crc32table > crc32table.h - -# The selftest binary will return an error if it fails. This is made a -# dependency of the build process so that we refuse to build the tools on broken -# systems/architectures. Hence we make sure that xfsprogs will never use a -# busted CRC calculation at build time and hence avoid putting bad CRCs down on -# disk. -crc32selftest: gen_crc32table.c crc32table.h crc32.c crc32defs.h - @echo " [TEST] CRC32" - $(Q) $(BUILD_CC) $(BUILD_CFLAGS) -D CRC32_SELFTEST=1 crc32.c -o $@ - $(Q) ./$@ +default: ltdepend $(LTLIBRARY) # set up include/xfs header directory include $(BUILDRULES) diff --git a/libxfs/libxfs_priv.h b/libxfs/libxfs_priv.h index d6081b74a..2f2ca06f1 100644 --- a/libxfs/libxfs_priv.h +++ b/libxfs/libxfs_priv.h @@ -53,9 +53,9 @@ #include "xfs_arch.h" #include "xfs_fs.h" +#include "crc32c.h" /* CRC stuff, buffer API dependent on it */ -extern uint32_t crc32c_le(uint32_t crc, unsigned char const *p, size_t len); #define crc32c(c,p,l) crc32c_le((c),(unsigned char const *)(p),(l)) #include "xfs_cksum.h"