home *** CD-ROM | disk | FTP | other *** search
- 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.1A target=arm-riscpc-netbsd1.1A build=arm-riscpc-netbsd1.1A
- diff -N -c -r gcc-2.7.2/config.sub gcc-2.7.2-riscbsd/config.sub
- *** gcc-2.7.2/config.sub Thu Jun 15 22:01:49 1995
- --- gcc-2.7.2-riscbsd/config.sub Sat Mar 2 04:31:04 1996
- ***************
- *** 145,151 ****
- ;;
- # Recognize the basic CPU types with company name.
- vax-* | tahoe-* | i[345]86-* | i860-* | m68k-* | m68000-* | m88k-* \
- ! | sparc-* | ns32k-* | fx80-* | arm-* | c[123]* \
- | mips-* | pyramid-* | tron-* | a29k-* | romp-* | rs6000-* | power-* \
- | none-* | 580-* | cray2-* | h8300-* | i960-* | xmp-* | ymp-* \
- | hppa1.0-* | hppa1.1-* | alpha-* | we32k-* | cydra-* | ns16k-* \
- --- 145,151 ----
- ;;
- # Recognize the basic CPU types with company name.
- vax-* | tahoe-* | i[345]86-* | i860-* | m68k-* | m68000-* | m88k-* \
- ! | sparc-* | ns32k-* | fx80-* | arm-* | arm32-* | c[123]* \
- | mips-* | pyramid-* | tron-* | a29k-* | romp-* | rs6000-* | power-* \
- | none-* | 580-* | cray2-* | h8300-* | i960-* | xmp-* | ymp-* \
- | hppa1.0-* | hppa1.1-* | alpha-* | we32k-* | cydra-* | ns16k-* \
- diff -N -c -r gcc-2.7.2/configure gcc-2.7.2-riscbsd/configure
- *** gcc-2.7.2/configure Sun Nov 26 19:39:15 1995
- --- gcc-2.7.2-riscbsd/configure Sat Mar 2 04:29:35 1996
- ***************
- *** 619,624 ****
- --- 619,633 ----
- tmake_file=arm/t-semi
- fixincludes=Makefile.in # There is nothing to fix
- ;;
- + arm-*-netbsd* | arm32-*-netbsd*) # Acorn RISC machine running NetBSD
- + tm_file=arm/netbsd.h
- + xm_file=arm/xm-netbsd.h
- + # On NetBSD, the headers are already okay.
- + fixincludes=Makefile.in
- + tmake_file=arm/t-netbsd
- + xmake_file=x-netbsd
- + use_collect2=yes
- + ;;
- arm-*-*) # generic version
- ;;
- c1-convex-*) # Convex C1
-