* [patch] aarch64-*-freebsd* support for gcc.
@ 2016-10-10 21:08 Andreas Tobler
2016-10-10 21:10 ` Jeff Law
0 siblings, 1 reply; 6+ messages in thread
From: Andreas Tobler @ 2016-10-10 21:08 UTC (permalink / raw)
To: GCC Patches
[-- Attachment #1: Type: text/plain, Size: 742 bytes --]
Hi all,
the attached patch brings support for the aarch64-*-freebsd* target.
Bootstraped and tested, results on the list. Not that many results due
to board instabilities.... I lack a cavium ;)
Ok for main? And if yes, how far can I backport? Down to 5.4?
TIA,
Andreas
libgcc:
2016-10-10 Andreas Tobler <andreast@gcc.gnu.org>
* config.host: Add support for aarch64-*-freebsd*.
gcc:
2016-10-10 Andreas Tobler <andreast@gcc.gnu.org>
* config.gcc: Add aarch64-*-freebsd* support.
* config.host: Likewise.
* config/aarch64/aarch64-freebsd.h: New file.
* config/aarch64/t-aarch64-freebsd: Ditto.
toplevel:
2016-10-10 Andreas Tobler <andreast@gcc.gnu.org>
* configure.ac: Add aarch64-*-freebsd*.
* configure: Regenerate.
[-- Attachment #2: aarch64-freebsd_20161010.diff --]
[-- Type: text/plain, Size: 6856 bytes --]
Index: configure.ac
===================================================================
--- configure.ac (revision 240948)
+++ configure.ac (working copy)
@@ -727,6 +727,9 @@
*-*-vxworks*)
noconfigdirs="$noconfigdirs target-libffi"
;;
+ aarch64*-*-freebsd*)
+ noconfigdirs="$noconfigdirs target-libffi"
+ ;;
alpha*-*-*vms*)
noconfigdirs="$noconfigdirs target-libffi"
;;
Index: gcc/config.gcc
===================================================================
--- gcc/config.gcc (revision 240948)
+++ gcc/config.gcc (working copy)
@@ -937,6 +937,11 @@
done
TM_MULTILIB_CONFIG=`echo $TM_MULTILIB_CONFIG | sed 's/^,//'`
;;
+aarch64*-*-freebsd*)
+ tm_file="${tm_file} dbxelf.h elfos.h ${fbsd_tm_file}"
+ tm_file="${tm_file} aarch64/aarch64-elf.h aarch64/aarch64-freebsd.h"
+ tmake_file="${tmake_file} aarch64/t-aarch64 aarch64/t-aarch64-freebsd"
+ ;;
aarch64*-*-linux*)
tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h"
tm_file="${tm_file} aarch64/aarch64-elf.h aarch64/aarch64-linux.h"
Index: gcc/config.host
===================================================================
--- gcc/config.host (revision 240948)
+++ gcc/config.host (working copy)
@@ -99,7 +99,7 @@
esac
case ${host} in
- aarch64*-*-linux*)
+ aarch64*-*-freebsd* | aarch64*-*-linux*)
case ${target} in
aarch64*-*-*)
host_extra_gcc_objs="driver-aarch64.o"
Index: gcc/config/aarch64/aarch64-freebsd.h
===================================================================
--- gcc/config/aarch64/aarch64-freebsd.h (nonexistent)
+++ gcc/config/aarch64/aarch64-freebsd.h (working copy)
@@ -0,0 +1,94 @@
+/* Definitions for AArch64 running FreeBSD
+ Copyright (C) 2016 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/>. */
+
+#ifndef GCC_AARCH64_FREEBSD_H
+#define GCC_AARCH64_FREEBSD_H
+
+#undef SUBTARGET_CPP_SPEC
+#define SUBTARGET_CPP_SPEC FBSD_CPP_SPEC
+
+#if TARGET_BIG_ENDIAN_DEFAULT
+#define TARGET_LINKER_EMULATION "aarch64fbsdb"
+#else
+#define TARGET_LINKER_EMULATION "aarch64fbsd"
+#endif
+
+#undef SUBTARGET_EXTRA_LINK_SPEC
+#define SUBTARGET_EXTRA_LINK_SPEC " -m" TARGET_LINKER_EMULATION
+
+#undef FBSD_TARGET_LINK_SPEC
+#define FBSD_TARGET_LINK_SPEC " \
+ %{p:%nconsider using `-pg' instead of `-p' with gprof (1) } \
+ %{v:-V} \
+ %{assert*} %{R*} %{rpath*} %{defsym*} \
+ %{shared:-Bshareable %{h*} %{soname*}} \
+ %{symbolic:-Bsymbolic} \
+ %{static:-Bstatic} \
+ %{!static: \
+ %{rdynamic:-export-dynamic} \
+ %{!shared:-dynamic-linker " FBSD_DYNAMIC_LINKER " }} \
+ -X" SUBTARGET_EXTRA_LINK_SPEC " \
+ %{mbig-endian:-EB} %{mlittle-endian:-EL}"
+
+#if TARGET_FIX_ERR_A53_835769_DEFAULT
+#define CA53_ERR_835769_SPEC \
+ " %{!mno-fix-cortex-a53-835769:--fix-cortex-a53-835769}"
+#else
+#define CA53_ERR_835769_SPEC \
+ " %{mfix-cortex-a53-835769:--fix-cortex-a53-835769}"
+#endif
+
+#ifdef TARGET_FIX_ERR_A53_843419_DEFAULT
+#define CA53_ERR_843419_SPEC \
+ " %{!mno-fix-cortex-a53-843419:--fix-cortex-a53-843419}"
+#else
+#define CA53_ERR_843419_SPEC \
+ " %{mfix-cortex-a53-843419:--fix-cortex-a53-843419}"
+#endif
+
+#undef LINK_SPEC
+#define LINK_SPEC FBSD_TARGET_LINK_SPEC \
+ CA53_ERR_835769_SPEC \
+ CA53_ERR_843419_SPEC
+
+#define GNU_USER_TARGET_MATHFILE_SPEC \
+ "%{Ofast|ffast-math|funsafe-math-optimizations:crtfastmath.o%s}"
+
+#undef ENDFILE_SPEC
+#define ENDFILE_SPEC \
+ GNU_USER_TARGET_MATHFILE_SPEC " " \
+ FBSD_ENDFILE_SPEC
+
+#undef TARGET_OS_CPP_BUILTINS
+#define TARGET_OS_CPP_BUILTINS() \
+ do \
+ { \
+ FBSD_TARGET_OS_CPP_BUILTINS (); \
+ } \
+ while (false)
+
+#define TARGET_ASM_FILE_END file_end_indicate_exec_stack
+
+/* Uninitialized common symbols in non-PIE executables, even with
+ strong definitions in dependent shared libraries, will resolve
+ to COPY relocated symbol in the executable. See PR65780. */
+#undef TARGET_BINDS_LOCAL_P
+#define TARGET_BINDS_LOCAL_P default_binds_local_p_2
+
+#endif /* GCC_AARCH64_FREEBSD_H */
Index: gcc/config/aarch64/t-aarch64-freebsd
===================================================================
--- gcc/config/aarch64/t-aarch64-freebsd (nonexistent)
+++ gcc/config/aarch64/t-aarch64-freebsd (working copy)
@@ -0,0 +1,21 @@
+# Machine description for AArch64 architecture.
+# Copyright (C) 2016 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/>.
+
+LIB1ASMSRC = aarch64/lib1funcs.asm
+LIB1ASMFUNCS = _aarch64_sync_cache_range
Index: libgcc/config.host
===================================================================
--- libgcc/config.host (revision 240948)
+++ libgcc/config.host (working copy)
@@ -331,6 +331,11 @@
tmake_file="${tmake_file} ${cpu_type}/t-aarch64"
tmake_file="${tmake_file} ${cpu_type}/t-softfp t-softfp t-crtfm"
;;
+aarch64*-*-freebsd*)
+ extra_parts="$extra_parts crtfastmath.o"
+ tmake_file="${tmake_file} ${cpu_type}/t-aarch64"
+ tmake_file="${tmake_file} ${cpu_type}/t-softfp t-softfp t-crtfm"
+ ;;
aarch64*-*-linux*)
extra_parts="$extra_parts crtfastmath.o"
md_unwind_header=aarch64/linux-unwind.h
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [patch] aarch64-*-freebsd* support for gcc.
2016-10-10 21:08 [patch] aarch64-*-freebsd* support for gcc Andreas Tobler
@ 2016-10-10 21:10 ` Jeff Law
2016-10-10 21:37 ` Andreas Tobler
2016-10-12 19:43 ` Andreas Tobler
0 siblings, 2 replies; 6+ messages in thread
From: Jeff Law @ 2016-10-10 21:10 UTC (permalink / raw)
To: Andreas Tobler, GCC Patches
On 10/10/2016 03:07 PM, Andreas Tobler wrote:
> Hi all,
>
> the attached patch brings support for the aarch64-*-freebsd* target.
>
> Bootstraped and tested, results on the list. Not that many results due
> to board instabilities.... I lack a cavium ;)
>
> Ok for main? And if yes, how far can I backport? Down to 5.4?
>
> TIA,
> Andreas
>
> libgcc:
>
> 2016-10-10 Andreas Tobler <andreast@gcc.gnu.org>
>
> * config.host: Add support for aarch64-*-freebsd*.
>
> gcc:
>
> 2016-10-10 Andreas Tobler <andreast@gcc.gnu.org>
>
> * config.gcc: Add aarch64-*-freebsd* support.
> * config.host: Likewise.
> * config/aarch64/aarch64-freebsd.h: New file.
> * config/aarch64/t-aarch64-freebsd: Ditto.
>
> toplevel:
>
> 2016-10-10 Andreas Tobler <andreast@gcc.gnu.org>
>
> * configure.ac: Add aarch64-*-freebsd*.
> * configure: Regenerate.
Certainly OK for the trunk. Jakub, Richi & Joseph make the rules for
the release branches.
jeff
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [patch] aarch64-*-freebsd* support for gcc.
2016-10-10 21:10 ` Jeff Law
@ 2016-10-10 21:37 ` Andreas Tobler
2016-10-12 19:43 ` Andreas Tobler
1 sibling, 0 replies; 6+ messages in thread
From: Andreas Tobler @ 2016-10-10 21:37 UTC (permalink / raw)
To: Jeff Law, GCC Patches
On 10.10.16 23:10, Jeff Law wrote:
> On 10/10/2016 03:07 PM, Andreas Tobler wrote:
>> Hi all,
>>
>> the attached patch brings support for the aarch64-*-freebsd* target.
>>
>> Bootstraped and tested, results on the list. Not that many results due
>> to board instabilities.... I lack a cavium ;)
>>
>> Ok for main? And if yes, how far can I backport? Down to 5.4?
>>
>> TIA,
>> Andreas
>>
>> libgcc:
>>
>> 2016-10-10 Andreas Tobler <andreast@gcc.gnu.org>
>>
>> * config.host: Add support for aarch64-*-freebsd*.
>>
>> gcc:
>>
>> 2016-10-10 Andreas Tobler <andreast@gcc.gnu.org>
>>
>> * config.gcc: Add aarch64-*-freebsd* support.
>> * config.host: Likewise.
>> * config/aarch64/aarch64-freebsd.h: New file.
>> * config/aarch64/t-aarch64-freebsd: Ditto.
>>
>> toplevel:
>>
>> 2016-10-10 Andreas Tobler <andreast@gcc.gnu.org>
>>
>> * configure.ac: Add aarch64-*-freebsd*.
>> * configure: Regenerate.
> Certainly OK for the trunk. Jakub, Richi & Joseph make the rules for
> the release branches.
Thank you again Jeff.
Committed to trunk with r240949.
Andreas
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [patch] aarch64-*-freebsd* support for gcc.
2016-10-10 21:10 ` Jeff Law
2016-10-10 21:37 ` Andreas Tobler
@ 2016-10-12 19:43 ` Andreas Tobler
2016-10-13 15:15 ` Jeff Law
1 sibling, 1 reply; 6+ messages in thread
From: Andreas Tobler @ 2016-10-12 19:43 UTC (permalink / raw)
To: Jeff Law, GCC Patches
Hi Jeff,
On 10.10.16 23:10, Jeff Law wrote:
> On 10/10/2016 03:07 PM, Andreas Tobler wrote:
>> Hi all,
>>
>> the attached patch brings support for the aarch64-*-freebsd* target.
>>
>> Bootstraped and tested, results on the list. Not that many results due
>> to board instabilities.... I lack a cavium ;)
>>
>> Ok for main? And if yes, how far can I backport? Down to 5.4?
>>
>> TIA,
>> Andreas
>>
>> libgcc:
>>
>> 2016-10-10 Andreas Tobler <andreast@gcc.gnu.org>
>>
>> * config.host: Add support for aarch64-*-freebsd*.
>>
>> gcc:
>>
>> 2016-10-10 Andreas Tobler <andreast@gcc.gnu.org>
>>
>> * config.gcc: Add aarch64-*-freebsd* support.
>> * config.host: Likewise.
>> * config/aarch64/aarch64-freebsd.h: New file.
>> * config/aarch64/t-aarch64-freebsd: Ditto.
>>
>> toplevel:
>>
>> 2016-10-10 Andreas Tobler <andreast@gcc.gnu.org>
>>
>> * configure.ac: Add aarch64-*-freebsd*.
>> * configure: Regenerate.
> Certainly OK for the trunk. Jakub, Richi & Joseph make the rules for
> the release branches.
I had a chat with Jakub and I learned as long as there is no branch
freeze or such, every global reviewer can approve such a patch backport.
So may I ask you, would you mind approving this patch for 6.x and 5.x?
TIA,
Andreas
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [patch] aarch64-*-freebsd* support for gcc.
2016-10-12 19:43 ` Andreas Tobler
@ 2016-10-13 15:15 ` Jeff Law
2017-01-09 21:09 ` Andreas Tobler
0 siblings, 1 reply; 6+ messages in thread
From: Jeff Law @ 2016-10-13 15:15 UTC (permalink / raw)
To: Andreas Tobler, GCC Patches
On 10/12/2016 01:43 PM, Andreas Tobler wrote:
>>>
>>> libgcc:
>>>
>>> 2016-10-10 Andreas Tobler <andreast@gcc.gnu.org>
>>>
>>> * config.host: Add support for aarch64-*-freebsd*.
>>>
>>> gcc:
>>>
>>> 2016-10-10 Andreas Tobler <andreast@gcc.gnu.org>
>>>
>>> * config.gcc: Add aarch64-*-freebsd* support.
>>> * config.host: Likewise.
>>> * config/aarch64/aarch64-freebsd.h: New file.
>>> * config/aarch64/t-aarch64-freebsd: Ditto.
>>>
>>> toplevel:
>>>
>>> 2016-10-10 Andreas Tobler <andreast@gcc.gnu.org>
>>>
>>> * configure.ac: Add aarch64-*-freebsd*.
>>> * configure: Regenerate.
>> Certainly OK for the trunk. Jakub, Richi & Joseph make the rules for
>> the release branches.
>
> I had a chat with Jakub and I learned as long as there is no branch
> freeze or such, every global reviewer can approve such a patch backport.
> So may I ask you, would you mind approving this patch for 6.x and 5.x?
Yes. Approved for 5.x and 6.x.
jeff
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [patch] aarch64-*-freebsd* support for gcc.
2016-10-13 15:15 ` Jeff Law
@ 2017-01-09 21:09 ` Andreas Tobler
0 siblings, 0 replies; 6+ messages in thread
From: Andreas Tobler @ 2017-01-09 21:09 UTC (permalink / raw)
To: Jeff Law, GCC Patches
On 13.10.16 17:14, Jeff Law wrote:
> On 10/12/2016 01:43 PM, Andreas Tobler wrote:
>>>>
>>>> libgcc:
>>>>
>>>> 2016-10-10 Andreas Tobler <andreast@gcc.gnu.org>
>>>>
>>>> * config.host: Add support for aarch64-*-freebsd*.
>>>>
>>>> gcc:
>>>>
>>>> 2016-10-10 Andreas Tobler <andreast@gcc.gnu.org>
>>>>
>>>> * config.gcc: Add aarch64-*-freebsd* support.
>>>> * config.host: Likewise.
>>>> * config/aarch64/aarch64-freebsd.h: New file.
>>>> * config/aarch64/t-aarch64-freebsd: Ditto.
>>>>
>>>> toplevel:
>>>>
>>>> 2016-10-10 Andreas Tobler <andreast@gcc.gnu.org>
>>>>
>>>> * configure.ac: Add aarch64-*-freebsd*.
>>>> * configure: Regenerate.
>>> Certainly OK for the trunk. Jakub, Richi & Joseph make the rules for
>>> the release branches.
>>
>> I had a chat with Jakub and I learned as long as there is no branch
>> freeze or such, every global reviewer can approve such a patch backport.
>> So may I ask you, would you mind approving this patch for 6.x and 5.x?
> Yes. Approved for 5.x and 6.x.
After fixing a bootstrap comparison failure on 6.x finally committed to
6.x (244242) and 5.x (244243)
Thanks,
Andreas
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2017-01-09 21:09 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-10-10 21:08 [patch] aarch64-*-freebsd* support for gcc Andreas Tobler
2016-10-10 21:10 ` Jeff Law
2016-10-10 21:37 ` Andreas Tobler
2016-10-12 19:43 ` Andreas Tobler
2016-10-13 15:15 ` Jeff Law
2017-01-09 21:09 ` Andreas Tobler
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).