From patchwork Wed Dec 15 01:50:47 2010 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Joseph Myers X-Patchwork-Id: 75600 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from sourceware.org (server1.sourceware.org [209.132.180.131]) by ozlabs.org (Postfix) with SMTP id 112B0B6F14 for ; Wed, 15 Dec 2010 12:50:59 +1100 (EST) Received: (qmail 21994 invoked by alias); 15 Dec 2010 01:50:57 -0000 Received: (qmail 21626 invoked by uid 22791); 15 Dec 2010 01:50:55 -0000 X-SWARE-Spam-Status: No, hits=-1.7 required=5.0 tests=AWL, BAYES_00, TW_QN, TW_XG, T_RP_MATCHES_RCVD X-Spam-Check-By: sourceware.org Received: from mail.codesourcery.com (HELO mail.codesourcery.com) (38.113.113.100) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Wed, 15 Dec 2010 01:50:51 +0000 Received: (qmail 27656 invoked from network); 15 Dec 2010 01:50:48 -0000 Received: from unknown (HELO digraph.polyomino.org.uk) (joseph@127.0.0.2) by mail.codesourcery.com with ESMTPA; 15 Dec 2010 01:50:48 -0000 Received: from jsm28 (helo=localhost) by digraph.polyomino.org.uk with local-esmtp (Exim 4.72) (envelope-from ) id 1PSgVz-0005dl-5G; Wed, 15 Dec 2010 01:50:47 +0000 Date: Wed, 15 Dec 2010 01:50:47 +0000 (UTC) From: "Joseph S. Myers" To: gcc-patches@gcc.gnu.org cc: rth@redhat.com, jh@suse.cz, ubizjak@gmail.com Subject: svr4.h avoidance: i386 Message-ID: MIME-Version: 1.0 Mailing-List: contact gcc-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Archive: List-Post: List-Help: Sender: gcc-patches-owner@gcc.gnu.org Delivered-To: mailing list gcc-patches@gcc.gnu.org This patch in the series removing svr4.h from the headers used by particular targets in GCC stops i?86-* and x86_64-* targets from using svr4.h. There are several config.gcc stanzas involved, with varying sets of macros involved; the i[34567]86-*-linux* | i[34567]86-*-kfreebsd*-gnu | i[34567]86-*-knetbsd*-gnu | i[34567]86-*-gnu* | i[34567]86-*-kopensolaris*-gnu and x86_64-*-linux* | x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu stanzas do not end up using any of the macros from svr4.h at all, while the i[4567]86-wrs-vxworks|i[4567]86-wrs-vxworksae stanza only uses any of the macros in the vxworksae case, and i[34567]86-*-solaris2* ends up not using the macros from svr4.h in the Solaris 2.10 (or later) case. This patch adds macro definitions to the appropriate target-specific headers as needed. Bootstrapped with no regressions on x86_64-unknown-linux-gnu, and tested building cc1 and xgcc for crosses to: i686-linux-gnu i686-kfreebsd-gnu i686-knetbsd-gnu i686-gnu i686-kopensolaris-gnu x86_64-kfreebsd-gnu x86_64-knetbsd-gnu i686-netware i686-nto-qnx i686-solaris2.8 i686-solaris2.10 i686-wrs-vxworks i686-wrs-vxworksae. OK to commit? (The patch is relative to a tree with (pending review) applied, but does not depend on that patch at all; it was used in testing simply because it is required for several of the tested targets to build at all.) 2010-12-14 Joseph Myers * config/i386/netware.h (ASM_SPEC, SIZE_TYPE, PTRDIFF_TYPE): Define. * config/i386/nto.h (LIB_SPEC, ASM_SPEC): Define. (DBX_REGISTER_NUMBER): Undefine. * config/i386/sol2.h (SIZE_TYPE, PTRDIFF_TYPE): Define. * config/i386/vxworksae.h (ASM_SPEC, SIZE_TYPE, PTRDIFF_TYPE): Define. * config.gcc (i[34567]86-*-linux* | i[34567]86-*-kfreebsd*-gnu | i[34567]86-*-knetbsd*-gnu | i[34567]86-*-gnu* | i[34567]86-*-kopensolaris*-gnu, x86_64-*-linux* | x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu, i[3456x]86-*-netware*, i[34567]86-*-nto-qnx*, i[34567]86-*-solaris2*, i[4567]86-wrs-vxworks|i[4567]86-wrs-vxworksae): Don't use svr4.h. diff -rupN --exclude=.svn gcc-mainline-0/gcc/config/i386/netware.h gcc-mainline/gcc/config/i386/netware.h --- gcc-mainline-0/gcc/config/i386/netware.h 2010-12-06 10:10:24.000000000 -0800 +++ gcc-mainline/gcc/config/i386/netware.h 2010-12-14 15:19:07.000000000 -0800 @@ -26,6 +26,9 @@ along with GCC; see the file COPYING3. #undef CPP_SPEC #define CPP_SPEC "%{posix:-D_POSIX_SOURCE} %{pthread:-D_REENTRANT}" +#undef ASM_SPEC +#define ASM_SPEC "" + #undef LIB_SPEC #define LIB_SPEC "" @@ -107,6 +110,12 @@ do { \ /* Default structure packing is 1-byte. */ #define TARGET_DEFAULT_PACK_STRUCT 1 +#undef SIZE_TYPE +#define SIZE_TYPE "unsigned int" + +#undef PTRDIFF_TYPE +#define PTRDIFF_TYPE "int" + #undef WCHAR_TYPE #define WCHAR_TYPE "short unsigned int" diff -rupN --exclude=.svn gcc-mainline-0/gcc/config/i386/nto.h gcc-mainline/gcc/config/i386/nto.h --- gcc-mainline-0/gcc/config/i386/nto.h 2010-12-06 10:10:42.000000000 -0800 +++ gcc-mainline/gcc/config/i386/nto.h 2010-12-14 15:20:36.000000000 -0800 @@ -83,6 +83,11 @@ crti.o%s \ -m i386nto \ %{!shared: --dynamic-linker /usr/lib/ldqnx.so.2}" +#undef LIB_SPEC +#define LIB_SPEC "%{!shared:%{!symbolic:-lc}}" + +#undef ASM_SPEC +#define ASM_SPEC "" #undef SIZE_TYPE #define SIZE_TYPE "unsigned int" @@ -99,3 +104,5 @@ crti.o%s \ #define NO_IMPLICIT_EXTERN_C 1 #define TARGET_POSIX_IO + +#undef DBX_REGISTER_NUMBER diff -rupN --exclude=.svn gcc-mainline-0/gcc/config/i386/sol2.h gcc-mainline/gcc/config/i386/sol2.h --- gcc-mainline-0/gcc/config/i386/sol2.h 2010-12-09 05:38:51.000000000 -0800 +++ gcc-mainline/gcc/config/i386/sol2.h 2010-12-14 15:23:38.000000000 -0800 @@ -176,4 +176,10 @@ along with GCC; see the file COPYING3. #define LIBGCC2_TF_CEXT q #define TF_SIZE 113 +#undef SIZE_TYPE +#define SIZE_TYPE "unsigned int" + +#undef PTRDIFF_TYPE +#define PTRDIFF_TYPE "int" + #define MD_UNWIND_SUPPORT "config/i386/sol2-unwind.h" diff -rupN --exclude=.svn gcc-mainline-0/gcc/config/i386/vxworksae.h gcc-mainline/gcc/config/i386/vxworksae.h --- gcc-mainline-0/gcc/config/i386/vxworksae.h 2009-03-28 00:38:14.000000000 -0700 +++ gcc-mainline/gcc/config/i386/vxworksae.h 2010-12-14 15:25:04.000000000 -0800 @@ -1,5 +1,5 @@ /* IA32 VxWorks AE target definitions for GNU compiler. - Copyright (C) 2005, 2007 Free Software Foundation, Inc. + Copyright (C) 2005, 2007, 2010 Free Software Foundation, Inc. Contributed by CodeSourcery, LLC. This file is part of GCC. @@ -24,3 +24,12 @@ along with GCC; see the file COPYING3. do \ builtin_define ("CPU=SIMNT"); \ while (0) + +#undef ASM_SPEC +#define ASM_SPEC "" + +#undef SIZE_TYPE +#define SIZE_TYPE "unsigned int" + +#undef PTRDIFF_TYPE +#define PTRDIFF_TYPE "int" diff -rupN --exclude=.svn gcc-mainline-0/gcc/config.gcc gcc-mainline/gcc/config.gcc --- gcc-mainline-0/gcc/config.gcc 2010-12-14 14:13:10.000000000 -0800 +++ gcc-mainline/gcc/config.gcc 2010-12-14 15:09:07.000000000 -0800 @@ -1215,7 +1215,7 @@ i[34567]86-*-openbsd*) i[34567]86-*-linux* | i[34567]86-*-kfreebsd*-gnu | i[34567]86-*-knetbsd*-gnu | i[34567]86-*-gnu* | i[34567]86-*-kopensolaris*-gnu) # Intel 80386's running GNU/* # with ELF format using glibc 2 - tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h svr4.h linux.h glibc-stdint.h" + tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h linux.h glibc-stdint.h" case ${target} in i[34567]86-*-linux*) # Assume modern glibc @@ -1252,7 +1252,7 @@ i[34567]86-*-linux* | i[34567]86-*-kfree tmake_file="${tmake_file} i386/t-crtstuff i386/t-crtpc i386/t-crtfm t-dfprules" ;; x86_64-*-linux* | x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu) - tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h svr4.h linux.h glibc-stdint.h \ + tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h linux.h glibc-stdint.h \ i386/x86-64.h i386/linux64.h" case ${target} in x86_64-*-linux*) @@ -1282,7 +1282,7 @@ i[34567]86-*-lynxos*) gas=yes ;; i[3456x]86-*-netware*) - tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h svr4.h tm-dwarf2.h i386/netware.h" + tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h tm-dwarf2.h i386/netware.h" tmake_file="${tmake_file} i386/t-netware" extra_objs=netware.o case /${with_ld} in @@ -1301,7 +1301,7 @@ i[3456x]86-*-netware*) esac ;; i[34567]86-*-nto-qnx*) - tm_file="${tm_file} i386/att.h dbxelf.h tm-dwarf2.h elfos.h svr4.h i386/unix.h i386/nto.h" + tm_file="${tm_file} i386/att.h dbxelf.h tm-dwarf2.h elfos.h i386/unix.h i386/nto.h" tmake_file="${tmake_file} i386/t-nto" gnu_ld=yes gas=yes @@ -1312,7 +1312,7 @@ i[34567]86-*-rtems*) tmake_file="${tmake_file} i386/t-rtems-i386 i386/t-crtstuff t-rtems" ;; i[34567]86-*-solaris2*) - tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h svr4.h i386/sysv4.h sol2.h" + tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h i386/sysv4.h sol2.h" # Set default arch_32 to pentium4, tune_32 to generic like the other # i386 targets, although config.guess defaults to i386-pc-solaris2*. case ${target} in @@ -1393,7 +1393,7 @@ i[34567]86-*-solaris2*) esac ;; i[4567]86-wrs-vxworks|i[4567]86-wrs-vxworksae) - tm_file="${tm_file} i386/unix.h i386/att.h elfos.h svr4.h vx-common.h" + tm_file="${tm_file} i386/unix.h i386/att.h elfos.h vx-common.h" case ${target} in *-vxworksae*) tm_file="${tm_file} vxworksae.h i386/vx-common.h i386/vxworksae.h"