diff -urN orig-gcc-3.3.1/configure.in gcc-3.3.1/configure.in --- orig-gcc-3.3.1/configure.in Fri Jun 27 13:44:14 2003 +++ gcc-3.3.1/configure.in Tue Aug 26 21:12:31 2003 @@ -66,7 +66,7 @@ target-newlib \ ${libstdcxx_version} \ target-libf2c \ - ${libgcj} + ${libgcj} \ target-libobjc" # these tools are built using the target libs, and are intended to run only @@ -361,6 +361,9 @@ arm-*-riscix*) noconfigdirs="$noconfigdirs ld target-libgloss ${libgcj}" ;; + arm-*-palmos*) + noconfigdirs="$noconfigdirs ${target_libs} ${target_tools}" + ;; avr-*-*) noconfigdirs="$noconfigdirs target-libiberty ${libstdcxx_version} ${libgcj}" ;; diff -urN orig-gcc-3.3.1/gcc/Makefile.in gcc-3.3.1/gcc/Makefile.in --- orig-gcc-3.3.1/gcc/Makefile.in Sun Aug 3 17:48:36 2003 +++ gcc-3.3.1/gcc/Makefile.in Tue Sep 9 23:30:26 2003 @@ -2197,7 +2197,7 @@ -DGPLUSPLUS_TOOL_INCLUDE_DIR=\"$(gcc_gxx_include_dir)/$(target_alias)\" \ -DGPLUSPLUS_BACKWARD_INCLUDE_DIR=\"$(gcc_gxx_include_dir)/backward\" \ -DLOCAL_INCLUDE_DIR=\"$(local_includedir)\" \ - -DCROSS_INCLUDE_DIR=\"$(gcc_tooldir)/sys-include\" \ + -DCROSS_INCLUDE_DIR=\"$(CROSS_SYSTEM_HEADER_DIR)\" \ -DTOOL_INCLUDE_DIR=\"$(gcc_tooldir)/include\" LIBCPP_OBJS = cpplib.o cpplex.o cppmacro.o cppexp.o cppfiles.o cpptrad.o \ diff -urN orig-gcc-3.3.1/gcc/config.gcc gcc-3.3.1/gcc/config.gcc --- orig-gcc-3.3.1/gcc/config.gcc Fri Jun 27 13:44:22 2003 +++ gcc-3.3.1/gcc/config.gcc Tue Aug 26 21:12:32 2003 @@ -740,6 +740,10 @@ tm_file="arm/unknown-elf-oabi.h dbxelf.h elfos.h arm/unknown-elf.h arm/elf.h arm/aout.h arm/arm.h" tmake_file=arm/t-arm-elf ;; +arm*-*-palmos*) + tm_file="dbxelf.h elfos.h arm/unknown-elf.h arm/elf.h arm/aout.h arm/arm.h palmos.h arm/palmos.h" + tmake_file="arm/t-arm-elf t-palmos" + ;; arm-*-pe*) tm_file="arm/semi.h arm/aout.h arm/arm.h arm/coff.h arm/pe.h" tmake_file=arm/t-pe diff -urN orig-gcc-3.3.1/gcc/config/arm/palmos.h gcc-3.3.1/gcc/config/arm/palmos.h --- orig-gcc-3.3.1/gcc/config/arm/palmos.h Thu Jan 1 00:00:00 1970 +++ gcc-3.3.1/gcc/config/arm/palmos.h Tue Sep 16 01:07:33 2003 @@ -0,0 +1,45 @@ +/* Definitions for Palm OS on ARM. + Copyright 2002, 2003 John Marshall. (Until it is contributed.) + +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. */ + +/* Palm OS code must be PIC code, and the OS expects %r9 to be fixed. + We could do the latter with SUBTARGET_CONDITIONAL_REGISTER_USAGE instead, + but this is more visible for our paranoid users. */ +#undef CC1_SPEC +#define CC1_SPEC "-fPIC -ffixed-r9" + +#define SUBTARGET_CPU_DEFAULT TARGET_CPU_arm7tdmi + +#undef TARGET_VERSION +#define TARGET_VERSION fputs (" (ARM/ELF Palm OS armlet)", stderr); + +/* We don't want a PLT at all. */ +#undef NEED_PLT_RELOC +#define NEED_PLT_RELOC 0 + +/* Put constant data in .text instead of a separate .rodata. */ +#undef EXTRA_SECTIONS +#undef EXTRA_SECTION_FUNCTIONS +#undef READONLY_DATA_SECTION +#undef TARGET_ASM_SELECT_SECTION +#undef TARGET_ASM_SELECT_RTX_SECTION + +#undef USE_CONST_SECTION +#undef CONST_SECTION_ASM_OP +#undef CONST_SECTION_FUNCTION diff -urN orig-gcc-3.3.1/gcc/config/palmos.h gcc-3.3.1/gcc/config/palmos.h --- orig-gcc-3.3.1/gcc/config/palmos.h Thu Jan 1 00:00:00 1970 +++ gcc-3.3.1/gcc/config/palmos.h Fri May 16 02:33:53 2003 @@ -0,0 +1,41 @@ +/* Definitions for Palm OS. + Copyright 2002 John Marshall. (Until it is contributed.) + +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. */ + +/* Some Palm OS headers in TOOL_INCLUDE_DIR need to #include_next their + corresponding header in CROSS_INCLUDE_DIR, so we need to reorder them + from the default. */ +#define INCLUDE_DEFAULTS \ + { \ + { GCC_INCLUDE_DIR, "GCC", 0, 0 }, \ + { TOOL_INCLUDE_DIR, "BINUTILS", 0, 1 }, \ + { CROSS_INCLUDE_DIR, 0, 0, 0 }, \ + { 0, 0, 0, 0 } \ + } + +/* Palm OS headers are C++-aware. */ +#define NO_IMPLICIT_EXTERN_C + +/* Palm OS programmers enjoy (ab)using all kinds of packing pragmas. */ +#define HANDLE_SYSV_PRAGMA 1 +#define HANDLE_PRAGMA_PACK_PUSH_POP 1 + +/* Add Palm OS-related predefines to any generic ones. */ +#undef CPP_PREDEFINES +#define CPP_PREDEFINES "-D__palmos__ -Asystem=palmos" diff -urN orig-gcc-3.3.1/gcc/config/t-palmos gcc-3.3.1/gcc/config/t-palmos --- orig-gcc-3.3.1/gcc/config/t-palmos Thu Jan 1 00:00:00 1970 +++ gcc-3.3.1/gcc/config/t-palmos Fri May 16 01:03:57 2003 @@ -0,0 +1,7 @@ +# Some Palm OS-related headers can be found here, and the remainder are in +# directories that will be found via custom specs. +CROSS_SYSTEM_HEADER_DIR = $(datadir)/prc-tools/include + +# But these headers are generally not yet installed while building GCC, +# so there's no point trying to fix them. +STMP_FIXPROTO = diff -urN orig-gcc-3.3.1/gcc/defaults.h gcc-3.3.1/gcc/defaults.h --- orig-gcc-3.3.1/gcc/defaults.h Mon Dec 9 18:54:03 2002 +++ gcc-3.3.1/gcc/defaults.h Fri May 16 01:03:57 2003 @@ -405,9 +405,7 @@ /* By default, the preprocessor should be invoked the same way in C++ as in C. */ #ifndef CPLUSPLUS_CPP_SPEC -#ifdef CPP_SPEC -#define CPLUSPLUS_CPP_SPEC CPP_SPEC -#endif +#define CPLUSPLUS_CPP_SPEC 0 #endif #ifndef ACCUMULATE_OUTGOING_ARGS diff -urN orig-gcc-3.3.1/gcc/version.c gcc-3.3.1/gcc/version.c --- orig-gcc-3.3.1/gcc/version.c Mon Aug 4 14:50:23 2003 +++ gcc-3.3.1/gcc/version.c Tue Aug 26 21:16:03 2003 @@ -6,7 +6,7 @@ please modify this string to indicate that, e.g. by putting your organization's name in parentheses at the end of the string. */ -const char version_string[] = "3.3.1"; +const char version_string[] = "3.3.1 (prc-tools)"; /* This is the location of the online document giving instructions for reporting bugs. If you distribute a modified version of GCC,