OpenCores
URL https://opencores.org/ocsvn/openrisc/openrisc/trunk

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [gnu-old/] [gcc-4.2.2/] [gcc/] [config/] [arm/] [linux-eabi.h] - Diff between revs 154 and 816

Only display areas with differences | Details | Blame | View Log

Rev 154 Rev 816
/* Configuration file for ARM GNU/Linux EABI targets.
/* Configuration file for ARM GNU/Linux EABI targets.
   Copyright (C) 2004, 2005, 2006, 2007
   Copyright (C) 2004, 2005, 2006, 2007
   Free Software Foundation, Inc.
   Free Software Foundation, Inc.
   Contributed by CodeSourcery, LLC
   Contributed by CodeSourcery, LLC
 
 
   This file is part of GCC.
   This file is part of GCC.
 
 
   GCC is free software; you can redistribute it and/or modify it
   GCC is free software; you can redistribute it and/or modify it
   under the terms of the GNU General Public License as published
   under the terms of the GNU General Public License as published
   by the Free Software Foundation; either version 3, or (at your
   by the Free Software Foundation; either version 3, or (at your
   option) any later version.
   option) any later version.
 
 
   GCC is distributed in the hope that it will be useful, but WITHOUT
   GCC is distributed in the hope that it will be useful, but WITHOUT
   ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
   ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
   or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public
   or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public
   License for more details.
   License for more details.
 
 
   You should have received a copy of the GNU General Public License
   You should have received a copy of the GNU General Public License
   along with GCC; see the file COPYING3.  If not see
   along with GCC; see the file COPYING3.  If not see
   <http://www.gnu.org/licenses/>.  */
   <http://www.gnu.org/licenses/>.  */
 
 
/* On EABI GNU/Linux, we want both the BPABI builtins and the
/* On EABI GNU/Linux, we want both the BPABI builtins and the
   GNU/Linux builtins.  */
   GNU/Linux builtins.  */
#undef TARGET_OS_CPP_BUILTINS
#undef TARGET_OS_CPP_BUILTINS
#define TARGET_OS_CPP_BUILTINS()                \
#define TARGET_OS_CPP_BUILTINS()                \
  do                                            \
  do                                            \
    {                                           \
    {                                           \
      TARGET_BPABI_CPP_BUILTINS();              \
      TARGET_BPABI_CPP_BUILTINS();              \
      LINUX_TARGET_OS_CPP_BUILTINS();           \
      LINUX_TARGET_OS_CPP_BUILTINS();           \
    }                                           \
    }                                           \
  while (false)
  while (false)
 
 
/* We default to a soft-float ABI so that binaries can run on all
/* We default to a soft-float ABI so that binaries can run on all
   target hardware.  */
   target hardware.  */
#undef TARGET_DEFAULT_FLOAT_ABI
#undef TARGET_DEFAULT_FLOAT_ABI
#define TARGET_DEFAULT_FLOAT_ABI ARM_FLOAT_ABI_SOFT
#define TARGET_DEFAULT_FLOAT_ABI ARM_FLOAT_ABI_SOFT
 
 
/* We default to the "aapcs-linux" ABI so that enums are int-sized by
/* We default to the "aapcs-linux" ABI so that enums are int-sized by
   default.  */
   default.  */
#undef ARM_DEFAULT_ABI
#undef ARM_DEFAULT_ABI
#define ARM_DEFAULT_ABI ARM_ABI_AAPCS_LINUX
#define ARM_DEFAULT_ABI ARM_ABI_AAPCS_LINUX
 
 
/* Default to armv5t so that thumb shared libraries work.
/* Default to armv5t so that thumb shared libraries work.
   The ARM10TDMI core is the default for armv5t, so set
   The ARM10TDMI core is the default for armv5t, so set
   SUBTARGET_CPU_DEFAULT to achieve this.  */
   SUBTARGET_CPU_DEFAULT to achieve this.  */
#undef SUBTARGET_CPU_DEFAULT
#undef SUBTARGET_CPU_DEFAULT
#define SUBTARGET_CPU_DEFAULT TARGET_CPU_arm10tdmi
#define SUBTARGET_CPU_DEFAULT TARGET_CPU_arm10tdmi
 
 
#undef SUBTARGET_EXTRA_LINK_SPEC
#undef SUBTARGET_EXTRA_LINK_SPEC
#define SUBTARGET_EXTRA_LINK_SPEC " -m armelf_linux_eabi"
#define SUBTARGET_EXTRA_LINK_SPEC " -m armelf_linux_eabi"
 
 
/* Use ld-linux.so.3 so that it will be possible to run "classic"
/* Use ld-linux.so.3 so that it will be possible to run "classic"
   GNU/Linux binaries on an EABI system.  */
   GNU/Linux binaries on an EABI system.  */
#undef GLIBC_DYNAMIC_LINKER
#undef GLIBC_DYNAMIC_LINKER
#define GLIBC_DYNAMIC_LINKER "/lib/ld-linux.so.3"
#define GLIBC_DYNAMIC_LINKER "/lib/ld-linux.so.3"
 
 
/* At this point, bpabi.h will have clobbered LINK_SPEC.  We want to
/* At this point, bpabi.h will have clobbered LINK_SPEC.  We want to
   use the GNU/Linux version, not the generic BPABI version.  */
   use the GNU/Linux version, not the generic BPABI version.  */
#undef LINK_SPEC
#undef LINK_SPEC
#define LINK_SPEC LINUX_TARGET_LINK_SPEC
#define LINK_SPEC LINUX_TARGET_LINK_SPEC
 
 
/* Use the default LIBGCC_SPEC, not the version in linux-elf.h, as we
/* Use the default LIBGCC_SPEC, not the version in linux-elf.h, as we
   do not use -lfloat.  */
   do not use -lfloat.  */
#undef LIBGCC_SPEC
#undef LIBGCC_SPEC
 
 
/* Use the AAPCS type for wchar_t, or the previous Linux default for
/* Use the AAPCS type for wchar_t, or the previous Linux default for
   non-AAPCS.  */
   non-AAPCS.  */
#undef WCHAR_TYPE
#undef WCHAR_TYPE
#define WCHAR_TYPE (TARGET_AAPCS_BASED ? "unsigned int" : "long int")
#define WCHAR_TYPE (TARGET_AAPCS_BASED ? "unsigned int" : "long int")
 
 
/* Clear the instruction cache from `beg' to `end'.  This makes an
/* Clear the instruction cache from `beg' to `end'.  This makes an
   inline system call to SYS_cacheflush.  It is modified to work with
   inline system call to SYS_cacheflush.  It is modified to work with
   both the original and EABI-only syscall interfaces.  */
   both the original and EABI-only syscall interfaces.  */
#undef CLEAR_INSN_CACHE
#undef CLEAR_INSN_CACHE
#define CLEAR_INSN_CACHE(BEG, END)                                      \
#define CLEAR_INSN_CACHE(BEG, END)                                      \
{                                                                       \
{                                                                       \
  register unsigned long _beg __asm ("a1") = (unsigned long) (BEG);     \
  register unsigned long _beg __asm ("a1") = (unsigned long) (BEG);     \
  register unsigned long _end __asm ("a2") = (unsigned long) (END);     \
  register unsigned long _end __asm ("a2") = (unsigned long) (END);     \
  register unsigned long _flg __asm ("a3") = 0;                          \
  register unsigned long _flg __asm ("a3") = 0;                          \
  register unsigned long _scno __asm ("r7") = 0xf0002;                  \
  register unsigned long _scno __asm ("r7") = 0xf0002;                  \
  __asm __volatile ("swi 0x9f0002               @ sys_cacheflush"       \
  __asm __volatile ("swi 0x9f0002               @ sys_cacheflush"       \
                    : "=r" (_beg)                                       \
                    : "=r" (_beg)                                       \
                    : "0" (_beg), "r" (_end), "r" (_flg), "r" (_scno));  \
                    : "0" (_beg), "r" (_end), "r" (_flg), "r" (_scno));  \
}
}
 
 

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.