111740SN/A/* Definitions for ARM running ucLinux using ELF 216105Sptbrunet Copyright (C) 1999, 2001, 2004, 2005 Free Software Foundation, Inc. 316105Sptbrunet Contributed by Philip Blundell <pb@nexus.co.uk> 411740SN/A 516105Sptbrunet This file is part of GCC. 616105Sptbrunet 716105Sptbrunet GCC is free software; you can redistribute it and/or modify it 816105Sptbrunet under the terms of the GNU General Public License as published 916105Sptbrunet by the Free Software Foundation; either version 2, or (at your 1016105Sptbrunet option) any later version. 1116105Sptbrunet 1216105Sptbrunet GCC is distributed in the hope that it will be useful, but WITHOUT 1316105Sptbrunet ANY WARRANTY; without even the implied warranty of MERCHANTABILITY 1416105Sptbrunet or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public 1511740SN/A License for more details. 1616105Sptbrunet 1716105Sptbrunet You should have received a copy of the GNU General Public License 1816105Sptbrunet along with this program; see the file COPYING. If not, write to 1911740SN/A the Free Software Foundation, 51 Franklin Street, Fifth Floor, 2016105Sptbrunet Boston, MA 02110-1301, USA. */ 2116105Sptbrunet 2216105Sptbrunet/* We don't want a PLT. */ 2316105Sptbrunet#undef NEED_PLT_RELOC 2416105Sptbrunet#define NEED_PLT_RELOC 0 2516105Sptbrunet 2616105Sptbrunet#undef TARGET_VERSION 2716105Sptbrunet#define TARGET_VERSION fputs (" (ARM/ELF ucLinux)", stderr); 2816105Sptbrunet 2916105Sptbrunet#undef TARGET_DEFAULT 3016105Sptbrunet#define TARGET_DEFAULT (MASK_SINGLE_PIC_BASE) 3111740SN/A 3211740SN/A/* NOTE: The remaining definitions in this file are needed because uclinux 3311740SN/A does not use config/linux.h. */ 3411740SN/A 3511740SN/A/* Do not assume anything about header files. */ 3611740SN/A#define NO_IMPLICIT_EXTERN_C 3711740SN/A 3811740SN/A/* The GNU C++ standard library requires that these macros be defined. */ 3911740SN/A#undef CPLUSPLUS_CPP_SPEC 4011740SN/A#define CPLUSPLUS_CPP_SPEC "-D_GNU_SOURCE %(cpp)" 4111740SN/A 4211740SN/A/* Provide a STARTFILE_SPEC appropriate for GNU/Linux. Here we add 4311740SN/A the GNU/Linux magical crtbegin.o file (see crtstuff.c) which 4411740SN/A provides part of the support for getting C++ file-scope static 4511740SN/A object constructed before entering `main'. */ 4611740SN/A 4711740SN/A#undef STARTFILE_SPEC 4811740SN/A#define STARTFILE_SPEC \ 4911740SN/A "%{!shared: \ 5011740SN/A %{pg:gcrt1.o%s} %{!pg:%{p:gcrt1.o%s} \ 5111740SN/A %{!p:%{profile:gcrt1.o%s} \ 5211740SN/A %{!profile:crt1.o%s}}}} \ 5311740SN/A crti.o%s %{!shared:crtbegin.o%s} %{shared:crtbeginS.o%s}" 5411740SN/A 5511740SN/A/* Provide a ENDFILE_SPEC appropriate for GNU/Linux. Here we tack on 5611740SN/A the GNU/Linux magical crtend.o file (see crtstuff.c) which 5711740SN/A provides part of the support for getting C++ file-scope static 5811740SN/A object constructed before entering `main', followed by a normal 5911740SN/A GNU/Linux "finalizer" file, `crtn.o'. */ 6011740SN/A 6111740SN/A#undef ENDFILE_SPEC 6211740SN/A#define ENDFILE_SPEC \ 6311740SN/A "%{!shared:crtend.o%s} %{shared:crtendS.o%s} crtn.o%s" 6416105Sptbrunet 6511740SN/A#undef CC1_SPEC 6611740SN/A#define CC1_SPEC "%{profile:-p}" 6716105Sptbrunet 6811740SN/A#define LINK_GCC_C_SEQUENCE_SPEC \ 6916105Sptbrunet "%{static:--start-group} %G %L %{static:--end-group}%{!static:%G}" 7011740SN/A 7111740SN/A/* Use --as-needed -lgcc_s for eh support. */ 7211740SN/A#ifdef HAVE_LD_AS_NEEDED 7311740SN/A#define USE_LD_AS_NEEDED 1 7411740SN/A#endif 7511740SN/A