From 7d8d16c3d94564f7210fb4a4711246d9399ab065 Mon Sep 17 00:00:00 2001 From: Robert Millan Date: Tue, 14 Jun 2011 17:32:55 +0200 Subject: [PATCH] kfreebsd-gnu.h: Resync with `config/i386/linux.h'. * config/i386/kfreebsd-gnu.h: Resync with `config/i386/linux.h'. * config/kfreebsd-gnu.h (GNU_USER_DYNAMIC_LINKER): Resync with `config/linux.h'. * config/i386/kfreebsd-gnu64.h: New file. * config.gcc (x86_64-*-kfreebsd*-gnu): Replace `i386/kfreebsd-gnu.h' with `i386/kfreebsd-gnu64.h'. * config/i386/linux64.h (GNU_USER_LINK_EMULATION32) (GNU_USER_LINK_EMULATION64): New macros. * config/i386/gnu-user64.h (LINK_SPEC): Rely on `GNU_USER_LINK_EMULATION32' and `GNU_USER_LINK_EMULATION64' instead of hardcoding `elf_i386' and `elf_x86_64'. From-SVN: r175031 --- gcc/ChangeLog | 23 +++++++++++++++++++---- gcc/config.gcc | 2 +- gcc/config/i386/gnu-user64.h | 3 ++- gcc/config/i386/kfreebsd-gnu.h | 10 ++-------- gcc/config/i386/kfreebsd-gnu64.h | 26 ++++++++++++++++++++++++++ gcc/config/i386/linux64.h | 3 +++ gcc/config/kfreebsd-gnu.h | 6 +++--- 7 files changed, 56 insertions(+), 17 deletions(-) create mode 100644 gcc/config/i386/kfreebsd-gnu64.h diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 8e9aa41b378..651f380e54f 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,19 @@ +2011-06-14 Robert Millan + + * config/i386/kfreebsd-gnu.h: Resync with `config/i386/linux.h'. + * config/kfreebsd-gnu.h (GNU_USER_DYNAMIC_LINKER): Resync with + `config/linux.h'. + + * config/i386/kfreebsd-gnu64.h: New file. + * config.gcc (x86_64-*-kfreebsd*-gnu): Replace `i386/kfreebsd-gnu.h' + with `i386/kfreebsd-gnu64.h'. + + * config/i386/linux64.h (GNU_USER_LINK_EMULATION32) + (GNU_USER_LINK_EMULATION64): New macros. + * config/i386/gnu-user64.h (LINK_SPEC): Rely on + `GNU_USER_LINK_EMULATION32' and `GNU_USER_LINK_EMULATION64' instead + of hardcoding `elf_i386' and `elf_x86_64'. + 2011-06-14 Nick Clifton PR target/49403 @@ -97,10 +113,9 @@ 2011-06-13 Edmar Wienskoski - * config/rs6000/rs6000.md (save_gpregs_): Replaced pattern - with a set of similar patterns, where the MATCH_OPERAND for the - function argument is replaced with individual references to hardware - registers. + * config/rs6000/rs6000.md (save_gpregs_): Replaced pattern with + a set of similar patterns, where the MATCH_OPERAND for the function + argument is replaced with individual references to hardware registers. (save_fpregs_): Ditto (restore_gpregs_): Ditto (return_and_restore_gpregs_): Ditto diff --git a/gcc/config.gcc b/gcc/config.gcc index b5a5638d271..e9704f3ec7e 100644 --- a/gcc/config.gcc +++ b/gcc/config.gcc @@ -1267,7 +1267,7 @@ x86_64-*-linux* | x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu) x86_64-*-linux*) tm_file="${tm_file} linux.h i386/linux64.h" default_gnu_indirect_function=glibc-2011 ;; - x86_64-*-kfreebsd*-gnu) tm_file="${tm_file} kfreebsd-gnu.h i386/kfreebsd-gnu.h" ;; + x86_64-*-kfreebsd*-gnu) tm_file="${tm_file} kfreebsd-gnu.h i386/kfreebsd-gnu64.h" ;; x86_64-*-knetbsd*-gnu) tm_file="${tm_file} knetbsd-gnu.h" ;; esac tmake_file="${tmake_file} i386/t-linux64 i386/t-crtstuff i386/t-crtpc i386/t-crtfm t-dfprules" diff --git a/gcc/config/i386/gnu-user64.h b/gcc/config/i386/gnu-user64.h index 3ece0faa6df..b069975ef19 100644 --- a/gcc/config/i386/gnu-user64.h +++ b/gcc/config/i386/gnu-user64.h @@ -69,7 +69,8 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see %{!mno-sse2avx:%{mavx:-msse2avx}} %{msse2avx:%{!mavx:-msse2avx}}" #undef LINK_SPEC -#define LINK_SPEC "%{" SPEC_64 ":-m elf_x86_64} %{" SPEC_32 ":-m elf_i386} \ +#define LINK_SPEC "%{" SPEC_64 ":-m " GNU_USER_LINK_EMULATION64 "} \ + %{" SPEC_32 ":-m " GNU_USER_LINK_EMULATION32 "} \ %{shared:-shared} \ %{!shared: \ %{!static: \ diff --git a/gcc/config/i386/kfreebsd-gnu.h b/gcc/config/i386/kfreebsd-gnu.h index 52ee09b0931..b8c509a502d 100644 --- a/gcc/config/i386/kfreebsd-gnu.h +++ b/gcc/config/i386/kfreebsd-gnu.h @@ -1,5 +1,5 @@ /* Definitions for Intel 386 running kFreeBSD-based GNU systems with ELF format - Copyright (C) 2004, 2007, 2011 + Copyright (C) 2011 Free Software Foundation, Inc. Contributed by Robert Millan. @@ -19,11 +19,5 @@ You should have received a copy of the GNU General Public License along with GCC; see the file COPYING3. If not see . */ -#undef GNU_USER_LINK_EMULATION #define GNU_USER_LINK_EMULATION "elf_i386_fbsd" - -#undef GNU_USER_DYNAMIC_LINKER32 -#define GNU_USER_DYNAMIC_LINKER32 "/lib/ld.so.1" - -#undef GNU_USER_DYNAMIC_LINKER64 -#define GNU_USER_DYNAMIC_LINKER64 "/lib/ld-kfreebsd-x86-64.so.1" +#define GLIBC_DYNAMIC_LINKER "/lib/ld.so.1" diff --git a/gcc/config/i386/kfreebsd-gnu64.h b/gcc/config/i386/kfreebsd-gnu64.h new file mode 100644 index 00000000000..c3798a5c591 --- /dev/null +++ b/gcc/config/i386/kfreebsd-gnu64.h @@ -0,0 +1,26 @@ +/* Definitions for AMD x86-64 running kFreeBSD-based GNU systems with ELF format + Copyright (C) 2011 + Free Software Foundation, Inc. + Contributed by Robert Millan. + +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 3, 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 COPYING3. If not see +. */ + +#define GNU_USER_LINK_EMULATION32 "elf_i386_fbsd" +#define GNU_USER_LINK_EMULATION64 "elf_x86_64_fbsd" + +#define GLIBC_DYNAMIC_LINKER32 "/lib/ld.so.1" +#define GLIBC_DYNAMIC_LINKER64 "/lib/ld-kfreebsd-x86-64.so.1" diff --git a/gcc/config/i386/linux64.h b/gcc/config/i386/linux64.h index 9bf7eab04af..5d332246cb5 100644 --- a/gcc/config/i386/linux64.h +++ b/gcc/config/i386/linux64.h @@ -24,5 +24,8 @@ a copy of the GCC Runtime Library Exception along with this program; see the files COPYING3 and COPYING.RUNTIME respectively. If not, see . */ +#define GNU_USER_LINK_EMULATION32 "elf_i386" +#define GNU_USER_LINK_EMULATION64 "elf_x86_64" + #define GLIBC_DYNAMIC_LINKER32 "/lib/ld-linux.so.2" #define GLIBC_DYNAMIC_LINKER64 "/lib64/ld-linux-x86-64.so.2" diff --git a/gcc/config/kfreebsd-gnu.h b/gcc/config/kfreebsd-gnu.h index 4cc1dc290a8..0317c8dd2a8 100644 --- a/gcc/config/kfreebsd-gnu.h +++ b/gcc/config/kfreebsd-gnu.h @@ -19,7 +19,6 @@ You should have received a copy of the GNU General Public License along with GCC; see the file COPYING3. If not see . */ -#undef GNU_USER_TARGET_OS_CPP_BUILTINS #define GNU_USER_TARGET_OS_CPP_BUILTINS() \ do \ { \ @@ -31,5 +30,6 @@ along with GCC; see the file COPYING3. If not see } \ while (0) -#undef GNU_USER_DYNAMIC_LINKER -#define GNU_USER_DYNAMIC_LINKER "/lib/ld.so.1" +#define GNU_USER_DYNAMIC_LINKER GLIBC_DYNAMIC_LINKER +#define GNU_USER_DYNAMIC_LINKER32 GLIBC_DYNAMIC_LINKER32 +#define GNU_USER_DYNAMIC_LINKER64 GLIBC_DYNAMIC_LINKER64