Skip to content

Commit

Permalink
/
Browse files Browse the repository at this point in the history
	* configure.in (arm-*-linux-gnueabi): Add to noconfigdirs
	target-libffi, target-qthreads, target-libjava, and
	targetlibobjc.
	* configure: Regenerate.

gcc/
	Merge from csl-arm-branch:
	2005-09-07  Paul Brook  <paul@codesourcery.com>
	* config/arm/linux-eabi.h (SUBTARGET_EXTRA_LINK_SPEC): Prepend a
	space to string.

	2005-04-30  Paul Brook  <paul@codesourcery.com>
	* config/arm/bpabi.h (TARGET_DEFAULT): Define.
	* config/arm/linux-eabi.h (SUBTARGET_CPU_DEFAULT): Define.

	2005-03-07  Daniel Jacobowitz  <dan@codesourcery.com>
	* config/arm/arm.c (arm_all_abis): Add aapcs-linux.
	(arm_override_options): Use TARGET_AAPCS_BASED.
	* config/arm/arm.h (enum arm_abi_type): Add ARM_ABI_AAPCS_LINUX.
	(PTRDIFF_TYPE): Use int for AAPCS.
	(DEFAULT_SHORT_ENUMS): Use false for aapcs-linux.
	* config/arm/linux-eabi.h (ARM_DEFAULT_ABI, WCHAR_TYPE): Define.
	(DEFAULT_SHORT_ENUMS): Delete.
	* doc/invoke.texi (ARM Options): Document -mabi=aapcs-linux.

	2004-12-15  Daniel Jacobowitz  <dan@codesourcery.com>
	* config/arm/arm.h (DEFAULT_SHORT_ENUMS): Wrap in #ifndef.
	* config/arm/linux-eabi.h (DEFAULT_SHORT_ENUMS): Define to 0.
	* config/arm/t-linux-eabi (TARGET_LIBGCC2_CFLAGS): Set to -fPIC.

	2004-12-03  Mark Mitchell  <mark@codesourcery.com>
	* config/arm/linux-eabi.h (LIBGCC_SPEC): Do not define.

	2004-11-22  Mark Mitchell  <mark@codesourcery.com>
	* config.gcc (arm*-*-linux-gnueabi): Use __cxa_atexit.

	2004-11-19  Mark Mitchell  <mark@codesourcery.com>
	* config.gcc (arm*-*-linux-gnueabi): Add it.
	* config/arm/bpabi.h (FPUTYPE_DEFAULT): Undefine it before
	redefining it.
	(TARGET_OS_CPP_BUILTINS): Likeiwse.
	* config/arm/linux-eabi.h: New file.
	* config/arm/linux-elf.h (LINUX_TARGET_INTERPRETER): New macro.
	(LINUX_TARET_LINK_SPEC): Likewise.
	(LINK_SPEC): Use it.
	* config/arm/t-linux-eabi: New file.

libcpp/
	* configure.ac: Require 64-bit int for arm*-*-*eabi*.
	* configure: Regenerate.

libstdc++/
	Merge from csl-arm-branch:
	2004-12-15  Daniel Jacobowitz  <dan@codesourcery.com>
	* libstdc++-v3/config/linker-map.gnu: Add ARM EABI symbols.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@105121 138bc75d-0d04-0410-961f-82ee72b054a4
  • Loading branch information
kazu committed Oct 8, 2005
1 parent 0fc339a commit 6783d87
Show file tree
Hide file tree
Showing 17 changed files with 269 additions and 88 deletions.
7 changes: 7 additions & 0 deletions ChangeLog
Original file line number Diff line number Diff line change
@@ -1,3 +1,10 @@
2005-10-08 Kazu Hirata <kazu@codesourcery.com>

* configure.in (arm-*-linux-gnueabi): Add to noconfigdirs
target-libffi, target-qthreads, target-libjava, and
targetlibobjc.
* configure: Regenerate.

2005-10-06 Daniel Jacobowitz <dan@codesourcery.com>

* Makefile.def (flags_to_pass): Add OBJDUMP_FOR_TARGET.
Expand Down
156 changes: 80 additions & 76 deletions configure

Large diffs are not rendered by default.

4 changes: 4 additions & 0 deletions configure.in
Original file line number Diff line number Diff line change
Expand Up @@ -475,6 +475,10 @@ case "${target}" in
arm-*-elf* | strongarm-*-elf* | xscale-*-elf* | arm*-*-eabi* )
noconfigdirs="$noconfigdirs target-libffi target-qthreads"
;;
arm*-*-linux-gnueabi)
noconfigdirs="$noconfigdirs target-libffi target-qthreads"
noconfigdirs="$noconfigdirs target-libjava target-libobjc"
;;
arm*-*-symbianelf*)
noconfigdirs="$noconfigdirs ${libgcj} target-libiberty"
;;
Expand Down
43 changes: 43 additions & 0 deletions gcc/ChangeLog
Original file line number Diff line number Diff line change
@@ -1,3 +1,46 @@
2005-10-08 Kazu Hirata <kazu@codesourcery.com>

Merge from csl-arm-branch:
2005-09-07 Paul Brook <paul@codesourcery.com>
* config/arm/linux-eabi.h (SUBTARGET_EXTRA_LINK_SPEC): Prepend a
space to string.

2005-04-30 Paul Brook <paul@codesourcery.com>
* config/arm/bpabi.h (TARGET_DEFAULT): Define.
* config/arm/linux-eabi.h (SUBTARGET_CPU_DEFAULT): Define.

2005-03-07 Daniel Jacobowitz <dan@codesourcery.com>
* config/arm/arm.c (arm_all_abis): Add aapcs-linux.
(arm_override_options): Use TARGET_AAPCS_BASED.
* config/arm/arm.h (enum arm_abi_type): Add ARM_ABI_AAPCS_LINUX.
(PTRDIFF_TYPE): Use int for AAPCS.
(DEFAULT_SHORT_ENUMS): Use false for aapcs-linux.
* config/arm/linux-eabi.h (ARM_DEFAULT_ABI, WCHAR_TYPE): Define.
(DEFAULT_SHORT_ENUMS): Delete.
* doc/invoke.texi (ARM Options): Document -mabi=aapcs-linux.

2004-12-15 Daniel Jacobowitz <dan@codesourcery.com>
* config/arm/arm.h (DEFAULT_SHORT_ENUMS): Wrap in #ifndef.
* config/arm/linux-eabi.h (DEFAULT_SHORT_ENUMS): Define to 0.
* config/arm/t-linux-eabi (TARGET_LIBGCC2_CFLAGS): Set to -fPIC.

2004-12-03 Mark Mitchell <mark@codesourcery.com>
* config/arm/linux-eabi.h (LIBGCC_SPEC): Do not define.

2004-11-22 Mark Mitchell <mark@codesourcery.com>
* config.gcc (arm*-*-linux-gnueabi): Use __cxa_atexit.

2004-11-19 Mark Mitchell <mark@codesourcery.com>
* config.gcc (arm*-*-linux-gnueabi): Add it.
* config/arm/bpabi.h (FPUTYPE_DEFAULT): Undefine it before
redefining it.
(TARGET_OS_CPP_BUILTINS): Likeiwse.
* config/arm/linux-eabi.h: New file.
* config/arm/linux-elf.h (LINUX_TARGET_INTERPRETER): New macro.
(LINUX_TARET_LINK_SPEC): Likewise.
(LINK_SPEC): Use it.
* config/arm/t-linux-eabi: New file.

2005-10-08 Steven Bosscher <stevenb@suse.de>

PR other/22202
Expand Down
20 changes: 18 additions & 2 deletions gcc/config.gcc
Original file line number Diff line number Diff line change
Expand Up @@ -671,10 +671,26 @@ arm*-*-netbsd*)
use_collect2=yes
;;
arm*-*-linux*) # ARM GNU/Linux with ELF
tm_file="dbxelf.h elfos.h linux.h arm/elf.h arm/linux-gas.h arm/linux-elf.h arm/aout.h arm/arm.h"
tmake_file="${tmake_file} arm/t-arm arm/t-linux"
tm_file="dbxelf.h elfos.h linux.h arm/elf.h arm/linux-gas.h arm/linux-elf.h"
tmake_file="${tmake_file} t-linux arm/t-arm"
extra_parts="crtbegin.o crtbeginS.o crtend.o crtendS.o"
gnu_ld=yes
case ${target} in
arm*-*-linux-gnueabi)
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"
# 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"
;;
esac
tm_file="$tm_file arm/aout.h arm/arm.h"
;;
arm*-*-uclinux*) # ARM ucLinux
tm_file="dbxelf.h elfos.h arm/unknown-elf.h arm/elf.h arm/aout.h arm/arm.h arm/linux-gas.h arm/linux-elf.h arm/uclinux-elf.h"
Expand Down
7 changes: 4 additions & 3 deletions gcc/config/arm/arm.c
Original file line number Diff line number Diff line change
Expand Up @@ -673,7 +673,8 @@ static const struct abi_name arm_all_abis[] =
{"apcs-gnu", ARM_ABI_APCS},
{"atpcs", ARM_ABI_ATPCS},
{"aapcs", ARM_ABI_AAPCS},
{"iwmmxt", ARM_ABI_IWMMXT}
{"iwmmxt", ARM_ABI_IWMMXT},
{"aapcs-linux", ARM_ABI_AAPCS_LINUX}
};

/* Return the number of bits set in VALUE. */
Expand Down Expand Up @@ -1194,7 +1195,7 @@ arm_override_options (void)
flag_schedule_insns = flag_schedule_insns_after_reload = 0;

/* Override the default structure alignment for AAPCS ABI. */
if (arm_abi == ARM_ABI_AAPCS)
if (TARGET_AAPCS_BASED)
arm_structure_size_boundary = 8;

if (structure_size_string != NULL)
Expand Down Expand Up @@ -14527,7 +14528,7 @@ arm_promote_prototypes (tree t ATTRIBUTE_UNUSED)
static bool
arm_default_short_enums (void)
{
return TARGET_AAPCS_BASED;
return TARGET_AAPCS_BASED && arm_abi != ARM_ABI_AAPCS_LINUX;
}


Expand Down
7 changes: 6 additions & 1 deletion gcc/config/arm/arm.h
Original file line number Diff line number Diff line change
Expand Up @@ -279,7 +279,8 @@ enum arm_abi_type
ARM_ABI_APCS,
ARM_ABI_ATPCS,
ARM_ABI_AAPCS,
ARM_ABI_IWMMXT
ARM_ABI_IWMMXT,
ARM_ABI_AAPCS_LINUX
};

extern enum arm_abi_type arm_abi;
Expand Down Expand Up @@ -501,6 +502,10 @@ extern int arm_structure_size_boundary;
#define SIZE_TYPE (TARGET_AAPCS_BASED ? "unsigned int" : "long unsigned int")
#endif

#ifndef PTRDIFF_TYPE
#define PTRDIFF_TYPE (TARGET_AAPCS_BASED ? "int" : "long int")
#endif

/* AAPCS requires that structure alignment is affected by bitfields. */
#ifndef PCC_BITFIELD_TYPE_MATTERS
#define PCC_BITFIELD_TYPE_MATTERS TARGET_AAPCS_BASED
Expand Down
6 changes: 6 additions & 0 deletions gcc/config/arm/bpabi.h
Original file line number Diff line number Diff line change
Expand Up @@ -30,8 +30,13 @@
#define TARGET_UNWIND_INFO 1

/* Section 4.1 of the AAPCS requires the use of VFP format. */
#undef FPUTYPE_DEFAULT
#define FPUTYPE_DEFAULT FPUTYPE_VFP

/* EABI targets should enable interworking by default. */
#undef TARGET_DEFAULT
#define TARGET_DEFAULT MASK_INTERWORK

/* The ARM BPABI functions return a boolean; they use no special
calling convention. */
#define FLOAT_LIB_COMPARE_RETURNS_BOOL(MODE, COMPARISON) TARGET_BPABI
Expand Down Expand Up @@ -101,6 +106,7 @@
} \
while (false)

#undef TARGET_OS_CPP_BUILTINS
#define TARGET_OS_CPP_BUILTINS() \
TARGET_BPABI_CPP_BUILTINS()

Expand Down
70 changes: 70 additions & 0 deletions gcc/config/arm/linux-eabi.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
/* Configuration file for ARM GNU/Linux EABI targets.
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, 51 Franklin Street, Fifth Floor,
Boston, MA 02110-1301, USA. */

/* On EABI GNU/Linux, we want both the BPABI builtins and the
GNU/Linux builtins. */
#undef TARGET_OS_CPP_BUILTINS
#define TARGET_OS_CPP_BUILTINS() \
do \
{ \
TARGET_BPABI_CPP_BUILTINS(); \
LINUX_TARGET_OS_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
#define TARGET_DEFAULT_FLOAT_ABI ARM_FLOAT_ABI_SOFT

/* We default to the "aapcs-linux" ABI so that enums are int-sized by
default. */
#undef ARM_DEFAULT_ABI
#define ARM_DEFAULT_ABI ARM_ABI_AAPCS_LINUX

/* Default to armv5t so that thumb shared libraries work.
The ARM10TDMI core is the default for armv5t, so set
SUBTARGET_CPU_DEFAULT to achieve this. */
#undef SUBTARGET_CPU_DEFAULT
#define SUBTARGET_CPU_DEFAULT TARGET_CPU_arm10tdmi

#undef SUBTARGET_EXTRA_LINK_SPEC
#define SUBTARGET_EXTRA_LINK_SPEC " -m armelf_linux_eabi"

/* Use ld-linux.so.3 so that it will be possible to run "classic"
GNU/Linux binaries on an EABI system. */
#undef LINUX_TARGET_INTERPRETER
#define LINUX_TARGET_INTERPRETER "/lib/ld-linux.so.3"

/* At this point, bpabi.h will have clobbered LINK_SPEC. We want to
use the GNU/Linux version, not the generic BPABI version. */
#undef LINK_SPEC
#define LINK_SPEC LINUX_TARGET_LINK_SPEC

/* Use the default LIBGCC_SPEC, not the version in linux-elf.h, as we
do not use -lfloat. */
#undef LIBGCC_SPEC

/* Use the AAPCS type for wchar_t, or the previous Linux default for
non-AAPCS. */
#undef WCHAR_TYPE
#define WCHAR_TYPE (TARGET_AAPCS_BASED ? "unsigned int" : "long int")
10 changes: 7 additions & 3 deletions gcc/config/arm/linux-elf.h
Original file line number Diff line number Diff line change
Expand Up @@ -81,18 +81,22 @@
#define ENDFILE_SPEC \
"%{!shared:crtend.o%s} %{shared:crtendS.o%s} crtn.o%s"

#undef LINK_SPEC
#define LINK_SPEC "%{h*} %{version:-v} \
#define LINUX_TARGET_INTERPRETER "/lib/ld-linux.so.2"

#define LINUX_TARGET_LINK_SPEC "%{h*} %{version:-v} \
%{b} \
%{static:-Bstatic} \
%{shared:-shared} \
%{symbolic:-Bsymbolic} \
%{rdynamic:-export-dynamic} \
%{!dynamic-linker:-dynamic-linker /lib/ld-linux.so.2} \
%{!dynamic-linker:-dynamic-linker " LINUX_TARGET_INTERPRETER "} \
-X \
%{mbig-endian:-EB}" \
SUBTARGET_EXTRA_LINK_SPEC

#undef LINK_SPEC
#define LINK_SPEC LINUX_TARGET_LINK_SPEC

#define TARGET_OS_CPP_BUILTINS() \
do \
{ \
Expand Down
7 changes: 7 additions & 0 deletions gcc/config/arm/t-linux-eabi
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
# These functions are included in shared libraries.
TARGET_LIBGCC2_CFLAGS = -fPIC

# We do not build a Thumb multilib for Linux because the definition of
# CLEAR_INSN_CACHE in linux-gas.h does not work in Thumb mode.
MULTILIB_OPTIONS =
MULTILIB_DIRNAMES =
2 changes: 1 addition & 1 deletion gcc/doc/invoke.texi
Original file line number Diff line number Diff line change
Expand Up @@ -7160,7 +7160,7 @@ architectures:
@item -mabi=@var{name}
@opindex mabi
Generate code for the specified ABI@. Permissible values are: @samp{apcs-gnu},
@samp{atpcs}, @samp{aapcs} and @samp{iwmmxt}.
@samp{atpcs}, @samp{aapcs}, @samp{aapcs-linux} and @samp{iwmmxt}.

@item -mapcs-frame
@opindex mapcs-frame
Expand Down
5 changes: 5 additions & 0 deletions libcpp/ChangeLog
Original file line number Diff line number Diff line change
@@ -1,3 +1,8 @@
2005-10-08 Kazu Hirata <kazu@codesourcery.com>

* configure.ac: Require 64-bit int for arm*-*-*eabi*.
* configure: Regenerate.

2005-10-04 Ian Lance Taylor <ian@airs.com>

PR preprocessor/13726
Expand Down
2 changes: 1 addition & 1 deletion libcpp/configure
Original file line number Diff line number Diff line change
Expand Up @@ -8218,7 +8218,7 @@ fi
case $target in
alpha*-*-* | \
arm*-*-eabi* | \
arm*-*-*eabi* | \
arm*-*-symbianelf* | \
x86_64-*-* | \
ia64-*-* | \
Expand Down
2 changes: 1 addition & 1 deletion libcpp/configure.ac
Original file line number Diff line number Diff line change
Expand Up @@ -113,7 +113,7 @@ fi
m4_changequote(,)
case $target in
alpha*-*-* | \
arm*-*-eabi* | \
arm*-*-*eabi* | \
arm*-*-symbianelf* | \
x86_64-*-* | \
ia64-*-* | \
Expand Down
6 changes: 6 additions & 0 deletions libstdc++-v3/ChangeLog
Original file line number Diff line number Diff line change
@@ -1,3 +1,9 @@
2005-10-08 Kazu Hirata <kazu@codesourcery.com>

Merge from csl-arm-branch:
2004-12-15 Daniel Jacobowitz <dan@codesourcery.com>
* libstdc++-v3/config/linker-map.gnu: Add ARM EABI symbols.

2005-10-07 Paolo Carlini <pcarlini@suse.de>

Fix libstdc++/24196 for ext/vstring/rc by returning to the behavior
Expand Down
3 changes: 3 additions & 0 deletions libstdc++-v3/config/linker-map.gnu
Original file line number Diff line number Diff line change
Expand Up @@ -583,10 +583,12 @@ CXXABI_1.3 {
__cxa_bad_cast;
__cxa_bad_typeid;
__cxa_begin_catch;
__cxa_begin_cleanup;
__cxa_call_unexpected;
__cxa_current_exception_type;
__cxa_demangle;
__cxa_end_catch;
__cxa_end_cleanup;
__cxa_free_exception;
__cxa_get_globals;
__cxa_get_globals_fast;
Expand All @@ -596,6 +598,7 @@ CXXABI_1.3 {
__cxa_pure_virtual;
__cxa_rethrow;
__cxa_throw;
__cxa_type_match;
__cxa_vec_cctor;
__cxa_vec_cleanup;
__cxa_vec_ctor;
Expand Down

0 comments on commit 6783d87

Please sign in to comment.