|
From: <sv...@va...> - 2008-05-14 14:56:49
|
Author: bart
Date: 2008-05-14 15:56:37 +0100 (Wed, 14 May 2008)
New Revision: 8088
Log:
Enabled cross-compilation.
Added:
branches/CROSS_COMPILATION/vex-cross-compilation.patch
Modified:
branches/CROSS_COMPILATION/Makefile.tool.am
branches/CROSS_COMPILATION/configure.in
branches/CROSS_COMPILATION/coregrind/Makefile.am
Modified: branches/CROSS_COMPILATION/Makefile.tool.am
===================================================================
--- branches/CROSS_COMPILATION/Makefile.tool.am 2008-05-14 14:16:05 UTC (rev 8087)
+++ branches/CROSS_COMPILATION/Makefile.tool.am 2008-05-14 14:56:37 UTC (rev 8088)
@@ -51,37 +51,37 @@
##.PHONY: @VEX_DIR@/libvex.a
@VEX_DIR@/libvex_x86_linux.a: @VEX_DIR@/priv/main/vex_svnversion.h
- $(MAKE) -C @VEX_DIR@ CC="$(CC)" AR="$(AR)" \
+ $(MAKE) -C @VEX_DIR@ CC="$(CC)" BUILD_CC="$(BUILD_CC)" AR="$(AR)" \
libvex_x86_linux.a \
EXTRA_CFLAGS="$(AM_CFLAGS_X86_LINUX) @FLAG_WDECL_AFTER_STMT@ \
@FLAG_FNO_STACK_PROTECTOR@"
@VEX_DIR@/libvex_amd64_linux.a: @VEX_DIR@/priv/main/vex_svnversion.h
- $(MAKE) -C @VEX_DIR@ CC="$(CC)" AR="$(AR)" \
+ $(MAKE) -C @VEX_DIR@ CC="$(CC)" BUILD_CC="$(BUILD_CC)" AR="$(AR)" \
libvex_amd64_linux.a \
EXTRA_CFLAGS="$(AM_CFLAGS_AMD64_LINUX) @FLAG_WDECL_AFTER_STMT@ \
@FLAG_FNO_STACK_PROTECTOR@"
@VEX_DIR@/libvex_ppc32_linux.a: @VEX_DIR@/priv/main/vex_svnversion.h
- $(MAKE) -C @VEX_DIR@ CC="$(CC)" AR="$(AR)" \
+ $(MAKE) -C @VEX_DIR@ CC="$(CC)" BUILD_CC="$(BUILD_CC)" AR="$(AR)" \
libvex_ppc32_linux.a \
EXTRA_CFLAGS="$(AM_CFLAGS_PPC32_LINUX) @FLAG_WDECL_AFTER_STMT@ \
@FLAG_FNO_STACK_PROTECTOR@"
@VEX_DIR@/libvex_ppc64_linux.a: @VEX_DIR@/priv/main/vex_svnversion.h
- $(MAKE) -C @VEX_DIR@ CC="$(CC)" AR="$(AR)" \
+ $(MAKE) -C @VEX_DIR@ CC="$(CC)" BUILD_CC="$(BUILD_CC)" AR="$(AR)" \
libvex_ppc64_linux.a \
EXTRA_CFLAGS="$(AM_CFLAGS_PPC64_LINUX) @FLAG_WDECL_AFTER_STMT@ \
@FLAG_FNO_STACK_PROTECTOR@"
@VEX_DIR@/libvex_ppc32_aix5.a: @VEX_DIR@/priv/main/vex_svnversion.h
- $(MAKE) -C @VEX_DIR@ CC="$(CC)" AR="$(AR) -X32" \
+ $(MAKE) -C @VEX_DIR@ CC="$(CC)" BUILD_CC="$(BUILD_CC)" AR="$(AR) -X32" \
libvex_ppc32_aix5.a \
EXTRA_CFLAGS="$(AM_CFLAGS_PPC32_AIX5) @FLAG_WDECL_AFTER_STMT@ \
@FLAG_FNO_STACK_PROTECTOR@"
@VEX_DIR@/libvex_ppc64_aix5.a: @VEX_DIR@/priv/main/vex_svnversion.h
- $(MAKE) -C @VEX_DIR@ CC="$(CC)" AR="$(AR) -X64" \
+ $(MAKE) -C @VEX_DIR@ CC="$(CC)" BUILD_CC="$(BUILD_CC)" AR="$(AR) -X64" \
libvex_ppc64_aix5.a \
EXTRA_CFLAGS="$(AM_CFLAGS_PPC64_AIX5) @FLAG_WDECL_AFTER_STMT@ \
@FLAG_FNO_STACK_PROTECTOR@"
Modified: branches/CROSS_COMPILATION/configure.in
===================================================================
--- branches/CROSS_COMPILATION/configure.in 2008-05-14 14:16:05 UTC (rev 8087)
+++ branches/CROSS_COMPILATION/configure.in 2008-05-14 14:56:37 UTC (rev 8088)
@@ -60,6 +60,20 @@
AC_PROG_CXX
AC_PROG_RANLIB
+# If no AR variable was specified, look up the name of the archiver. Otherwise
+# do not touch the AR variable.
+if test "x$AR" = "x"; then
+ AC_PATH_PROGS([AR], ["${LD%ld}ar" "ar"], [ar])
+fi
+AC_ARG_VAR([AR],[Archiver command])
+
+# If no BUILD_CC variable was specified, look up the name of the native C
+# compiler. Otherwise do not touch the BUILD_CC variable.
+if test "x$BUILD_CC" = "x"; then
+ AC_PATH_PROGS([BUILD_CC], [gcc cc xlc])
+fi
+AC_ARG_VAR([BUILD_CC],[Native compiler])
+
# Check for the compiler support
if test "${GCC}" != "yes" ; then
AC_MSG_ERROR([Valgrind relies on GCC to be compiled])
@@ -1145,8 +1159,8 @@
AC_CACHE_CHECK([for TLS support], vg_cv_tls,
[AC_ARG_ENABLE(tls, [ --enable-tls platform supports TLS],
[vg_cv_tls=$enableval],
- [AC_RUN_IFELSE([AC_LANG_PROGRAM([[static __thread int foo;]],
- [[return foo;]])],
+ [AC_LINK_IFELSE([AC_LANG_PROGRAM([[static __thread int foo;]],
+ [[return foo;]])],
[vg_cv_tls=yes],
[vg_cv_tls=no])])])
Modified: branches/CROSS_COMPILATION/coregrind/Makefile.am
===================================================================
--- branches/CROSS_COMPILATION/coregrind/Makefile.am 2008-05-14 14:16:05 UTC (rev 8087)
+++ branches/CROSS_COMPILATION/coregrind/Makefile.am 2008-05-14 14:56:37 UTC (rev 8088)
@@ -356,7 +356,7 @@
m_syswrap/syswrap-main.c: libvex_guest_offsets.h
libvex_guest_offsets.h:
- $(MAKE) -C @VEX_DIR@ CC="$(CC)" AR="$(AR)" pub/libvex_guest_offsets.h
+ $(MAKE) -C @VEX_DIR@ CC="$(CC)" BUILD_CC="$(BUILD_CC)" AR="$(AR)" pub/libvex_guest_offsets.h
VGPRELOAD_CORE_SOURCES_COMMON = vg_preloaded.c
@@ -391,7 +391,7 @@
vgpreload_core_ppc64_aix5_so_LDFLAGS = $(PRELOAD_LDFLAGS_PPC64_AIX5)
clean-local:
- $(MAKE) -C @VEX_DIR@ CC="$(CC)" AR="$(AR)" clean
+ $(MAKE) -C @VEX_DIR@ CC="$(CC)" BUILD_CC="$(BUILD_CC)" AR="$(AR)" clean
MANUAL_DEPS = $(noinst_HEADERS) $(include_HEADERS)
Added: branches/CROSS_COMPILATION/vex-cross-compilation.patch
===================================================================
--- branches/CROSS_COMPILATION/vex-cross-compilation.patch (rev 0)
+++ branches/CROSS_COMPILATION/vex-cross-compilation.patch 2008-05-14 14:56:37 UTC (rev 8088)
@@ -0,0 +1,40 @@
+Index: VEX/auxprogs/genoffsets.c
+===================================================================
+--- VEX/auxprogs/genoffsets.c (revision 1849)
++++ VEX/auxprogs/genoffsets.c (working copy)
+@@ -56,6 +56,12 @@
+
+ Int main ( void )
+ {
++ assert(sizeof(UChar) == 1);
++ assert(sizeof(UShort) == 2);
++ assert(sizeof(UInt) == 4);
++ assert(sizeof(ULong) == 8);
++ assert(sizeof(U128) == 16);
++
+ // x86
+ printf("#define OFFSET_x86_EAX %3d\n",
+ offsetof(VexGuestX86State,guest_EAX));
+Index: VEX/Makefile
+===================================================================
+--- VEX/Makefile (revision 1849)
++++ VEX/Makefile (working copy)
+@@ -67,6 +67,9 @@
+ ifndef CC
+ CC = gcc
+ endif
++ifndef BUILD_CC
++ CC = gcc
++endif
+ ifndef AR
+ AR = ar
+ endif
+@@ -179,7 +182,7 @@
+ @echo
+
+ pub/libvex_guest_offsets.h:
+- $(CC) -Wall -g -o auxprogs/genoffsets auxprogs/genoffsets.c
++ $(BUILD_CC) -Wall -g -o auxprogs/genoffsets auxprogs/genoffsets.c
+ ./auxprogs/genoffsets > pub/libvex_guest_offsets.h
+
+
|