make vhd-util cross build work

This commit is contained in:
anthony 2011-03-01 17:47:29 -08:00
parent 29147fa0b0
commit c26de0b3e1
6 changed files with 30 additions and 58 deletions

View File

@ -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

View File

@ -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];

View File

@ -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

View File

@ -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)

View File

@ -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)

View File

@ -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);
}