[google/integration] Support arm-grtev2-linux-*eabi (issue4628043)

Chris Demetriou cgd@google.com
Fri Jun 17 09:24:00 GMT 2011


Diego and/or Ollie,

This patch adds support for the arm-grtev2-linux-gnueabi configuration.
This is like the x86 linux config of similar 'vendor':
 * it plays some spec games to support easier use of static NSS
   configuration, and
 * it adds RUNTIME_ROOT_PREFIX support to the dynamic loader path.

(technically, linux-elf.h didn't need the RUNTIME_ROOT_PREFIX change,
but i would have felt ... odd making it in linux-eabi.h and not
linux-elf.h)

tested by building a arm-linux-gnueabi compiler (i.e., *not* -grtev2-)
to sanity check that I didn't break that config.  And also building
a -grtev2- compiler as well.


thanks,

chris

[gcc/ChangeLog.google-integration]
2011-06-16  Chris Demetriou  <cgd@google.com>

	* config/arm/linux-grtev2.h: New file.
	* config/arm/linux-elf.h (GLIBC_DYNAMIC_LINKER): Prefix with
	RUNTIME_ROOT_PREFIX.
	* config/arm/linux-eabi.h (GLIBC_DYNAMIC_LINKER): Likewise.
	* config/linux-grtev2.h (LIB_SPEC): Update comment about what
	this definition overrides.
	* config.gcc: Use linux-grtev2.h for arm-grtev2-linux-*eabi targets.

Index: config.gcc
===================================================================
--- config.gcc	(revision 175095)
+++ config.gcc	(working copy)
@@ -832,6 +832,12 @@
 		tmake_file="$tmake_file arm/t-linux-androideabi"
 		;;
 	    esac
+	    # Pull in spec changes for GRTEv2 configurations.
+	    case ${target} in
+	    *-grtev2-*)
+		tm_file="${tm_file} linux-grtev2.h arm/linux-grtev2.h"
+		;;
+	    esac
   	    # The BPABI long long divmod functions return a 128-bit value in
 	    # registers r0-r3.  Correctly modeling that requires the use of
 	    # TImode.
Index: config/arm/linux-elf.h
===================================================================
--- config/arm/linux-elf.h	(revision 175095)
+++ config/arm/linux-elf.h	(working copy)
@@ -62,7 +62,7 @@
 
 #define LIBGCC_SPEC "%{msoft-float:-lfloat} %{mfloat-abi=soft*:-lfloat} -lgcc"
 
-#define GLIBC_DYNAMIC_LINKER "/lib/ld-linux.so.2"
+#define GLIBC_DYNAMIC_LINKER RUNTIME_ROOT_PREFIX "/lib/ld-linux.so.2"
 
 #define LINUX_TARGET_LINK_SPEC  "%{h*} \
    %{static:-Bstatic} \
Index: config/arm/linux-eabi.h
===================================================================
--- config/arm/linux-eabi.h	(revision 175095)
+++ config/arm/linux-eabi.h	(working copy)
@@ -62,7 +62,7 @@
 /* Use ld-linux.so.3 so that it will be possible to run "classic"
    GNU/Linux binaries on an EABI system.  */
 #undef  GLIBC_DYNAMIC_LINKER
-#define GLIBC_DYNAMIC_LINKER "/lib/ld-linux.so.3"
+#define GLIBC_DYNAMIC_LINKER RUNTIME_ROOT_PREFIX "/lib/ld-linux.so.3"
 
 /* At this point, bpabi.h will have clobbered LINK_SPEC.  We want to
    use the GNU/Linux version, not the generic BPABI version.  */
Index: config/arm/linux-grtev2.h
===================================================================
--- config/arm/linux-grtev2.h	(revision 0)
+++ config/arm/linux-grtev2.h	(revision 0)
@@ -0,0 +1,27 @@
+/* Definitions for ARM Linux-based GRTE (Google RunTime Environment) version 2.
+   Copyright (C) 2011 Free Software Foundation, Inc.
+   Contributed by Chris Demetriou.
+
+This file is part of GCC.
+
+GCC is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 3, or (at your option)
+any later version.
+
+GCC is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+Under Section 7 of GPL version 3, you are granted additional
+permissions described in the GCC Runtime Library Exception, version
+3.1, as published by the Free Software Foundation.
+
+You should have received a copy of the GNU General Public License and
+a copy of the GCC Runtime Library Exception along with this program;
+see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
+<http://www.gnu.org/licenses/>.  */
+
+#undef SUBSUBTARGET_EXTRA_SPECS
+#define SUBSUBTARGET_EXTRA_SPECS LINUX_GRTE_EXTRA_SPECS
Index: config/linux-grtev2.h
===================================================================
--- config/linux-grtev2.h	(revision 175095)
+++ config/linux-grtev2.h	(working copy)
@@ -23,7 +23,7 @@
 see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
 <http://www.gnu.org/licenses/>.  */
 
-/* Overrides LIB_SPEC from linux.h.  */
+/* Overrides LIB_SPEC from gnu-user.h.  */
 #undef	LIB_SPEC
 #define LIB_SPEC \
   "%{pthread:-lpthread} \

--
This patch is available for review at http://codereview.appspot.com/4628043



More information about the Gcc-patches mailing list