diff -urp LVM2.2.02.179.orig/lib/commands/toolcontext.c LVM2.2.02.179/lib/commands/toolcontext.c --- LVM2.2.02.179.orig/lib/commands/toolcontext.c 2018-06-18 05:24:22.000000000 +0000 +++ LVM2.2.02.179/lib/commands/toolcontext.c 2018-06-26 11:40:23.355840745 +0000 @@ -1827,10 +1827,10 @@ struct cmd_context *create_toolcontext(u #ifdef M_MMAP_MAX mallopt(M_MMAP_MAX, 0); #endif - +#ifdef __dietlibc__ if (!setlocale(LC_ALL, "")) log_very_verbose("setlocale failed"); - +#endif #ifdef INTL_PACKAGE bindtextdomain(INTL_PACKAGE, LOCALEDIR); #endif diff -urp LVM2.2.02.179.orig/lib/config/config.c LVM2.2.02.179/lib/config/config.c --- LVM2.2.02.179.orig/lib/config/config.c 2018-06-18 05:24:22.000000000 +0000 +++ LVM2.2.02.179/lib/config/config.c 2018-06-26 11:40:23.356840745 +0000 @@ -44,6 +44,10 @@ static const char *_config_source_names[ [CONFIG_FILE_SPECIAL] = "special purpose" }; +#ifdef __dietlibc__ +typedef char* caddr_t __attribute_dontuse__; +#endif + struct config_file { off_t st_size; char *filename; diff -urp LVM2.2.02.179.orig/lib/metadata/pv.c LVM2.2.02.179/lib/metadata/pv.c --- LVM2.2.02.179.orig/lib/metadata/pv.c 2018-06-18 05:24:22.000000000 +0000 +++ LVM2.2.02.179/lib/metadata/pv.c 2018-06-26 11:40:23.356840745 +0000 @@ -17,6 +17,12 @@ #include "metadata.h" #include "lvmcache.h" +#ifdef __dietlibc__ +# ifndef UINT64_MAX +# define UINT64_MAX __UINT64_MAX__ +# endif +#endif + /* * FIXME: Check for valid handle before dereferencing field or log error? */ diff -urp LVM2.2.02.179.orig/lib/misc/lib.h LVM2.2.02.179/lib/misc/lib.h --- LVM2.2.02.179.orig/lib/misc/lib.h 2018-06-18 05:24:22.000000000 +0000 +++ LVM2.2.02.179/lib/misc/lib.h 2018-06-26 11:40:23.356840745 +0000 @@ -93,4 +93,20 @@ #include +#ifdef __dietlibc__ +# include +# include +# if __WORDSIZE == 64 +# define INT64_C(c) c ## L +# else +# define INT64_C(c) c ## LL +# endif +# define UINT32_C(c) c ## U +# if __WORDSIZE == 64 +# define UINT64_C(c) c ## UL +# else +# define UINT64_C(c) c ## ULL +# endif +#endif + #endif diff -urp LVM2.2.02.179.orig/lib/report/report.c LVM2.2.02.179/lib/report/report.c --- LVM2.2.02.179.orig/lib/report/report.c 2018-06-18 05:24:22.000000000 +0000 +++ LVM2.2.02.179/lib/report/report.c 2018-06-26 11:40:23.357840745 +0000 @@ -29,6 +29,11 @@ #include /* DBL_MAX */ #include +#ifdef __dietlibc__ +#define __UINT64_C(c) c ## ULL +# define UINT64_MAX (__UINT64_C(18446744073709551615)) +#endif + struct lvm_report_object { struct volume_group *vg; struct lv_with_info_and_seg_status *lvdm; diff -urp LVM2.2.02.179.orig/libdm/libdevmapper.h LVM2.2.02.179/libdm/libdevmapper.h --- LVM2.2.02.179.orig/libdm/libdevmapper.h 2018-06-18 05:24:22.000000000 +0000 +++ LVM2.2.02.179/libdm/libdevmapper.h 2018-06-26 11:40:23.357840745 +0000 @@ -251,6 +251,10 @@ int dm_task_set_add_node(struct dm_task /* * Control read_ahead. */ +#ifdef __dietlibc__ +# define UINT32_MAX (4294967295U) +#endif + #define DM_READ_AHEAD_AUTO UINT32_MAX /* Use kernel default readahead */ #define DM_READ_AHEAD_NONE 0 /* Disable readahead */ diff -urp LVM2.2.02.179.orig/tools/dmsetup.c LVM2.2.02.179/tools/dmsetup.c --- LVM2.2.02.179.orig/tools/dmsetup.c 2018-06-18 05:24:22.000000000 +0000 +++ LVM2.2.02.179/tools/dmsetup.c 2018-06-26 11:40:23.358840745 +0000 @@ -37,6 +37,23 @@ # include #endif +#ifdef __dietlibc__ +# include +# if __WORDSIZE == 64 +# define INT64_C(c) c ## L +# else +# define INT64_C(c) c ## LL +# endif +# define UINT32_C(c) c ## U +# if __WORDSIZE == 64 +# define UINT64_C(c) c ## UL +# else +# define UINT64_C(c) c ## ULL +# endif +#define canonicalize_file_name(x) realpath(x, NULL) +#endif +#include + /* FIXME Unused so far */ #undef HAVE_SYS_STATVFS_H diff -urp LVM2.2.02.179.orig/tools/Makefile.in LVM2.2.02.179/tools/Makefile.in --- LVM2.2.02.179.orig/tools/Makefile.in 2018-06-26 11:33:19.629866001 +0000 +++ LVM2.2.02.179/tools/Makefile.in 2018-06-26 11:44:55.383824531 +0000 @@ -127,13 +127,14 @@ CFLAGS_dmsetup.o += $(UDEV_CFLAGS) $(EXT dmsetup: dmsetup.o $(top_builddir)/libdm/libdevmapper.$(LIB_SUFFIX) @echo " [CC] $@" - $(Q) $(CC) $(CFLAGS) $(LDFLAGS) $(EXTRA_EXEC_LDFLAGS) $(ELDFLAGS) \ + $(Q) $(CC) $(CFLAGS) -L$(interfacebuilddir) -L$(top_builddir)/libdm \ + $(LDFLAGS) $(EXTRA_EXEC_LDFLAGS) $(ELDFLAGS) \ -o $@ dmsetup.o -ldevmapper $(LIBS) dmsetup.static: dmsetup.o $(interfacebuilddir)/libdevmapper.a @echo " [CC] $@" - $(Q) $(CC) $(CFLAGS) $(LDFLAGS) -static -L$(interfacebuilddir) \ - -o $@ dmsetup.o -ldevmapper $(M_LIBS) $(PTHREAD_LIBS) $(STATIC_LIBS) $(LIBS) + $(Q) $(CC) $(CFLAGS) -static -L$(interfacebuilddir) $(LDFLAGS) \ + -o $@ dmsetup.o -ldevmapper $(M_LIBS) $(PTHREAD_LIBS) $(STATIC_LIBS) $(LIBS) $(DIETLIBC_LIBS) all: device-mapper @@ -143,7 +144,7 @@ INCLUDES += -I$(top_builddir)/tools lvm: $(OBJECTS) lvm.o $(top_builddir)/lib/liblvm-internal.a @echo " [CC] $@" - $(Q) $(CC) $(CFLAGS) $(LDFLAGS) $(EXTRA_EXEC_LDFLAGS) $(ELDFLAGS) -o $@ $(OBJECTS) lvm.o \ + $(Q) $(CC) $(CFLAGS) -L$(interfacebuilddir) $(LDFLAGS) $(EXTRA_EXEC_LDFLAGS) $(ELDFLAGS) -o $@ $(OBJECTS) lvm.o \ $(LVMLIBS) $(READLINE_LIBS) $(LIBS) DEFS_man-generator.o += -DMAN_PAGE_GENERATOR @@ -163,7 +164,7 @@ endif lvm.static: $(OBJECTS) lvm-static.o $(top_builddir)/lib/liblvm-internal.a $(interfacebuilddir)/libdevmapper.a @echo " [CC] $@" $(Q) $(CC) $(CFLAGS) $(LDFLAGS) -static -L$(interfacebuilddir) -o $@ \ - $(OBJECTS) lvm-static.o $(LVMLIBS) $(STATIC_LIBS) $(LIBS) + $(OBJECTS) lvm-static.o $(LVMLIBS) $(STATIC_LIBS) $(LIBS) $(PTHREAD_LIBS) $(DIETLIBC_LIBS) liblvm2cmd.a: $(top_builddir)/lib/liblvm-internal.a $(OBJECTS) lvmcmdlib.o lvm2cmd.o @echo " [AR] $@" diff -urp LVM2.2.02.179.orig/tools/tools.h LVM2.2.02.179/tools/tools.h --- LVM2.2.02.179.orig/tools/tools.h 2018-06-18 05:24:22.000000000 +0000 +++ LVM2.2.02.179/tools/tools.h 2018-06-26 11:40:23.359840745 +0000 @@ -47,6 +47,21 @@ #include #include +#ifdef __dietlibc__ +# include +# if __WORDSIZE == 64 +# define INT64_C(c) c ## L +# else +# define INT64_C(c) c ## LL +# endif +# define UINT32_C(c) c ## U +# if __WORDSIZE == 64 +# define UINT64_C(c) c ## UL +# else +# define UINT64_C(c) c ## ULL +# endif +#endif + #define CMD_LEN 256 #define MAX_ARGS 64