mirror of
https://git.proxmox.com/git/mirror_zfs.git
synced 2026-05-27 04:32:16 +03:00
autoconf: use include directives instead of recursing down lib
As a bonus, this also adds zfs-mount-generator (previously undescended down) and libzstd (not included) to CppCheck As a bonus bonus, abigail rules work out-of-tree, too Against current trunk: $ diff -U0 ./destdir.listing ~/store/code/zfs/destdir.listing -destdir/usr/local/include/libspl/sscanf.h $ diff --color -U0 ./zfs-2.1.99.tar.gz.listing ../oot/zfs-2.1.99.tar.gz.listing | grep -v @@ | grep -v /Makefile -zfs-2.1.99/config/Abigail.am -zfs-2.1.99/lib/libspl/include/util/ -zfs-2.1.99/lib/libspl/include/util/sscanf.h $ diff --color -U0 ./zfs-2.1.99.tar.gz.listing ../oot/zfs-2.1.99.tar.gz.listing | grep -v @@ | grep /Makefile -zfs-2.1.99/lib/libavl/Makefile.in -zfs-2.1.99/lib/libefi/Makefile.in -zfs-2.1.99/lib/libicp/Makefile.in -zfs-2.1.99/lib/libnvpair/Makefile.in -zfs-2.1.99/lib/libshare/Makefile.in -zfs-2.1.99/lib/libspl/include/Makefile.in -zfs-2.1.99/lib/libspl/include/os/freebsd/Makefile.am -zfs-2.1.99/lib/libspl/include/os/freebsd/Makefile.in -zfs-2.1.99/lib/libspl/include/os/freebsd/sys/Makefile.am -zfs-2.1.99/lib/libspl/include/os/freebsd/sys/Makefile.in -zfs-2.1.99/lib/libspl/include/os/linux/Makefile.am -zfs-2.1.99/lib/libspl/include/os/linux/Makefile.in -zfs-2.1.99/lib/libspl/include/os/linux/sys/Makefile.am -zfs-2.1.99/lib/libspl/include/os/linux/sys/Makefile.in -zfs-2.1.99/lib/libspl/include/os/Makefile.am -zfs-2.1.99/lib/libspl/include/os/Makefile.in -zfs-2.1.99/lib/libspl/include/rpc/Makefile.am -zfs-2.1.99/lib/libspl/include/rpc/Makefile.in -zfs-2.1.99/lib/libspl/include/sys/dktp/Makefile.am -zfs-2.1.99/lib/libspl/include/sys/dktp/Makefile.in -zfs-2.1.99/lib/libspl/include/sys/Makefile.am -zfs-2.1.99/lib/libspl/include/sys/Makefile.in -zfs-2.1.99/lib/libspl/include/util/Makefile.am -zfs-2.1.99/lib/libspl/include/util/Makefile.in -zfs-2.1.99/lib/libspl/Makefile.in -zfs-2.1.99/lib/libtpool/Makefile.in -zfs-2.1.99/lib/libunicode/Makefile.in -zfs-2.1.99/lib/libuutil/Makefile.in -zfs-2.1.99/lib/libzfsbootenv/Makefile.in -zfs-2.1.99/lib/libzfs_core/Makefile.in -zfs-2.1.99/lib/libzfs/Makefile.in -zfs-2.1.99/lib/libzpool/Makefile.in -zfs-2.1.99/lib/libzstd/Makefile.in -zfs-2.1.99/lib/libzutil/Makefile.in -zfs-2.1.99/lib/Makefile.in Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov> Signed-off-by: Ahelenia Ziemiańska <nabijaczleweli@nabijaczleweli.xyz> Closes #13316
This commit is contained in:
@@ -1,52 +0,0 @@
|
||||
#
|
||||
# When performing an ABI check the following options are applied:
|
||||
#
|
||||
# --no-unreferenced-symbols: Exclude symbols which are not referenced by
|
||||
# any debug information. Without this _init() and _fini() are incorrectly
|
||||
# reported on CentOS7 for libuutil.so.
|
||||
#
|
||||
# --headers-dir1: Limit ABI checks to public OpenZFS headers, otherwise
|
||||
# changes in public system headers are also reported.
|
||||
#
|
||||
# --suppressions: Honor a suppressions file for each library to provide
|
||||
# a mechanism for suppressing harmless warnings.
|
||||
#
|
||||
|
||||
PHONY += checkabi storeabi check_libabi_version allow_libabi_only_for_x86_64
|
||||
|
||||
check_libabi_version:
|
||||
libabiversion=`abidw -v | $(SED) 's/[^0-9]//g'`; \
|
||||
if test $$libabiversion -lt "200"; then \
|
||||
/bin/echo -e "\n" \
|
||||
"*** Please use libabigail 2.0.0 version or newer;\n" \
|
||||
"*** otherwise results are not consistent!\n" \
|
||||
"(or see https://github.com/openzfs/libabigail-docker )\n"; \
|
||||
exit 1; \
|
||||
fi;
|
||||
|
||||
allow_libabi_only_for_x86_64:
|
||||
echo '*** ABI definitions provided apply only to x86_64 architecture'
|
||||
echo '*** Skipping `checkabi`/`storeabi` target and assuming success.'
|
||||
|
||||
if TARGET_CPU_X86_64
|
||||
checkabi: check_libabi_version
|
||||
for lib in $(lib_LTLIBRARIES) ; do \
|
||||
abidiff --no-unreferenced-symbols \
|
||||
--headers-dir1 ../../include \
|
||||
--suppressions $${lib%.la}.suppr \
|
||||
$${lib%.la}.abi .libs/$${lib%.la}.so ; \
|
||||
done
|
||||
|
||||
storeabi: check_libabi_version
|
||||
cd .libs ; \
|
||||
for lib in $(lib_LTLIBRARIES) ; do \
|
||||
abidw --no-show-locs \
|
||||
--no-corpus-path \
|
||||
--no-comp-dir-path \
|
||||
--type-id-style hash \
|
||||
$${lib%.la}.so > ../$${lib%.la}.abi ; \
|
||||
done
|
||||
else
|
||||
checkabi: allow_libabi_only_for_x86_64
|
||||
storeabi: allow_libabi_only_for_x86_64
|
||||
endif
|
||||
+12
-2
@@ -7,5 +7,15 @@ PHONY += cppcheck
|
||||
CPPCHECKFLAGS = --std=c99 --quiet --max-configs=1 --error-exitcode=2
|
||||
CPPCHECKFLAGS += --inline-suppr -U_KERNEL
|
||||
|
||||
cppcheck:
|
||||
$(CPPCHECK) -j$(CPU_COUNT) $(CPPCHECKFLAGS) $(DEFAULT_INCLUDES) $(SOURCES)
|
||||
CPPCHECKDIRS =
|
||||
CPPCHECKTARGETS =
|
||||
|
||||
cppcheck-recursive-%:
|
||||
$(MAKE) -C $(subst ^,/,$(subst cppcheck-recursive-,,$@)) cppcheck
|
||||
|
||||
_CTGT = $(subst -,_,$(subst .,_,$(subst cppcheck-for-,,$@)))
|
||||
cppcheck-for-%:
|
||||
@[ -n "$($(_CTGT)_SOURCES)$(dist_$(_CTGT)_SOURCES)$(nodist_$(_CTGT)_SOURCES)" ]
|
||||
$(CPPCHECK) -j$(CPU_COUNT) $(CPPCHECKFLAGS) $(patsubst -U%,,$(patsubst -D%,,$(filter-out $(AM_CPPFLAGS_NOCHECK),$(or $($(_CTGT)_CPPFLAGS),$(AM_CPPFLAGS))))) $($(_CTGT)_SOURCES) $(dist_$(_CTGT)_SOURCES) $(nodist_$(_CTGT)_SOURCES)
|
||||
|
||||
cppcheck: $(addprefix cppcheck-for-,$(CPPCHECKTARGETS)) $(addprefix cppcheck-recursive-,$(subst /,^,$(CPPCHECKDIRS)))
|
||||
|
||||
+28
-30
@@ -4,22 +4,13 @@
|
||||
#
|
||||
|
||||
PHONY =
|
||||
DEFAULT_INCLUDES = \
|
||||
AM_CPPFLAGS = \
|
||||
-include $(top_builddir)/zfs_config.h \
|
||||
-I$(top_builddir)/include \
|
||||
-I$(top_srcdir)/include \
|
||||
-I$(top_srcdir)/module/icp/include \
|
||||
-I$(top_srcdir)/lib/libspl/include
|
||||
|
||||
if BUILD_LINUX
|
||||
DEFAULT_INCLUDES += \
|
||||
-I$(top_srcdir)/lib/libspl/include/os/linux
|
||||
endif
|
||||
|
||||
if BUILD_FREEBSD
|
||||
DEFAULT_INCLUDES += \
|
||||
-I$(top_srcdir)/lib/libspl/include/os/freebsd
|
||||
endif
|
||||
-I$(top_srcdir)/lib/libspl/include \
|
||||
-I$(top_srcdir)/lib/libspl/include/os/@ac_system_l@
|
||||
|
||||
AM_LIBTOOLFLAGS = --silent
|
||||
|
||||
@@ -37,7 +28,7 @@ AM_CFLAGS += -include $(top_srcdir)/include/os/freebsd/spl/sys/ccompile.h
|
||||
AM_CFLAGS += -I/usr/include -I/usr/local/include
|
||||
endif
|
||||
|
||||
AM_CPPFLAGS = -D_GNU_SOURCE
|
||||
AM_CPPFLAGS += -D_GNU_SOURCE
|
||||
AM_CPPFLAGS += -D_REENTRANT
|
||||
AM_CPPFLAGS += -D_FILE_OFFSET_BITS=64
|
||||
AM_CPPFLAGS += -D_LARGEFILE64_SOURCE
|
||||
@@ -48,23 +39,20 @@ AM_CPPFLAGS += -DSYSCONFDIR=\"$(sysconfdir)\"
|
||||
AM_CPPFLAGS += -DPKGDATADIR=\"$(pkgdatadir)\"
|
||||
AM_CPPFLAGS += $(DEBUG_CPPFLAGS)
|
||||
AM_CPPFLAGS += $(CODE_COVERAGE_CPPFLAGS)
|
||||
if BUILD_LINUX
|
||||
AM_CPPFLAGS += -DTEXT_DOMAIN=\"zfs-linux-user\"
|
||||
endif
|
||||
if BUILD_FREEBSD
|
||||
AM_CPPFLAGS += -DTEXT_DOMAIN=\"zfs-freebsd-user\"
|
||||
endif
|
||||
AM_CPPFLAGS += -D"strtok(...)=strtok(__VA_ARGS__) __attribute__((deprecated(\"Use strtok_r(3) instead!\")))"
|
||||
AM_CPPFLAGS += -D"__xpg_basename(...)=__xpg_basename(__VA_ARGS__) __attribute__((deprecated(\"basename(3) is underspecified. Use zfs_basename() instead!\")))"
|
||||
AM_CPPFLAGS += -D"basename(...)=basename(__VA_ARGS__) __attribute__((deprecated(\"basename(3) is underspecified. Use zfs_basename() instead!\")))"
|
||||
AM_CPPFLAGS += -D"dirname(...)=dirname(__VA_ARGS__) __attribute__((deprecated(\"dirname(3) is underspecified. Use zfs_dirnamelen() instead!\")))"
|
||||
AM_CPPFLAGS += -D"bcopy(...)=__attribute__((deprecated(\"bcopy(3) is deprecated. Use memcpy(3)/memmove(3) instead!\"))) bcopy(__VA_ARGS__)"
|
||||
AM_CPPFLAGS += -D"bcmp(...)=__attribute__((deprecated(\"bcmp(3) is deprecated. Use memcmp(3) instead!\"))) bcmp(__VA_ARGS__)"
|
||||
AM_CPPFLAGS += -D"bzero(...)=__attribute__((deprecated(\"bzero(3) is deprecated. Use memset(3) instead!\"))) bzero(__VA_ARGS__)"
|
||||
AM_CPPFLAGS += -D"asctime(...)=__attribute__((deprecated(\"Use strftime(3) instead!\"))) asctime(__VA_ARGS__)"
|
||||
AM_CPPFLAGS += -D"asctime_r(...)=__attribute__((deprecated(\"Use strftime(3) instead!\"))) asctime_r(__VA_ARGS__)"
|
||||
AM_CPPFLAGS += -D"gmtime(...)=__attribute__((deprecated(\"gmtime(3) isn't thread-safe. Use gmtime_r(3) instead!\"))) gmtime(__VA_ARGS__)"
|
||||
AM_CPPFLAGS += -D"localtime(...)=__attribute__((deprecated(\"localtime(3) isn't thread-safe. Use localtime_r(3) instead!\"))) localtime(__VA_ARGS__)"
|
||||
AM_CPPFLAGS += -DTEXT_DOMAIN=\"zfs-@ac_system_l@-user\"
|
||||
|
||||
AM_CPPFLAGS_NOCHECK = -D"strtok(...)=strtok(__VA_ARGS__) __attribute__((deprecated(\"Use strtok_r(3) instead!\")))"
|
||||
AM_CPPFLAGS_NOCHECK += -D"__xpg_basename(...)=__xpg_basename(__VA_ARGS__) __attribute__((deprecated(\"basename(3) is underspecified. Use zfs_basename() instead!\")))"
|
||||
AM_CPPFLAGS_NOCHECK += -D"basename(...)=basename(__VA_ARGS__) __attribute__((deprecated(\"basename(3) is underspecified. Use zfs_basename() instead!\")))"
|
||||
AM_CPPFLAGS_NOCHECK += -D"dirname(...)=dirname(__VA_ARGS__) __attribute__((deprecated(\"dirname(3) is underspecified. Use zfs_dirnamelen() instead!\")))"
|
||||
AM_CPPFLAGS_NOCHECK += -D"bcopy(...)=__attribute__((deprecated(\"bcopy(3) is deprecated. Use memcpy(3)/memmove(3) instead!\"))) bcopy(__VA_ARGS__)"
|
||||
AM_CPPFLAGS_NOCHECK += -D"bcmp(...)=__attribute__((deprecated(\"bcmp(3) is deprecated. Use memcmp(3) instead!\"))) bcmp(__VA_ARGS__)"
|
||||
AM_CPPFLAGS_NOCHECK += -D"bzero(...)=__attribute__((deprecated(\"bzero(3) is deprecated. Use memset(3) instead!\"))) bzero(__VA_ARGS__)"
|
||||
AM_CPPFLAGS_NOCHECK += -D"asctime(...)=__attribute__((deprecated(\"Use strftime(3) instead!\"))) asctime(__VA_ARGS__)"
|
||||
AM_CPPFLAGS_NOCHECK += -D"asctime_r(...)=__attribute__((deprecated(\"Use strftime(3) instead!\"))) asctime_r(__VA_ARGS__)"
|
||||
AM_CPPFLAGS_NOCHECK += -D"gmtime(...)=__attribute__((deprecated(\"gmtime(3) isn't thread-safe. Use gmtime_r(3) instead!\"))) gmtime(__VA_ARGS__)"
|
||||
AM_CPPFLAGS_NOCHECK += -D"localtime(...)=__attribute__((deprecated(\"localtime(3) isn't thread-safe. Use localtime_r(3) instead!\"))) localtime(__VA_ARGS__)"
|
||||
AM_CPPFLAGS += $(AM_CPPFLAGS_NOCHECK)
|
||||
|
||||
if ASAN_ENABLED
|
||||
AM_CPPFLAGS += -DZFS_ASAN_ENABLED
|
||||
@@ -83,3 +71,13 @@ AM_LDFLAGS += -fstack-protector-strong -shared
|
||||
AM_LDFLAGS += -Wl,-x -Wl,--fatal-warnings -Wl,--warn-shared-textrel
|
||||
AM_LDFLAGS += -lm
|
||||
endif
|
||||
|
||||
|
||||
# If a target includes kernel code, generate warnings for large stack frames
|
||||
KERNEL_CFLAGS = $(FRAME_LARGER_THAN)
|
||||
|
||||
# See https://debbugs.gnu.org/cgi/bugreport.cgi?bug=54020
|
||||
LIBRARY_CFLAGS = -no-suppress
|
||||
|
||||
# Forcibly enable asserts/debugging for libzpool &al.
|
||||
FORCEDEBUG_CPPFLAGS = -DDEBUG -UNDEBUG -DZFS_DEBUG
|
||||
|
||||
@@ -3,4 +3,7 @@ dnl # Check if cppcheck is available.
|
||||
dnl #
|
||||
AC_DEFUN([ZFS_AC_CONFIG_ALWAYS_CPPCHECK], [
|
||||
AC_CHECK_PROG([CPPCHECK], [cppcheck], [cppcheck])
|
||||
if test -z "$CPPCHECK"; then
|
||||
CPPCHECK='@printf "skipping cppcheck because cppcheck is not installed\n"'
|
||||
fi
|
||||
])
|
||||
|
||||
@@ -8,18 +8,22 @@ AC_DEFUN([ZFS_AC_CONFIG_ALWAYS_SYSTEM], [
|
||||
AC_DEFINE([SYSTEM_LINUX], [1],
|
||||
[True if ZFS is to be compiled for a Linux system])
|
||||
ac_system="Linux"
|
||||
ac_system_l="linux"
|
||||
;;
|
||||
*freebsd*)
|
||||
AC_DEFINE([SYSTEM_FREEBSD], [1],
|
||||
[True if ZFS is to be compiled for a FreeBSD system])
|
||||
ac_system="FreeBSD"
|
||||
ac_system_l="freebsd"
|
||||
;;
|
||||
*)
|
||||
ac_system="unknown"
|
||||
ac_system_l="unknown"
|
||||
;;
|
||||
esac
|
||||
AC_MSG_RESULT([$ac_system])
|
||||
AC_SUBST([ac_system])
|
||||
AC_SUBST([ac_system_l])
|
||||
|
||||
AM_CONDITIONAL([BUILD_LINUX], [test "x$ac_system" = "xLinux"])
|
||||
AM_CONDITIONAL([BUILD_FREEBSD], [test "x$ac_system" = "xFreeBSD"])
|
||||
|
||||
Reference in New Issue
Block a user