config.gcc (arm*-*-symbianelf*): New target.

* config.gcc (arm*-*-symbianelf*): New target.
	* config/arm/symbian.h: New file.

From-SVN: r85490
This commit is contained in:
Mark Mitchell 2004-08-03 17:38:09 +00:00 committed by Mark Mitchell
parent 3fc1f660b2
commit 336bd6ac16
3 changed files with 57 additions and 0 deletions

View file

@ -1,5 +1,8 @@
2004-08-03 Mark Mitchell <mark@codesourcery.com>
* config.gcc (arm*-*-symbianelf*): New target.
* config/arm/symbian.h: New file.
* gthr-gnat.c: Add visibility #pragmas.
* gthr-gnat.h : Likewise.
* gthr.h: Likewise.

View file

@ -652,6 +652,10 @@ arm*-*-ecos-elf)
tm_file="dbxelf.h elfos.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"
;;
arm*-*-symbianelf*)
tm_file="dbxelf.h elfos.h arm/unknown-elf.h arm/elf.h arm/symbian.h arm/aout.h arm/arm.h"
tmake_file="t-slibgcc-elf-ver arm/t-arm arm/t-arm-elf"
;;
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"
tmake_file="arm/t-arm arm/t-arm-elf t-rtems"

50
gcc/config/arm/symbian.h Normal file
View file

@ -0,0 +1,50 @@
/* Configuration file for Symbian OS on ARM processors.
Copyright (C) 2004
Free Software Foundation, Inc.
Contributed by CodeSourcery, LLC
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 2, 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 COPYING. If not, write to
the Free Software Foundation, 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
/* Use the SYMBIAN ABI by default. */
#define ARM_DEFAULT_ABI ARM_ABI_AAPCS
/* Do not expand builtin functions (unless explicitly prefixed with
"__builtin"). Symbian OS code relies on properties of the standard
library that go beyond those guaranteed by the ANSI/ISO standard.
For example, "memcpy" works even with overlapping memory, like
"memmove". We cannot simply set flag_no_builtin in arm.c because
(a) flag_no_builtin is not declared in language-independent code,
and (b) that would prevent users from explicitly overriding the
default with -fno-builtin, which may sometimes be useful.
Make all symbols hidden by default. Symbian OS expects that all
exported symbols will be explicitly marked with
"__declspec(dllexport)". */
#define CC1_SPEC "-fno-builtin -fvisibility=hidden"
#define CC1PLUS_SPEC "-fno-builtin -fvisibility=hidden"
/* Symbian OS does not use crt0.o, unlike the generic unknown-elf
configuration. */
#undef STARTFILE_SPEC
#define STARTFILE_SPEC "crti%O%s crtbegin%O%s"
/* The generic link spec in elf.h does not support shared libraries. */
#undef LINK_SPEC
#define LINK_SPEC "%{mbig-endian:-EB} %{mlittle-endian:-EL} " \
"%{static:-Bstatic} %{shared:-shared} %{symbolic:-Bsymbolic} " \
"-X"