mirror of
https://git.FreeBSD.org/ports.git
synced 2024-12-02 01:20:54 +00:00
Remove expired port:
2019-04-26 lang/gcc49: Unsupported by upstream. Use GCC 7 or newer instead.
This commit is contained in:
parent
a73158ff30
commit
39329497a2
Notes:
svn2git
2021-03-31 03:12:20 +00:00
svn path=/head/; revision=500180
1
MOVED
1
MOVED
@ -12189,3 +12189,4 @@ www/rubygem-select2-rails3|www/rubygem-select2-rails|2019-04-23|Has expired: Use
|
|||||||
www/rubygem-jquery-atwho-rails13|www/rubygem-jquery-atwho-rails|2019-04-23|Has expired: Use www/rubygem-jquery-atwho-rails instead
|
www/rubygem-jquery-atwho-rails13|www/rubygem-jquery-atwho-rails|2019-04-23|Has expired: Use www/rubygem-jquery-atwho-rails instead
|
||||||
devel/rubygem-recaptcha3|devel/rubygem-recaptcha|2019-04-23|Has expired: Use devel/rubygem-recaptcha instead
|
devel/rubygem-recaptcha3|devel/rubygem-recaptcha|2019-04-23|Has expired: Use devel/rubygem-recaptcha instead
|
||||||
security/rubygem-rack-oauth212|security/rubygem-rack-oauth2|2019-04-23|Has expired: Use security/rubygem-rack-oauth2 instead
|
security/rubygem-rack-oauth212|security/rubygem-rack-oauth2|2019-04-23|Has expired: Use security/rubygem-rack-oauth2 instead
|
||||||
|
lang/gcc49|lang/gcc7|2019-04-27|Has expired: Unsupported by upstream. Use GCC 7 or newer instead.
|
||||||
|
@ -101,7 +101,6 @@
|
|||||||
SUBDIR += gcc
|
SUBDIR += gcc
|
||||||
SUBDIR += gcc-ecj45
|
SUBDIR += gcc-ecj45
|
||||||
SUBDIR += gcc48
|
SUBDIR += gcc48
|
||||||
SUBDIR += gcc49
|
|
||||||
SUBDIR += gcc5
|
SUBDIR += gcc5
|
||||||
SUBDIR += gcc6
|
SUBDIR += gcc6
|
||||||
SUBDIR += gcc6-aux
|
SUBDIR += gcc6-aux
|
||||||
|
@ -1,151 +0,0 @@
|
|||||||
# Created by: Gerald Pfeifer <gerald@FreeBSD.org>
|
|
||||||
# $FreeBSD$
|
|
||||||
|
|
||||||
PORTNAME= gcc
|
|
||||||
PORTVERSION= 4.9.4
|
|
||||||
PORTREVISION= 10
|
|
||||||
CATEGORIES= lang
|
|
||||||
MASTER_SITES= GCC
|
|
||||||
PKGNAMESUFFIX= ${SUFFIX}
|
|
||||||
|
|
||||||
MAINTAINER= gerald@FreeBSD.org
|
|
||||||
COMMENT= GNU Compiler Collection 4.9
|
|
||||||
|
|
||||||
LICENSE= GPLv3 GPLv3RLE
|
|
||||||
LICENSE_COMB= multi
|
|
||||||
|
|
||||||
DEPRECATED= Unsupported by upstream. Use GCC 7 or newer instead.
|
|
||||||
EXPIRATION_DATE=2019-04-26
|
|
||||||
ONLY_FOR_ARCHS= amd64 armv6 i386 powerpc powerpc64 sparc64
|
|
||||||
|
|
||||||
LIB_DEPENDS= libgmp.so:math/gmp \
|
|
||||||
libmpfr.so:math/mpfr \
|
|
||||||
libmpc.so:math/mpc
|
|
||||||
BUILD_DEPENDS+= ${LOCALBASE}/bin/as:devel/binutils
|
|
||||||
RUN_DEPENDS+= ${LOCALBASE}/bin/as:devel/binutils
|
|
||||||
.if defined(MAINTAINER_MODE)
|
|
||||||
BUILD_DEPENDS+= runtest:misc/dejagnu
|
|
||||||
.endif
|
|
||||||
|
|
||||||
USES= compiler cpe gmake iconv libtool makeinfo perl5 tar:bzip2
|
|
||||||
USE_BINUTILS= yes
|
|
||||||
USE_PERL5= build
|
|
||||||
|
|
||||||
CPE_VENDOR= gnu
|
|
||||||
|
|
||||||
GCC_VERSION= ${PORTVERSION}
|
|
||||||
SUFFIX= ${PORTVERSION:C/([0-9]+).([0-9]+).*/\1\2/}
|
|
||||||
SSP_UNSAFE= yes
|
|
||||||
|
|
||||||
OPTIONS_DEFINE= BOOTSTRAP
|
|
||||||
OPTIONS_DEFAULT= BOOTSTRAP
|
|
||||||
BOOTSTRAP_DESC= Build using a full bootstrap
|
|
||||||
|
|
||||||
.if exists(/usr/lib32/libc.so)
|
|
||||||
OPTIONS_DEFINE_powerpc64+= MULTILIB
|
|
||||||
OPTIONS_DEFAULT_powerpc64+= MULTILIB
|
|
||||||
MULTILIB_DESC= Build support for 32-bit and 64-bit targets
|
|
||||||
MULTILIB_CONFIGURE_ENABLE= multilib
|
|
||||||
.else
|
|
||||||
CONFIGURE_ARGS+= --disable-multilib
|
|
||||||
.endif
|
|
||||||
|
|
||||||
.include <bsd.port.pre.mk>
|
|
||||||
|
|
||||||
.if ${ARCH} == amd64
|
|
||||||
CONFIGURE_TARGET= x86_64-portbld-${OPSYS:tl}${OSREL}
|
|
||||||
.endif
|
|
||||||
|
|
||||||
.if ${ARCH} == powerpc64
|
|
||||||
CONFIGURE_ENV+= UNAME_m="powerpc64"
|
|
||||||
.endif
|
|
||||||
|
|
||||||
.if ${ARCH} == armv6
|
|
||||||
# Override sys.mk including -O in CFLAGS which breaks libgomp building.
|
|
||||||
CFLAGS:= ${CFLAGS:S/-O/-O2/}
|
|
||||||
. if ${COMPILER_TYPE} == clang
|
|
||||||
. if empty(PORT_OPTIONS:MBOOTSTRAP)
|
|
||||||
MAKE_ARGS+=CXXFLAGS+=-fbracket-depth=512
|
|
||||||
. else
|
|
||||||
MAKE_ARGS+=STAGE1_CXXFLAGS+=-fbracket-depth=512
|
|
||||||
. endif
|
|
||||||
. endif
|
|
||||||
.endif
|
|
||||||
|
|
||||||
LANGUAGES:= c,c++,objc,fortran
|
|
||||||
TARGLIB= ${PREFIX}/lib/gcc${SUFFIX}
|
|
||||||
LIBEXEC= ${PREFIX}/libexec/gcc${SUFFIX}
|
|
||||||
GNU_CONFIGURE= yes
|
|
||||||
CONFIGURE_OUTSOURCE= yes
|
|
||||||
.if empty(PORT_OPTIONS:MBOOTSTRAP)
|
|
||||||
CONFIGURE_ARGS+=--disable-bootstrap
|
|
||||||
.else
|
|
||||||
CONFIGURE_ARGS+=--with-build-config=bootstrap-debug
|
|
||||||
ALL_TARGET= bootstrap-lean
|
|
||||||
.endif
|
|
||||||
INSTALL_TARGET= install-strip
|
|
||||||
.if ${UID} != 0
|
|
||||||
BINMODE= 755
|
|
||||||
.endif
|
|
||||||
CONFIGURE_ARGS+=--disable-nls \
|
|
||||||
--enable-gnu-indirect-function \
|
|
||||||
--libdir=${TARGLIB} \
|
|
||||||
--libexecdir=${LIBEXEC} \
|
|
||||||
--program-suffix=${SUFFIX} \
|
|
||||||
--with-as=${LOCALBASE}/bin/as \
|
|
||||||
--with-gmp=${LOCALBASE} \
|
|
||||||
--with-gxx-include-dir=${TARGLIB}/include/c++/ \
|
|
||||||
--with-ld=${LOCALBASE}/bin/ld \
|
|
||||||
${ICONV_CONFIGURE_ARG} \
|
|
||||||
--with-pkgversion="FreeBSD Ports Collection" \
|
|
||||||
--with-system-zlib \
|
|
||||||
--disable-libgcj \
|
|
||||||
--enable-languages=${LANGUAGES}
|
|
||||||
MAKE_ARGS+= MAKEINFOFLAGS="--no-split"
|
|
||||||
USE_LDCONFIG= ${TARGLIB}
|
|
||||||
PLIST_SUB+= GCC_VERSION=${GCC_VERSION} \
|
|
||||||
GNU_HOST=${CONFIGURE_TARGET} \
|
|
||||||
SUFFIX=${SUFFIX}
|
|
||||||
INFO= gcc${SUFFIX}/cpp \
|
|
||||||
gcc${SUFFIX}/cppinternals \
|
|
||||||
gcc${SUFFIX}/gcc \
|
|
||||||
gcc${SUFFIX}/gccinstall \
|
|
||||||
gcc${SUFFIX}/gccint \
|
|
||||||
gcc${SUFFIX}/gfortran \
|
|
||||||
gcc${SUFFIX}/libgomp \
|
|
||||||
gcc${SUFFIX}/libitm \
|
|
||||||
gcc${SUFFIX}/libquadmath
|
|
||||||
SUB_FILES= pkg-message
|
|
||||||
SUB_LIST+= TARGLIB=${TARGLIB}
|
|
||||||
|
|
||||||
pre-everything::
|
|
||||||
@${ECHO_MSG} "Making GCC ${PORTVERSION} for ${CONFIGURE_TARGET} [${LANGUAGES}]"
|
|
||||||
|
|
||||||
post-patch:
|
|
||||||
@${FIND} ${WRKSRC} -type f -name '*.[ch]' | \
|
|
||||||
${XARGS} ${EGREP} -l '"(HOST_WIDE|PLUGIN_COND)' | \
|
|
||||||
${XARGS} ${REINPLACE_CMD} -E -e 's/"(HOST_WIDE|PLUGIN_COND)/" \1/g'
|
|
||||||
|
|
||||||
pre-configure:
|
|
||||||
cd ${WRKSRC} ; contrib/gcc_update --touch
|
|
||||||
@${RM} ${WRKSRC}/gcc/*/*.info*
|
|
||||||
|
|
||||||
.if defined(MAINTAINER_MODE)
|
|
||||||
full-regression-test: build
|
|
||||||
cd ${TEST_WRKSRC}; ${MAKE_CMD} -sk check \
|
|
||||||
; ${WRKSRC}/contrib/test_summary
|
|
||||||
.endif
|
|
||||||
|
|
||||||
post-stage:
|
|
||||||
${RM} ${STAGEDIR}${PREFIX}/man/man7/*
|
|
||||||
${RM} -r ${STAGEDIR}${TARGLIB}/gcc/*/${GCC_VERSION}/include-fixed/
|
|
||||||
# Add target libraries and include files to packaging list.
|
|
||||||
${RM} ${WRKDIR}/PLIST.lib
|
|
||||||
.for d in ${TARGLIB:S/^${PREFIX}\///} ${LIBEXEC:S/^${PREFIX}\///}
|
|
||||||
cd ${STAGEDIR}${PREFIX} ; if [ -d $d ]; then \
|
|
||||||
${FIND} $d -type f -o -type l >>${WRKDIR}/PLIST.lib ;\
|
|
||||||
fi
|
|
||||||
.endfor
|
|
||||||
cd ${WRKDIR} ; ${SED} -i -e "/PLIST.lib/ r PLIST.lib" ${TMPPLIST}
|
|
||||||
|
|
||||||
.include <bsd.port.post.mk>
|
|
@ -1,3 +0,0 @@
|
|||||||
TIMESTAMP = 1470221809
|
|
||||||
SHA256 (gcc-4.9.4.tar.bz2) = 6c11d292cd01b294f9f84c9a59c230d80e9e4a47e5c6355f046bb36d4f358092
|
|
||||||
SIZE (gcc-4.9.4.tar.bz2) = 90097606
|
|
@ -1,745 +0,0 @@
|
|||||||
--- UTC
|
|
||||||
Index: configure
|
|
||||||
===================================================================
|
|
||||||
--- configure (revision 218760)
|
|
||||||
+++ configure (working copy)
|
|
||||||
@@ -3352,6 +3352,9 @@
|
|
||||||
alpha*-*-*vms*)
|
|
||||||
noconfigdirs="$noconfigdirs ${libgcj}"
|
|
||||||
;;
|
|
||||||
+ arm*-*-freebsd*)
|
|
||||||
+ noconfigdirs="$noconfigdirs ${libgcj}"
|
|
||||||
+ ;;
|
|
||||||
arm-wince-pe)
|
|
||||||
noconfigdirs="$noconfigdirs ${libgcj}"
|
|
||||||
;;
|
|
||||||
Index: configure.ac
|
|
||||||
===================================================================
|
|
||||||
--- configure.ac (revision 218760)
|
|
||||||
+++ configure.ac (working copy)
|
|
||||||
@@ -691,6 +691,9 @@
|
|
||||||
alpha*-*-*vms*)
|
|
||||||
noconfigdirs="$noconfigdirs ${libgcj}"
|
|
||||||
;;
|
|
||||||
+ arm*-*-freebsd*)
|
|
||||||
+ noconfigdirs="$noconfigdirs ${libgcj}"
|
|
||||||
+ ;;
|
|
||||||
arm-wince-pe)
|
|
||||||
noconfigdirs="$noconfigdirs ${libgcj}"
|
|
||||||
;;
|
|
||||||
Index: gcc/config/arm/arm.c
|
|
||||||
===================================================================
|
|
||||||
--- gcc/config/arm/arm.c (revision 218760)
|
|
||||||
+++ gcc/config/arm/arm.c (working copy)
|
|
||||||
@@ -1239,7 +1239,7 @@
|
|
||||||
{
|
|
||||||
/* For Linux, we have access to kernel support for atomic operations. */
|
|
||||||
if (arm_abi == ARM_ABI_AAPCS_LINUX)
|
|
||||||
- init_sync_libfuncs (2 * UNITS_PER_WORD);
|
|
||||||
+ init_sync_libfuncs (MAX_SYNC_LIBFUNC_SIZE);
|
|
||||||
|
|
||||||
/* There are no special library functions unless we are using the
|
|
||||||
ARM BPABI. */
|
|
||||||
Index: gcc/config/arm/arm.h
|
|
||||||
===================================================================
|
|
||||||
--- gcc/config/arm/arm.h (revision 218760)
|
|
||||||
+++ gcc/config/arm/arm.h (working copy)
|
|
||||||
@@ -720,6 +720,11 @@
|
|
||||||
#define PCC_BITFIELD_TYPE_MATTERS TARGET_AAPCS_BASED
|
|
||||||
#endif
|
|
||||||
|
|
||||||
+/* The maximum size of the sync library functions supported. */
|
|
||||||
+#ifndef MAX_SYNC_LIBFUNC_SIZE
|
|
||||||
+#define MAX_SYNC_LIBFUNC_SIZE (2 * UNITS_PER_WORD);
|
|
||||||
+#endif
|
|
||||||
+
|
|
||||||
|
|
||||||
/* Standard register usage. */
|
|
||||||
|
|
||||||
Index: gcc/config/arm/freebsd.h
|
|
||||||
===================================================================
|
|
||||||
--- gcc/config/arm/freebsd.h (revision 0)
|
|
||||||
+++ gcc/config/arm/freebsd.h (working copy)
|
|
||||||
@@ -0,0 +1,180 @@
|
|
||||||
+/* Definitions of target machine for GNU compiler, FreeBSD/arm version.
|
|
||||||
+ Copyright (C) 2002-2014 Free Software Foundation, Inc.
|
|
||||||
+ Contributed by Wasabi Systems, 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.
|
|
||||||
+
|
|
||||||
+ 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
|
|
||||||
+ along with GCC; see the file COPYING3. If not see
|
|
||||||
+ <http://www.gnu.org/licenses/>. */
|
|
||||||
+
|
|
||||||
+#undef SUBTARGET_CPP_SPEC
|
|
||||||
+#define SUBTARGET_CPP_SPEC FBSD_CPP_SPEC
|
|
||||||
+
|
|
||||||
+#undef SUBTARGET_EXTRA_SPECS
|
|
||||||
+#define SUBTARGET_EXTRA_SPECS \
|
|
||||||
+ { "subtarget_extra_asm_spec", SUBTARGET_EXTRA_ASM_SPEC }, \
|
|
||||||
+ { "subtarget_asm_float_spec", SUBTARGET_ASM_FLOAT_SPEC }, \
|
|
||||||
+ { "fbsd_dynamic_linker", FBSD_DYNAMIC_LINKER }
|
|
||||||
+
|
|
||||||
+#undef SUBTARGET_EXTRA_ASM_SPEC
|
|
||||||
+#define SUBTARGET_EXTRA_ASM_SPEC \
|
|
||||||
+ "%{mabi=apcs-gnu|mabi=atpcs:-meabi=gnu;:-meabi=5} " TARGET_FIX_V4BX_SPEC " \
|
|
||||||
+ %{fpic|fpie:-k} %{fPIC|fPIE:-k}"
|
|
||||||
+
|
|
||||||
+#undef SUBTARGET_ASM_FLOAT_SPEC
|
|
||||||
+#ifdef TARGET_FREEBSD_ARM_HARD_FLOAT
|
|
||||||
+/* Default to full vfp if we build for arm*hf. */
|
|
||||||
+#define SUBTARGET_ASM_FLOAT_SPEC "%{!mfpu=*:-mfpu=vfp}"
|
|
||||||
+#else
|
|
||||||
+#define SUBTARGET_ASM_FLOAT_SPEC "%{!mfpu=*:-mfpu=softvfp}"
|
|
||||||
+#endif
|
|
||||||
+
|
|
||||||
+#undef LINK_SPEC
|
|
||||||
+#define LINK_SPEC " \
|
|
||||||
+ %{p:%nconsider using `-pg' instead of `-p' with gprof (1) } \
|
|
||||||
+ %{v:-V} \
|
|
||||||
+ %{assert*} %{R*} %{rpath*} %{defsym*} \
|
|
||||||
+ %{shared:-Bshareable %{h*} %{soname*}} \
|
|
||||||
+ %{!shared: \
|
|
||||||
+ %{!static: \
|
|
||||||
+ %{rdynamic:-export-dynamic} \
|
|
||||||
+ %{!dynamic-linker:-dynamic-linker %(fbsd_dynamic_linker) }} \
|
|
||||||
+ %{static:-Bstatic}} \
|
|
||||||
+ %{!static:--hash-style=both --enable-new-dtags} \
|
|
||||||
+ %{symbolic:-Bsymbolic} \
|
|
||||||
+ -X %{mbig-endian:-EB} %{mlittle-endian:-EL}"
|
|
||||||
+
|
|
||||||
+/* TARGET_BIG_ENDIAN_DEFAULT is set in
|
|
||||||
+ config.gcc for big endian configurations. */
|
|
||||||
+#if TARGET_BIG_ENDIAN_DEFAULT
|
|
||||||
+#define TARGET_ENDIAN_DEFAULT MASK_BIG_END
|
|
||||||
+#define TARGET_ENDIAN_OPTION "mbig-endian"
|
|
||||||
+#define TARGET_LINKER_EMULATION "armelfb_fbsd"
|
|
||||||
+#else
|
|
||||||
+#define TARGET_ENDIAN_DEFAULT 0
|
|
||||||
+#define TARGET_ENDIAN_OPTION "mlittle-endian"
|
|
||||||
+#define TARGET_LINKER_EMULATION "armelf_fbsd"
|
|
||||||
+#endif
|
|
||||||
+
|
|
||||||
+#undef SUBTARGET_EXTRA_LINK_SPEC
|
|
||||||
+#define SUBTARGET_EXTRA_LINK_SPEC " -m " TARGET_LINKER_EMULATION " -p"
|
|
||||||
+
|
|
||||||
+#undef TARGET_OS_CPP_BUILTINS
|
|
||||||
+#define TARGET_OS_CPP_BUILTINS() \
|
|
||||||
+ do \
|
|
||||||
+ { \
|
|
||||||
+ FBSD_TARGET_OS_CPP_BUILTINS (); \
|
|
||||||
+ TARGET_BPABI_CPP_BUILTINS (); \
|
|
||||||
+ } \
|
|
||||||
+ while (false)
|
|
||||||
+
|
|
||||||
+/* We default to a soft-float ABI so that binaries can run on all
|
|
||||||
+ target hardware. */
|
|
||||||
+#undef TARGET_DEFAULT_FLOAT_ABI
|
|
||||||
+#ifdef TARGET_FREEBSD_ARM_HARD_FLOAT
|
|
||||||
+#define TARGET_DEFAULT_FLOAT_ABI ARM_FLOAT_ABI_HARD
|
|
||||||
+#else
|
|
||||||
+#define TARGET_DEFAULT_FLOAT_ABI ARM_FLOAT_ABI_SOFT
|
|
||||||
+#endif
|
|
||||||
+
|
|
||||||
+#undef ARM_DEFAULT_ABI
|
|
||||||
+
|
|
||||||
+/* AACPS_LINUX has access to kernel atomic ops while we don't.
|
|
||||||
+ But AACPS defaults to short_enums. */
|
|
||||||
+#define ARM_DEFAULT_ABI ARM_ABI_AAPCS_LINUX
|
|
||||||
+
|
|
||||||
+#undef TARGET_DEFAULT
|
|
||||||
+#define TARGET_DEFAULT (MASK_INTERWORK | TARGET_ENDIAN_DEFAULT)
|
|
||||||
+
|
|
||||||
+/* We do not have any MULTILIB_OPTIONS specified, so there are no
|
|
||||||
+ MULTILIB_DEFAULTS. */
|
|
||||||
+#undef MULTILIB_DEFAULTS
|
|
||||||
+
|
|
||||||
+/* Use the AAPCS type for wchar_t, override the one from config/freebsd.h. */
|
|
||||||
+#undef WCHAR_TYPE
|
|
||||||
+#define WCHAR_TYPE "unsigned int"
|
|
||||||
+
|
|
||||||
+#undef WCHAR_TYPE_SIZE
|
|
||||||
+#define WCHAR_TYPE_SIZE BITS_PER_WORD
|
|
||||||
+
|
|
||||||
+#if defined (TARGET_FREEBSD_ARMv6)
|
|
||||||
+#undef SUBTARGET_CPU_DEFAULT
|
|
||||||
+#define SUBTARGET_CPU_DEFAULT TARGET_CPU_arm1176jzs
|
|
||||||
+#else
|
|
||||||
+#undef SUBTARGET_CPU_DEFAULT
|
|
||||||
+#define SUBTARGET_CPU_DEFAULT TARGET_CPU_arm9
|
|
||||||
+#endif
|
|
||||||
+
|
|
||||||
+#define SUBTARGET_OVERRIDE_OPTIONS \
|
|
||||||
+do { \
|
|
||||||
+ if (unaligned_access) \
|
|
||||||
+ unaligned_access = 0; \
|
|
||||||
+} while (0)
|
|
||||||
+
|
|
||||||
+#undef MAX_SYNC_LIBFUNC_SIZE
|
|
||||||
+#define MAX_SYNC_LIBFUNC_SIZE 4 /* UNITS_PER_WORD not defined yet. */
|
|
||||||
+
|
|
||||||
+/* FreeBSD does its profiling differently to the Acorn compiler. We
|
|
||||||
+ don't need a word following the mcount call; and to skip it
|
|
||||||
+ requires either an assembly stub or use of fomit-frame-pointer when
|
|
||||||
+ compiling the profiling functions. Since we break Acorn CC
|
|
||||||
+ compatibility below a little more won't hurt. */
|
|
||||||
+
|
|
||||||
+#undef ARM_FUNCTION_PROFILER
|
|
||||||
+#define ARM_FUNCTION_PROFILER(STREAM,LABELNO) \
|
|
||||||
+{ \
|
|
||||||
+ asm_fprintf (STREAM, "\tmov\t%Rip, %Rlr\n"); \
|
|
||||||
+ asm_fprintf (STREAM, "\tbl\t__mcount%s\n", \
|
|
||||||
+ (TARGET_ARM && NEED_PLT_RELOC) \
|
|
||||||
+ ? "(PLT)" : ""); \
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+/* Clear the instruction cache from `BEG' to `END'. This makes a
|
|
||||||
+ call to the ARM_SYNC_ICACHE architecture specific syscall. */
|
|
||||||
+#define CLEAR_INSN_CACHE(BEG, END) \
|
|
||||||
+do \
|
|
||||||
+ { \
|
|
||||||
+ extern int sysarch (int number, void *args); \
|
|
||||||
+ struct \
|
|
||||||
+ { \
|
|
||||||
+ unsigned int addr; \
|
|
||||||
+ int len; \
|
|
||||||
+ } s; \
|
|
||||||
+ s.addr = (unsigned int) (BEG); \
|
|
||||||
+ s.len = (END) - (BEG); \
|
|
||||||
+ (void) sysarch (0, &s); \
|
|
||||||
+ } \
|
|
||||||
+while (0)
|
|
||||||
+
|
|
||||||
+/* This is how we tell the assembler that two symbols have the same value. */
|
|
||||||
+#define ASM_OUTPUT_DEF(FILE, NAME1, NAME2) \
|
|
||||||
+ do \
|
|
||||||
+ { \
|
|
||||||
+ assemble_name (FILE, NAME1); \
|
|
||||||
+ fputs (" = ", FILE); \
|
|
||||||
+ assemble_name (FILE, NAME2); \
|
|
||||||
+ fputc ('\n', FILE); \
|
|
||||||
+ } \
|
|
||||||
+ while (0)
|
|
||||||
+
|
|
||||||
+/* Add .note.GNU-stack. */
|
|
||||||
+#undef NEED_INDICATE_EXEC_STACK
|
|
||||||
+#define NEED_INDICATE_EXEC_STACK 1
|
|
||||||
+
|
|
||||||
+#define ARM_TARGET2_DWARF_FORMAT (DW_EH_PE_pcrel | DW_EH_PE_indirect)
|
|
||||||
+
|
|
||||||
|
|
||||||
Property changes on: gcc/config/arm/freebsd.h
|
|
||||||
___________________________________________________________________
|
|
||||||
Added: svn:eol-style
|
|
||||||
## -0,0 +1 ##
|
|
||||||
+native
|
|
||||||
\ No newline at end of property
|
|
||||||
Added: svn:keywords
|
|
||||||
## -0,0 +1 ##
|
|
||||||
+FreeBSD=%H
|
|
||||||
\ No newline at end of property
|
|
||||||
Added: svn:mime-type
|
|
||||||
## -0,0 +1 ##
|
|
||||||
+text/plain
|
|
||||||
\ No newline at end of property
|
|
||||||
Index: gcc/config.gcc
|
|
||||||
===================================================================
|
|
||||||
--- gcc/config.gcc (revision 218760)
|
|
||||||
+++ gcc/config.gcc (working copy)
|
|
||||||
@@ -267,7 +267,6 @@
|
|
||||||
arm*-wince-pe* \
|
|
||||||
| arm*-*-ecos-elf \
|
|
||||||
| arm*-*-elf \
|
|
||||||
- | arm*-*-freebsd* \
|
|
||||||
| arm*-*-linux* \
|
|
||||||
| arm*-*-uclinux* \
|
|
||||||
| i[34567]86-go32-* \
|
|
||||||
@@ -865,6 +864,28 @@
|
|
||||||
extra_options="${extra_options} arm/vxworks.opt"
|
|
||||||
tmake_file="${tmake_file} arm/t-arm arm/t-vxworks"
|
|
||||||
;;
|
|
||||||
+arm*-*-freebsd*) # ARM FreeBSD EABI
|
|
||||||
+ tm_file="dbxelf.h elfos.h ${fbsd_tm_file} arm/elf.h"
|
|
||||||
+ case $target in
|
|
||||||
+ arm*b-*-freebsd*)
|
|
||||||
+ tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
|
|
||||||
+ ;;
|
|
||||||
+ esac
|
|
||||||
+ tmake_file="${tmake_file} arm/t-arm arm/t-bpabi"
|
|
||||||
+ tm_file="${tm_file} arm/bpabi.h arm/freebsd.h arm/aout.h arm/arm.h"
|
|
||||||
+ case $target in
|
|
||||||
+ armv6*-*-freebsd*)
|
|
||||||
+ tm_defines="${tm_defines} TARGET_FREEBSD_ARMv6=1"
|
|
||||||
+ ;;
|
|
||||||
+ esac
|
|
||||||
+ case $target in
|
|
||||||
+ arm*hf-*-freebsd*)
|
|
||||||
+ tm_defines="${tm_defines} TARGET_FREEBSD_ARM_HARD_FLOAT=1"
|
|
||||||
+ ;;
|
|
||||||
+ esac
|
|
||||||
+ need_64bit_hwint=yes
|
|
||||||
+ with_tls=${with_tls:-gnu}
|
|
||||||
+ ;;
|
|
||||||
arm*-*-netbsdelf*)
|
|
||||||
tm_file="dbxelf.h elfos.h netbsd.h netbsd-elf.h arm/elf.h arm/aout.h ${tm_file} arm/netbsd-elf.h"
|
|
||||||
extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
|
|
||||||
Index: gcc/config.host
|
|
||||||
===================================================================
|
|
||||||
--- gcc/config.host (revision 218760)
|
|
||||||
+++ gcc/config.host (working copy)
|
|
||||||
@@ -99,7 +99,7 @@
|
|
||||||
esac
|
|
||||||
|
|
||||||
case ${host} in
|
|
||||||
- arm*-*-linux*)
|
|
||||||
+ arm*-*-freebsd* | arm*-*-linux*)
|
|
||||||
case ${target} in
|
|
||||||
arm*-*-*)
|
|
||||||
host_extra_gcc_objs="driver-arm.o"
|
|
||||||
Index: gcc/ginclude/unwind-arm-common.h
|
|
||||||
===================================================================
|
|
||||||
--- gcc/ginclude/unwind-arm-common.h (revision 218760)
|
|
||||||
+++ gcc/ginclude/unwind-arm-common.h (working copy)
|
|
||||||
@@ -82,7 +82,11 @@
|
|
||||||
|
|
||||||
struct _Unwind_Control_Block
|
|
||||||
{
|
|
||||||
+#ifdef __FreeBSD__
|
|
||||||
+ unsigned exception_class __attribute__((__mode__(__DI__)));
|
|
||||||
+#else
|
|
||||||
char exception_class[8];
|
|
||||||
+#endif
|
|
||||||
void (*exception_cleanup)(_Unwind_Reason_Code, _Unwind_Control_Block *);
|
|
||||||
/* Unwinder cache, private fields for the unwinder's use */
|
|
||||||
struct
|
|
||||||
@@ -181,7 +185,11 @@
|
|
||||||
|
|
||||||
/* Support functions for the PR. */
|
|
||||||
#define _Unwind_Exception _Unwind_Control_Block
|
|
||||||
+#ifdef __FreeBSD__
|
|
||||||
+ typedef unsigned _Unwind_Exception_Class __attribute__((__mode__(__DI__)));
|
|
||||||
+#else
|
|
||||||
typedef char _Unwind_Exception_Class[8];
|
|
||||||
+#endif
|
|
||||||
|
|
||||||
void * _Unwind_GetLanguageSpecificData (_Unwind_Context *);
|
|
||||||
_Unwind_Ptr _Unwind_GetRegionStart (_Unwind_Context *);
|
|
||||||
Index: libatomic/configure.tgt
|
|
||||||
===================================================================
|
|
||||||
--- libatomic/configure.tgt (revision 218760)
|
|
||||||
+++ libatomic/configure.tgt (working copy)
|
|
||||||
@@ -33,10 +33,15 @@
|
|
||||||
|
|
||||||
arm*)
|
|
||||||
ARCH=arm
|
|
||||||
- # ??? Detect when -march=armv7 is already enabled.
|
|
||||||
- try_ifunc=yes
|
|
||||||
- ;;
|
|
||||||
-
|
|
||||||
+ case "${target}" in
|
|
||||||
+ arm*-*-freebsd*)
|
|
||||||
+ ;;
|
|
||||||
+ *)
|
|
||||||
+ # ??? Detect when -march=armv7 is already enabled.
|
|
||||||
+ try_ifunc=yes
|
|
||||||
+ ;;
|
|
||||||
+ esac
|
|
||||||
+ ;;
|
|
||||||
sparc)
|
|
||||||
case " ${CC} ${CFLAGS} " in
|
|
||||||
*" -m64 "*)
|
|
||||||
Index: libgcc/config/arm/freebsd-atomic.c
|
|
||||||
===================================================================
|
|
||||||
--- libgcc/config/arm/freebsd-atomic.c (revision 0)
|
|
||||||
+++ libgcc/config/arm/freebsd-atomic.c (working copy)
|
|
||||||
@@ -0,0 +1,224 @@
|
|
||||||
+/* FreeBSD specific atomic operations for ARM EABI.
|
|
||||||
+ Copyright (C) 2014 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.
|
|
||||||
+
|
|
||||||
+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/>. */
|
|
||||||
+
|
|
||||||
+#include <sys/types.h>
|
|
||||||
+
|
|
||||||
+#define HIDDEN __attribute__ ((visibility ("hidden")))
|
|
||||||
+
|
|
||||||
+#define ARM_VECTORS_HIGH 0xffff0000U
|
|
||||||
+#define ARM_TP_ADDRESS (ARM_VECTORS_HIGH + 0x1000)
|
|
||||||
+#define ARM_RAS_START (ARM_TP_ADDRESS + 4)
|
|
||||||
+
|
|
||||||
+void HIDDEN
|
|
||||||
+__sync_synchronize (void)
|
|
||||||
+{
|
|
||||||
+#if defined (__ARM_ARCH_6__) || defined (__ARM_ARCH_6J__) \
|
|
||||||
+ || defined (__ARM_ARCH_6K__) || defined (__ARM_ARCH_6T2__) \
|
|
||||||
+ || defined (__ARM_ARCH_6Z__) || defined (__ARM_ARCH_6ZK__) \
|
|
||||||
+ || defined (__ARM_ARCH_7__) || defined (__ARM_ARCH_7A__)
|
|
||||||
+#if defined (__ARM_ARCH_7__) || defined (__ARM_ARCH_7A__)
|
|
||||||
+ __asm __volatile ("dmb" : : : "memory");
|
|
||||||
+#else
|
|
||||||
+ __asm __volatile ("mcr p15, 0, r0, c7, c10, 5" : : : "memory");
|
|
||||||
+#endif
|
|
||||||
+#else
|
|
||||||
+ __asm __volatile ("nop" : : : "memory");
|
|
||||||
+#endif
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+#if defined (__ARM_ARCH_6__) || defined (__ARM_ARCH_6J__) \
|
|
||||||
+ || defined (__ARM_ARCH_6K__) || defined (__ARM_ARCH_6T2__) \
|
|
||||||
+ || defined (__ARM_ARCH_6Z__) || defined (__ARM_ARCH_6ZK__) \
|
|
||||||
+ || defined (__ARM_ARCH_7__) || defined (__ARM_ARCH_7A__)
|
|
||||||
+
|
|
||||||
+/* These systems should be supported by the compiler. */
|
|
||||||
+
|
|
||||||
+#else /* __ARM_ARCH_5__ */
|
|
||||||
+
|
|
||||||
+#define SYNC_LOCK_TEST_AND_SET_N(N, TYPE, LDR, STR) \
|
|
||||||
+TYPE HIDDEN \
|
|
||||||
+__sync_lock_test_and_set_##N (TYPE *mem, TYPE val) \
|
|
||||||
+{ \
|
|
||||||
+ unsigned int old, temp, ras_start; \
|
|
||||||
+ \
|
|
||||||
+ ras_start = ARM_RAS_START; \
|
|
||||||
+ __asm volatile ( \
|
|
||||||
+ /* Set up Restartable Atomic Sequence. */ \
|
|
||||||
+ "1:" \
|
|
||||||
+ "\tadr %2, 1b\n" \
|
|
||||||
+ "\tstr %2, [%5]\n" \
|
|
||||||
+ "\tadr %2, 2f\n" \
|
|
||||||
+ "\tstr %2, [%5, #4]\n" \
|
|
||||||
+ \
|
|
||||||
+ "\t"LDR" %0, %4\n" /* Load old value. */ \
|
|
||||||
+ "\t"STR" %3, %1\n" /* Store new value. */ \
|
|
||||||
+ \
|
|
||||||
+ /* Tear down Restartable Atomic Sequence. */ \
|
|
||||||
+ "2:" \
|
|
||||||
+ "\tmov %2, #0x00000000\n" \
|
|
||||||
+ "\tstr %2, [%5]\n" \
|
|
||||||
+ "\tmov %2, #0xffffffff\n" \
|
|
||||||
+ "\tstr %2, [%5, #4]\n" \
|
|
||||||
+ : "=&r" (old), "=m" (*mem), "=&r" (temp) \
|
|
||||||
+ : "r" (val), "m" (*mem), "r" (ras_start)); \
|
|
||||||
+ return (old); \
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+#define SYNC_LOCK_RELEASE_N(N, TYPE) \
|
|
||||||
+void HIDDEN \
|
|
||||||
+__sync_lock_release_##N (TYPE *ptr) \
|
|
||||||
+{ \
|
|
||||||
+ /* All writes before this point must be seen before we release \
|
|
||||||
+ the lock itself. */ \
|
|
||||||
+ __sync_synchronize (); \
|
|
||||||
+ *ptr = 0; \
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+#define SYNC_VAL_CAS_N(N, TYPE, LDR, STREQ) \
|
|
||||||
+TYPE HIDDEN \
|
|
||||||
+__sync_val_compare_and_swap_##N (TYPE *mem, TYPE expected, \
|
|
||||||
+ TYPE desired) \
|
|
||||||
+{ \
|
|
||||||
+ unsigned int old, temp, ras_start; \
|
|
||||||
+ \
|
|
||||||
+ ras_start = ARM_RAS_START; \
|
|
||||||
+ __asm volatile ( \
|
|
||||||
+ /* Set up Restartable Atomic Sequence. */ \
|
|
||||||
+ "1:" \
|
|
||||||
+ "\tadr %2, 1b\n" \
|
|
||||||
+ "\tstr %2, [%6]\n" \
|
|
||||||
+ "\tadr %2, 2f\n" \
|
|
||||||
+ "\tstr %2, [%6, #4]\n" \
|
|
||||||
+ \
|
|
||||||
+ "\t"LDR" %0, %5\n" /* Load old value. */ \
|
|
||||||
+ "\tcmp %0, %3\n" /* Compare to expected value. */\
|
|
||||||
+ "\t"STREQ" %4, %1\n" /* Store new value. */ \
|
|
||||||
+ \
|
|
||||||
+ /* Tear down Restartable Atomic Sequence. */ \
|
|
||||||
+ "2:" \
|
|
||||||
+ "\tmov %2, #0x00000000\n" \
|
|
||||||
+ "\tstr %2, [%6]\n" \
|
|
||||||
+ "\tmov %2, #0xffffffff\n" \
|
|
||||||
+ "\tstr %2, [%6, #4]\n" \
|
|
||||||
+ : "=&r" (old), "=m" (*mem), "=&r" (temp) \
|
|
||||||
+ : "r" (expected), "r" (desired), "m" (*mem), \
|
|
||||||
+ "r" (ras_start)); \
|
|
||||||
+ return (old); \
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+typedef unsigned char bool;
|
|
||||||
+
|
|
||||||
+#define SYNC_BOOL_CAS_N(N, TYPE) \
|
|
||||||
+bool HIDDEN \
|
|
||||||
+__sync_bool_compare_and_swap_##N (TYPE *ptr, TYPE oldval, \
|
|
||||||
+ TYPE newval) \
|
|
||||||
+{ \
|
|
||||||
+ TYPE actual_oldval \
|
|
||||||
+ = __sync_val_compare_and_swap_##N (ptr, oldval, newval); \
|
|
||||||
+ return (oldval == actual_oldval); \
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+#define SYNC_FETCH_AND_OP_N(N, TYPE, LDR, STR, NAME, OP) \
|
|
||||||
+TYPE HIDDEN \
|
|
||||||
+__sync_fetch_and_##NAME##_##N (TYPE *mem, TYPE val) \
|
|
||||||
+{ \
|
|
||||||
+ unsigned int old, temp, ras_start; \
|
|
||||||
+ \
|
|
||||||
+ ras_start = ARM_RAS_START; \
|
|
||||||
+ __asm volatile ( \
|
|
||||||
+ /* Set up Restartable Atomic Sequence. */ \
|
|
||||||
+ "1:" \
|
|
||||||
+ "\tadr %2, 1b\n" \
|
|
||||||
+ "\tstr %2, [%5]\n" \
|
|
||||||
+ "\tadr %2, 2f\n" \
|
|
||||||
+ "\tstr %2, [%5, #4]\n" \
|
|
||||||
+ \
|
|
||||||
+ "\t"LDR" %0, %4\n" /* Load old value. */ \
|
|
||||||
+ "\t"OP" %2, %0, %3\n" /* Calculate new value. */ \
|
|
||||||
+ "\t"STR" %2, %1\n" /* Store new value. */ \
|
|
||||||
+ \
|
|
||||||
+ /* Tear down Restartable Atomic Sequence. */ \
|
|
||||||
+ "2:" \
|
|
||||||
+ "\tmov %2, #0x00000000\n" \
|
|
||||||
+ "\tstr %2, [%5]\n" \
|
|
||||||
+ "\tmov %2, #0xffffffff\n" \
|
|
||||||
+ "\tstr %2, [%5, #4]\n" \
|
|
||||||
+ : "=&r" (old), "=m" (*mem), "=&r" (temp) \
|
|
||||||
+ : "r" (val), "m" (*mem), "r" (ras_start)); \
|
|
||||||
+ return (old); \
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+#define SYNC_OP_AND_FETCH_N(N, TYPE, LDR, STR, NAME, OP) \
|
|
||||||
+TYPE HIDDEN \
|
|
||||||
+__sync_##NAME##_and_fetch_##N (TYPE *mem, TYPE val) \
|
|
||||||
+{ \
|
|
||||||
+ unsigned int old, temp, ras_start; \
|
|
||||||
+ \
|
|
||||||
+ ras_start = ARM_RAS_START; \
|
|
||||||
+ __asm volatile ( \
|
|
||||||
+ /* Set up Restartable Atomic Sequence. */ \
|
|
||||||
+ "1:" \
|
|
||||||
+ "\tadr %2, 1b\n" \
|
|
||||||
+ "\tstr %2, [%5]\n" \
|
|
||||||
+ "\tadr %2, 2f\n" \
|
|
||||||
+ "\tstr %2, [%5, #4]\n" \
|
|
||||||
+ \
|
|
||||||
+ "\t"LDR" %0, %4\n" /* Load old value. */ \
|
|
||||||
+ "\t"OP" %2, %0, %3\n" /* Calculate new value. */ \
|
|
||||||
+ "\t"STR" %2, %1\n" /* Store new value. */ \
|
|
||||||
+ \
|
|
||||||
+ /* Tear down Restartable Atomic Sequence. */ \
|
|
||||||
+ "2:" \
|
|
||||||
+ "\tmov %2, #0x00000000\n" \
|
|
||||||
+ "\tstr %2, [%5]\n" \
|
|
||||||
+ "\tmov %2, #0xffffffff\n" \
|
|
||||||
+ "\tstr %2, [%5, #4]\n" \
|
|
||||||
+ : "=&r" (old), "=m" (*mem), "=&r" (temp) \
|
|
||||||
+ : "r" (val), "m" (*mem), "r" (ras_start)); \
|
|
||||||
+ return (old); \
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+#define EMIT_ALL_OPS_N(N, TYPE, LDR, STR, STREQ) \
|
|
||||||
+SYNC_LOCK_TEST_AND_SET_N (N, TYPE, LDR, STR) \
|
|
||||||
+SYNC_LOCK_RELEASE_N (N, TYPE) \
|
|
||||||
+SYNC_VAL_CAS_N (N, TYPE, LDR, STREQ) \
|
|
||||||
+SYNC_BOOL_CAS_N (N, TYPE) \
|
|
||||||
+SYNC_FETCH_AND_OP_N (N, TYPE, LDR, STR, add, "add") \
|
|
||||||
+SYNC_FETCH_AND_OP_N (N, TYPE, LDR, STR, and, "and") \
|
|
||||||
+SYNC_FETCH_AND_OP_N (N, TYPE, LDR, STR, or, "orr") \
|
|
||||||
+SYNC_FETCH_AND_OP_N (N, TYPE, LDR, STR, sub, "sub") \
|
|
||||||
+SYNC_FETCH_AND_OP_N (N, TYPE, LDR, STR, xor, "eor") \
|
|
||||||
+SYNC_OP_AND_FETCH_N (N, TYPE, LDR, STR, add, "add") \
|
|
||||||
+SYNC_OP_AND_FETCH_N (N, TYPE, LDR, STR, and, "and") \
|
|
||||||
+SYNC_OP_AND_FETCH_N (N, TYPE, LDR, STR, or, "orr") \
|
|
||||||
+SYNC_OP_AND_FETCH_N (N, TYPE, LDR, STR, sub, "sub") \
|
|
||||||
+SYNC_OP_AND_FETCH_N (N, TYPE, LDR, STR, xor, "eor")
|
|
||||||
+
|
|
||||||
+
|
|
||||||
+
|
|
||||||
+EMIT_ALL_OPS_N (1, unsigned char, "ldrb", "strb", "streqb")
|
|
||||||
+EMIT_ALL_OPS_N (2, unsigned short, "ldrh", "strh", "streqh")
|
|
||||||
+EMIT_ALL_OPS_N (4, unsigned int, "ldr", "str", "streq")
|
|
||||||
+
|
|
||||||
+#endif
|
|
||||||
|
|
||||||
Property changes on: libgcc/config/arm/freebsd-atomic.c
|
|
||||||
___________________________________________________________________
|
|
||||||
Added: svn:eol-style
|
|
||||||
## -0,0 +1 ##
|
|
||||||
+native
|
|
||||||
\ No newline at end of property
|
|
||||||
Added: svn:keywords
|
|
||||||
## -0,0 +1 ##
|
|
||||||
+FreeBSD=%H
|
|
||||||
\ No newline at end of property
|
|
||||||
Added: svn:mime-type
|
|
||||||
## -0,0 +1 ##
|
|
||||||
+text/plain
|
|
||||||
\ No newline at end of property
|
|
||||||
Index: libgcc/config/arm/t-freebsd
|
|
||||||
===================================================================
|
|
||||||
--- libgcc/config/arm/t-freebsd (revision 0)
|
|
||||||
+++ libgcc/config/arm/t-freebsd (working copy)
|
|
||||||
@@ -0,0 +1,9 @@
|
|
||||||
+# Just for these, we omit the frame pointer since it makes such a big
|
|
||||||
+# difference. It is then pointless adding debugging.
|
|
||||||
+HOST_LIBGCC2_CFLAGS += -fomit-frame-pointer
|
|
||||||
+
|
|
||||||
+LIB2ADD_ST += $(srcdir)/config/arm/freebsd-atomic.c
|
|
||||||
+
|
|
||||||
+# Use a version of div0 which raises SIGFPE.
|
|
||||||
+LIB1ASMFUNCS := $(filter-out _dvmd_tls,$(LIB1ASMFUNCS)) _dvmd_lnx
|
|
||||||
+
|
|
||||||
Index: libgcc/config/arm/unwind-arm.h
|
|
||||||
===================================================================
|
|
||||||
--- libgcc/config/arm/unwind-arm.h (revision 218760)
|
|
||||||
+++ libgcc/config/arm/unwind-arm.h (working copy)
|
|
||||||
@@ -48,7 +48,8 @@
|
|
||||||
if (!tmp)
|
|
||||||
return 0;
|
|
||||||
|
|
||||||
-#if (defined(linux) && !defined(__uClinux__)) || defined(__NetBSD__)
|
|
||||||
+#if (defined(linux) && !defined(__uClinux__)) || defined(__NetBSD__) \
|
|
||||||
+ || defined(__FreeBSD__)
|
|
||||||
/* Pc-relative indirect. */
|
|
||||||
#define _GLIBCXX_OVERRIDE_TTYPE_ENCODING (DW_EH_PE_pcrel | DW_EH_PE_indirect)
|
|
||||||
tmp += ptr;
|
|
||||||
Index: libgcc/config.host
|
|
||||||
===================================================================
|
|
||||||
--- libgcc/config.host (revision 218760)
|
|
||||||
+++ libgcc/config.host (working copy)
|
|
||||||
@@ -319,6 +319,13 @@
|
|
||||||
tmake_file="$tmake_file arm/t-arm arm/t-vxworks t-softfp-sfdf t-softfp-excl arm/t-softfp t-softfp"
|
|
||||||
extra_parts="$extra_parts crti.o crtn.o"
|
|
||||||
;;
|
|
||||||
+arm*-*-freebsd*) # ARM FreeBSD EABI
|
|
||||||
+ tmake_file="${tmake_file} arm/t-arm t-fixedpoint-gnu-prefix arm/t-elf"
|
|
||||||
+ tmake_file="${tmake_file} arm/t-bpabi arm/t-freebsd t-slibgcc-libgcc"
|
|
||||||
+ tm_file="${tm_file} arm/bpabi-lib.h"
|
|
||||||
+ unwind_header=config/arm/unwind-arm.h
|
|
||||||
+ tmake_file="${tmake_file} t-softfp-sfdf t-softfp-excl arm/t-softfp t-softfp"
|
|
||||||
+ ;;
|
|
||||||
arm*-*-netbsdelf*)
|
|
||||||
tmake_file="$tmake_file arm/t-arm arm/t-netbsd t-slibgcc-gld-nover"
|
|
||||||
;;
|
|
||||||
Index: libstdc++-v3/configure.host
|
|
||||||
===================================================================
|
|
||||||
--- libstdc++-v3/configure.host (revision 218760)
|
|
||||||
+++ libstdc++-v3/configure.host (working copy)
|
|
||||||
@@ -352,6 +352,9 @@
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
;;
|
|
||||||
+ arm*-*-freebsd*)
|
|
||||||
+ port_specific_symbol_files="\$(srcdir)/../config/os/gnu-linux/arm-eabi-extra.ver"
|
|
||||||
+ ;;
|
|
||||||
powerpc*-*-darwin*)
|
|
||||||
port_specific_symbol_files="\$(srcdir)/../config/os/bsd/darwin/ppc-extra.ver"
|
|
||||||
;;
|
|
||||||
Index: libstdc++-v3/libsupc++/unwind-cxx.h
|
|
||||||
===================================================================
|
|
||||||
--- libstdc++-v3/libsupc++/unwind-cxx.h (revision 218760)
|
|
||||||
+++ libstdc++-v3/libsupc++/unwind-cxx.h (working copy)
|
|
||||||
@@ -230,7 +230,7 @@
|
|
||||||
return reinterpret_cast<__cxa_dependent_exception *>(exc + 1) - 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
-#ifdef __ARM_EABI_UNWINDER__
|
|
||||||
+#if defined(__ARM_EABI_UNWINDER__) && !defined(__FreeBSD__)
|
|
||||||
static inline bool
|
|
||||||
__is_gxx_exception_class(_Unwind_Exception_Class c)
|
|
||||||
{
|
|
||||||
@@ -304,13 +304,7 @@
|
|
||||||
c[6] = 'R';
|
|
||||||
c[7] = '\0';
|
|
||||||
}
|
|
||||||
-
|
|
||||||
-static inline void*
|
|
||||||
-__gxx_caught_object(_Unwind_Exception* eo)
|
|
||||||
-{
|
|
||||||
- return (void*)eo->barrier_cache.bitpattern[0];
|
|
||||||
-}
|
|
||||||
-#else // !__ARM_EABI_UNWINDER__
|
|
||||||
+#else // !__ARM_EABI_UNWINDER__ || __FreeBSD__
|
|
||||||
// This is the primary exception class we report -- "GNUCC++\0".
|
|
||||||
const _Unwind_Exception_Class __gxx_primary_exception_class
|
|
||||||
= ((((((((_Unwind_Exception_Class) 'G'
|
|
||||||
@@ -334,6 +328,16 @@
|
|
||||||
<< 8 | (_Unwind_Exception_Class) '+')
|
|
||||||
<< 8 | (_Unwind_Exception_Class) '\x01');
|
|
||||||
|
|
||||||
+const _Unwind_Exception_Class __gxx_forced_unwind_class
|
|
||||||
+= ((((((((_Unwind_Exception_Class) 'G'
|
|
||||||
+ << 8 | (_Unwind_Exception_Class) 'N')
|
|
||||||
+ << 8 | (_Unwind_Exception_Class) 'U')
|
|
||||||
+ << 8 | (_Unwind_Exception_Class) 'C')
|
|
||||||
+ << 8 | (_Unwind_Exception_Class) 'F')
|
|
||||||
+ << 8 | (_Unwind_Exception_Class) 'O')
|
|
||||||
+ << 8 | (_Unwind_Exception_Class) 'R')
|
|
||||||
+ << 8 | (_Unwind_Exception_Class) '\0');
|
|
||||||
+
|
|
||||||
static inline bool
|
|
||||||
__is_gxx_exception_class(_Unwind_Exception_Class c)
|
|
||||||
{
|
|
||||||
@@ -341,6 +345,12 @@
|
|
||||||
|| c == __gxx_dependent_exception_class;
|
|
||||||
}
|
|
||||||
|
|
||||||
+static inline bool
|
|
||||||
+__is_gxx_forced_unwind_class(_Unwind_Exception_Class c)
|
|
||||||
+{
|
|
||||||
+ return c == __gxx_forced_unwind_class;
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
// Only checks for primary or dependent, but not that it is a C++ exception at
|
|
||||||
// all.
|
|
||||||
static inline bool
|
|
||||||
@@ -352,7 +362,18 @@
|
|
||||||
#define __GXX_INIT_PRIMARY_EXCEPTION_CLASS(c) c = __gxx_primary_exception_class
|
|
||||||
#define __GXX_INIT_DEPENDENT_EXCEPTION_CLASS(c) \
|
|
||||||
c = __gxx_dependent_exception_class
|
|
||||||
+#define __GXX_INIT_FORCED_UNWIND_CLASS(c) c = __gxx_forced_unwind_class
|
|
||||||
+#endif // __ARM_EABI_UNWINDER__ && !__FreeBSD__
|
|
||||||
|
|
||||||
+#ifdef __ARM_EABI_UNWINDER__
|
|
||||||
+static inline void*
|
|
||||||
+__gxx_caught_object(_Unwind_Exception* eo)
|
|
||||||
+{
|
|
||||||
+ return (void*)eo->barrier_cache.bitpattern[0];
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+#else // !__ARM_EABI_UNWINDER__
|
|
||||||
+
|
|
||||||
// GNU C++ personality routine, Version 0.
|
|
||||||
extern "C" _Unwind_Reason_Code __gxx_personality_v0
|
|
||||||
(int, _Unwind_Action, _Unwind_Exception_Class,
|
|
@ -1,18 +0,0 @@
|
|||||||
--- UTC
|
|
||||||
--- gcc/config.gcc.orig 2016-05-25 22:53:15.930993000 +0200
|
|
||||||
+++ gcc/config.gcc 2016-05-25 22:54:06.087115000 +0200
|
|
||||||
@@ -1026,11 +1026,9 @@
|
|
||||||
case $target in
|
|
||||||
armv6*-*-freebsd*)
|
|
||||||
tm_defines="${tm_defines} TARGET_FREEBSD_ARMv6=1"
|
|
||||||
- ;;
|
|
||||||
- esac
|
|
||||||
- case $target in
|
|
||||||
- arm*hf-*-freebsd*)
|
|
||||||
- tm_defines="${tm_defines} TARGET_FREEBSD_ARM_HARD_FLOAT=1"
|
|
||||||
+ if test $fbsd_major -ge 11; then
|
|
||||||
+ tm_defines="${tm_defines} TARGET_FREEBSD_ARM_HARD_FLOAT=1"
|
|
||||||
+ fi
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
with_tls=${with_tls:-gnu}
|
|
@ -1,10 +0,0 @@
|
|||||||
--- gcc/system.h.orig 2014-01-02 22:23:26 UTC
|
|
||||||
+++ gcc/system.h
|
|
||||||
@@ -203,6 +203,7 @@ extern int errno;
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
|
||||||
# include <cstring>
|
|
||||||
+# include <new>
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* Some of glibc's string inlines cause warnings. Plus we'd rather
|
|
@ -1,25 +0,0 @@
|
|||||||
At the moment the -m16 option only passes the "--32" parameter to the
|
|
||||||
assembler on glibc OSes, while on other OSes the assembler is called
|
|
||||||
without any specific flag. This is wrong and causes the assembler to
|
|
||||||
fail. Fix it by adding support for the -m16 option to x86-64.h.
|
|
||||||
|
|
||||||
2016-07-06 Roger Pau Monné <roger.pau@citrix.com>
|
|
||||||
|
|
||||||
* x86-64.h: append --32 to the assembler options when -m16 is used
|
|
||||||
even on non-glibc OSes.
|
|
||||||
|
|
||||||
This should be backported to all stable branches up to 4.9 (when -m16 was
|
|
||||||
introduced).
|
|
||||||
|
|
||||||
--- UTC
|
|
||||||
--- gcc/config/i386/x86-64.h
|
|
||||||
+++ gcc/config/i386/x86-64.h
|
|
||||||
@@ -49,7 +49,7 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
|
|
||||||
#define WCHAR_TYPE_SIZE 32
|
|
||||||
|
|
||||||
#undef ASM_SPEC
|
|
||||||
-#define ASM_SPEC "%{m32:--32} %{m64:--64} %{mx32:--x32}"
|
|
||||||
+#define ASM_SPEC "%{m16|m32:--32} %{m64:--64} %{mx32:--x32}"
|
|
||||||
|
|
||||||
#undef ASM_OUTPUT_ALIGNED_BSS
|
|
||||||
#define ASM_OUTPUT_ALIGNED_BSS(FILE, DECL, NAME, SIZE, ALIGN) \
|
|
@ -1,7 +0,0 @@
|
|||||||
To ensure binaries built with this toolchain find appropriate versions
|
|
||||||
of the necessary run-time libraries, you may want to link using
|
|
||||||
|
|
||||||
-Wl,-rpath=%%TARGLIB%%
|
|
||||||
|
|
||||||
For ports leveraging USE_GCC, USES=compiler, or USES=fortran this happens
|
|
||||||
transparently.
|
|
@ -1,7 +0,0 @@
|
|||||||
GCC, the GNU Compiler Collection, supports a number of languages. This
|
|
||||||
port installs the C, C++, and Fortran front ends as gcc49, g++49, and
|
|
||||||
gfortran49, respectively.
|
|
||||||
|
|
||||||
WWW: https://gcc.gnu.org
|
|
||||||
|
|
||||||
Gerald Pfeifer <gerald@FreeBSD.org>
|
|
@ -1,28 +0,0 @@
|
|||||||
bin/%%GNU_HOST%%-c++%%SUFFIX%%
|
|
||||||
bin/%%GNU_HOST%%-g++%%SUFFIX%%
|
|
||||||
bin/%%GNU_HOST%%-gcc%%SUFFIX%%
|
|
||||||
bin/%%GNU_HOST%%-gcc-%%GCC_VERSION%%
|
|
||||||
bin/%%GNU_HOST%%-gcc-ar%%SUFFIX%%
|
|
||||||
bin/%%GNU_HOST%%-gcc-nm%%SUFFIX%%
|
|
||||||
bin/%%GNU_HOST%%-gcc-ranlib%%SUFFIX%%
|
|
||||||
bin/%%GNU_HOST%%-gfortran%%SUFFIX%%
|
|
||||||
bin/c++%%SUFFIX%%
|
|
||||||
bin/cpp%%SUFFIX%%
|
|
||||||
bin/g++%%SUFFIX%%
|
|
||||||
bin/gcc%%SUFFIX%%
|
|
||||||
bin/gcc-ar%%SUFFIX%%
|
|
||||||
bin/gcc-nm%%SUFFIX%%
|
|
||||||
bin/gcc-ranlib%%SUFFIX%%
|
|
||||||
bin/gcov%%SUFFIX%%
|
|
||||||
bin/gfortran%%SUFFIX%%
|
|
||||||
man/man1/cpp%%SUFFIX%%.1.gz
|
|
||||||
man/man1/g++%%SUFFIX%%.1.gz
|
|
||||||
man/man1/gcc%%SUFFIX%%.1.gz
|
|
||||||
man/man1/gcov%%SUFFIX%%.1.gz
|
|
||||||
man/man1/gfortran%%SUFFIX%%.1.gz
|
|
||||||
share/gcc-%%GCC_VERSION%%/python/libstdcxx/__init__.py
|
|
||||||
share/gcc-%%GCC_VERSION%%/python/libstdcxx/v6/__init__.py
|
|
||||||
share/gcc-%%GCC_VERSION%%/python/libstdcxx/v6/printers.py
|
|
||||||
@postexec if type ccache-update-links >/dev/null 2>&1; then ccache-update-links -v; fi
|
|
||||||
@postunexec if type ccache-update-links >/dev/null 2>&1; then ccache-update-links -v; fi
|
|
||||||
@comment Insert PLIST.lib here
|
|
Loading…
Reference in New Issue
Block a user