[llvm-commits] [llvm-gcc-4.2] r77008 - in /llvm-gcc-4.2/trunk: build_gcc driverdriver.c gcc/ChangeLog.apple gcc/config.gcc gcc/config/arm/arm.c gcc/config/arm/arm.h gcc/config/arm/gen-darwin-multilib-exceptions.sh gcc/config/arm/t-darwin gcc/testsuite/obj-c++.dg/objc2-protocol-3.mm gcc/version.c

Bob Wilson bob.wilson at apple.com
Fri Jul 24 15:48:56 PDT 2009


Author: bwilson
Date: Fri Jul 24 17:48:55 2009
New Revision: 77008

URL: http://llvm.org/viewvc/llvm-project?rev=77008&view=rev
Log:
Merge Apple's gcc r155802.

Removed:
    llvm-gcc-4.2/trunk/gcc/config/arm/gen-darwin-multilib-exceptions.sh
Modified:
    llvm-gcc-4.2/trunk/build_gcc
    llvm-gcc-4.2/trunk/driverdriver.c
    llvm-gcc-4.2/trunk/gcc/ChangeLog.apple
    llvm-gcc-4.2/trunk/gcc/config.gcc
    llvm-gcc-4.2/trunk/gcc/config/arm/arm.c
    llvm-gcc-4.2/trunk/gcc/config/arm/arm.h
    llvm-gcc-4.2/trunk/gcc/config/arm/t-darwin
    llvm-gcc-4.2/trunk/gcc/testsuite/obj-c++.dg/objc2-protocol-3.mm
    llvm-gcc-4.2/trunk/gcc/version.c

Modified: llvm-gcc-4.2/trunk/build_gcc
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/build_gcc?rev=77008&r1=77007&r2=77008&view=diff

==============================================================================
--- llvm-gcc-4.2/trunk/build_gcc (original)
+++ llvm-gcc-4.2/trunk/build_gcc Fri Jul 24 17:48:55 2009
@@ -130,29 +130,33 @@
 ARM_IPHONE_SDK=iPhoneOS${IPHONEOS_DEPLOYMENT_TARGET}.Internal.sdk
 ARM_EXTRA_SDK=/Developer/SDKs/Extra
 
-# Check if the build system is running Leopard or earlier.  If the Legacy PDK
-# is not installed, the toolchain in / will not support ARM.  Use the iPhone
-# platform directory instead.
-if [ $DARWIN_VERS -le 9 -a ! -d $ARM_EXTRA_SDK ]; then
-  ARM_TOOLROOT=$ARM_PLATFORM
+# If the Phone platform is available, use the ARM tools there, else try /
+if [ -d $ARM_PLATFORM ]; then
+  ARM_TOOLROOT=$ARM_PLATFORM/Developer
 else
   ARM_TOOLROOT=/
 fi
 
-# ARM may require a sysroot option.  Check if libSystem has an ARM slice
-# as an indication of whether the files in / support ARM.
-if lipo -info /usr/lib/libSystem.dylib | grep armv7; then
-  ARM_SYSROOT=/
+# Likewise, In order of preference, look for ARM sysroot bits at:
+#   1. $ARM_SDK_EXTRA
+#   2. Phone SDK ($ARM_PLATFORM/Developers/SDKs/$ARM_IPHONE_SDK)
+#   3. /
+if [ -d $ARM_EXTRA_SDK ]; then
+  ARM_SYSROOT=$ARM_EXTRA_SDK
+  ARM_CONFIGFLAGS="$ARM_CONFIGFLAGS --with-sysroot=\"$ARM_SYSROOT\""
 else
-  if [ -d $ARM_EXTRA_SDK ]; then
-    ARM_SYSROOT=$ARM_EXTRA_SDK
-  else
+  if [ -d $ARM_PLATFORM/Developer/SDKs/$ARM_IPHONE_SDK ]; then
     ARM_SYSROOT=$ARM_PLATFORM/Developer/SDKs/$ARM_IPHONE_SDK
+    ARM_CONFIGFLAGS="$ARM_CONFIGFLAGS --with-sysroot=\"$ARM_SYSROOT\""
+  else
+    ARM_SYSROOT=/
+    ARM_CONFIG_FLAGS=
   fi
-  ARM_CONFIGFLAGS="$ARM_CONFIGFLAGS --with-sysroot=\"$ARM_SYSROOT\""
 fi
 
-# If building an ARM target, check that the required directories exist.
+# If building an ARM target, check that the required directories exist
+# and query the libSystem arm slices to determine which multilibs we should
+# build.
 if echo $TARGETS | grep arm; then
   if [ ! -d $ARM_SYSROOT ]; then
     echo "Error: cannot find ARM SDK to build ARM target"
@@ -162,14 +166,25 @@
     echo "Error: $ARM_TOOLROOT directory is not installed"
     exit 1
   fi
+  if [ "x$ARM_MULTILIB_ARCHS" = "x" ] ; then
+    ARM_MULTILIB_ARCHS=`/usr/bin/lipo -info $ARM_SYSROOT/usr/lib/libSystem.dylib | cut -d':' -f 3 | sed -e 's/^ //' -e 's/ $//'`
+  fi;
+  if [ "x$ARM_MULTILIB_ARCHS" == "x" ] ; then
+    echo "Error: missing ARM slices in $ARM_SYSROOT"
+    exit 1
+  else
+    export ARM_MULTILIB_ARCHS
+  fi
 fi
 # APPLE LOCAL end ARM
 
+# LLVM LOCAL begin
 # If we can find an LLVM-GCC, prefer it.
 export CC=/Developer/usr/bin/llvm-gcc
 if [ ! -x $CC ] ; then unset CC ; fi
 export CXX=/Developer/usr/bin/llvm-g++
 if [ ! -x $CXX ] ; then unset CXX ; fi
+# LLVM LOCAL end
 
 ########################################
 # Run the build.
@@ -332,9 +347,8 @@
    cd $DIR/obj-$BUILD-$t || exit 1
    if [ \! -f Makefile ]; then
     # APPLE LOCAL begin ARM ARM_CONFIGFLAGS
-    # APPLE LOCAL don't use --enable-werror for ARM builds
-    $SRC_DIR/configure `echo $CONFIGFLAGS | sed -e "s/--enable-werror//"`  \
-     `if [ $t = 'arm' ] ; then echo $ARM_CONFIGFLAGS ; else echo $NON_ARM_CONFIGFLAGS ; fi` \
+    $SRC_DIR/configure $CONFIGFLAGS --enable-werror-always \
+      `if [ $t = 'arm' ] ; then echo $ARM_CONFIGFLAGS ; else echo $NON_ARM_CONFIGFLAGS ; fi` \
       --program-prefix=$t-apple-darwin$DARWIN_VERS- \
       --host=$BUILD-apple-darwin$DARWIN_VERS --target=$t-apple-darwin$DARWIN_VERS || exit 1
     # APPLE LOCAL end ARM ARM_CONFIGFLAGS
@@ -379,13 +393,20 @@
 
       if [ \! -f Makefile ]; then
 	# APPLE LOCAL begin ARM ARM_CONFIGFLAGS
-        # APPLE LOCAL don't use --enable-werror for ARM builds
-        $SRC_DIR/configure `echo $CONFIGFLAGS | sed -e "s/--enable-werror//"`  \
+        $SRC_DIR/configure $CONFIGFLAGS \
 	  `if [ $t = 'arm' ] && [ $h != 'arm' ] ; then echo $ARM_CONFIGFLAGS ; else echo $NON_ARM_CONFIGFLAGS ; fi` \
           --program-prefix=$pp \
           --host=$h-apple-darwin$DARWIN_VERS --target=$t-apple-darwin$DARWIN_VERS || exit 1
 	# APPLE LOCAL end ARM ARM_CONFIGFLAGS
       fi
+
+      # For ARM, we need to make sure it picks up the ARM_TOOLROOT versions
+      # of the linker and cctools.
+      if [ $t = 'arm' ] ; then
+        ORIG_COMPILER_PATH=$COMPILER_PATH
+        export COMPILER_PATH=$ARM_TOOLROOT/usr/bin:$COMPILER_PATH
+      fi
+
       if [ $h = $t ] ; then
 	  make $MAKEFLAGS all CFLAGS="$CFLAGS" CXXFLAGS="$CFLAGS" || exit 1
 	  make $MAKEFLAGS DESTDIR=$DIR/dst-$h-$t install-gcc install-target \
@@ -395,6 +416,11 @@
 	  make $MAKEFLAGS DESTDIR=$DIR/dst-$h-$t install-gcc \
 	      CFLAGS="$CFLAGS" CXXFLAGS="$CFLAGS" || exit 1
       fi
+
+      if [ $t = 'arm' ] ; then
+        export COMPILER_PATH=$ORIG_COMPILER_PATH
+        unset ORIG_COMPILER_PATH
+      fi
     done
   fi
 done

Modified: llvm-gcc-4.2/trunk/driverdriver.c
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/driverdriver.c?rev=77008&r1=77007&r2=77008&view=diff

==============================================================================
--- llvm-gcc-4.2/trunk/driverdriver.c (original)
+++ llvm-gcc-4.2/trunk/driverdriver.c Fri Jul 24 17:48:55 2009
@@ -783,7 +783,7 @@
   else if (!strcmp (arches[index], "armv6"))
     current_argv[arch_index] = "-march=armv6k";
   else if (!strcmp (arches[index], "armv7"))
-    current_argv[arch_index] = "-march=armv7-a";
+    current_argv[arch_index] = "-march=armv7a";
   else
     count = 0;
 

Modified: llvm-gcc-4.2/trunk/gcc/ChangeLog.apple
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/ChangeLog.apple?rev=77008&r1=77007&r2=77008&view=diff

==============================================================================
--- llvm-gcc-4.2/trunk/gcc/ChangeLog.apple (original)
+++ llvm-gcc-4.2/trunk/gcc/ChangeLog.apple Fri Jul 24 17:48:55 2009
@@ -1,3 +1,13 @@
+2009-07-24  Bob Wilson  <bob.wilson at apple.com>
+
+	Radar 7088565
+	* config/arm/t-darwin (MULTILIB_OPTIONS): Separate options with
+	slashes instead of spaces so that they are mutually exclusive.
+	(MULTILIB_EXCEPTIONS): Stop using gen-darwin-multilib-exceptions.sh.
+	(MULTILIB_MATCHES): Recognize equivalent -march and -mcpu options.
+	* config/arm/gen-darwin-multilib-exceptions.sh: Delete.
+	* config.gcc: Remove duplicate for arm/t-darwin.
+	
 2009-07-09  Jim Grosbach <grosbach at apple.com>
 
 	Radar 6999417

Modified: llvm-gcc-4.2/trunk/gcc/config.gcc
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/config.gcc?rev=77008&r1=77007&r2=77008&view=diff

==============================================================================
--- llvm-gcc-4.2/trunk/gcc/config.gcc (original)
+++ llvm-gcc-4.2/trunk/gcc/config.gcc Fri Jul 24 17:48:55 2009
@@ -821,7 +821,7 @@
 arm*-*-darwin*)
 	extra_options="${extra_options} arm/darwin.opt"
         tm_file="${tm_file} arm/darwin.h"
-        tmake_file="${tmake_file} arm/t-darwin arm/t-slibgcc-iphoneos"
+        tmake_file="${tmake_file} arm/t-slibgcc-iphoneos"
 	extra_headers="arm_neon.h"
         ;;
 # APPLE LOCAL end ARM darwin target

Modified: llvm-gcc-4.2/trunk/gcc/config/arm/arm.c
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/config/arm/arm.c?rev=77008&r1=77007&r2=77008&view=diff

==============================================================================
--- llvm-gcc-4.2/trunk/gcc/config/arm/arm.c (original)
+++ llvm-gcc-4.2/trunk/gcc/config/arm/arm.c Fri Jul 24 17:48:55 2009
@@ -9390,7 +9390,8 @@
 
   /* APPLE LOCAL end v7 support. Merge from mainline */
   if (GET_CODE (body) == UNSPEC_VOLATILE
-      && (int) XEXP (body, 1) == VUNSPEC_POOL_STRING)
+      /* APPLE LOCAL 7083296 Build without warnings.  */
+      && XINT (body, 1) == VUNSPEC_POOL_STRING)
     {
       int len = TREE_STRING_LENGTH (SYMBOL_REF_DECL 
 		    (XVECEXP (body, 0, 0)));
@@ -9420,7 +9421,8 @@
       /* APPLE LOCAL 6279481 */
       && !TARGET_32BIT
       && GET_CODE (body) == UNSPEC_VOLATILE
-      && (int) XEXP (body, 1) == VUNSPEC_EPILOGUE)
+      /* APPLE LOCAL 7083296 Build without warnings.  */
+      && XINT (body, 1) == VUNSPEC_EPILOGUE)
     {
       *length = handle_thumb_unexpanded_epilogue (false);
     }
@@ -16596,6 +16598,17 @@
   return VALID_NEON_DREG_MODE (mode) || VALID_NEON_QREG_MODE (mode);
 }
 
+/* APPLE LOCAL begin 7083296 Build without warnings.  */
+static tree
+make_neon_float_type (void)
+{
+  tree neon_float_type_node = make_node (REAL_TYPE);
+  TYPE_PRECISION (neon_float_type_node) = FLOAT_TYPE_SIZE;
+  layout_type (neon_float_type_node);
+  return neon_float_type_node;
+}
+/* APPLE LOCAL end 7083296 Build without warnings.  */
+
 static void
 arm_init_neon_builtins (void)
 {
@@ -16663,29 +16676,10 @@
   tree neon_polyHI_type_node = make_signed_type (GET_MODE_PRECISION (HImode));
   tree neon_intSI_type_node = make_signed_type (GET_MODE_PRECISION (SImode));
   tree neon_intDI_type_node = make_signed_type (GET_MODE_PRECISION (DImode));
-  tree neon_float_type_node = make_node (REAL_TYPE);
-  TYPE_PRECISION (neon_float_type_node) = FLOAT_TYPE_SIZE;
-  layout_type (neon_float_type_node);
+  /* APPLE LOCAL begin 7083296 Build without warnings.  */
+  tree neon_float_type_node = make_neon_float_type ();
   
-  /* Define typedefs which exactly correspond to the modes we are basing vector
-     types on.  If you change these names you'll need to change
-     the table used by arm_mangle_vector_type too.  */
-  (*lang_hooks.types.register_builtin_type) (neon_intQI_type_node,
-					     "__builtin_neon_qi");
-  (*lang_hooks.types.register_builtin_type) (neon_intHI_type_node,
-					     "__builtin_neon_hi");
-  (*lang_hooks.types.register_builtin_type) (neon_intSI_type_node,
-					     "__builtin_neon_si");
-  (*lang_hooks.types.register_builtin_type) (neon_float_type_node,
-					     "__builtin_neon_sf");
-  (*lang_hooks.types.register_builtin_type) (neon_intDI_type_node,
-					     "__builtin_neon_di");
-
-  (*lang_hooks.types.register_builtin_type) (neon_polyQI_type_node,
-					     "__builtin_neon_poly8");
-  (*lang_hooks.types.register_builtin_type) (neon_polyHI_type_node,
-					     "__builtin_neon_poly16");
-
+  /* APPLE LOCAL end 7083296 Build without warnings.  */
   tree intQI_pointer_node = build_pointer_type (neon_intQI_type_node);
   tree intHI_pointer_node = build_pointer_type (neon_intHI_type_node);
   tree intSI_pointer_node = build_pointer_type (neon_intSI_type_node);
@@ -16738,32 +16732,12 @@
   tree intUSI_type_node = make_unsigned_type (GET_MODE_PRECISION (SImode));
   tree intUDI_type_node = make_unsigned_type (GET_MODE_PRECISION (DImode));
 
-  (*lang_hooks.types.register_builtin_type) (intUQI_type_node,
-					     "__builtin_neon_uqi");
-  (*lang_hooks.types.register_builtin_type) (intUHI_type_node,
-					     "__builtin_neon_uhi");
-  (*lang_hooks.types.register_builtin_type) (intUSI_type_node,
-					     "__builtin_neon_usi");
-  (*lang_hooks.types.register_builtin_type) (intUDI_type_node,
-					     "__builtin_neon_udi");
-
   /* Opaque integer types for structures of vectors.  */
   tree intEI_type_node = make_signed_type (GET_MODE_PRECISION (EImode));
   tree intOI_type_node = make_signed_type (GET_MODE_PRECISION (OImode));
   tree intCI_type_node = make_signed_type (GET_MODE_PRECISION (CImode));
   tree intXI_type_node = make_signed_type (GET_MODE_PRECISION (XImode));
 
-  (*lang_hooks.types.register_builtin_type) (intTI_type_node,
-					     "__builtin_neon_ti");
-  (*lang_hooks.types.register_builtin_type) (intEI_type_node,
-					     "__builtin_neon_ei");
-  (*lang_hooks.types.register_builtin_type) (intOI_type_node,
-					     "__builtin_neon_oi");
-  (*lang_hooks.types.register_builtin_type) (intCI_type_node,
-					     "__builtin_neon_ci");
-  (*lang_hooks.types.register_builtin_type) (intXI_type_node,
-					     "__builtin_neon_xi");
-
   /* Pointers to vector types.  */
   tree V8QI_pointer_node = build_pointer_type (V8QI_type_node);
   tree V4HI_pointer_node = build_pointer_type (V4HI_type_node);
@@ -17464,6 +17438,47 @@
   tree reinterp_ftype_qreg[5][5];
   tree dreg_types[5], qreg_types[5];
 
+  /* APPLE LOCAL begin 7083296 Build without warnings.  */
+  /* Define typedefs which exactly correspond to the modes we are basing vector
+     types on.  If you change these names you'll need to change
+     the table used by arm_mangle_vector_type too.  */
+  (*lang_hooks.types.register_builtin_type) (neon_intQI_type_node,
+					     "__builtin_neon_qi");
+  (*lang_hooks.types.register_builtin_type) (neon_intHI_type_node,
+					     "__builtin_neon_hi");
+  (*lang_hooks.types.register_builtin_type) (neon_intSI_type_node,
+					     "__builtin_neon_si");
+  (*lang_hooks.types.register_builtin_type) (neon_float_type_node,
+					     "__builtin_neon_sf");
+  (*lang_hooks.types.register_builtin_type) (neon_intDI_type_node,
+					     "__builtin_neon_di");
+
+  (*lang_hooks.types.register_builtin_type) (neon_polyQI_type_node,
+					     "__builtin_neon_poly8");
+  (*lang_hooks.types.register_builtin_type) (neon_polyHI_type_node,
+					     "__builtin_neon_poly16");
+
+  (*lang_hooks.types.register_builtin_type) (intUQI_type_node,
+					     "__builtin_neon_uqi");
+  (*lang_hooks.types.register_builtin_type) (intUHI_type_node,
+					     "__builtin_neon_uhi");
+  (*lang_hooks.types.register_builtin_type) (intUSI_type_node,
+					     "__builtin_neon_usi");
+  (*lang_hooks.types.register_builtin_type) (intUDI_type_node,
+					     "__builtin_neon_udi");
+
+  (*lang_hooks.types.register_builtin_type) (intTI_type_node,
+					     "__builtin_neon_ti");
+  (*lang_hooks.types.register_builtin_type) (intEI_type_node,
+					     "__builtin_neon_ei");
+  (*lang_hooks.types.register_builtin_type) (intOI_type_node,
+					     "__builtin_neon_oi");
+  (*lang_hooks.types.register_builtin_type) (intCI_type_node,
+					     "__builtin_neon_ci");
+  (*lang_hooks.types.register_builtin_type) (intXI_type_node,
+					     "__builtin_neon_xi");
+  /* APPLE LOCAL end 7083296 Build without warnings.  */
+
   dreg_types[0] = V8QI_type_node;
   dreg_types[1] = V4HI_type_node;
   dreg_types[2] = V2SI_type_node;
@@ -19189,6 +19204,9 @@
 /* LLVM LOCAL begin
    Added neon_code argument below and made the function
    non-static.  This is needed when translating Neon builtins to LLVM.  */
+extern enum insn_code
+locate_neon_builtin_icode (int, neon_itype *, enum neon_builtins *);
+
 enum insn_code
 locate_neon_builtin_icode (int fcode, neon_itype *itype,
                            enum neon_builtins *neon_code)
@@ -22573,6 +22591,18 @@
   return false;
 }
 
+/* APPLE LOCAL begin 7083296 Build without warnings.  */
+/* Define a separate function to avoid build warnings about missing a
+   prototype for arm_vector_mode_supported_p.  The MODE argument is an int
+   because arm.h is used in contexts where "enum machine_mode" is not
+   defined.  The return type is "int" instead of "bool" for the same reason. */
+int
+valid_iwmmxt_reg_mode (int mode)
+{
+  return (arm_vector_mode_supported_p (mode) || mode == DImode);
+}
+/* APPLE LOCAL end 7083296 Build without warnings.  */
+
 /* Implement TARGET_SHIFT_TRUNCATION_MASK.  SImode shifts use normal
    ARM insns and therefore guarantee that the shift count is modulo 256.
    DImode shifts (those implemented by lib1funcs.asm or by optabs.c)
@@ -23235,9 +23265,11 @@
       && GET_CODE (insn) == INSN
       && GET_CODE (PATTERN (insn)) == UNSPEC_VOLATILE)
     {
-      if ((int) XEXP (PATTERN (insn), 1) == VUNSPEC_ALIGN)
+      /* APPLE LOCAL 7083296 Build without warnings.  */
+      if (XINT (PATTERN (insn), 1) == VUNSPEC_ALIGN)
 	return 2;
-      if ((int) XEXP (PATTERN (insn), 1) == VUNSPEC_ALIGN8)
+      /* APPLE LOCAL 7083296 Build without warnings.  */
+      if (XINT (PATTERN (insn), 1) == VUNSPEC_ALIGN8)
 	return 3;
     }
   return align_labels_log;

Modified: llvm-gcc-4.2/trunk/gcc/config/arm/arm.h
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/config/arm/arm.h?rev=77008&r1=77007&r2=77008&view=diff

==============================================================================
--- llvm-gcc-4.2/trunk/gcc/config/arm/arm.h (original)
+++ llvm-gcc-4.2/trunk/gcc/config/arm/arm.h Fri Jul 24 17:48:55 2009
@@ -1127,8 +1127,14 @@
 #define MODES_TIEABLE_P(MODE1, MODE2)  \
   (GET_MODE_CLASS (MODE1) == GET_MODE_CLASS (MODE2))
 
+/* APPLE LOCAL begin 7083296 Build without warnings.  */
+/* The VALID_IWMMXT_REG_MODE macro is used in vec-common.md as a predicate so
+   that it is referenced from the generated insn-opinit.c file, which does
+   not include arm-protos.h.  Define a separate function to avoid warnings.  */
 #define VALID_IWMMXT_REG_MODE(MODE) \
- (arm_vector_mode_supported_p (MODE) || (MODE) == DImode)
+  (valid_iwmmxt_reg_mode (MODE))
+extern int valid_iwmmxt_reg_mode (int);
+/* APPLE LOCAL end 7083296 Build without warnings.  */
 
 /* APPLE LOCAL begin v7 support. Merge from Codesourcery */
 /* Modes valid for Neon D registers.  */

Removed: llvm-gcc-4.2/trunk/gcc/config/arm/gen-darwin-multilib-exceptions.sh
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/config/arm/gen-darwin-multilib-exceptions.sh?rev=77007&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/gcc/config/arm/gen-darwin-multilib-exceptions.sh (original)
+++ llvm-gcc-4.2/trunk/gcc/config/arm/gen-darwin-multilib-exceptions.sh (removed)
@@ -1,21 +0,0 @@
-#!/bin/sh
-# APPLE LOCAL file 6611402 configurable multilib architectures
-# This recursive function generates all of the pairwise combinations from a
-# list of multilib options. The result is suitable for a multilib
-# exceptions list.
-EXCEPTIONS=
-function gen_exceptions()
-{
-  if [ $# == 1 ] ; then
-    return
-  fi
-  local opt=$1
-  shift 1
-  for opt2 in $@ ; do
-    EXCEPTIONS+="*$opt*/*$opt2* "
-  done
-  gen_exceptions $@
-}
-if [ $# == 0 ] ; then exit ; fi
-gen_exceptions $@
-echo $EXCEPTIONS

Modified: llvm-gcc-4.2/trunk/gcc/config/arm/t-darwin
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/config/arm/t-darwin?rev=77008&r1=77007&r2=77008&view=diff

==============================================================================
--- llvm-gcc-4.2/trunk/gcc/config/arm/t-darwin (original)
+++ llvm-gcc-4.2/trunk/gcc/config/arm/t-darwin Fri Jul 24 17:48:55 2009
@@ -29,14 +29,46 @@
 ARM_MULTILIB_ARCHS:=armv5 armv6 armv7
 endif
 
-MULTILIB_OPTIONS:=$(shell echo $(ARM_MULTILIB_ARCHS) | \
+MULTILIB_OPTIONS:=$(shell echo $(strip $(ARM_MULTILIB_ARCHS)) | \
   sed -e s/armv5/march=armv5tej/ \
       -e s/armv6/march=armv6k/ \
-      -e s/armv7/march=armv7a/)
+      -e s/armv7/march=armv7a/ \
+      -e 's| |/|g')
 MULTILIB_DIRNAMES:=$(shell echo $(ARM_MULTILIB_ARCHS) | sed -e s/arm//g)
-MULTILIB_EXCEPTIONS:=$(shell $(srcdir)/config/arm/gen-darwin-multilib-exceptions.sh $(ARM_MULTILIB_ARCHS))
-# APPLE LOCAL end 6611402 configurable multilib architectures
+MULTILIB_EXCEPTIONS =
+MULTILIB_MATCHES =
+
+ifneq (,$(findstring armv5,$(ARM_MULTILIB_ARCHS)))
+MULTILIB_MATCHES += \
+  march?armv5tej=march?armv5te \
+  march?armv5tej=mcpu?arm9e \
+  march?armv5tej=mcpu?arm946e-s \
+  march?armv5tej=mcpu?arm966e-s \
+  march?armv5tej=mcpu?arm968e-s \
+  march?armv5tej=mcpu?arm10e \
+  march?armv5tej=mcpu?arm1020e \
+  march?armv5tej=mcpu?arm1022e \
+  march?armv5tej=mcpu?xscale \
+  march?armv5tej=mcpu?iwmmxt \
+  march?armv5tej=mcpu?arm926ej-s \
+  march?armv5tej=mcpu?arm1026ej-s
+endif
+
+ifneq (,$(findstring armv6,$(ARM_MULTILIB_ARCHS)))
+MULTILIB_MATCHES += \
+  march?armv6k=march?armv6zk \
+  march?armv6k=mcpu?arm1176jz-s \
+  march?armv6k=mcpu?arm1176jzf-s \
+  march?armv6k=mcpu?mpcorenovfp \
+  march?armv6k=mcpu?mpcore
+endif
+
+ifneq (,$(findstring armv7,$(ARM_MULTILIB_ARCHS)))
+MULTILIB_MATCHES += \
+  march?armv7a=march?armv7-a \
+  march?armv7a=mcpu?cortex-a8
+endif
 
-MULTILIB_MATCHES     =
+# APPLE LOCAL end 6611402 configurable multilib architectures
 TARGET_LIBGCC2_CFLAGS = -fno-inline
 

Modified: llvm-gcc-4.2/trunk/gcc/testsuite/obj-c++.dg/objc2-protocol-3.mm
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/testsuite/obj-c%2B%2B.dg/objc2-protocol-3.mm?rev=77008&r1=77007&r2=77008&view=diff

==============================================================================
--- llvm-gcc-4.2/trunk/gcc/testsuite/obj-c++.dg/objc2-protocol-3.mm (original)
+++ llvm-gcc-4.2/trunk/gcc/testsuite/obj-c++.dg/objc2-protocol-3.mm Fri Jul 24 17:48:55 2009
@@ -18,9 +18,5 @@
 {
 	return (long) @protocol(PROTO); + (long) @protocol(PROTO1);
 }
-/* { dg-final { if [istarget i?86-*-darwin* ] { scan-assembler "L_ZL23_OBJC_PROTOCOL_\\\$_PROTO1:" } } } */
-/* { dg-final { if [istarget powerpc*-*-darwin* ] { scan-assembler "L_ZL23_OBJC_PROTOCOL_\\\$_PROTO1:" } } } */
-/* { dg-final { if [istarget arm*-*-darwin* ] { scan-assembler "l_OBJC_PROTOCOL_\\\$_PROTO1:" } } } */
-/* { dg-final { if [istarget i?86-*-darwin* ] { scan-assembler "L_ZL23_OBJC_PROTOCOL_\\\$_PROTO2:" } } } */
-/* { dg-final { if [istarget powerpc*-*-darwin* ] { scan-assembler "L_ZL23_OBJC_PROTOCOL_\\\$_PROTO2:" } } } */
-/* { dg-final { if [istarget arm*-*-darwin* ] { scan-assembler "l_OBJC_PROTOCOL_\\\$_PROTO2:" } } } */
+/* { dg-final { scan-assembler "l_OBJC_PROTOCOL_\\\$_PROTO1:" } } */
+/* { dg-final { scan-assembler "l_OBJC_PROTOCOL_\\\$_PROTO2:" } } */

Modified: llvm-gcc-4.2/trunk/gcc/version.c
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/version.c?rev=77008&r1=77007&r2=77008&view=diff

==============================================================================
--- llvm-gcc-4.2/trunk/gcc/version.c (original)
+++ llvm-gcc-4.2/trunk/gcc/version.c Fri Jul 24 17:48:55 2009
@@ -11,12 +11,12 @@
 /* APPLE LOCAL begin Apple version */
 #ifdef ENABLE_LLVM
 #ifdef LLVM_VERSION_INFO
-#define VERSUFFIX " (Based on Apple Inc. build 5647) (LLVM build " LLVM_VERSION_INFO ")"
+#define VERSUFFIX " (Based on Apple Inc. build 5648) (LLVM build " LLVM_VERSION_INFO ")"
 #else
-#define VERSUFFIX " (Based on Apple Inc. build 5647) (LLVM build)"
+#define VERSUFFIX " (Based on Apple Inc. build 5648) (LLVM build)"
 #endif
 #else
-#define VERSUFFIX " (Based on Apple Inc. build 5647)"
+#define VERSUFFIX " (Based on Apple Inc. build 5648)"
 #endif
 /* APPLE LOCAL end Apple version */
 





More information about the llvm-commits mailing list