From: "Joseph S. Myers" <joseph@codesourcery.com>
To: gcc-patches@gcc.gnu.org, rmh@gnu.org
Cc: rth@redhat.com, jh@suse.cz, ubizjak@gmail.com
Subject: Clean up k*gnu configurations
Date: Mon, 11 Apr 2011 20:11:00 -0000 [thread overview]
Message-ID: <Pine.LNX.4.64.1104112009490.32677@digraph.polyomino.org.uk> (raw)
Now that gnu-user*.h and linux*.h config headers have more or less the
proper contents, the next stage in stopping non-Linux-kernel-based
targets from using linux*.h is to get the correct contents into the
headers for the non-Linux-kernel-based targets. This patch (partly
based on changes and information from Robert Millan) does so for the
k*gnu targets. GNU_USER_LINK_EMULATION should bd defined for all
these targets, GNU_USER_DYNAMIC_LINKER32 and GNU_USER_DYNAMIC_LINKER64
should be defined for x86_64-kfreebsd-gnu and MD_UNWIND_SUPPORT should
be undefined instead of defining REG_NAME because linux-unwind.h is,
as previously discussed, inappropriate for these targets (it is
specific to the Linux kernel's signal frames and syscall numbers).
This patch does not do anything about GNU_USER_LINK_EMULATION for
x86_64-kfreebsd-gnu; my inclination is that the correct fix there is
to make i386/gnu-user64.h use GNU_USER_LINK_EMULATION32 and
GNU_USER_LINK_EMULATION64, which would then be defined by individual
targets' headers.
Tested building cc1 and xgcc for crosses to: i686-kfreebsd-gnu
i686-knetbsd-gnu i686-kopensolaris-gnu x86_64-kfreebsd-gnu. OK to
commit? (Note there are no target OS maintainers for these targets.)
2011-04-11 Joseph Myers <joseph@codesourcery.com>
Robert Millan <rmh@gnu.org>
* config.gcc (x86_64-*-kfreebsd*-gnu): Use i386/kfreebsd-gnu.h.
* config/i386/kfreebsd-gnu.h (GNU_USER_DYNAMIC_LINKER32,
GNU_USER_DYNAMIC_LINKER64): Define.
(REG_NAME): Don't undefine.
(MD_UNWIND_SUPPORT): Undefine.
* config/i386/knetbsd-gnu.h (GNU_USER_LINK_EMULATION): Define.
(REG_NAME): Don't undefine.
(MD_UNWIND_SUPPORT): Undefine.
* config/i386/kopensolaris-gnu.h (GNU_USER_LINK_EMULATION):
Define.
Index: gcc/config.gcc
===================================================================
--- gcc/config.gcc (revision 172273)
+++ gcc/config.gcc (working copy)
@@ -1243,7 +1243,7 @@ x86_64-*-linux* | x86_64-*-kfreebsd*-gnu
case ${target} in
x86_64-*-linux*)
default_gnu_indirect_function=glibc-2011 ;;
- x86_64-*-kfreebsd*-gnu) tm_file="${tm_file} kfreebsd-gnu.h" ;;
+ x86_64-*-kfreebsd*-gnu) tm_file="${tm_file} kfreebsd-gnu.h i386/kfreebsd-gnu.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"
Index: gcc/config/i386/kopensolaris-gnu.h
===================================================================
--- gcc/config/i386/kopensolaris-gnu.h (revision 172273)
+++ gcc/config/i386/kopensolaris-gnu.h (working copy)
@@ -1,5 +1,5 @@
/* Definitions for Intel 386 running kOpenSolaris-based GNU systems with ELF format
- Copyright (C) 2009
+ Copyright (C) 2009, 2011
Free Software Foundation, Inc.
Contributed by Robert Millan.
@@ -19,4 +19,6 @@ You should have received a copy of the G
along with GCC; see the file COPYING3. If not see
<http://www.gnu.org/licenses/>. */
+#define GNU_USER_LINK_EMULATION "elf_i386"
+
#undef MD_UNWIND_SUPPORT
Index: gcc/config/i386/kfreebsd-gnu.h
===================================================================
--- gcc/config/i386/kfreebsd-gnu.h (revision 172273)
+++ gcc/config/i386/kfreebsd-gnu.h (working copy)
@@ -21,5 +21,11 @@ along with GCC; see the file COPYING3.
#undef GNU_USER_LINK_EMULATION
#define GNU_USER_LINK_EMULATION "elf_i386_fbsd"
-#undef REG_NAME
-#define REG_NAME(reg) sc_ ## reg
+
+#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"
+
+#undef MD_UNWIND_SUPPORT
Index: gcc/config/i386/knetbsd-gnu.h
===================================================================
--- gcc/config/i386/knetbsd-gnu.h (revision 172273)
+++ gcc/config/i386/knetbsd-gnu.h (working copy)
@@ -1,5 +1,5 @@
/* Definitions for Intel 386 running kNetBSD-based GNU systems with ELF format
- Copyright (C) 2004, 2007
+ Copyright (C) 2004, 2007, 2011
Free Software Foundation, Inc.
Contributed by Robert Millan.
@@ -19,5 +19,6 @@ You should have received a copy of the G
along with GCC; see the file COPYING3. If not see
<http://www.gnu.org/licenses/>. */
-#undef REG_NAME
-#define REG_NAME(reg) sc_ ## reg
+#define GNU_USER_LINK_EMULATION "elf_i386"
+
+#undef MD_UNWIND_SUPPORT
--
Joseph S. Myers
joseph@codesourcery.com
next reply other threads:[~2011-04-11 20:11 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-04-11 20:11 Joseph S. Myers [this message]
2011-04-11 21:15 ` Richard Henderson
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=Pine.LNX.4.64.1104112009490.32677@digraph.polyomino.org.uk \
--to=joseph@codesourcery.com \
--cc=gcc-patches@gcc.gnu.org \
--cc=jh@suse.cz \
--cc=rmh@gnu.org \
--cc=rth@redhat.com \
--cc=ubizjak@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).