Index: config.gcc =================================================================== --- config.gcc (revision 188463) +++ config.gcc (working copy) @@ -245,18 +245,7 @@ md_file= # Obsolete configurations. case ${target} in - # Avoid special cases that are not obsolete - arm*-*-*eabi* \ - ) - ;; - arm*-*-ecos-elf \ - | arm*-*-elf \ - | arm*-*-freebsd* \ - | arm*-*-linux* \ - | arm*-*-rtems* \ - | arm*-*-uclinux* \ - | arm*-wince-pe* \ - | score-* \ + score-* \ ) if test "x$enable_obsolete" != xyes; then echo "*** Configuration ${target} is obsolete." >&2 @@ -271,7 +260,18 @@ esac # it would otherwise be caught by a more permissive pattern. The list # should be in alphabetical order. case ${target} in - i[34567]86-go32-* \ + # Avoid special cases that are not obsolete + arm*-*-*eabi* \ + ) + ;; + arm*-wince-pe* \ + | arm*-*-ecos-elf \ + | arm*-*-elf \ + | arm*-*-freebsd* \ + | arm*-*-linux* \ + | arm*-*-rtems* \ + | arm*-*-uclinux* \ + | i[34567]86-go32-* \ | i[34567]86-*-go32* \ | m68k-*-uclinuxoldabi* \ | mips64orion*-*-rtems* \ @@ -818,66 +818,44 @@ arm-wrs-vxworks) extra_options="${extra_options} arm/vxworks.opt" tmake_file="${tmake_file} arm/t-arm arm/t-vxworks" ;; -arm*-*-freebsd*) - tm_file="dbxelf.h elfos.h ${fbsd_tm_file} arm/elf.h arm/aout.h arm/freebsd.h arm/arm.h" - tmake_file="${tmake_file} arm/t-arm arm/t-strongarm-elf" - ;; arm*-*-netbsdelf*) tm_file="dbxelf.h elfos.h netbsd.h netbsd-elf.h arm/elf.h arm/aout.h arm/arm.h arm/netbsd-elf.h" extra_options="${extra_options} netbsd.opt netbsd-elf.opt" tmake_file="${tmake_file} arm/t-arm" ;; -arm*-*-linux*) # ARM GNU/Linux with ELF +arm*-*-linux-*eabi*) # ARM GNU/Linux with ELF tm_file="dbxelf.h elfos.h gnu-user.h linux.h linux-android.h glibc-stdint.h arm/elf.h arm/linux-gas.h arm/linux-elf.h" case $target in arm*b-*-linux*) - tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1" - ;; + tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1" + ;; esac - tmake_file="${tmake_file} arm/t-arm" + tmake_file="${tmake_file} arm/t-arm arm/t-arm-elf arm/t-bpabi arm/t-linux-eabi" + tm_file="$tm_file arm/bpabi.h arm/linux-eabi.h arm/aout.h arm/arm.h" + # Define multilib configuration for arm-linux-androideabi. case ${target} in - arm*-*-linux-*eabi) - tm_file="$tm_file arm/bpabi.h arm/linux-eabi.h" - tmake_file="$tmake_file arm/t-arm-elf arm/t-bpabi arm/t-linux-eabi" - # Define multilib configuration for arm-linux-androideabi. - case ${target} in - *-androideabi) - tmake_file="$tmake_file arm/t-linux-androideabi" - ;; - esac - # The BPABI long long divmod functions return a 128-bit value in - # registers r0-r3. Correctly modeling that requires the use of - # TImode. - need_64bit_hwint=yes - # The EABI requires the use of __cxa_atexit. - default_use_cxa_atexit=yes - ;; - *) - tmake_file="$tmake_file arm/t-linux" + *-androideabi) + tmake_file="$tmake_file arm/t-linux-androideabi" ;; esac + # The BPABI long long divmod functions return a 128-bit value in + # registers r0-r3. Correctly modeling that requires the use of + # TImode. + need_64bit_hwint=yes + # The EABI requires the use of __cxa_atexit. + default_use_cxa_atexit=yes with_tls=${with_tls:-gnu} - tm_file="$tm_file arm/aout.h arm/arm.h" ;; -arm*-*-uclinux*) # ARM ucLinux +arm*-*-uclinux*eabi*) # ARM ucLinux tm_file="dbxelf.h elfos.h arm/unknown-elf.h arm/elf.h arm/linux-gas.h arm/uclinux-elf.h glibc-stdint.h" - tmake_file="arm/t-arm arm/t-arm-elf" - case ${target} in - arm*-*-uclinux*eabi) - tm_file="$tm_file arm/bpabi.h arm/uclinux-eabi.h" - tmake_file="$tmake_file arm/t-bpabi" - # The BPABI long long divmod functions return a 128-bit value in - # registers r0-r3. Correctly modeling that requires the use of - # TImode. - need_64bit_hwint=yes - # The EABI requires the use of __cxa_atexit. - default_use_cxa_atexit=yes - esac - tm_file="$tm_file arm/aout.h arm/arm.h" - ;; -arm*-*-ecos-elf) - tm_file="dbxelf.h elfos.h newlib-stdint.h arm/unknown-elf.h arm/elf.h arm/aout.h arm/arm.h arm/ecos-elf.h" - tmake_file="arm/t-arm arm/t-arm-elf" + tmake_file="arm/t-arm arm/t-arm-elf arm/t-bpabi" + tm_file="$tm_file arm/bpabi.h arm/uclinux-eabi.h arm/aout.h arm/arm.h" + # The BPABI long long divmod functions return a 128-bit value in + # registers r0-r3. Correctly modeling that requires the use of + # TImode. + need_64bit_hwint=yes + # The EABI requires the use of __cxa_atexit. + default_use_cxa_atexit=yes ;; arm*-*-eabi* | arm*-*-symbianelf* | arm*-*-rtemseabi*) # The BPABI long long divmod functions return a 128-bit value in @@ -906,20 +884,6 @@ arm*-*-eabi* | arm*-*-symbianelf* | arm* esac tm_file="${tm_file} arm/aout.h arm/arm.h" ;; -arm*-*-rtems*) - tm_file="dbxelf.h elfos.h arm/unknown-elf.h arm/elf.h arm/aout.h arm/arm.h arm/rtems-elf.h rtems.h newlib-stdint.h" - tmake_file="arm/t-arm arm/t-arm-elf t-rtems arm/t-rtems" - ;; -arm*-*-elf) - tm_file="dbxelf.h elfos.h newlib-stdint.h arm/unknown-elf.h arm/elf.h arm/aout.h arm/arm.h" - tmake_file="arm/t-arm arm/t-arm-elf" - ;; -arm*-wince-pe*) - tm_file="arm/semi.h arm/aout.h arm/arm.h arm/coff.h dbxcoff.h arm/pe.h arm/wince-pe.h" - tmake_file="arm/t-arm arm/t-wince-pe" - extra_options="${extra_options} arm/pe.opt" - extra_objs="pe.o" - ;; avr-*-rtems*) tm_file="elfos.h avr/elf.h avr/avr.h dbxelf.h avr/rtems.h rtems.h newlib-stdint.h" tmake_file="avr/t-avr avr/t-multilib t-rtems avr/t-rtems" @@ -3048,14 +3012,6 @@ case "${target}" in | fpv4-sp-d16 | neon-vfpv4) # OK ;; - fpa | fpe2 | fpe3 | maverick) - if test "x$enable_obsolete" != xyes; then - echo "*** Configuration option --with-fpu=${with_fpu} is obsolete." >&2 - echo "*** Specify --enable-obsolete to build it anyway." >&2 - echo "*** Support will be REMOVED in the next major release of GCC." >&2 - exit 1 - fi - ;; *) echo "Unknown fpu used in --with-fpu=$with_fpu" 2>&1 exit 1 Index: config/arm/ecos-elf.h =================================================================== --- config/arm/ecos-elf.h (revision 188463) +++ config/arm/ecos-elf.h (working copy) @@ -1,24 +0,0 @@ -/* Definitions for ecos based ARM systems using ELF - Copyright (C) 1998, 2001, 2007, 2011 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 - . */ - -/* Run-time Target Specification. */ -#define HAS_INIT_SECTION - -#undef INVOKE_main - Index: config/arm/t-strongarm-elf =================================================================== --- config/arm/t-strongarm-elf (revision 188463) +++ config/arm/t-strongarm-elf (working copy) @@ -1,23 +0,0 @@ -# Copyright (C) 2000, 2001, 2006, 2008, 2009, 2011 -# 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 -# . - -MULTILIB_OPTIONS = mlittle-endian/mbig-endian mfloat-abi=hard/mfloat-abi=soft -MULTILIB_DIRNAMES = le be fpu soft -MULTILIB_EXCEPTIONS = -MULTILIB_MATCHES = mbig-endian=mbe mlittle-endian=mle Index: config/arm/rtems-elf.h =================================================================== --- config/arm/rtems-elf.h (revision 188463) +++ config/arm/rtems-elf.h (working copy) @@ -1,44 +0,0 @@ -/* Definitions for RTEMS based ARM systems using ELF - Copyright (C) 2000, 2002, 2005, 2007, 2008, 2009, 2011 - 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 - . */ - -/* Run-time Target Specification. */ - -#define HAS_INIT_SECTION - -#define TARGET_OS_CPP_BUILTINS() \ - do { \ - builtin_define ("__rtems__"); \ - builtin_define ("__USE_INIT_FINI__"); \ - builtin_assert ("system=rtems"); \ - } while (0) - -/* - * The default in gcc now is soft-float, but gcc misses it to - * pass it to the assembler. - */ -#undef SUBTARGET_EXTRA_ASM_SPEC -#define SUBTARGET_EXTRA_ASM_SPEC "\ - %{!mfloat-abi=hard: %{!mfpu=vfp: %{!mfloat-abi=soft:-mfpu=softfpa}}}" - -/* - * The default includes --start-group and --end-group which conflicts - * with how this used to be defined. - */ -#undef LINK_GCC_C_SEQUENCE_SPEC Index: config/arm/wince-pe.h =================================================================== --- config/arm/wince-pe.h (revision 188463) +++ config/arm/wince-pe.h (working copy) @@ -1,26 +0,0 @@ -/* Definitions of target machine for GNU compiler, for ARM with WINCE-PE obj format. - Copyright (C) 2003, 2004, 2005, 2007, 2011 Free Software Foundation, Inc. - Contributed by Nick Clifton - - 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 - . */ - -#undef TARGET_DEFAULT -#define TARGET_DEFAULT (MASK_NOP_FUN_DLLIMPORT) - -#undef MULTILIB_DEFAULTS -#define MULTILIB_DEFAULTS \ - { "marm", "mlittle-endian", "mfloat-abi=soft", "mno-thumb-interwork" } Index: config/arm/t-rtems =================================================================== --- config/arm/t-rtems (revision 188463) +++ config/arm/t-rtems (working copy) @@ -1,45 +0,0 @@ -# Custom rtems multilibs - -MULTILIB_OPTIONS = marm/mthumb -MULTILIB_DIRNAMES = arm thumb -MULTILIB_EXCEPTIONS = -MULTILIB_MATCHES = marm=mno-thumb - -MULTILIB_OPTIONS += mfloat-abi=hard/mfloat-abi=softfp -MULTILIB_DIRNAMES += fpu softfp -MULTILIB_EXCEPTIONS += *mthumb*/*mfloat-abi=hard* *mthumb*/*mfloat-abi=softfp* -MULTILIB_MATCHES = - -MULTILIB_OPTIONS += mfpu=vfp -MULTILIB_DIRNAMES += vfp -MULTILIB_EXCEPTIONS += *mfloat-abi=hard*/*mfpu=vfp* *marm*/*mfloat-abi=softfp*/*mfpu=fpa* -MULTILIB_EXCLUSIONS += !mthumb/mfloat-abi=softfp/!mfpu=vfp - -# default float model is fpa, so don't create a explicit copy of it -MULTILIB_EXCEPTIONS += *marm*/*mfpa* - -# permutations of the options which are useful (+) or make no sense (-), -# defaults are in brackets: -# + (arm/soft/fpa) -# + (arm/soft)/vfp -# - (arm)/softfp(/fpa) -# + (arm)/softfp/vfp -# + (arm)/float-abi=hard(/fpa) -# - (arm)/float-abi=hard/vfp -# + thumb/(soft/fpa) -# + thumb/(soft/)vfp -# - thumb/softfp/fpa -# - thumb/softfp/vfp -# - thumb/float-abi=hard/fpa -# - thumb/float-abi=hard/vfp - -# subdirs to be used for multilibs and their respective options: -#/thumb/vfp -> thumb/soft/vfp -#/thumb/fpa -> thumb/soft/fpa -#/thumb -> thumb/soft/fpa -#/vfp -> arm/soft/vfp -#/softfp/vfp -> arm/softfp/cfp -#/fpu/fpa -> arm/hard/fpa -#/fpu -> arm/hard/fpa -#/fpa -> arm/soft/fpa -#. -> arm/soft/fpa Index: config/arm/pe.opt =================================================================== --- config/arm/pe.opt (revision 188463) +++ config/arm/pe.opt (working copy) @@ -1,23 +0,0 @@ -; PE-specific options for the ARM port - -; Copyright (C) 2005, 2007 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 -; . - -mnop-fun-dllimport -Target Report Mask(NOP_FUN_DLLIMPORT) -Ignore dllimport attribute for functions Index: config/arm/pe.c =================================================================== --- config/arm/pe.c (revision 188463) +++ config/arm/pe.c (working copy) @@ -1,257 +0,0 @@ -/* Routines for GCC for ARM/pe. - Copyright (C) 1995, 1996, 2000, 2001, 2002, 2004, 2005, 2007, 2008, 2010 - Free Software Foundation, Inc. - Contributed by Doug Evans (dje@cygnus.com). - - 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 - . */ - -#include "config.h" -#include "system.h" -#include "coretypes.h" -#include "tm.h" -#include "rtl.h" -#include "output.h" -#include "flags.h" -#include "tree.h" -#include "expr.h" -#include "diagnostic-core.h" -#include "tm_p.h" - -extern int current_function_anonymous_args; - - -/* Return nonzero if DECL is a dllexport'd object. */ - -tree current_class_type; /* FIXME */ - -int -arm_dllexport_p (tree decl) -{ - tree exp; - - if (TREE_CODE (decl) != VAR_DECL - && TREE_CODE (decl) != FUNCTION_DECL) - return 0; - exp = lookup_attribute ("dllexport", DECL_ATTRIBUTES (decl)); - if (exp) - return 1; - - return 0; -} - -/* Return nonzero if DECL is a dllimport'd object. */ - -int -arm_dllimport_p (tree decl) -{ - tree imp; - - if (TREE_CODE (decl) == FUNCTION_DECL - && TARGET_NOP_FUN_DLLIMPORT) - return 0; - - if (TREE_CODE (decl) != VAR_DECL - && TREE_CODE (decl) != FUNCTION_DECL) - return 0; - imp = lookup_attribute ("dllimport", DECL_ATTRIBUTES (decl)); - if (imp) - return 1; - - return 0; -} - -/* Return nonzero if SYMBOL is marked as being dllexport'd. */ - -int -arm_dllexport_name_p (const char *symbol) -{ - return symbol[0] == ARM_PE_FLAG_CHAR && symbol[1] == 'e' && symbol[2] == '.'; -} - -/* Return nonzero if SYMBOL is marked as being dllimport'd. */ - -int -arm_dllimport_name_p (const char *symbol) -{ - return symbol[0] == ARM_PE_FLAG_CHAR && symbol[1] == 'i' && symbol[2] == '.'; -} - -/* Mark a DECL as being dllexport'd. - Note that we override the previous setting (e.g.: dllimport). */ - -void -arm_mark_dllexport (tree decl) -{ - const char * oldname; - char * newname; - rtx rtlname; - tree idp; - - rtlname = XEXP (DECL_RTL (decl), 0); - if (GET_CODE (rtlname) == MEM) - rtlname = XEXP (rtlname, 0); - gcc_assert (GET_CODE (rtlname) == SYMBOL_REF); - oldname = XSTR (rtlname, 0); - - if (arm_dllimport_name_p (oldname)) - oldname += 9; - else if (arm_dllexport_name_p (oldname)) - return; /* already done */ - - newname = XALLOCAVEC (char, strlen (oldname) + 4); - sprintf (newname, "%ce.%s", ARM_PE_FLAG_CHAR, oldname); - - /* We pass newname through get_identifier to ensure it has a unique - address. RTL processing can sometimes peek inside the symbol ref - and compare the string's addresses to see if two symbols are - identical. */ - /* ??? At least I think that's why we do this. */ - idp = get_identifier (newname); - - XEXP (DECL_RTL (decl), 0) = - gen_rtx_SYMBOL_REF (Pmode, IDENTIFIER_POINTER (idp)); -} - -/* Mark a DECL as being dllimport'd. */ - -void -arm_mark_dllimport (tree decl) -{ - const char * oldname; - char * newname; - tree idp; - rtx rtlname, newrtl; - - rtlname = XEXP (DECL_RTL (decl), 0); - - if (GET_CODE (rtlname) == MEM) - rtlname = XEXP (rtlname, 0); - gcc_assert (GET_CODE (rtlname) == SYMBOL_REF); - oldname = XSTR (rtlname, 0); - - gcc_assert (!arm_dllexport_name_p (oldname)); - if (arm_dllimport_name_p (oldname)) - return; /* already done */ - - /* ??? One can well ask why we're making these checks here, - and that would be a good question. */ - - /* Imported variables can't be initialized. */ - if (TREE_CODE (decl) == VAR_DECL - && !DECL_VIRTUAL_P (decl) - && DECL_INITIAL (decl)) - { - error ("initialized variable %q+D is marked dllimport", decl); - return; - } - /* Nor can they be static. */ - if (TREE_CODE (decl) == VAR_DECL - /* ??? Is this test for vtables needed? */ - && !DECL_VIRTUAL_P (decl) - && 0 /*???*/) - { - error ("static variable %q+D is marked dllimport", decl); - return; - } - - /* `extern' needn't be specified with dllimport. - Specify `extern' now and hope for the best. Sigh. */ - if (TREE_CODE (decl) == VAR_DECL - /* ??? Is this test for vtables needed? */ - && !DECL_VIRTUAL_P (decl)) - { - DECL_EXTERNAL (decl) = 1; - TREE_PUBLIC (decl) = 1; - } - - newname = XALLOCAVEC (char, strlen (oldname) + 11); - sprintf (newname, "%ci.__imp_%s", ARM_PE_FLAG_CHAR, oldname); - - /* We pass newname through get_identifier to ensure it has a unique - address. RTL processing can sometimes peek inside the symbol ref - and compare the string's addresses to see if two symbols are - identical. */ - /* ??? At least I think that's why we do this. */ - idp = get_identifier (newname); - - newrtl = gen_rtx_MEM (Pmode, - gen_rtx_SYMBOL_REF (Pmode, - IDENTIFIER_POINTER (idp))); - XEXP (DECL_RTL (decl), 0) = newrtl; -} - -void -arm_pe_encode_section_info (tree decl, rtx rtl, int first ATTRIBUTE_UNUSED) -{ - /* This bit is copied from arm_encode_section_info. */ - if (optimize > 0 && TREE_CONSTANT (decl)) - SYMBOL_REF_FLAG (XEXP (rtl, 0)) = 1; - - /* Mark the decl so we can tell from the rtl whether the object is - dllexport'd or dllimport'd. */ - if (arm_dllexport_p (decl)) - arm_mark_dllexport (decl); - else if (arm_dllimport_p (decl)) - arm_mark_dllimport (decl); - /* It might be that DECL has already been marked as dllimport, but a - subsequent definition nullified that. The attribute is gone but - DECL_RTL still has @i.__imp_foo. We need to remove that. */ - else if ((TREE_CODE (decl) == FUNCTION_DECL - || TREE_CODE (decl) == VAR_DECL) - && DECL_RTL (decl) != NULL_RTX - && GET_CODE (DECL_RTL (decl)) == MEM - && GET_CODE (XEXP (DECL_RTL (decl), 0)) == MEM - && GET_CODE (XEXP (XEXP (DECL_RTL (decl), 0), 0)) == SYMBOL_REF - && arm_dllimport_name_p (XSTR (XEXP (XEXP (DECL_RTL (decl), 0), 0), 0))) - { - const char *oldname = XSTR (XEXP (XEXP (DECL_RTL (decl), 0), 0), 0); - tree idp = get_identifier (oldname + 9); - rtx newrtl = gen_rtx_SYMBOL_REF (Pmode, IDENTIFIER_POINTER (idp)); - - XEXP (DECL_RTL (decl), 0) = newrtl; - - /* We previously set TREE_PUBLIC and DECL_EXTERNAL. - ??? We leave these alone for now. */ - } -} - -void -arm_pe_unique_section (tree decl, int reloc) -{ - int len; - const char * name; - char * string; - const char * prefix; - - name = IDENTIFIER_POINTER (DECL_ASSEMBLER_NAME (decl)); - name = arm_strip_name_encoding (name); - - /* The object is put in, for example, section .text$foo. - The linker will then ultimately place them in .text - (everything from the $ on is stripped). */ - if (TREE_CODE (decl) == FUNCTION_DECL) - prefix = ".text$"; - else if (decl_readonly_section (decl, reloc)) - prefix = ".rdata$"; - else - prefix = ".data$"; - len = strlen (name) + strlen (prefix); - string = XALLOCAVEC (char, len + 1); - sprintf (string, "%s%s", prefix, name); - - DECL_SECTION_NAME (decl) = build_string (len, string); -} Index: config/arm/pe.h =================================================================== --- config/arm/pe.h (revision 188463) +++ config/arm/pe.h (working copy) @@ -1,146 +0,0 @@ -/* Definitions of target machine for GNU compiler, for ARM with PE obj format. - Copyright (C) 1995, 1996, 1999, 2000, 2002, 2003, 2004, 2005, 2007, 2011 - Free Software Foundation, Inc. - Contributed by Doug Evans (dje@cygnus.com). - - 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 - . */ - -/* Enable PE specific code. */ -#define ARM_PE 1 - -#define ARM_PE_FLAG_CHAR '@' - -/* Ensure that @x. will be stripped from the function name. */ -#undef SUBTARGET_NAME_ENCODING_LENGTHS -#define SUBTARGET_NAME_ENCODING_LENGTHS \ - case ARM_PE_FLAG_CHAR: return 3; - -#undef USER_LABEL_PREFIX -#define USER_LABEL_PREFIX "_" - - -/* Run-time Target Specification. */ - -/* Get tree.c to declare a target-specific specialization of - merge_decl_attributes. */ -#define TARGET_DLLIMPORT_DECL_ATTRIBUTES 1 - -#undef SUBTARGET_CPP_SPEC -#define SUBTARGET_CPP_SPEC "-D__pe__" - -#undef TARGET_DEFAULT -#define TARGET_DEFAULT (MASK_NOP_FUN_DLLIMPORT) - -#undef MULTILIB_DEFAULTS -#define MULTILIB_DEFAULTS \ - { "marm", "mlittle-endian", "mfloat-abi=soft", "mno-thumb-interwork" } - -#undef WCHAR_TYPE -#define WCHAR_TYPE "short unsigned int" -#undef WCHAR_TYPE_SIZE -#define WCHAR_TYPE_SIZE 16 - -/* r11 is fixed. */ -#undef SUBTARGET_CONDITIONAL_REGISTER_USAGE -#define SUBTARGET_CONDITIONAL_REGISTER_USAGE \ - fixed_regs [11] = 1; \ - call_used_regs [11] = 1; - - -/* PE/COFF uses explicit import from shared libraries. */ -#define MULTIPLE_SYMBOL_SPACES 1 - -#define TARGET_ASM_UNIQUE_SECTION arm_pe_unique_section -#define TARGET_ASM_FUNCTION_RODATA_SECTION default_no_function_rodata_section - -#define SUPPORTS_ONE_ONLY 1 - -/* Switch into a generic section. */ -#undef TARGET_ASM_NAMED_SECTION -#define TARGET_ASM_NAMED_SECTION default_pe_asm_named_section - -#define TARGET_ASM_FILE_START_FILE_DIRECTIVE true - -/* Output a reference to a label. */ -#undef ASM_OUTPUT_LABELREF -#define ASM_OUTPUT_LABELREF(STREAM, NAME) \ - asm_fprintf (STREAM, "%U%s", arm_strip_name_encoding (NAME)) - -/* Output a function definition label. */ -#undef ASM_DECLARE_FUNCTION_NAME -#define ASM_DECLARE_FUNCTION_NAME(STREAM, NAME, DECL) \ - do \ - { \ - if (arm_dllexport_name_p (NAME)) \ - { \ - drectve_section (); \ - fprintf (STREAM, "\t.ascii \" -export:%s\"\n", \ - arm_strip_name_encoding (NAME)); \ - switch_to_section (function_section (DECL)); \ - } \ - ARM_DECLARE_FUNCTION_NAME (STREAM, NAME, DECL); \ - if (TARGET_THUMB) \ - fprintf (STREAM, "\t.code 16\n"); \ - ASM_OUTPUT_LABEL (STREAM, NAME); \ - } \ - while (0) - -/* Output a common block. */ -#undef ASM_OUTPUT_COMMON -#define ASM_OUTPUT_COMMON(STREAM, NAME, SIZE, ROUNDED) \ - do \ - { \ - if (arm_dllexport_name_p (NAME)) \ - { \ - drectve_section (); \ - fprintf ((STREAM), "\t.ascii \" -export:%s\"\n",\ - arm_strip_name_encoding (NAME)); \ - } \ - if (! arm_dllimport_name_p (NAME)) \ - { \ - fprintf ((STREAM), "\t.comm\t"); \ - assemble_name ((STREAM), (NAME)); \ - asm_fprintf ((STREAM), ", %d\t%@ %d\n", \ - (int)(ROUNDED), (int)(SIZE)); \ - } \ - } \ - while (0) - -/* Output the label for an initialized variable. */ -#undef ASM_DECLARE_OBJECT_NAME -#define ASM_DECLARE_OBJECT_NAME(STREAM, NAME, DECL) \ - do \ - { \ - if (arm_dllexport_name_p (NAME)) \ - { \ - section *save_section = in_section; \ - drectve_section (); \ - fprintf (STREAM, "\t.ascii \" -export:%s\"\n",\ - arm_strip_name_encoding (NAME)); \ - switch_to_section (save_section); \ - } \ - ASM_OUTPUT_LABEL ((STREAM), (NAME)); \ - } \ - while (0) - -/* Support the ctors/dtors and other sections. */ - -#define DRECTVE_SECTION_ASM_OP "\t.section .drectve" - -#define drectve_section() \ - (fprintf (asm_out_file, "%s\n", DRECTVE_SECTION_ASM_OP), \ - in_section = NULL) Index: config/arm/freebsd.h =================================================================== --- config/arm/freebsd.h (revision 188463) +++ config/arm/freebsd.h (working copy) @@ -1,64 +0,0 @@ -/* Definitions for StrongARM running FreeBSD using the ELF format - Copyright (C) 2001, 2004, 2007, 2010, 2011 Free Software Foundation, Inc. - Contributed by David E. O'Brien and BSDi. - - 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 - . */ - - -#undef SUBTARGET_EXTRA_SPECS -#define SUBTARGET_EXTRA_SPECS \ - { "fbsd_dynamic_linker", FBSD_DYNAMIC_LINKER } - -#undef SUBTARGET_CPP_SPEC -#define SUBTARGET_CPP_SPEC FBSD_CPP_SPEC - -#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 %(fbsd_dynamic_linker) } \ - %{static:-Bstatic}} \ - %{symbolic:-Bsymbolic}" - - -/************************[ Target stuff ]***********************************/ - -/* Define the actual types of some ANSI-mandated types. - Needs to agree with . GCC defaults come from c-decl.c, - c-common.c, and config//.h. */ - -/* arm.h gets this wrong for FreeBSD. We use the GCC defaults instead. */ - -#undef SIZE_TYPE -#define SIZE_TYPE "unsigned int" - -#undef PTRDIFF_TYPE -#define PTRDIFF_TYPE "int" - -/* We use the GCC defaults here. */ -#undef WCHAR_TYPE - -#undef WCHAR_TYPE_SIZE -#define WCHAR_TYPE_SIZE 32 - -#undef SUBTARGET_CPU_DEFAULT -#define SUBTARGET_CPU_DEFAULT TARGET_CPU_strongarm Index: config/arm/t-wince-pe =================================================================== --- config/arm/t-wince-pe (revision 188463) +++ config/arm/t-wince-pe (working copy) @@ -1,31 +0,0 @@ -# Copyright (C) 2003, 2004, 2006, 2008, 2009, 2010, 2011 -# 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 -# . - -pe.o: $(srcdir)/config/arm/pe.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) \ - $(RTL_H) output.h flags.h $(TREE_H) expr.h $(TM_P_H) - $(COMPILER) -c $(ALL_COMPILERFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) \ - $(srcdir)/config/arm/pe.c - -MULTILIB_OPTIONS = mfloat-abi=hard -MULTILIB_DIRNAMES = fpu -# Note - Thumb multilib omitted because Thumb support for -# arm-wince-pe target does not appear to be working in binutils -# yet... -# MULTILIB_OPTIONS += thumb -# MULTILIB_DIRNAMES += thumb