From c26de0b3e15ab5155b8fe62d729e7e2182404667 Mon Sep 17 00:00:00 2001 From: anthony Date: Tue, 1 Mar 2011 17:47:29 -0800 Subject: [PATCH] make vhd-util cross build work --- tools/vhd-tools/Makefile | 26 +++++++++++-------- tools/vhd-tools/include/libvhd-journal.h | 2 +- tools/vhd-tools/lvm/Makefile | 4 +-- tools/vhd-tools/vhd/Makefile | 33 +++++++----------------- tools/vhd-tools/vhd/lib/Makefile | 19 ++------------ tools/vhd-tools/vhd/lib/libvhd.c | 4 +-- 6 files changed, 30 insertions(+), 58 deletions(-) diff --git a/tools/vhd-tools/Makefile b/tools/vhd-tools/Makefile index 2558aa15ae3..bbb23317675 100644 --- a/tools/vhd-tools/Makefile +++ b/tools/vhd-tools/Makefile @@ -1,17 +1,21 @@ -XEN_ROOT = ../.. -include $(XEN_ROOT)/tools/Rules.mk - -CFLAGS += $(CFLAGS_libxenctrl) -LDFLAGS += $(LDFLAGS_libxenctrl) - SUBDIRS-y := -SUBDIRS-y += include SUBDIRS-y += lvm SUBDIRS-y += vhd -SUBDIRS-y += drivers + +%.o: %.c + $(CC) $(CPPFLAGS) $(CFLAGS) -c -o $@ $< + +all: + for subdir in $(SUBDIRS-y); do \ + $(MAKE) -C $$subdir all; \ + done + clean: - rm -rf *.a *.so *.o *.rpm $(LIB) *~ $(DEPS) TAGS + for subdir in $(SUBDIRS-y); do \ + $(MAKE) -C $$subdir clean; \ + done -.PHONY: all clean install -all clean install: %: subdirs-% + rm -rf *.a *.so *.o *.rpm $(LIB) *~ + +.PHONY: all clean diff --git a/tools/vhd-tools/include/libvhd-journal.h b/tools/vhd-tools/include/libvhd-journal.h index 75852523c9f..04a9a96c6b7 100644 --- a/tools/vhd-tools/include/libvhd-journal.h +++ b/tools/vhd-tools/include/libvhd-journal.h @@ -35,7 +35,7 @@ #define VHD_JOURNAL_DATA 0x02 #define VHD_JOURNAL_HEADER_COOKIE "vjournal" -#define VHD_JOURNAL_ENTRY_COOKIE 0xaaaa12344321aaaa +#define VHD_JOURNAL_ENTRY_COOKIE 0xaaaa12344321aaaaLLU typedef struct vhd_journal_header { char cookie[8]; diff --git a/tools/vhd-tools/lvm/Makefile b/tools/vhd-tools/lvm/Makefile index d5e07b2202d..637da0843e4 100644 --- a/tools/vhd-tools/lvm/Makefile +++ b/tools/vhd-tools/lvm/Makefile @@ -1,11 +1,9 @@ -XEN_ROOT = ../../.. -BLKTAP_ROOT := .. -include $(XEN_ROOT)/tools/Rules.mk ifeq ($(LVM_UTIL_TEST),y) TEST := lvm-util endif +CFLAGS += -m32 CFLAGS += -Werror CFLAGS += -Wno-unused CFLAGS += -I../include diff --git a/tools/vhd-tools/vhd/Makefile b/tools/vhd-tools/vhd/Makefile index 48a6e540b13..f83ae681809 100644 --- a/tools/vhd-tools/vhd/Makefile +++ b/tools/vhd-tools/vhd/Makefile @@ -1,13 +1,8 @@ -XEN_ROOT=../../.. -BLKTAP_ROOT := .. -include $(XEN_ROOT)/tools/Rules.mk -SUBDIRS-y := -SUBDIRS-y += lib IBIN = vhd-util vhd-update -INST_DIR = $(SBINDIR) +CFLAGS += -m32 CFLAGS += -Werror CFLAGS += -Wno-unused CFLAGS += -I../include @@ -17,40 +12,30 @@ ifeq ($(CONFIG_X86_64),y) CFLAGS += -fPIC endif -ifeq ($(VHD_STATIC),y) -CFLAGS += -static -endif - -LIBS := -Llib -lvhd -ifeq ($(CONFIG_Linux),y) LIBS += -luuid -endif # Get gcc to generate the dependencies for us. CFLAGS += -Wp,-MD,.$(@F).d DEPS = .*.d -all: subdirs-all build +all: libs build build: $(IBIN) -LIBS_DEPENDS := lib/libvhd.so lib/vhd.a -$(LIBS_DEPENDS):subdirs-all vhd-util: vhd-util.o $(LIBS_DEPENDS) - $(CC) $(CFLAGS) -o vhd-util vhd-util.o $(LDFLAGS) $(LIBS) + $(CC) $(CFLAGS) -o vhd-util vhd-util.o lib/libvhd.a $(LDFLAGS) $(LIBS) vhd-update: vhd-update.o $(LIBS_DEPENDS) - $(CC) $(CFLAGS) -o vhd-update vhd-update.o $(LDFLAGS) $(LIBS) + $(CC) $(CFLAGS) -o vhd-update vhd-update.o lib/libvhd.a $(LDFLAGS) $(LIBS) -install: all - $(MAKE) subdirs-install - $(INSTALL_DIR) -p $(DESTDIR)$(INST_DIR) - $(INSTALL_PROG) $(IBIN) $(DESTDIR)$(INST_DIR) +libs: + $(MAKE) -C lib all -clean: subdirs-clean +clean: rm -rf *.o *~ $(DEPS) $(IBIN) + $(MAKE) -C lib clean -.PHONY: all build clean install vhd-util vhd-update +PHONY: all clean vhd-util vhd-update lib -include $(DEPS) diff --git a/tools/vhd-tools/vhd/lib/Makefile b/tools/vhd-tools/vhd/lib/Makefile index fa5b417619d..d2898cfcc3a 100644 --- a/tools/vhd-tools/vhd/lib/Makefile +++ b/tools/vhd-tools/vhd/lib/Makefile @@ -1,17 +1,13 @@ -XEN_ROOT=../../../.. -BLKTAP_ROOT := ../.. -include $(XEN_ROOT)/tools/Rules.mk LIBVHD-MAJOR = 1.0 LIBVHD-MINOR = 0 LIBVHD-SONAME = libvhd.so.$(LIBVHD-MAJOR) -LVM-UTIL-OBJ := $(BLKTAP_ROOT)/lvm/lvm-util.o +LVM-UTIL-OBJ := ../../lvm/lvm-util.o LIBVHD-BUILD := libvhd.a -INST-DIR = $(LIBDIR) - +CFLAGS += -m32 CFLAGS += -Werror CFLAGS += -Wno-unused CFLAGS += -I../../include @@ -48,25 +44,14 @@ LIB-SRCS += atomicio.c LIB-OBJS = $(patsubst %.c,%.o,$(LIB-SRCS)) LIB-OBJS += $(LVM-UTIL-OBJ) -LIBVHD = libvhd.a libvhd.so.$(LIBVHD-MAJOR).$(LIBVHD-MINOR) all: build build: $(LIBVHD-BUILD) libvhd.a: $(LIB-OBJS) - $(CC) $(CFLAGS) -Wl,$(SONAME_LDFLAG),$(LIBVHD-SONAME) $(SHLIB_CFLAGS) \ - $(LDFLAGS) -o libvhd.so.$(LIBVHD-MAJOR).$(LIBVHD-MINOR) $(LIBS) $^ - ln -sf libvhd.so.$(LIBVHD-MAJOR).$(LIBVHD-MINOR) libvhd.so.$(LIBVHD-MAJOR) - ln -sf libvhd.so.$(LIBVHD-MAJOR) libvhd.so $(AR) rc $@ $^ -install: all - $(INSTALL_DIR) -p $(DESTDIR)$(INST-DIR) - $(INSTALL_DATA) $(LIBVHD) $(DESTDIR)$(INST-DIR) - ln -sf libvhd.so.$(LIBVHD-MAJOR).$(LIBVHD-MINOR) $(DESTDIR)$(INST-DIR)/libvhd.so.$(LIBVHD-MAJOR) - ln -sf libvhd.so.$(LIBVHD-MAJOR) $(DESTDIR)$(INST-DIR)/libvhd.so - clean: rm -rf *.a *.so* *.o *~ $(DEPS) $(LIBVHD) diff --git a/tools/vhd-tools/vhd/lib/libvhd.c b/tools/vhd-tools/vhd/lib/libvhd.c index bc9649a6396..d4412d2f9ed 100644 --- a/tools/vhd-tools/vhd/lib/libvhd.c +++ b/tools/vhd-tools/vhd/lib/libvhd.c @@ -323,7 +323,7 @@ vhd_validate_header(vhd_header_t *header) return -EINVAL; } - if (header->data_offset != 0xFFFFFFFFFFFFFFFF) { + if (header->data_offset != 0xFFFFFFFFFFFFFFFFLLU) { VHDLOG("invalid header data_offset 0x%016"PRIx64"\n", header->data_offset); return -EINVAL; @@ -2452,7 +2452,7 @@ vhd_initialize_footer(vhd_context_t *ctx, int type, uint64_t size) ctx->footer.geometry = vhd_chs(size); ctx->footer.type = type; ctx->footer.saved = 0; - ctx->footer.data_offset = 0xFFFFFFFFFFFFFFFF; + ctx->footer.data_offset = 0xFFFFFFFFFFFFFFFFLLU; strcpy(ctx->footer.crtr_app, "tap"); blk_uuid_generate(&ctx->footer.uuid); }