/
githubmirror
/
lvm2
Обзор
Документация
Войти
/
githubmirror
/
lvm2
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
libdm/Makefile.in
170 строк
5 KB
Zdenek Kabelac
sanitizer: initial support
23 июн 2026, 02:19
23 июн 2026, 02:19
d938c1f
Код
Авторство
О чём код?
# # Copyright (C) 2001-2004 Sistina Software, Inc. All rights reserved. # Copyright (C) 2004-2010 Red Hat, Inc. All rights reserved. # # This file is part of the device-mapper userspace tools. # # This copyrighted material is made available to anyone wishing to use, # modify, copy, or redistribute it subject to the terms and conditions # of the GNU Lesser General Public License v.2.1. # # You should have received a copy of the GNU Lesser General Public License # along with this program; if not, write to the Free Software Foundation, # Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA srcdir = @srcdir@ top_srcdir = @top_srcdir@ top_builddir = @top_builddir@ abs_srcdir = @abs_srcdir@ SUBDIRS=dm-tools SOURCES =\ datastruct/bitset.c \ datastruct/hash.c \ datastruct/list.c \ libdm-common.c \ libdm-config.c \ libdm-deptree.c \ libdm-file.c \ libdm-report.c \ libdm-stats.c \ libdm-string.c \ libdm-targets.c \ libdm-timestamp.c \ mm/dbg_malloc.c \ mm/pool.c \ raid/raid_parser.c \ regex/matcher.c \ regex/parse_rx.c \ regex/ttree.c \ vdo/vdo_parse.c \ vdo/vdo_target.c \ vdo/vdo_reader.c \ vdo/vdo_status.c \ vdo/vdo_stats.c \ $(interface)/libdm-iface.c INCLUDES = -I$(srcdir)/$(interface) ifeq ("@STATIC_LINK@", "yes") LIB_STATIC = $(interface)/libdevmapper.a endif ifeq ("@SHARED_LINK@", "yes") LIB_SHARED = $(interface)/libdevmapper.$(LIB_SUFFIX) LIB_VERSION = $(LIB_VERSION_DM) TARGETS = libdevmapper.$(LIB_SUFFIX) libdevmapper.$(LIB_SUFFIX).$(LIB_VERSION) .symver_check ifneq ("@SANITIZER@", "no") TARGETS += $(LIB_SAN) $(LIB_SAN).$(LIB_VERSION_DM) endif endif CFLOW_LIST = $(SOURCES) CFLOW_LIST_TARGET = libdevmapper.cflow EXPORTED_HEADER = $(srcdir)/libdevmapper.h EXPORTED_FN_PREFIX = dm SAN_OBJECTS = $(SOURCES:%.c=%-san.o) LIB_SAN = libdevmapper-san.$(LIB_SUFFIX) LIB_SHARED_SAN = $(interface)/$(LIB_SAN) include $(top_builddir)/libdm/make.tmpl PROGS_CFLAGS = $(UDEV_CFLAGS) device-mapper: $(TARGETS) dm-tools.device-mapper: device-mapper libdevmapper.$(LIB_SUFFIX) libdevmapper.$(LIB_SUFFIX).$(LIB_VERSION): $(LIB_SHARED) $(SHOW) " [LN] $<" $(Q) $(LN_S) -f $< $@ %-san.o: %.c %.o $(SHOW) " [CC] $(<F) (@SANITIZER@)" @mkdir -p $(@D) $(Q) $(CC) -c $(INCLUDES) $(VALGRIND_CFLAGS) $(PROGS_CFLAGS) $(DEFS) $(DEFS_$@) $(WFLAGS) $(WCFLAGS) $(CFLAGS) $(CFLAGS_$@) $(SANITIZER_CFLAGS) $(CPPFLAGS) $< -o $@ ifneq ("@SANITIZER@", "no") $(LIB_SHARED_SAN).$(LIB_VERSION_DM): $(SAN_OBJECTS) $(LDDEPS) $(SHOW) " [CC] $@ (@SANITIZER@)" $(Q) $(CC) -shared -Wl,-soname,$(notdir $@) \ $(CFLAGS) $(SANITIZER_CFLAGS) $(LDFLAGS) $(SANITIZER_LDFLAGS) $(CLDFLAGS) $(SAN_OBJECTS) $(LIBS) -o $@ $(LIB_SHARED_SAN): $(LIB_SHARED_SAN).$(LIB_VERSION_DM) $(SHOW) " [LN] $(<F)" $(Q) $(LN_S) -f $(<F) $@ $(LIB_SAN) $(LIB_SAN).$(LIB_VERSION_DM): $(LIB_SHARED_SAN) $(SHOW) " [LN] $<" $(Q) $(LN_S) -f $< $@ endif # Check versioned build when default versioned symbol is present @@ # also the older symbol is built-in .symver_check: $(LIB_SHARED) $(SHOW) " [CHECK] $<" $(Q) if $(READELF) -Ws $< | grep -q dm_stats_create_region@@; then \ SYM=$$($(READELF) -Ws $< | grep dm_stats_create_region@DM_1_02_106); \ if test -n "$$SYM"; then touch $@; \ else echo >&2 "Missing versioned symbols in $<"; false; fi; \ else touch $@; fi .PHONY: install_dynamic install_static install_include \ install_ioctl install_ioctl_static \ install_pkgconfig INSTALL_TYPE = install_dynamic ifeq ("@STATIC_LINK@", "yes") INSTALL_TYPE += install_static endif ifeq ("@PKGCONFIG@", "yes") INSTALL_TYPE += install_pkgconfig endif install: $(INSTALL_TYPE) install_include install_device-mapper: install install_lvm2: install_include: $(srcdir)/libdevmapper.h $(SHOW) " [INSTALL] $<" $(Q) $(INSTALL_DATA) -D $< $(includedir)/$(<F) install_dynamic: install_@interface@ install_static: install_@interface@_static ifeq ("@SHARED_LINK@", "yes") install_ioctl: install_lib_shared endif ifeq ("@STATIC_LINK@", "yes") install_ioctl: install_ioctl_static endif install_pkgconfig: libdevmapper.pc $(SHOW) " [INSTALL] $<" $(Q) $(INSTALL_DATA) -D $< $(pkgconfigdir)/devmapper.pc install_ioctl_static: $(LIB_STATIC) $(SHOW) " [INSTALL] $<" $(Q) $(INSTALL_DATA) -D $< $(usrlibdir)/$(<F) ifneq ("@SANITIZER@", "no") install_ioctl: install_lib_shared_san install_lib_shared_san: $(LIB_SHARED_SAN) $(SHOW) " [INSTALL] $<" $(Q) $(INSTALL_PROGRAM) -D $< $(libdir)/$(<F).$(LIB_VERSION_DM) $(Q) $(INSTALL_DIR) $(usrlibdir) $(Q) $(LN_S) -f $(USRLIB_RELPATH)$(<F).$(LIB_VERSION_DM) $(usrlibdir)/$(<F) endif CLEAN_TARGETS += ioctl/libdevmapper.a \ $(SAN_OBJECTS) \ $(LIB_SHARED_SAN) $(LIB_SHARED_SAN).$(LIB_VERSION_DM) \ $(LIB_SAN) $(LIB_SAN).$(LIB_VERSION_DM) DISTCLEAN_TARGETS += libdevmapper.pc make.tmpl