diff mbox

[libgcc,fuchsia]

Message ID 89f6dd06-0fa9-6f9f-683e-89dcdbc48fd0@google.com
State New
Headers show

Commit Message

Li, Pan2 via Gcc-patches Jan. 17, 2017, 6:40 p.m. UTC
The attached patch adds fuchsia support to libgcc.

OK for trunk?

Thanks -

Josh

2017-01-17  Joshua Conner  <joshconner@google.com>

	* config/arm/unwind-arm.h (_Unwind_decode_typeinfo_ptr): Use
	pc-relative indirect handling for fuchsia.
	* config/t-slibgcc-fuchsia: New file.
	* config.host (*-*-fuchsia*, aarch64*-*-fuchsia*, arm*-*-fuchsia*,
	x86_64-*-fuchsia*): Add definitions.

Comments

Li, Pan2 via Gcc-patches Feb. 2, 2017, 7:22 p.m. UTC | #1
Ping?


On 1/17/17 10:40 AM, Josh Conner wrote:
> The attached patch adds fuchsia support to libgcc.
>
> OK for trunk?
>
> Thanks -
>
> Josh
>
> 2017-01-17  Joshua Conner  <joshconner@google.com>
>
>     * config/arm/unwind-arm.h (_Unwind_decode_typeinfo_ptr): Use
>     pc-relative indirect handling for fuchsia.
>     * config/t-slibgcc-fuchsia: New file.
>     * config.host (*-*-fuchsia*, aarch64*-*-fuchsia*, arm*-*-fuchsia*,
>     x86_64-*-fuchsia*): Add definitions.
>
Li, Pan2 via Gcc-patches Feb. 21, 2017, 5:41 p.m. UTC | #2
Ping^2?


On 2/2/17 11:22 AM, Josh Conner wrote:
> Ping?
>
>
> On 1/17/17 10:40 AM, Josh Conner wrote:
>> The attached patch adds fuchsia support to libgcc.
>>
>> OK for trunk?
>>
>> Thanks -
>>
>> Josh
>>
>> 2017-01-17  Joshua Conner  <joshconner@google.com>
>>
>>     * config/arm/unwind-arm.h (_Unwind_decode_typeinfo_ptr): Use
>>     pc-relative indirect handling for fuchsia.
>>     * config/t-slibgcc-fuchsia: New file.
>>     * config.host (*-*-fuchsia*, aarch64*-*-fuchsia*, arm*-*-fuchsia*,
>>     x86_64-*-fuchsia*): Add definitions.
>>
>
Jeff Law April 24, 2017, 9:38 p.m. UTC | #3
On 01/17/2017 11:40 AM, Josh Conner via gcc-patches wrote:
> The attached patch adds fuchsia support to libgcc.
> 
> OK for trunk?
> 
> Thanks -
> 
> Josh
> 
> 2017-01-17  Joshua Conner  <joshconner@google.com>
> 
>      * config/arm/unwind-arm.h (_Unwind_decode_typeinfo_ptr): Use
>      pc-relative indirect handling for fuchsia.
>      * config/t-slibgcc-fuchsia: New file.
>      * config.host (*-*-fuchsia*, aarch64*-*-fuchsia*, arm*-*-fuchsia*,
>      x86_64-*-fuchsia*): Add definitions.
> 
OK for the trunk.

jeff
diff mbox

Patch

Index: config/arm/unwind-arm.h
===================================================================
--- config/arm/unwind-arm.h	(revision 244542)
+++ config/arm/unwind-arm.h	(working copy)
@@ -49,7 +49,7 @@ 
 	return 0;
 
 #if (defined(linux) && !defined(__uClinux__)) || defined(__NetBSD__) \
-    || defined(__FreeBSD__)
+    || defined(__FreeBSD__) || defined(__fuchsia__)
       /* Pc-relative indirect.  */
 #define _GLIBCXX_OVERRIDE_TTYPE_ENCODING (DW_EH_PE_pcrel | DW_EH_PE_indirect)
       tmp += ptr;
Index: config/t-slibgcc-fuchsia
===================================================================
--- config/t-slibgcc-fuchsia	(revision 0)
+++ config/t-slibgcc-fuchsia	(working copy)
@@ -0,0 +1,22 @@ 
+# Copyright (C) 2017 Free Software Foundation, Inc.
+#
+# 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.
+#
+# You should have received a copy of the GNU General Public License
+# along with GCC; see the file COPYING3.  If not see
+# <http://www.gnu.org/licenses/>.
+
+# Fuchsia-specific shared library overrides.
+
+SHLIB_LDFLAGS = -Wl,--soname=$(SHLIB_SONAME) \
+                $(LDFLAGS)
Index: config.host
===================================================================
--- config.host	(revision 244542)
+++ config.host	(working copy)
@@ -228,6 +228,10 @@ 
       ;;
   esac
   ;;
+*-*-fuchsia*)
+  tmake_file="$tmake_file t-crtstuff-pic t-libgcc-pic t-eh-dw2-dip t-slibgcc t-slibgcc-fuchsia"
+  extra_parts="crtbegin.o crtend.o"
+  ;;
 *-*-linux* | frv-*-*linux* | *-*-kfreebsd*-gnu | *-*-gnu* | *-*-kopensolaris*-gnu)
   tmake_file="$tmake_file t-crtstuff-pic t-libgcc-pic t-eh-dw2-dip t-slibgcc t-slibgcc-gld t-slibgcc-elf-ver t-linux"
   extra_parts="crtbegin.o crtbeginS.o crtbeginT.o crtend.o crtendS.o"
@@ -337,6 +341,10 @@ 
 	tmake_file="${tmake_file} ${cpu_type}/t-aarch64"
 	tmake_file="${tmake_file} ${cpu_type}/t-softfp t-softfp t-crtfm"
 	;;
+aarch64*-*-fuchsia*)
+	tmake_file="${tmake_file} ${cpu_type}/t-aarch64"
+	tmake_file="${tmake_file} ${cpu_type}/t-softfp t-softfp"
+	;;
 aarch64*-*-linux*)
 	extra_parts="$extra_parts crtfastmath.o"
 	md_unwind_header=aarch64/linux-unwind.h
@@ -389,6 +397,12 @@ 
 	unwind_header=config/arm/unwind-arm.h
 	tmake_file="${tmake_file} t-softfp-sfdf t-softfp-excl arm/t-softfp t-softfp"
 	;;
+arm*-*-fuchsia*)
+	tmake_file="${tmake_file} arm/t-arm arm/t-elf arm/t-bpabi"
+	tmake_file="${tmake_file} arm/tsoftfp t-softfp"
+	tm_file="${tm_file} arm/bpabi-lib.h"
+	unwind_header=config/arm/unwind-arm.h
+	;;
 arm*-*-netbsdelf*)
 	tmake_file="$tmake_file arm/t-arm arm/t-netbsd t-slibgcc-gld-nover"
 	;;
@@ -583,6 +597,9 @@ 
 x86_64-*-elf* | x86_64-*-rtems*)
 	tmake_file="$tmake_file i386/t-crtstuff t-crtstuff-pic t-libgcc-pic"
 	;;
+x86_64-*-fuchsia*)
+	tmake_file="$tmake_file t-libgcc-pic"
+	;;
 i[34567]86-*-dragonfly*)
 	tmake_file="${tmake_file} i386/t-dragonfly i386/t-crtstuff"
 	md_unwind_header=i386/dragonfly-unwind.h