Ping^3?

I think this should be very straightforward - it just adds fuchsia target support to libgcc. Please do let me know if there are any concerns...

Thanks!

- Josh


2017-04-12  Joshua Conner  <joshcon...@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.


On 2/21/17 9:41 AM, Josh Conner wrote:
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  <joshcon...@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.




Index: config/arm/unwind-arm.h
===================================================================
--- config/arm/unwind-arm.h     (revision 246880)
+++ 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 246880)
+++ config.host (working copy)
@@ -231,6 +231,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"
@@ -342,6 +346,10 @@
        tmake_file="${tmake_file} ${cpu_type}/t-softfp t-softfp t-crtfm"
        md_unwind_header=aarch64/freebsd-unwind.h
        ;;
+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
@@ -394,6 +402,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"
        ;;
@@ -588,6 +602,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

Reply via email to