home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
The Datafile PD-CD 4
/
DATAFILE_PDCD4.iso
/
unix
/
riscbsd
/
sources
/
tools
/
gcc_2_7_2_
/
gcc-2.7.2-riscbsd.diff
Wrap
Text File
|
1996-03-08
|
10KB
|
266 lines
diff -N -c -r gcc-2.7.2/collect2.c gcc-2.7.2-riscbsd/collect2.c
*** gcc-2.7.2/collect2.c Tue Sep 12 18:08:27 1995
--- gcc-2.7.2-riscbsd/collect2.c Mon Mar 4 04:32:40 1996
***************
*** 1123,1128 ****
--- 1122,1129 ----
/* Likewise for `collect-ld'. */
if (ld_file_name == 0)
ld_file_name = find_a_file (&cpath, collect_ld_suffix);
+ if (ld_file_name == 0)
+ ld_file_name = find_a_file (&path, real_ld_suffix);
/* Search the compiler directories for `ld'. We have protection against
recursive calls in find_a_file. */
if (ld_file_name == 0)
diff -N -c -r gcc-2.7.2/config/arm/arm.md gcc-2.7.2-riscbsd/config/arm/arm.md
*** gcc-2.7.2/config/arm/arm.md Wed Nov 8 13:59:00 1995
--- gcc-2.7.2-riscbsd/config/arm/arm.md Sat Mar 2 04:27:19 1996
***************
*** 3319,3325 ****
(if_then_else (match_operand 1 "comparison_operator" "")
(match_operand:SI 2 "arm_not_operand" "")
(match_operand:SI 3 "register_operand" "")))]
! ""
"
{
enum rtx_code code = GET_CODE (operands[1]);
--- 3319,3325 ----
(if_then_else (match_operand 1 "comparison_operator" "")
(match_operand:SI 2 "arm_not_operand" "")
(match_operand:SI 3 "register_operand" "")))]
! "0"
"
{
enum rtx_code code = GET_CODE (operands[1]);
diff -N -c -r gcc-2.7.2/config/arm/netbsd.h gcc-2.7.2-riscbsd/config/arm/netbsd.h
*** gcc-2.7.2/config/arm/netbsd.h Thu Jan 1 01:00:00 1970
--- gcc-2.7.2-riscbsd/config/arm/netbsd.h Sat Mar 2 04:39:47 1996
***************
*** 0 ****
--- 1,141 ----
+ /* Definitions of target machine for GNU compiler.
+ NetBSD/arm (RiscBSD) version.
+ Copyright (C) 1993, 1994 Free Software Foundation, Inc.
+ Contributed by Mark Brinicombe (amb@physig.ph.kcl.ac.uk)
+
+ This file is part of GNU CC.
+
+ GNU CC 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.
+
+ GNU CC 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 GNU CC; see the file COPYING. If not, write to
+ the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
+
+ /* Ok it either ARM2 or ARM3 code is produced we need to define the
+ * appropriate symbol and delete the ARM6 symbol
+ */
+
+ /* Run-time Target Specification. */
+
+ #define TARGET_VERSION fputs (" (ARM/NetBSD)", stderr);
+
+ /* This is used in ASM_FILE_START */
+
+ #define ARM_OS_NAME "NetBSD"
+
+ /* Unsigned chars produces much better code than signed. */
+
+ #define DEFAULT_SIGNED_CHAR 0
+
+ /* ARM600 default cpu */
+
+ #define TARGET_DEFAULT 8
+
+ /* Since we always use GAS as our assembler we support stabs */
+
+ #define DBX_DEBUGGING_INFO 1
+
+ /*#undef ASM_DECLARE_FUNCTION_NAME*/
+
+ #include "arm/arm.h"
+
+ /* Gets redefined in config/netbsd.h */
+
+ #undef TARGET_MEM_FUNCTIONS
+
+ #include <netbsd.h>
+
+ /* Ok some nice defines for CPP
+ By default we define arm32 __arm32__ and __arm6__
+ However if we are compiling 26 bit code -m2 or -m3 then
+ we remove all these definitions.
+ The arm32 and __arm32__ defines indication that the compiler
+ is generating 32 bit address space code.
+ The __arm2__ __arm3__ and __arm6__ are obvious. */
+
+ #undef CPP_PREDEFINES
+ #define CPP_PREDEFINES "-Dunix -Darm32 -D__arm32__ -D__arm6__ -Driscbsd -D__NetBSD__ -Asystem(unix) -Asystem(NetBSD) -Acpu(arm) -Amachine(arm)"
+
+ #undef CPP_SPEC
+ #define CPP_SPEC "%{m2:-D__arm2__} %{m3:-D__arm3__} %{m2:-U__arm6__} \
+ %{m3:-U__arm6__} %{m2:-U__arm32__} %{m3:-U__arm32__} \
+ %{m2:-Uarm32} %{m3:-Uarm32} \
+ %{posix:-D_POSIX_SOURCE}"
+
+ #undef SIZE_TYPE
+ #define SIZE_TYPE "unsigned int"
+
+ #undef PTRDIFF_TYPE
+ #define PTRDIFF_TYPE "int"
+
+ #undef WCHAR_TYPE
+ #define WCHAR_TYPE "int"
+
+ #undef WCHAR_UNSIGNED
+ #define WCHAR_UNSIGNED 0
+
+ #undef WCHAR_TYPE_SIZE
+ #define WCHAR_TYPE_SIZE 32
+
+ #define HANDLE_SYSV_PRAGMA
+
+
+ /* We don't have any limit on the length as out debugger is GDB */
+
+ #undef DBX_CONTIN_LENGTH
+
+ /* NetBSD does its profiling differently to the Acorn compiler. We don't need
+ a word following mcount call and to skip if requires an assembly stub of
+ use of fomit-frame-pointer when compiling the profiling functions.
+ Since we break Acorn CC compatibility below a little more won't hurt */
+
+ #undef FUNCTION_PROFILER
+ #define FUNCTION_PROFILER(STREAM,LABELNO) \
+ { \
+ fprintf(STREAM, "\tmov\t%sip, %slr\n", REGISTER_PREFIX, REGISTER_PREFIX); \
+ fprintf(STREAM, "\tbl\tmcount\n"); \
+ }
+
+ /* VERY BIG NOTE : Change of structure alignment for RiscBSD.
+ There are consequences you should be aware of */
+
+ /* Normally GCC/arm uses a structure alignment of 32. This means that
+ structures are padded to a word boundry. However this causes
+ problems with bugged NetBSD kernel code (possible userland code
+ as well - I have not checked every binary).
+ The nature of this the bugged code is to rely on sizeof() returning
+ the correct size of various structures rounded to the nearest byte
+ (SCSI and ether code are two examples, the vm system is another)
+ This code starts to break when the structure alignment is 32 as sizeof()
+ will report a word rounded size.
+ By changing the structure alignment to 8. GCC will conform to what
+ is expected by NetBSD.
+
+ This has several side effects that should be considered.
+ 1. Structures will only be aligned to the size of the largest member.
+ i.e. structures containing only bytes will be byte aligned.
+ structures containing shorts will be half word alinged.
+ structures containing ints will be word aligned.
+
+ This means structures should be padded to a word boundry if
+ alignment of 32 is require for byte structures etc.
+
+ 2. A potential performance penalty may exist if strings are no longer
+ word aligned. GCC will not be able to use word load/stores for copy
+ short strings.
+
+ This modification is not encouraged but with the present state of the
+ NetBSD source tree it is currently the only solution to meet the
+ requirements.
+ */
+
+ #undef STRUCTURE_SIZE_BOUNDARY
+ #define STRUCTURE_SIZE_BOUNDARY 8
diff -N -c -r gcc-2.7.2/config/arm/t-netbsd gcc-2.7.2-riscbsd/config/arm/t-netbsd
*** gcc-2.7.2/config/arm/t-netbsd Thu Jan 1 01:00:00 1970
--- gcc-2.7.2-riscbsd/config/arm/t-netbsd Sat Mar 2 03:57:21 1996
***************
*** 0 ****
--- 1,11 ----
+ # Just for these, we omit the frame pointer since it makes such a big
+ # difference. It is then pointless adding debugging.
+ LIBGCC2_CFLAGS=-O2 -fomit-frame-pointer $(LIBGCC2_INCLUDES) $(GCC_CFLAGS) -g0
+ # -Dinhibit_libc
+
+ # Don't build enquire
+ ENQUIRE=
+
+ CROSS_LIBGCC1 = libgcc1-asm.a
+ LIB1ASMSRC = arm/lib1funcs.asm
+ LIB1ASMFUNCS = _udivsi3 _divsi3 _umodsi3 _modsi3 _dvmd_tls
diff -N -c -r gcc-2.7.2/config/arm/xm-netbsd.h gcc-2.7.2-riscbsd/config/arm/xm-netbsd.h
*** gcc-2.7.2/config/arm/xm-netbsd.h Thu Jan 1 01:00:00 1970
--- gcc-2.7.2-riscbsd/config/arm/xm-netbsd.h Sat Mar 2 04:39:09 1996
***************
*** 0 ****
--- 1,10 ----
+ /* Configuration for GCC for ARM running NetBSD as host. */
+
+ #include <arm/xm-arm.h>
+
+ /* xm-netbsd.h defines this */
+ #ifdef HAVE_VPRINTF
+ #undef HAVE_VPRINTF
+ #endif
+
+ #include <xm-netbsd.h>
diff -N -c -r gcc-2.7.2/config.status gcc-2.7.2-riscbsd/config.status
*** gcc-2.7.2/config.status Thu Jan 1 01:00:00 1970
--- gcc-2.7.2-riscbsd/config.status Sat Mar 2 05:07:30 1996
***************
*** 0 ****
--- 1,4 ----
+ #!/bin/sh
+ # GCC was configured as follows:
+ ./configure --verbose --with-gnu-ld --with-gnu-as --with-stabs --host=arm-riscpc-netbsd1.1A --target=arm-riscpc-netbsd1.1A
+ echo host=arm-riscpc-netbsd1.