public inbox for gcc-prs@sourceware.org
help / color / mirror / Atom feed
* Re: target/5410: NetBSD/i386/ELF configuration should be pushed to 3.0 branch
@ 2002-01-21  1:17 zack
  0 siblings, 0 replies; 3+ messages in thread
From: zack @ 2002-01-21  1:17 UTC (permalink / raw)
  To: gcc-bugs, gcc-prs, nobody, zack, zack

Synopsis: NetBSD/i386/ELF configuration should be pushed to 3.0 branch

Responsible-Changed-From-To: unassigned->zack
Responsible-Changed-By: zack
Responsible-Changed-When: Mon Jan 21 01:17:30 2002
Responsible-Changed-Why:
    Mine.
State-Changed-From-To: open->closed
State-Changed-By: zack
State-Changed-When: Mon Jan 21 01:17:30 2002
State-Changed-Why:
    Patch checked in.

http://gcc.gnu.org/cgi-bin/gnatsweb.pl?cmd=view%20audit-trail&database=gcc&pr=5410


^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: target/5410: NetBSD/i386/ELF configuration should be pushed to 3.0 branch
@ 2002-01-17 21:06 Craig Rodrigues
  0 siblings, 0 replies; 3+ messages in thread
From: Craig Rodrigues @ 2002-01-17 21:06 UTC (permalink / raw)
  To: nobody; +Cc: gcc-prs

The following reply was made to PR target/5410; it has been noted by GNATS.

From: Craig Rodrigues <rodrigc@mediaone.net>
To: gcc-gnats@gcc.gnu.org
Cc: gcc-patches@gcc.gnu.org, gcc-prs@gcc.gnu.org, zack@codesourcery.com,
   nobody@gcc.gnu.org, gcc-patches@gcc.gnu.org, mark@codesourcery.com
Subject: Re: target/5410: NetBSD/i386/ELF configuration should be pushed to 3.0 branch
Date: Thu, 17 Jan 2002 23:59:30 -0500

 Hi,
 
 Seems reasonable to me for 3.0.4, but not my
 call to make.
 -- 
 Craig Rodrigues        
 http://www.gis.net/~craigr    
 rodrigc@mediaone.net   
 
 2002-01-17  Zack Weinberg  <zack@codesourcery.com>
 
 	PR target/5410
 	* config/i386/netbsd-elf.h: Added.
 	* config.gcc (i[34567]86-*-netbsdelf*): Added.
 
        
 Index: config.gcc
 ===================================================================
 RCS file: /cvs/gcc/egcs/gcc/config.gcc,v
 retrieving revision 1.27.2.18
 diff -u -p -r1.27.2.18 config.gcc
 --- config.gcc	2001/11/18 00:29:45	1.27.2.18
 +++ config.gcc	2002/01/17 09:11:18
 @@ -1134,6 +1134,13 @@ i[34567]86-*-freebsd[12] | i[34567]86-*-
  i[34567]86-*-freebsd*)
  	tm_file="${tm_file} i386/att.h svr4.h ${fbsd_tm_file} i386/freebsd.h i386/perform.h"
  	;;
 +i[34567]86-*-netbsdelf*)
 +	xm_defines=POSIX
 +	tm_file="${tm_file} i386/att.h svr4.h i386/netbsd-elf.h"
 +	tmake_file=t-netbsd
 +	gnu_ld=yes
 +	float_format=i386
 +	;;
  i[34567]86-*-netbsd*)
  	tm_file=i386/netbsd.h
  	tmake_file=t-netbsd
 Index: config/i386/netbsd-elf.h
 ===================================================================
 RCS file: netbsd-elf.h
 diff -N netbsd-elf.h
 --- /dev/null	Tue May  5 13:32:27 1998
 +++ netbsd-elf.h	Thu Jan 17 01:11:18 2002
 @@ -0,0 +1,192 @@
 +/* Definitions of target machine for GNU compiler,
 +   for i386/ELF NetBSD systems.
 +   Copyright (C) 2001 Free Software Foundation, Inc.
 +   Contributed by matthew green <mrg@eterna.com.au>
 +
 +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.  */
 +
 +/* Provide a LIB_SPEC appropriate for NetBSD.  Just select the appropriate
 +   libc, depending on whether we're doing profiling; if `-posix' is specified,
 +   link against the appropriate libposix first.  */
 +
 +#undef LIB_SPEC
 +#define LIB_SPEC							\
 +  "%{posix:%{!p:%{!pg:-lposix}}%{p:-lposix_p}%{pg:-lposix_p}}		\
 +   %{!p:%{!pg:-lc}}%{p:-lc_p}%{pg:-lc_p}"
 +
 +/* Provide a STARTFILE_SPEC appropriate for NetBSD ELF targets.  Here we
 +   provide support for the special GCC option -static.  On ELF targets,
 +   we also add the crtbegin.o file which provides part of the support
 +   for getting C++ file-scope static objects constructed before entering
 +   `main'.  We use the NetBSD crt0. */
 +
 +#undef STARTFILE_SPEC
 +#define	STARTFILE_SPEC \
 + "%{!shared: \
 +     %{pg:gcrt0%O%s} \
 +     %{!pg: \
 +        %{p:gcrt0%O%s} \
 +        %{!p:crt0%O%s}}} \
 +   %{!shared:crtbegin%O%s} %{shared:crtbeginS%O%s}"
 +
 +/* Provide an ENDFILE_SPEC approrpiate for NetBSD ELF targets.  Here we
 +   add crtend.o, which provides part of the support for getting C++
 +   file-scope static objects deconstructed after exiting `main'. */
 +
 +#undef ENDFILE_SPEC
 +#define	ENDFILE_SPEC \
 + "%{!shared:crtend%O%s} %{shared:crtendS%O%s}"
 +
 +/* Provide a LINK_SPEC appropriate for a NetBSD/i386 ELF target.  Only
 +   the linker emulation is i386-specific.  The rest are
 +   common to all ELF targets, except for the name of the start function. */
 +
 +#undef LINK_SPEC
 +#define LINK_SPEC \
 + "-m elf_i386 \
 +  %{assert*} %{R*} \
 +  %{shared:-shared} \
 +  %{!shared: \
 +    -dp \
 +    %{!nostdlib:%{!r*:%{!e*:-e __start}}} \
 +    %{!static: \
 +      -dy %{rdynamic:-export-dynamic} \
 +      %{!dynamic-linker:-dynamic-linker /usr/libexec/ld.elf_so}} \
 +    %{static:-static}}"
 +
 +/* Provide a CPP_SPEC appropriate for NetBSD.  Current we just deal with
 +   the GCC option `-posix'.  */
 +
 +#undef CPP_SPEC
 +#define CPP_SPEC "%{posix:-D_POSIX_SOURCE}"
 +
 +/* Provide an ASM_SPEC appropriate for NetBSD.  Currently we only deal
 +   with the options for generating PIC code.  */
 +
 +#undef ASM_SPEC
 +#define ASM_SPEC " %| %{fpic:-k} %{fPIC:-k -K}"
 +
 +/* Provide a LIB_SPEC appropriate for NetBSD.  Just select the appropriate
 +   libc, depending on whether we're doing profiling.  */
 +
 +#undef LIB_SPEC
 +#define LIB_SPEC "%{!p:%{!pg:-lc}}%{p:-lc_p}%{pg:-lc_p}"
 +
 +/* This defines which switch letters take arguments. */
 +#undef SWITCH_TAKES_ARG
 +#define SWITCH_TAKES_ARG(CHAR) \
 +  (DEFAULT_SWITCH_TAKES_ARG(CHAR) \
 +   || (CHAR) == 'R')
 +
 +/* Implicit library calls should use memcpy, not bcopy, etc.  */
 +
 +#define TARGET_MEM_FUNCTIONS
 +
 +/* Names to predefine in the preprocessor for this target machine. */
 +
 +#define CPP_PREDEFINES "\
 +-Di386 -D__NetBSD__ -D__ELF__ -Asystem(unix) -Asystem(NetBSD)"
 +
 +/* Make gcc agree with <machine/ansi.h> */
 +
 +#undef SIZE_TYPE
 +#define SIZE_TYPE "unsigned int"
 +
 +#undef PTRDIFF_TYPE
 +#define PTRDIFF_TYPE "int"
 +
 +#undef WCHAR_TYPE
 +#define WCHAR_TYPE "int"
 +
 +#undef WCHAR_UNSIGNED
 +#define WCHAR_UNSIGNED 0
 +
 +#undef WCHAR_TYPE_SIZE
 +#define WCHAR_TYPE_SIZE 32
 +
 +#undef WINT_TYPE
 +#define WINT_TYPE "int"
 +
 +/* Output assembler code to FILE to increment profiler label # LABELNO
 +   for profiling a function entry.  Under NetBSD/i386, the assembler does
 +   nothing special with -pg. */
 +
 +#undef ASM_APP_ON
 +#define ASM_APP_ON "#APP\n"
 +
 +#undef ASM_APP_OFF
 +#define ASM_APP_OFF "#NO_APP\n"
 +
 +#undef ASM_FINAL_SPEC
 +#define ASM_FINAL_SPEC "%{pipe:-}"
 +
 +#undef DBX_REGISTER_NUMBER
 +#define DBX_REGISTER_NUMBER(n)  svr4_dbx_register_map[n]
 +
 +#undef  NO_PROFILE_COUNTERS
 +#define NO_PROFILE_COUNTERS
 +
 +#undef HAS_INIT_SECTION
 +
 +#undef DEFAULT_VTABLE_THUNKS
 +#define DEFAULT_VTABLE_THUNKS 1
 +
 +/* This is how we tell the assembler that two symbols have the same value.  */
 +
 +#define ASM_OUTPUT_DEF(FILE,NAME1,NAME2) \
 +  do { assemble_name(FILE, NAME1); 	 \
 +       fputs(" = ", FILE);		 \
 +       assemble_name(FILE, NAME2);	 \
 +       fputc('\n', FILE); } while (0)
 +
 +/* A C statement to output to the stdio stream FILE an assembler
 +   command to advance the location counter to a multiple of 1<<LOG
 +   bytes if it is within MAX_SKIP bytes.
 +
 +   This is used to align code labels according to Intel recommendations.  */
 +
 +#ifdef HAVE_GAS_MAX_SKIP_P2ALIGN
 +#define ASM_OUTPUT_MAX_SKIP_ALIGN(FILE, LOG, MAX_SKIP)					\
 +  if ((LOG) != 0) {														\
 +    if ((MAX_SKIP) == 0) fprintf ((FILE), "\t.p2align %d\n", (LOG));	\
 +    else fprintf ((FILE), "\t.p2align %d,,%d\n", (LOG), (MAX_SKIP));	\
 +  }
 +#endif
 +
 +/* This is how to output an element of a case-vector that is relative.
 +   This is only used for PIC code.  */
 +#undef ASM_OUTPUT_ADDR_DIFF_ELT
 +#define ASM_OUTPUT_ADDR_DIFF_ELT(FILE, BODY, VALUE, REL) \
 +  fprintf ((FILE), "\t.long _GLOBAL_OFFSET_TABLE_+[.-%s%d]\n", LPREFIX, VALUE)
 +
 +/* Indicate that jump tables go in the text section.  This is
 +   necessary when compiling PIC code.  */
 +#define JUMP_TABLES_IN_TEXT_SECTION (flag_pic)
 +
 +/*
 + * We always use gas here, so we don't worry about ECOFF assembler problems.
 + */
 +#undef TARGET_GAS
 +#define TARGET_GAS	1
 +
 +/* Default to pcc-struct-return, because this is the ELF abi and
 +   we don't care about compatibility with older gcc versions.  */
 +#define DEFAULT_PCC_STRUCT_RETURN 1
 +
 +#undef TARGET_VERSION
 +#define TARGET_VERSION fprintf (stderr, " (NetBSD/i386 ELF target)");


^ permalink raw reply	[flat|nested] 3+ messages in thread

* target/5410: NetBSD/i386/ELF configuration should be pushed to 3.0 branch
@ 2002-01-17  1:16 zack
  0 siblings, 0 replies; 3+ messages in thread
From: zack @ 2002-01-17  1:16 UTC (permalink / raw)
  To: gcc-gnats


>Number:         5410
>Category:       target
>Synopsis:       NetBSD/i386/ELF configuration should be pushed to 3.0 branch
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    unassigned
>State:          open
>Class:          change-request
>Submitter-Id:   net
>Arrival-Date:   Thu Jan 17 01:16:00 PST 2002
>Closed-Date:
>Last-Modified:
>Originator:     zack@codesourcery.com
>Release:        gcc-3.0.3
>Organization:
>Environment:
i386-unknown-netbsdelf1.5.2
>Description:
Bootstrap fails on i?86-*-netbsdelf*.  This is believed to
be because the target headers and config.gcc stanza for
this target pattern are only present on the mainline, not
the 3.0 branch.

Suggested patch is attached to this PR.
>How-To-Repeat:

>Fix:

>Release-Note:
>Audit-Trail:
>Unformatted:
----gnatsweb-attachment----
Content-Type: text/plain; name="gcc-3.0-netbsd-1.5.diff"
Content-Disposition: inline; filename="gcc-3.0-netbsd-1.5.diff"

Index: config.gcc
===================================================================
RCS file: /cvs/gcc/egcs/gcc/config.gcc,v
retrieving revision 1.27.2.18
diff -u -p -r1.27.2.18 config.gcc
--- config.gcc	2001/11/18 00:29:45	1.27.2.18
+++ config.gcc	2002/01/17 09:11:18
@@ -1134,6 +1134,13 @@ i[34567]86-*-freebsd[12] | i[34567]86-*-
 i[34567]86-*-freebsd*)
 	tm_file="${tm_file} i386/att.h svr4.h ${fbsd_tm_file} i386/freebsd.h i386/perform.h"
 	;;
+i[34567]86-*-netbsdelf*)
+	xm_defines=POSIX
+	tm_file="${tm_file} i386/att.h svr4.h i386/netbsd-elf.h"
+	tmake_file=t-netbsd
+	gnu_ld=yes
+	float_format=i386
+	;;
 i[34567]86-*-netbsd*)
 	tm_file=i386/netbsd.h
 	tmake_file=t-netbsd
Index: config/i386/netbsd-elf.h
===================================================================
RCS file: netbsd-elf.h
diff -N netbsd-elf.h
--- /dev/null	Tue May  5 13:32:27 1998
+++ netbsd-elf.h	Thu Jan 17 01:11:18 2002
@@ -0,0 +1,192 @@
+/* Definitions of target machine for GNU compiler,
+   for i386/ELF NetBSD systems.
+   Copyright (C) 2001 Free Software Foundation, Inc.
+   Contributed by matthew green <mrg@eterna.com.au>
+
+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.  */
+
+/* Provide a LIB_SPEC appropriate for NetBSD.  Just select the appropriate
+   libc, depending on whether we're doing profiling; if `-posix' is specified,
+   link against the appropriate libposix first.  */
+
+#undef LIB_SPEC
+#define LIB_SPEC							\
+  "%{posix:%{!p:%{!pg:-lposix}}%{p:-lposix_p}%{pg:-lposix_p}}		\
+   %{!p:%{!pg:-lc}}%{p:-lc_p}%{pg:-lc_p}"
+
+/* Provide a STARTFILE_SPEC appropriate for NetBSD ELF targets.  Here we
+   provide support for the special GCC option -static.  On ELF targets,
+   we also add the crtbegin.o file which provides part of the support
+   for getting C++ file-scope static objects constructed before entering
+   `main'.  We use the NetBSD crt0. */
+
+#undef STARTFILE_SPEC
+#define	STARTFILE_SPEC \
+ "%{!shared: \
+     %{pg:gcrt0%O%s} \
+     %{!pg: \
+        %{p:gcrt0%O%s} \
+        %{!p:crt0%O%s}}} \
+   %{!shared:crtbegin%O%s} %{shared:crtbeginS%O%s}"
+
+/* Provide an ENDFILE_SPEC approrpiate for NetBSD ELF targets.  Here we
+   add crtend.o, which provides part of the support for getting C++
+   file-scope static objects deconstructed after exiting `main'. */
+
+#undef ENDFILE_SPEC
+#define	ENDFILE_SPEC \
+ "%{!shared:crtend%O%s} %{shared:crtendS%O%s}"
+
+/* Provide a LINK_SPEC appropriate for a NetBSD/i386 ELF target.  Only
+   the linker emulation is i386-specific.  The rest are
+   common to all ELF targets, except for the name of the start function. */
+
+#undef LINK_SPEC
+#define LINK_SPEC \
+ "-m elf_i386 \
+  %{assert*} %{R*} \
+  %{shared:-shared} \
+  %{!shared: \
+    -dp \
+    %{!nostdlib:%{!r*:%{!e*:-e __start}}} \
+    %{!static: \
+      -dy %{rdynamic:-export-dynamic} \
+      %{!dynamic-linker:-dynamic-linker /usr/libexec/ld.elf_so}} \
+    %{static:-static}}"
+
+/* Provide a CPP_SPEC appropriate for NetBSD.  Current we just deal with
+   the GCC option `-posix'.  */
+
+#undef CPP_SPEC
+#define CPP_SPEC "%{posix:-D_POSIX_SOURCE}"
+
+/* Provide an ASM_SPEC appropriate for NetBSD.  Currently we only deal
+   with the options for generating PIC code.  */
+
+#undef ASM_SPEC
+#define ASM_SPEC " %| %{fpic:-k} %{fPIC:-k -K}"
+
+/* Provide a LIB_SPEC appropriate for NetBSD.  Just select the appropriate
+   libc, depending on whether we're doing profiling.  */
+
+#undef LIB_SPEC
+#define LIB_SPEC "%{!p:%{!pg:-lc}}%{p:-lc_p}%{pg:-lc_p}"
+
+/* This defines which switch letters take arguments. */
+#undef SWITCH_TAKES_ARG
+#define SWITCH_TAKES_ARG(CHAR) \
+  (DEFAULT_SWITCH_TAKES_ARG(CHAR) \
+   || (CHAR) == 'R')
+
+/* Implicit library calls should use memcpy, not bcopy, etc.  */
+
+#define TARGET_MEM_FUNCTIONS
+
+/* Names to predefine in the preprocessor for this target machine. */
+
+#define CPP_PREDEFINES "\
+-Di386 -D__NetBSD__ -D__ELF__ -Asystem(unix) -Asystem(NetBSD)"
+
+/* Make gcc agree with <machine/ansi.h> */
+
+#undef SIZE_TYPE
+#define SIZE_TYPE "unsigned int"
+
+#undef PTRDIFF_TYPE
+#define PTRDIFF_TYPE "int"
+
+#undef WCHAR_TYPE
+#define WCHAR_TYPE "int"
+
+#undef WCHAR_UNSIGNED
+#define WCHAR_UNSIGNED 0
+
+#undef WCHAR_TYPE_SIZE
+#define WCHAR_TYPE_SIZE 32
+
+#undef WINT_TYPE
+#define WINT_TYPE "int"
+
+/* Output assembler code to FILE to increment profiler label # LABELNO
+   for profiling a function entry.  Under NetBSD/i386, the assembler does
+   nothing special with -pg. */
+
+#undef ASM_APP_ON
+#define ASM_APP_ON "#APP\n"
+
+#undef ASM_APP_OFF
+#define ASM_APP_OFF "#NO_APP\n"
+
+#undef ASM_FINAL_SPEC
+#define ASM_FINAL_SPEC "%{pipe:-}"
+
+#undef DBX_REGISTER_NUMBER
+#define DBX_REGISTER_NUMBER(n)  svr4_dbx_register_map[n]
+
+#undef  NO_PROFILE_COUNTERS
+#define NO_PROFILE_COUNTERS
+
+#undef HAS_INIT_SECTION
+
+#undef DEFAULT_VTABLE_THUNKS
+#define DEFAULT_VTABLE_THUNKS 1
+
+/* This is how we tell the assembler that two symbols have the same value.  */
+
+#define ASM_OUTPUT_DEF(FILE,NAME1,NAME2) \
+  do { assemble_name(FILE, NAME1); 	 \
+       fputs(" = ", FILE);		 \
+       assemble_name(FILE, NAME2);	 \
+       fputc('\n', FILE); } while (0)
+
+/* A C statement to output to the stdio stream FILE an assembler
+   command to advance the location counter to a multiple of 1<<LOG
+   bytes if it is within MAX_SKIP bytes.
+
+   This is used to align code labels according to Intel recommendations.  */
+
+#ifdef HAVE_GAS_MAX_SKIP_P2ALIGN
+#define ASM_OUTPUT_MAX_SKIP_ALIGN(FILE, LOG, MAX_SKIP)					\
+  if ((LOG) != 0) {														\
+    if ((MAX_SKIP) == 0) fprintf ((FILE), "\t.p2align %d\n", (LOG));	\
+    else fprintf ((FILE), "\t.p2align %d,,%d\n", (LOG), (MAX_SKIP));	\
+  }
+#endif
+
+/* This is how to output an element of a case-vector that is relative.
+   This is only used for PIC code.  */
+#undef ASM_OUTPUT_ADDR_DIFF_ELT
+#define ASM_OUTPUT_ADDR_DIFF_ELT(FILE, BODY, VALUE, REL) \
+  fprintf ((FILE), "\t.long _GLOBAL_OFFSET_TABLE_+[.-%s%d]\n", LPREFIX, VALUE)
+
+/* Indicate that jump tables go in the text section.  This is
+   necessary when compiling PIC code.  */
+#define JUMP_TABLES_IN_TEXT_SECTION (flag_pic)
+
+/*
+ * We always use gas here, so we don't worry about ECOFF assembler problems.
+ */
+#undef TARGET_GAS
+#define TARGET_GAS	1
+
+/* Default to pcc-struct-return, because this is the ELF abi and
+   we don't care about compatibility with older gcc versions.  */
+#define DEFAULT_PCC_STRUCT_RETURN 1
+
+#undef TARGET_VERSION
+#define TARGET_VERSION fprintf (stderr, " (NetBSD/i386 ELF target)");


^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2002-01-21  9:17 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2002-01-21  1:17 target/5410: NetBSD/i386/ELF configuration should be pushed to 3.0 branch zack
  -- strict thread matches above, loose matches on Subject: below --
2002-01-17 21:06 Craig Rodrigues
2002-01-17  1:16 zack

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).