vtpm/vtpmmgr and required libs to stubdom/Makefile

Add 3 new libraries to stubdom:
libgmp
polarssl
Berlios TPM Emulator 0.7.4

Add makefile structure for vtpm and vtpmmgrdom. Both
vtpm domains are optional builds as vtpm depends on
cmake. To build either of them, you must do so explicitly.
make vtpm-stubdom vtpmmgrdom

Finally, also update .*ignore

Signed-off-by: Matthew Fioravante <matthew.fioravante@jhuapl.edu>
Acked-by: Ian Campbell <ian.campbell@citrix.com>
[ijc, folded in fix from Matthew to workaround cmake 2.8.2 build failure]
Committed-by: Ian Campbell <ian.campbell@citrix.com>
This commit is contained in:
Matthew Fioravante committed 2013-01-18 10:55:44 +00:00
1 parent 095b0b7794
commit bdd516dc6b
5 files changed
+215 -1

No files matched your search

+133 -1
View File
@@ -31,6 +31,18 @@ GRUB_VERSION=0.97
OCAML_URL?=http://caml.inria.fr/pub/distrib/ocaml-3.11
OCAML_VERSION=3.11.0
GMP_VERSION=4.3.2
GMP_URL?=$(XEN_EXTFILES_URL)
#GMP_URL?=ftp://ftp.gmplib.org/pub/gmp-$(GMP_VERSION)
POLARSSL_VERSION=1.1.4
POLARSSL_URL?=$(XEN_EXTFILES_URL)
#POLARSSL_URL?=http://polarssl.org/code/releases
TPMEMU_VERSION=0.7.4
TPMEMU_URL?=$(XEN_EXTFILES_URL)
#TPMEMU_URL?=http://download.berlios.de/tpm-emulator
WGET=wget -c
GNU_TARGET_ARCH:=$(XEN_TARGET_ARCH)
@@ -74,7 +86,7 @@ TARGET_CPPFLAGS += -I$(XEN_ROOT)/xen/include
TARGET_LDFLAGS += -nostdlib -L$(CROSS_PREFIX)/$(GNU_TARGET_ARCH)-xen-elf/lib
TARGETS=ioemu c caml grub xenstore
TARGETS=ioemu c caml grub xenstore vtpm vtpmmgr
.PHONY: all
all: build
@@ -175,6 +187,76 @@ lwip-$(XEN_TARGET_ARCH): lwip-$(LWIP_VERSION).tar.gz
patch -d $@ -p0 < lwip.patch-cvs
touch $@
#############
# cross-gmp
#############
gmp-$(GMP_VERSION).tar.bz2:
$(WGET) $(GMP_URL)/$@
.PHONY: cross-gmp
ifeq ($(XEN_TARGET_ARCH), x86_32)
GMPEXT=ABI=32
endif
gmp-$(XEN_TARGET_ARCH): gmp-$(GMP_VERSION).tar.bz2 $(NEWLIB_STAMPFILE)
tar xjf $<
mv gmp-$(GMP_VERSION) $@
#patch -d $@ -p0 < gmp.patch
cd $@; CPPFLAGS="-isystem $(CROSS_PREFIX)/$(GNU_TARGET_ARCH)-xen-elf/include $(TARGET_CPPFLAGS)" CFLAGS="$(TARGET_CFLAGS)" CC=$(CC) $(GMPEXT) ./configure --disable-shared --enable-static --disable-fft --without-readline --prefix=$(CROSS_PREFIX)/$(GNU_TARGET_ARCH)-xen-elf
sed -i 's/#define HAVE_OBSTACK_VPRINTF 1/\/\/#define HAVE_OBSTACK_VPRINTF 1/' $@/config.h
touch $@
GMP_STAMPFILE=$(CROSS_ROOT)/$(GNU_TARGET_ARCH)-xen-elf/lib/libgmp.a
cross-gmp: $(GMP_STAMPFILE)
$(GMP_STAMPFILE): gmp-$(XEN_TARGET_ARCH)
( cd $< && \
$(MAKE) && \
$(MAKE) DESTDIR= install )
#############
# cross-polarssl
#############
polarssl-$(POLARSSL_VERSION)-gpl.tgz:
$(WGET) $(POLARSSL_URL)/$@
polarssl-$(XEN_TARGET_ARCH): polarssl-$(POLARSSL_VERSION)-gpl.tgz
tar xzf $<
mv polarssl-$(POLARSSL_VERSION) $@
patch -d $@ -p1 < polarssl.patch
touch $@
POLARSSL_STAMPFILE=$(CROSS_ROOT)/$(GNU_TARGET_ARCH)-xen-elf/lib/libpolarssl.a
cross-polarssl: $(POLARSSL_STAMPFILE)
$(POLARSSL_STAMPFILE): polarssl-$(XEN_TARGET_ARCH) $(NEWLIB_STAMPFILE) lwip-$(XEN_TARGET_ARCH)
( cd $</library && \
make CC="$(CC) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) -I $(realpath $(MINI_OS)/include)" && \
mkdir -p $(CROSS_PREFIX)/$(GNU_TARGET_ARCH)-xen-elf/include && \
cp -r ../include/* $(CROSS_PREFIX)/$(GNU_TARGET_ARCH)-xen-elf/include && \
mkdir -p $(CROSS_PREFIX)/$(GNU_TARGET_ARCH)-xen-elf/lib && \
$(INSTALL_DATA) libpolarssl.a $(CROSS_PREFIX)/$(GNU_TARGET_ARCH)-xen-elf/lib/ )
#############
# cross-tpmemu
#############
tpm_emulator-$(TPMEMU_VERSION).tar.gz:
$(WGET) $(TPMEMU_URL)/$@
tpm_emulator-$(XEN_TARGET_ARCH): tpm_emulator-$(TPMEMU_VERSION).tar.gz
tar xzf $<
mv tpm_emulator-$(TPMEMU_VERSION) $@
patch -d $@ -p1 < tpmemu-$(TPMEMU_VERSION).patch;
mkdir $@/build
cd $@/build; CC=${CC} cmake .. -DCMAKE_C_FLAGS:STRING="-std=c99 -DTPM_NO_EXTERN $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) -Wno-declaration-after-statement"
touch $@
TPMEMU_STAMPFILE=$(CROSS_ROOT)/$(GNU_TARGET_ARCH)-xen-elf/lib/libtpm.a
$(TPMEMU_STAMPFILE): tpm_emulator-$(XEN_TARGET_ARCH) $(GMP_STAMPFILE)
( cd $</build && make VERBOSE=1 tpm_crypto tpm )
cp $</build/crypto/libtpm_crypto.a $(CROSS_ROOT)/$(GNU_TARGET_ARCH)-xen-elf/lib/libtpm_crypto.a
cp $</build/tpm/libtpm.a $(TPMEMU_STAMPFILE)
.PHONY: cross-tpmemu
cross-tpmemu: $(TPMEMU_STAMPFILE)
#############
# Cross-ocaml
#############
@@ -318,6 +400,24 @@ caml: $(CROSS_ROOT)
c: $(CROSS_ROOT)
CPPFLAGS="$(TARGET_CPPFLAGS)" CFLAGS="$(TARGET_CFLAGS)" $(MAKE) DESTDIR= -C $@ LWIPDIR=$(CURDIR)/lwip-$(XEN_TARGET_ARCH)
######
# VTPM
######
.PHONY: vtpm
vtpm: cross-polarssl cross-tpmemu
make -C $(MINI_OS) links
XEN_TARGET_ARCH="$(XEN_TARGET_ARCH)" CPPFLAGS="$(TARGET_CPPFLAGS)" CFLAGS="$(TARGET_CFLAGS)" $(MAKE) -C $@
######
# VTPMMGR
######
.PHONY: vtpmmgr
vtpmmgr: cross-polarssl
make -C $(MINI_OS) links
XEN_TARGET_ARCH="$(XEN_TARGET_ARCH)" CPPFLAGS="$(TARGET_CPPFLAGS)" CFLAGS="$(TARGET_CFLAGS)" $(MAKE) -C $@
######
# Grub
######
@@ -362,6 +462,14 @@ caml-stubdom: mini-os-$(XEN_TARGET_ARCH)-caml lwip-$(XEN_TARGET_ARCH) libxc cros
c-stubdom: mini-os-$(XEN_TARGET_ARCH)-c lwip-$(XEN_TARGET_ARCH) libxc c
DEF_CPPFLAGS="$(TARGET_CPPFLAGS)" DEF_CFLAGS="$(TARGET_CFLAGS)" DEF_LDFLAGS="$(TARGET_LDFLAGS)" MINIOS_CONFIG="$(CURDIR)/c/minios.cfg" $(MAKE) DESTDIR= -C $(MINI_OS) OBJ_DIR=$(CURDIR)/$< LWIPDIR=$(CURDIR)/lwip-$(XEN_TARGET_ARCH) APP_OBJS=$(CURDIR)/c/main.a
.PHONY: vtpm-stubdom
vtpm-stubdom: mini-os-$(XEN_TARGET_ARCH)-vtpm vtpm
DEF_CPPFLAGS="$(TARGET_CPPFLAGS)" DEF_CFLAGS="$(TARGET_CFLAGS)" DEF_LDFLAGS="$(TARGET_LDFLAGS)" MINIOS_CONFIG="$(CURDIR)/vtpm/minios.cfg" $(MAKE) -C $(MINI_OS) OBJ_DIR=$(CURDIR)/$< APP_OBJS="$(CURDIR)/vtpm/vtpm.a" APP_LDLIBS="-ltpm -ltpm_crypto -lgmp"
.PHONY: vtpmmgrdom
vtpmmgrdom: mini-os-$(XEN_TARGET_ARCH)-vtpmmgr vtpmmgr
DEF_CPPFLAGS="$(TARGET_CPPFLAGS)" DEF_CFLAGS="$(TARGET_CFLAGS)" DEF_LDFLAGS="$(TARGET_LDFLAGS)" MINIOS_CONFIG="$(CURDIR)/vtpmmgr/minios.cfg" $(MAKE) -C $(MINI_OS) OBJ_DIR=$(CURDIR)/$< APP_OBJS="$(CURDIR)/vtpmmgr/vtpmmgr.a" APP_LDLIBS="-lm"
.PHONY: pv-grub
pv-grub: mini-os-$(XEN_TARGET_ARCH)-grub libxc grub
DEF_CPPFLAGS="$(TARGET_CPPFLAGS)" DEF_CFLAGS="$(TARGET_CFLAGS)" DEF_LDFLAGS="$(TARGET_LDFLAGS)" MINIOS_CONFIG="$(CURDIR)/grub/minios.cfg" $(MAKE) DESTDIR= -C $(MINI_OS) OBJ_DIR=$(CURDIR)/$< APP_OBJS=$(CURDIR)/grub-$(XEN_TARGET_ARCH)/main.a
@@ -399,6 +507,14 @@ install-xenstore: xenstore-stubdom
$(INSTALL_DIR) "$(DESTDIR)/usr/lib/xen/boot"
$(INSTALL_DATA) mini-os-$(XEN_TARGET_ARCH)-xenstore/mini-os.gz "$(DESTDIR)/usr/lib/xen/boot/xenstore-stubdom.gz"
install-vtpm: vtpm-stubdom
$(INSTALL_DIR) "$(DESTDIR)$(XENFIRMWAREDIR)"
$(INSTALL_PROG) mini-os-$(XEN_TARGET_ARCH)-vtpm/mini-os.gz "$(DESTDIR)$(XENFIRMWAREDIR)/vtpm-stubdom.gz"
install-vtpmmgr: vtpm-stubdom
$(INSTALL_DIR) "$(DESTDIR)$(XENFIRMWAREDIR)"
$(INSTALL_PROG) mini-os-$(XEN_TARGET_ARCH)-vtpmmgr/mini-os.gz "$(DESTDIR)$(XENFIRMWAREDIR)/vtpmmgrdom.gz"
#######
# clean
#######
@@ -411,8 +527,12 @@ clean:
rm -fr mini-os-$(XEN_TARGET_ARCH)-caml
rm -fr mini-os-$(XEN_TARGET_ARCH)-grub
rm -fr mini-os-$(XEN_TARGET_ARCH)-xenstore
rm -fr mini-os-$(XEN_TARGET_ARCH)-vtpm
rm -fr mini-os-$(XEN_TARGET_ARCH)-vtpmmgr
$(MAKE) DESTDIR= -C caml clean
$(MAKE) DESTDIR= -C c clean
$(MAKE) -C vtpm clean
$(MAKE) -C vtpmmgr clean
rm -fr grub-$(XEN_TARGET_ARCH)
rm -f $(STUBDOMPATH)
[ ! -d libxc-$(XEN_TARGET_ARCH) ] || $(MAKE) DESTDIR= -C libxc-$(XEN_TARGET_ARCH) clean
@@ -426,6 +546,10 @@ crossclean: clean
rm -fr newlib-$(XEN_TARGET_ARCH)
rm -fr zlib-$(XEN_TARGET_ARCH) pciutils-$(XEN_TARGET_ARCH)
rm -fr libxc-$(XEN_TARGET_ARCH) ioemu
rm -fr gmp-$(XEN_TARGET_ARCH)
rm -fr polarssl-$(XEN_TARGET_ARCH)
rm -fr openssl-$(XEN_TARGET_ARCH)
rm -fr tpm_emulator-$(XEN_TARGET_ARCH)
rm -f mk-headers-$(XEN_TARGET_ARCH)
rm -fr ocaml-$(XEN_TARGET_ARCH)
rm -fr include
@@ -434,6 +558,10 @@ crossclean: clean
.PHONY: patchclean
patchclean: crossclean
rm -fr newlib-$(NEWLIB_VERSION)
rm -fr gmp-$(XEN_TARGET_ARCH)
rm -fr polarssl-$(XEN_TARGET_ARCH)
rm -fr openssl-$(XEN_TARGET_ARCH)
rm -fr tpm_emulator-$(XEN_TARGET_ARCH)
rm -fr lwip-$(XEN_TARGET_ARCH)
rm -fr grub-upstream
@@ -442,10 +570,14 @@ patchclean: crossclean
downloadclean: patchclean
rm -f newlib-$(NEWLIB_VERSION).tar.gz
rm -f zlib-$(ZLIB_VERSION).tar.gz
rm -f gmp-$(GMP_VERSION).tar.gz
rm -f tpm_emulator-$(TPMEMU_VERSION).tar.gz
rm -f pciutils-$(LIBPCI_VERSION).tar.bz2
rm -f grub-$(GRUB_VERSION).tar.gz
rm -f lwip-$(LWIP_VERSION).tar.gz
rm -f ocaml-$(OCAML_VERSION).tar.gz
rm -f polarssl-$(POLARSSL_VERSION)-gpl.tgz
rm -f openssl-$(POLARSSL_VERSION)-gpl.tgz
.PHONY: distclean
distclean: downloadclean
+64
View File
@@ -0,0 +1,64 @@
diff -Naur polarssl-1.1.4/include/polarssl/config.h polarssl-x86_64/include/polarssl/config.h
--- polarssl-1.1.4/include/polarssl/config.h 2011-12-22 05:06:27.000000000 -0500
+++ polarssl-x86_64/include/polarssl/config.h 2012-10-30 17:18:07.567001000 -0400
@@ -164,8 +164,8 @@
* application.
*
* Uncomment this macro to prevent loading of default entropy functions.
-#define POLARSSL_NO_DEFAULT_ENTROPY_SOURCES
*/
+#define POLARSSL_NO_DEFAULT_ENTROPY_SOURCES
/**
* \def POLARSSL_NO_PLATFORM_ENTROPY
@@ -175,8 +175,8 @@
* standards like the /dev/urandom or Windows CryptoAPI.
*
* Uncomment this macro to disable the built-in platform entropy functions.
-#define POLARSSL_NO_PLATFORM_ENTROPY
*/
+#define POLARSSL_NO_PLATFORM_ENTROPY
/**
* \def POLARSSL_PKCS1_V21
@@ -426,8 +426,8 @@
* Requires: POLARSSL_TIMING_C
*
* This module enables the HAVEGE random number generator.
- */
#define POLARSSL_HAVEGE_C
+ */
/**
* \def POLARSSL_MD_C
@@ -490,7 +490,7 @@
*
* This module provides TCP/IP networking routines.
*/
-#define POLARSSL_NET_C
+//#define POLARSSL_NET_C
/**
* \def POLARSSL_PADLOCK_C
@@ -644,8 +644,8 @@
* Caller: library/havege.c
*
* This module is used by the HAVEGE random number generator.
- */
#define POLARSSL_TIMING_C
+ */
/**
* \def POLARSSL_VERSION_C
diff -Naur polarssl-1.1.4/library/bignum.c polarssl-x86_64/library/bignum.c
--- polarssl-1.1.4/library/bignum.c 2012-04-29 16:15:55.000000000 -0400
+++ polarssl-x86_64/library/bignum.c 2012-10-30 17:21:52.135000999 -0400
@@ -1101,7 +1101,7 @@
Z.p[i - t - 1] = ~0;
else
{
-#if defined(POLARSSL_HAVE_LONGLONG)
+#if 0 //defined(POLARSSL_HAVE_LONGLONG)
t_udbl r;
r = (t_udbl) X.p[i] << biL;
+12
View File
@@ -0,0 +1,12 @@
diff -Naur tpm_emulator-x86_64-back/tpm/tpm_emulator_extern.c tpm_emulator-x86_64/tpm/tpm_emulator_extern.c
--- tpm_emulator-x86_64-back/tpm/tpm_emulator_extern.c 2012-04-27 10:55:46.581963398 -0400
+++ tpm_emulator-x86_64/tpm/tpm_emulator_extern.c 2012-04-27 10:56:02.193034152 -0400
@@ -249,7 +249,7 @@
#else /* TPM_NO_EXTERN */
int (*tpm_extern_init)(void) = NULL;
-int (*tpm_extern_release)(void) = NULL;
+void (*tpm_extern_release)(void) = NULL;
void* (*tpm_malloc)(size_t size) = NULL;
void (*tpm_free)(/*const*/ void *ptr) = NULL;
void (*tpm_log)(int priority, const char *fmt, ...) = NULL;
Reference in new issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.