We need _GNU_SOURCE even when dmapi is not there. cc -O2 -g -m32 -mtune=ultrasparc -fPIC -DLIB_STRING=\"lib64\" -c -o uevent.o uevent.c uevent.c: In function 'uevent_listen': uevent.c:262: error: invalid application of 'sizeof' to incomplete type 'struct ucred' uevent.c:290: error: dereferencing pointer to incomplete type uevent.c:291: error: dereferencing pointer to incomplete type --- libmultipath/Makefile | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) Index: multipath-tools-0.4.8/libmultipath/Makefile =================================================================== --- multipath-tools-0.4.8.orig/libmultipath/Makefile +++ multipath-tools-0.4.8/libmultipath/Makefile @@ -16,8 +16,9 @@ OBJS = memory.o parser.o vector.o devmap LIBDM_API_FLUSH = $(shell if test -d /lib64 ; then objdump -T /lib64/libdevmapper.so* ; else objdump -T /lib/libdevmapper.so.* ; fi | grep -c dm_task_no_flush) +CFLAGS += -D_GNU_SOURCE ifneq ($(strip $(LIBDM_API_FLUSH)),0) - CFLAGS += -DLIBDM_API_FLUSH -D_GNU_SOURCE + CFLAGS += -DLIBDM_API_FLUSH endif all: $(LIBS)