diff -urp LVM2.2.02.177.orig/lib/commands/toolcontext.c LVM2.2.02.177/lib/commands/toolcontext.c --- LVM2.2.02.177.orig/lib/commands/toolcontext.c 2017-12-18 20:44:35.000000000 +0000 +++ LVM2.2.02.177/lib/commands/toolcontext.c 2018-01-26 15:13:17.915538732 +0000 @@ -1840,10 +1840,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.177.orig/lib/config/config.c LVM2.2.02.177/lib/config/config.c --- LVM2.2.02.177.orig/lib/config/config.c 2017-12-18 20:44:35.000000000 +0000 +++ LVM2.2.02.177/lib/config/config.c 2018-01-26 15:13:17.917538732 +0000 @@ -43,6 +43,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.177.orig/lib/metadata/pv.c LVM2.2.02.177/lib/metadata/pv.c --- LVM2.2.02.177.orig/lib/metadata/pv.c 2017-12-18 20:44:35.000000000 +0000 +++ LVM2.2.02.177/lib/metadata/pv.c 2018-01-26 15:13:17.919538732 +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.177.orig/lib/misc/lib.h LVM2.2.02.177/lib/misc/lib.h --- LVM2.2.02.177.orig/lib/misc/lib.h 2017-12-18 20:44:35.000000000 +0000 +++ LVM2.2.02.177/lib/misc/lib.h 2018-01-26 15:13:17.917538732 +0000 @@ -94,4 +94,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.177.orig/lib/report/report.c LVM2.2.02.177/lib/report/report.c --- LVM2.2.02.177.orig/lib/report/report.c 2017-12-18 20:44:35.000000000 +0000 +++ LVM2.2.02.177/lib/report/report.c 2018-01-26 15:13:17.918538732 +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.177.orig/libdm/libdevmapper.h LVM2.2.02.177/libdm/libdevmapper.h --- LVM2.2.02.177.orig/libdm/libdevmapper.h 2017-12-18 20:44:35.000000000 +0000 +++ LVM2.2.02.177/libdm/libdevmapper.h 2018-01-26 15:13:17.916538732 +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.177.orig/tools/dmsetup.c LVM2.2.02.177/tools/dmsetup.c --- LVM2.2.02.177.orig/tools/dmsetup.c 2017-12-18 20:44:35.000000000 +0000 +++ LVM2.2.02.177/tools/dmsetup.c 2018-01-26 15:13:17.919538732 +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.177.orig/tools/Makefile.in LVM2.2.02.177/tools/Makefile.in --- LVM2.2.02.177.orig/tools/Makefile.in 2018-01-26 15:12:22.000000000 +0000 +++ LVM2.2.02.177/tools/Makefile.in 2018-01-26 15:17:46.765522708 +0000 @@ -126,12 +126,13 @@ device-mapper: $(TARGETS_DM) CFLAGS_dmsetup.o += $(UDEV_CFLAGS) $(EXTRA_EXEC_CFLAGS) dmsetup: dmsetup.o $(top_builddir)/libdm/libdevmapper.$(LIB_SUFFIX) - $(CC) $(CFLAGS) $(LDFLAGS) $(EXTRA_EXEC_LDFLAGS) $(ELDFLAGS) \ + $(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 - $(CC) $(CFLAGS) $(LDFLAGS) -static -L$(interfacebuilddir) \ - -o $@ dmsetup.o -ldevmapper $(M_LIBS) $(PTHREAD_LIBS) $(STATIC_LIBS) $(LIBS) + $(CC) $(CFLAGS) -static -L$(interfacebuilddir) $(LDFLAGS) \ + -o $@ dmsetup.o -ldevmapper $(M_LIBS) $(PTHREAD_LIBS) $(STATIC_LIBS) $(LIBS) $(DIETLIBC_LIBS) all: device-mapper @@ -140,7 +141,7 @@ CFLAGS_lvm.o += $(EXTRA_EXEC_CFLAGS) INCLUDES += -I$(top_builddir)/tools lvm: $(OBJECTS) lvm.o $(top_builddir)/lib/liblvm-internal.a - $(CC) $(CFLAGS) $(LDFLAGS) $(EXTRA_EXEC_LDFLAGS) $(ELDFLAGS) -o $@ $(OBJECTS) lvm.o \ + $(CC) $(CFLAGS) -L$(interfacebuilddir) $(LDFLAGS) $(EXTRA_EXEC_LDFLAGS) $(ELDFLAGS) -o $@ $(OBJECTS) lvm.o \ $(LVMLIBS) $(READLINE_LIBS) $(LIBS) DEFS_man-generator.o += -DMAN_PAGE_GENERATOR @@ -157,7 +158,7 @@ endif lvm.static: $(OBJECTS) lvm-static.o $(top_builddir)/lib/liblvm-internal.a $(interfacebuilddir)/libdevmapper.a $(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 cat $(top_builddir)/lib/liblvm-internal.a > $@ diff -urp LVM2.2.02.177.orig/tools/tools.h LVM2.2.02.177/tools/tools.h --- LVM2.2.02.177.orig/tools/tools.h 2017-12-18 20:44:35.000000000 +0000 +++ LVM2.2.02.177/tools/tools.h 2018-01-26 15:13:17.917538732 +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