From dd0e14964f0654127a925e9ce0a6b2ca833991d7 Mon Sep 17 00:00:00 2001 From: Ingo Weinhold Date: Sun, 21 Jul 2013 19:48:12 +0200 Subject: [PATCH] Support building a cross gcc2 on x86_64 At least building the compiler seems to work on Linux (openSUSE 12.3). Haven't tested whether the resulting Haiku works as well. --- legacy/gcc/gcc/config/i386/xm-x86_64.h | 43 ++++++++++++++++++++++++++ legacy/gcc/gcc/configure | 8 +++++ legacy/gcc/gcc/configure.in | 8 +++++ 3 files changed, 59 insertions(+) create mode 100644 legacy/gcc/gcc/config/i386/xm-x86_64.h diff --git a/legacy/gcc/gcc/config/i386/xm-x86_64.h b/legacy/gcc/gcc/config/i386/xm-x86_64.h new file mode 100644 index 0000000000..ba7b1076c0 --- /dev/null +++ b/legacy/gcc/gcc/config/i386/xm-x86_64.h @@ -0,0 +1,43 @@ +/* Configuration for GNU C-compiler for Intel 80386. + Copyright (C) 1988, 1993 Free Software Foundation, Inc. + +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, 59 Temple Place - Suite 330, +Boston, MA 02111-1307, USA. */ + +#ifndef i386 +#define i386 +#endif + +/* #defines that need visibility everywhere. */ +#define FALSE 0 +#define TRUE 1 + +/* This describes the machine the compiler is hosted on. */ +#define HOST_BITS_PER_CHAR 8 +#define HOST_BITS_PER_SHORT 16 +#define HOST_BITS_PER_INT 32 +#define HOST_BITS_PER_LONG 64 +#define HOST_BITS_PER_LONGLONG 64 + +/* Arguments to use with `exit'. */ +#define SUCCESS_EXIT_CODE 0 +#define FATAL_EXIT_CODE 33 + +/* target machine dependencies. + tm.h is a symbolic link to the actual target specific file. */ + +#include "tm.h" diff --git a/legacy/gcc/gcc/configure b/legacy/gcc/gcc/configure index ed9f03f0c4..e9f908500c 100755 --- a/legacy/gcc/gcc/configure +++ b/legacy/gcc/gcc/configure @@ -2947,6 +2947,9 @@ for machine in $build $host $target; do sparc*-*-*) cpu_type=sparc ;; + x86_64-*) + cpu_type=x86_64 + ;; esac tm_file=${cpu_type}/${cpu_type}.h @@ -5637,6 +5640,11 @@ for machine in $build $host $target; do xm_file="${xm_file} xm-svr3" use_collect2=yes ;; + x86_64-*) + # Not actually supported as a target. But we want to avoid an error when + # building a cross-compiler for this build host. + xm_file=i386/xm-x86_64.h + ;; *) echo "Configuration $machine not supported" 1>&2 exit 1 diff --git a/legacy/gcc/gcc/configure.in b/legacy/gcc/gcc/configure.in index 1e47a03979..e310a339bf 100644 --- a/legacy/gcc/gcc/configure.in +++ b/legacy/gcc/gcc/configure.in @@ -513,6 +513,9 @@ changequote([,])dnl sparc*-*-*) cpu_type=sparc ;; + x86_64-*) + cpu_type=x86_64 + ;; esac tm_file=${cpu_type}/${cpu_type}.h @@ -3341,6 +3344,11 @@ changequote([,])dnl xm_file="${xm_file} xm-svr3" use_collect2=yes ;; + x86_64-*) + # Not actually supported as a target. But we want to avoid an error when + # building a cross-compiler for this build host. + xm_file=i386/xm-x86_64.h + ;; *) echo "Configuration $machine not supported" 1>&2 exit 1