On 12/12/16 21:31, Josh Conner via gcc-patches wrote:
> On 12/10/16 3:26 AM, Richard Earnshaw wrote:
>> On 08/12/16 22:55, Josh Conner wrote:
>>> +    arm*-*-fuchsia*)
>>> +      tm_file="${tm_file} fuchsia.h arm/fuchsia-elf.h glibc-stdint.h"
>>> +      tmake_file="${tmake_file} arm/t-bpabi"
>>> +      ;;
>>
>> This will leave the default cpu as arm7tdmi.  Is that what you want?
>> It's fine if it is, but if not, you should consider setting
>> target_cpu_cname here as well.
> 
> Mmm, probably not. Thanks for pointing that out.
> I've attached an updated patch addressing all of the concerns so far.
> 
> OK for mainline?
> 
> Thanks -
> 
> Josh
> 
> 
> 2016-12-08  Joshua Conner<joshcon...@google.com>

Two spaces between your name and email address.

> 
>     * config/arm/fuchsia-elf.h: New file.
>     * config/fuchsia.h: New file.
>     * config.gcc (*-*-fuchsia*): Set native_system_header_dir.
>     (aarch64*-*-fuchsia*, arm*-*-fuchsia*, x86_64-*-fuchsia*): Add to
>     targets.
>     * config.host: (aarch64*-*-fuchsia*, arm*-*-fuchsia*): Add to hosts.
> 

This is OK, but please update the copyright years on the new files to
include 2017.

R.

> 
> gcc-fuchsia-support-v2.patch
> 
> 
> Index: config/arm/fuchsia-elf.h
> ===================================================================
> --- config/arm/fuchsia-elf.h  (revision 0)
> +++ config/arm/fuchsia-elf.h  (working copy)
> @@ -0,0 +1,31 @@
> +/* Configuration file for ARM Fuchsia ELF targets.
> +   Copyright (C) 2016 Free Software Foundation, Inc.
> +   Contributed by Google.
> +
> +   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/>.  */
> +
> +/* Use the BPABI builtins and the generic OS builtins.  */
> +#undef  TARGET_SUB_OS_CPP_BUILTINS
> +#define TARGET_SUB_OS_CPP_BUILTINS()                 \
> +  TARGET_BPABI_CPP_BUILTINS()
> +
> +/* Use the AAPCS ABI by default.  */
> +#undef ARM_DEFAULT_ABI
> +#define ARM_DEFAULT_ABI ARM_ABI_AAPCS
> +
> +#define ARM_TARGET2_DWARF_FORMAT (DW_EH_PE_pcrel | DW_EH_PE_indirect)
> +
> Index: config/fuchsia.h
> ===================================================================
> --- config/fuchsia.h  (revision 0)
> +++ config/fuchsia.h  (working copy)
> @@ -0,0 +1,68 @@
> +/* Base configuration file for all Fuchsia targets.
> +   Copyright (C) 2016 Free Software Foundation, Inc.
> +   Contributed by Google.
> +
> +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/>.  */
> +
> +/* Common Fuchsia configuration.  */
> +
> +#undef  STARTFILE_SPEC
> +#define STARTFILE_SPEC "%{!shared: crt1%O%s} crtbegin%O%s"
> +
> +#undef  ENDFILE_SPEC
> +#define ENDFILE_SPEC "crtend%O%s"
> +
> +/* When neither pic nor pie has been specified, use PIE.  */
> +#undef  CC1_SPEC
> +#define CC1_SPEC "%{!fno-pic:%{!fno-PIC:%{!fpic:%{!fPIC:" \
> +                   "%{!fno-pie:%{!fno-PIE:%{!fpie:%{!fPIE: -fPIE}}}}}}}}"
> +
> +#undef  LIB_SPEC
> +#define LIB_SPEC "--start-group" \
> +              " -lmxio -lmagenta -lc -llaunchpad" \
> +              "%{!static: -lgcc_s}" \
> +              " --end-group"
> +
> +#undef  LINK_SPEC
> +#define LINK_SPEC "-z max-page-size=4096" \
> +               " -z combreloc" \
> +               " -z relro" \
> +               " -z now" \
> +               " -z text" \
> +               "%{!hash-style: --hash-style=gnu}" \
> +               "%{!no-eh-frame-hdr: --eh-frame-hdr}" \
> +               "%{!no-build-id: --build-id}" \
> +               "%{shared: -shared}" \
> +               "%{!shared:%{!static:%{!dynamic-linker: 
> -dynamic-linker=ld.so.1}}}"
> +
> +/* We are using MUSL as our libc.  */
> +#undef  OPTION_MUSL
> +#define OPTION_MUSL 1
> +
> +#ifndef TARGET_SUB_OS_CPP_BUILTINS
> +#define TARGET_SUB_OS_CPP_BUILTINS()
> +#endif
> +
> +#undef  TARGET_OS_CPP_BUILTINS
> +#define TARGET_OS_CPP_BUILTINS()             \
> +  do                                         \
> +    {                                                \
> +      builtin_define ("__fuchsia__");                \
> +      TARGET_SUB_OS_CPP_BUILTINS();          \
> +    }                                                \
> +  while (false)
> +
> Index: config.gcc
> ===================================================================
> --- config.gcc        (revision 243566)
> +++ config.gcc        (working copy)
> @@ -706,6 +706,9 @@
>    esac
>    use_gcc_stdint=wrap
>    ;;
> +*-*-fuchsia*)
> +  native_system_header_dir=/include
> +  ;;
>  *-*-linux* | frv-*-*linux* | *-*-kfreebsd*-gnu | *-*-gnu* | 
> *-*-kopensolaris*-gnu)
>    extra_options="$extra_options gnu-user.opt"
>    gas=yes
> @@ -908,7 +911,7 @@
>  esac
>  
>  case ${target} in
> -aarch64*-*-elf | aarch64*-*-rtems*)
> +aarch64*-*-elf | aarch64*-*-fuchsia* | aarch64*-*-rtems*)
>       tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h"
>       tm_file="${tm_file} aarch64/aarch64-elf.h aarch64/aarch64-elf-raw.h"
>       tmake_file="${tmake_file} aarch64/t-aarch64"
> @@ -916,6 +919,9 @@
>       aarch64-*-elf*)
>               use_gcc_stdint=wrap
>               ;;
> +        aarch64-*-fuchsia*)
> +                tm_file="${tm_file} fuchsia.h"
> +                ;;
>       aarch64-*-rtems*)
>               tm_file="${tm_file} rtems.h aarch64/rtems.h"
>               ;;
> @@ -1119,7 +1125,7 @@
>       tmake_file="${tmake_file} arm/t-arm arm/t-bpabi arm/t-phoenix"
>       target_cpu_cname="arm7tdmi"
>       ;;
> -arm*-*-eabi* | arm*-*-symbianelf* | arm*-*-rtems*)
> +arm*-*-eabi* | arm*-*-symbianelf* | arm*-*-rtems* | arm*-*-fuchsia*)
>       case ${target} in
>       arm*eb-*-eabi*)
>         tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
> @@ -1134,6 +1140,11 @@
>         tmake_file="${tmake_file} arm/t-bpabi"
>         use_gcc_stdint=wrap
>         ;;
> +     arm*-*-fuchsia*)
> +       tm_file="${tm_file} fuchsia.h arm/fuchsia-elf.h glibc-stdint.h"
> +       tmake_file="${tmake_file} arm/t-bpabi"
> +       target_cpu_cname="genericv7a"
> +       ;;
>       arm*-*-rtems*)
>         tm_file="${tm_file} rtems.h arm/rtems.h newlib-stdint.h"
>         tmake_file="${tmake_file} arm/t-bpabi arm/t-rtems"
> @@ -1777,6 +1788,10 @@
>                       ;;
>       esac
>       ;;
> +x86_64-*-fuchsia*)
> +     tmake_file="${tmake_file} i386/t-x86_64-elf"
> +     tm_file="${tm_file} i386/unix.h i386/att.h elfos.h newlib-stdint.h 
> i386/i386elf.h i386/x86-64.h fuchsia.h"
> +     ;;
>  ia64*-*-elf*)
>       tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h ia64/sysv4.h 
> ia64/elf.h"
>       tmake_file="ia64/t-ia64"
> Index: config.host
> ===================================================================
> --- config.host       (revision 243566)
> +++ config.host       (working copy)
> @@ -99,7 +99,7 @@
>  esac
>  
>  case ${host} in
> -  aarch64*-*-freebsd* | aarch64*-*-linux*)
> +  aarch64*-*-freebsd* | aarch64*-*-linux* | aarch64*-*-fuchsia*)
>      case ${target} in
>        aarch64*-*-*)
>       host_extra_gcc_objs="driver-aarch64.o"
> @@ -107,7 +107,7 @@
>       ;;
>      esac
>      ;;
> -  arm*-*-freebsd* | arm*-*-linux*)
> +  arm*-*-freebsd* | arm*-*-linux* | arm*-*-fuchsia*)
>      case ${target} in
>        arm*-*-*)
>       host_extra_gcc_objs="driver-arm.o"
> 

Reply via email to