This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [PATCH] new FreeBSD/alpha support
- To: "David O'Brien" <obrien at FreeBSD dot org>
- Subject: Re: [PATCH] new FreeBSD/alpha support
- From: Richard Henderson <rth at cygnus dot com>
- Date: Thu, 5 Oct 2000 12:32:15 -0700
- Cc: gcc-patches at gcc dot gnu dot org
- References: <20001004224341.A50778@dragon.nuxi.com>
On Wed, Oct 04, 2000 at 10:43:41PM -0700, David O'Brien wrote:
> This patch set adds new architectural support for FreeBSD running on the
> DEC Alpha. This a first step, to get the compiler itself bootstrapping
> (and useful for cross-compilers). I'm working on some remaining test
> suite failures for C++.
>
> Permission to apply?
>
>
> Index: ChangeLog
> ===================================================================
> RCS file: /cvs/gcc/egcs/gcc/ChangeLog,v
> retrieving revision 1.7909
> diff -u -r1.7909 ChangeLog
> --- ChangeLog 2000/10/03 07:26:40 1.7909
> +++ ChangeLog 2000/10/05 05:40:02
> @@ -1,3 +1,10 @@
> +2000-10-04 David O'Brien <obrien@dragon.nuxi.com>
> +
> + * config/alpha/freebsd.h: New file -- FreeBSD/alpha architecture file.
> + * POTFILES.in: Add config/alpha/freebsd.h
> + * configure.in: Add alpha*-freebsd support.
> + * configure: Rebuilt.
> +
> Mon Oct 2 14:50:14 MET DST 2000 Jan Hubicka <jh@suse.cz>
>
> * rtlanal.c (single_set_1): Do not require USE and CLOBBERs
> Index: configure.in
> ===================================================================
> RCS file: /cvs/gcc/egcs/gcc/configure.in,v
> retrieving revision 1.432
> diff -u -r1.432 configure.in
> --- configure.in 2000/10/04 03:08:49 1.432
> +++ configure.in 2000/10/05 05:40:03
> @@ -787,6 +787,20 @@
> thread_file='posix'
> fi
> ;;
> + alpha*-*-freebsd*)
> + tm_file="${tm_file} freebsd.h alpha/freebsd.h"
> + target_cpu_default="MASK_GAS"
> + tmake_file="t-freebsd alpha/t-crtbe"
> + xmake_file=none
> + gas=yes gnu_ld=yes
> + stabs=yes
> + case x${enable_threads} in
> + xyes | xpthreads | xposix)
> + thread_file='posix'
> + tmake_file="${tmake_file} t-freebsd-thread"
> + ;;
> + esac
> + ;;
> +#define LINK_SPEC "-m elf64alpha \
> + %{p:%e`-p' not supported; use `-pg' and gprof(1)} \
> + %{Wl,*:%*} \
Why in the world are you touching -Wl? The gcc driver
already does this.
> +#define ASM_SPEC " %| %{mcpu=*:-m%*}"
Much better to use the `.arch' directive in the assembly file.
In fact, it appears that much of your freebsd.h would go away
if you just used alpha/elf.h. Which, in fact, I am going to
require, because you are missing stuff from it that you need.
Like sdata and sbss support.
So your tm_file line should be something like
tm_file="${tm_file} freebsd.h alpha/elf.h alpha/freebsd.h"
Also, you should override CPP_SPEC from freebsd.h to include
%{mieee:-D_IEEE_FP }
%{mieee-with-inexact:-D_IEEE_FP -D_IEEE_FP_INEXACT }}
r~