Add macro definitions that make it possible to do cpu/os/both
ifdeffery in a sane way where it's absolutely unavoidable.  When
building the core, eg on amd64-linux, the following preprocessor
symbols are defined:

   VGA_amd64
   VGO_linux
   VGP_amd64_linux

etc on other platforms.

Also, include/basic_types.h now defines VG_WORDSIZE and this is what
should be used for ifdefs that need to know the host word size.

ifdefs based on the C compilers built-ins such as __amd64__ etc
are deprecated and will be done away with.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@3590 a5019735-40e9-0310-863c-91ae7b9d1cf9
diff --git a/Makefile.core-AM_CPPFLAGS.am b/Makefile.core-AM_CPPFLAGS.am
index 736bb22..a0b4578 100644
--- a/Makefile.core-AM_CPPFLAGS.am
+++ b/Makefile.core-AM_CPPFLAGS.am
@@ -8,7 +8,10 @@
 		-I$(top_srcdir)/include/$(VG_ARCH) \
 		-I$(top_srcdir)/include/$(VG_OS) \
 		-I$(top_srcdir)/include/$(VG_PLATFORM) \
-		-I@VEX_DIR@/pub
+		-I@VEX_DIR@/pub \
+		-DVGA_$(VG_ARCH)=1 \
+		-DVGO_$(VG_OS)=1 \
+		-DVGP_$(VG_ARCH)_$(VG_OS)=1
 
 AM_CPPFLAGS = $(add_includes)
 AM_CCASFLAGS = $(add_includes) @ARCH_CORE_AM_CCASFLAGS@ -Wa,-gstabs
diff --git a/coregrind/Makefile.am b/coregrind/Makefile.am
index 07839aa..808a352 100644
--- a/coregrind/Makefile.am
+++ b/coregrind/Makefile.am
@@ -13,8 +13,8 @@
 	m_sigframe m_aspacemgr demangle .
 
 AM_CPPFLAGS += -DVG_LIBDIR="\"$(valdir)"\" -I$(srcdir)/demangle \
-		-DKICKSTART_BASE=@KICKSTART_BASE@ \
-		-DVG_PLATFORM="$(VG_PLATFORM)"
+		-DKICKSTART_BASE=@KICKSTART_BASE@
+
 AM_CFLAGS = $(WERROR) -Wmissing-prototypes -Winline -Wall -Wshadow -O -g @ARCH_CORE_AM_CFLAGS@
 AM_CFLAGS += -fno-omit-frame-pointer
 
diff --git a/include/basic_types.h b/include/basic_types.h
index 728c367..913da8f 100644
--- a/include/basic_types.h
+++ b/include/basic_types.h
@@ -57,6 +57,11 @@
 
 typedef  Word                   OffT;     // 32             64
 
+
+/* This is going to be either 4 or 8. */
+#define VG_WORDSIZE VEX_HOST_WORDSIZE
+
+
 /* ---------------------------------------------------------------------
    non-builtin types
    ------------------------------------------------------------------ */