Makefile.in (CRT0STUFF_T_CFLAGS): Remove.
authorRainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
Wed, 13 Jul 2011 09:57:08 +0000 (09:57 +0000)
committerRainer Orth <ro@gcc.gnu.org>
Wed, 13 Jul 2011 09:57:08 +0000 (09:57 +0000)
gcc:
* Makefile.in (CRT0STUFF_T_CFLAGS): Remove.
($(T)crt0.o, $(T)mcrt0.o, s-crt0): Remove.
* config/i386/netware-crt0.c: Move to ../libgcc/config/i386.
* config/i386/t-nwld (CRTSTUFF_T_CFLAGS, CRT0STUFF_T_CFLAGS): Remove.
(CRT0_S, MCRT0_S): Remove.
($(T)libgcc.def, $(T)libc.def, $(T)libcpre.def, $(T)posixpre.def):
Remove.
(s-crt0): Remove.
* config.gcc (i[3456x]86-*-netware*): Remove extra_parts.

libgcc:
* config/i386/netware-crt0.c: New file.
* config/i386/t-nwld: Rename to ...
* config/i386/t-slibgcc-nwld: ... this.
* config/i386/t-nwld: New file.
* config.host (i[3456x]86-*-netware*): Add i386/t-slibgcc-nwld to
tmake_file.
Add crt0.o, libgcc.def, libc.def, libcpre.def, posixpre.def to
extra_parts.

From-SVN: r176225

gcc/ChangeLog
gcc/Makefile.in
gcc/config.gcc
gcc/config/i386/netware-crt0.c [deleted file]
gcc/config/i386/t-nwld
libgcc/ChangeLog
libgcc/config.host
libgcc/config/i386/netware-crt0.c [new file with mode: 0644]
libgcc/config/i386/t-nwld
libgcc/config/i386/t-slibgcc-nwld [new file with mode: 0644]

index c21c70ba76180b4da3313092882f549dead4a936..6b83a43b016f9f32b848a54735923c4bbcf6ea61 100644 (file)
@@ -1,3 +1,15 @@
+2011-07-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
+
+       * Makefile.in (CRT0STUFF_T_CFLAGS): Remove.
+       ($(T)crt0.o, $(T)mcrt0.o, s-crt0): Remove.
+       * config/i386/netware-crt0.c: Move to ../libgcc/config/i386.
+       * config/i386/t-nwld (CRTSTUFF_T_CFLAGS, CRT0STUFF_T_CFLAGS): Remove.
+       (CRT0_S, MCRT0_S): Remove.
+       ($(T)libgcc.def, $(T)libc.def, $(T)libcpre.def, $(T)posixpre.def):
+       Remove.
+       (s-crt0): Remove.
+       * config.gcc (i[3456x]86-*-netware*): Remove extra_parts.
+
 2011-07-12  Eric Botcazou  <ebotcazou@adacore.com>
 
        * cse.c (insert_with_costs): Put semi-colon after empty loop body
index caef28c822ff64592287df16d0089808948f56c6..fcc8b7e203cadfcfcba6e70be7c0acd026a882ca 100644 (file)
@@ -813,9 +813,6 @@ RUNTESTFLAGS =
 # Extra flags to use when compiling crt{begin,end}.o.
 CRTSTUFF_T_CFLAGS =
 
-# Extra flags to use when compiling [m]crt0.o.
-CRT0STUFF_T_CFLAGS =
-
 # "t" or nothing, for building multilibbed versions of, say, crtbegin.o.
 T =
 
@@ -1995,18 +1992,6 @@ $(T)crtbeginT.o: crtstuff.c $(GCC_PASSES) $(TCONFIG_H) auto-host.h \
        $(GCC_FOR_TARGET) $(CRTSTUFF_CFLAGS) $(CRTSTUFF_T_CFLAGS) \
          -c $(srcdir)/crtstuff.c -DCRT_BEGIN -DCRTSTUFFT_O \
          -o $(T)crtbeginT$(objext)
-
-# Compile the start modules crt0.o and mcrt0.o that are linked with
-# every program
-$(T)crt0.o: s-crt0 ; @true
-$(T)mcrt0.o: s-crt0; @true
-
-s-crt0:        $(CRT0_S) $(MCRT0_S) $(GCC_PASSES) $(CONFIG_H)
-       $(GCC_FOR_TARGET) $(GCC_CFLAGS) $(CRT0STUFF_T_CFLAGS) \
-         -o $(T)crt0.o -c $(CRT0_S)
-       $(GCC_FOR_TARGET) $(GCC_CFLAGS) $(CRT0STUFF_T_CFLAGS) \
-         -o $(T)mcrt0.o -c $(MCRT0_S)
-       $(STAMP) s-crt0
 #\f
 # Compiling object files from source files.
 
index 7343ef53032a85d45edd9e27a8afa80c7549cabe..c9dab55c63dc01006ab29503ee9471ef3541e22a 100644 (file)
@@ -1370,7 +1370,6 @@ i[3456x]86-*-netware*)
                extra_objs="$extra_objs nwld.o"
                tm_file="${tm_file} i386/nwld.h"
                tmake_file="${tmake_file} i386/t-nwld t-slibgcc-dummy"
-               extra_parts="crt0.o libgcc.def libc.def libcpre.def posixpre.def"
                ;;
        esac
        case x${enable_threads} in
diff --git a/gcc/config/i386/netware-crt0.c b/gcc/config/i386/netware-crt0.c
deleted file mode 100644 (file)
index 03141ab..0000000
+++ /dev/null
@@ -1,79 +0,0 @@
-/* Startup routines for NetWare.
-   Contributed by Jan Beulich (jbeulich@novell.com)
-   Copyright (C) 2004, 2007 Free Software Foundation, Inc.
-
-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
-<http://www.gnu.org/licenses/>.  */
-
-#include <stddef.h>
-#include <stdint.h>
-#include "unwind-dw2-fde.h"
-
-int __init_environment (void *);
-int __deinit_environment (void *);
-
-
-#define SECTION_DECL(name, decl) decl __attribute__((__section__(name)))
-
-SECTION_DECL(".ctors",   void(*const __CTOR_LIST__)(void))
-  = (void(*)(void))(intptr_t)-1;
-SECTION_DECL(".ctors$_", void(*const __CTOR_END__)(void)) = NULL;
-
-SECTION_DECL(".dtors",   void(*const __DTOR_LIST__)(void))
-  = (void(*)(void))(intptr_t)-1;
-SECTION_DECL(".dtors$_", void(*const __DTOR_END__)(void)) = NULL;
-
-/* No need to use the __[de]register_frame_info_bases functions since
-   for us the bases are NULL always anyway. */
-void __register_frame_info (const void *, struct object *)
-  __attribute__((__weak__));
-void *__deregister_frame_info (const void *) __attribute__((__weak__));
-
-SECTION_DECL(".eh_frame", /*const*/ uint32_t __EH_FRAME_BEGIN__[]) = { };
-SECTION_DECL(".eh_frame$_", /*const*/ uint32_t __EH_FRAME_END__[]) = {0};
-
-int
-__init_environment (void *unused __attribute__((__unused__)))
-{
-  void (* const * pctor)(void);
-  static struct object object;
-
-  if (__register_frame_info)
-    __register_frame_info (__EH_FRAME_BEGIN__, &object);
-
-  for (pctor = &__CTOR_END__ - 1; pctor > &__CTOR_LIST__; --pctor)
-    if (*pctor != NULL)
-      (*pctor)();
-
-  return 0;
-}
-
-int
-__deinit_environment (void *unused __attribute__((__unused__)))
-{
-  /* This should be static to prevent calling the same destructor
-     twice (just in case where we get here multiple times).  */
-  static void (* const * pdtor)(void) = &__DTOR_LIST__ + 1;
-
-  while (pdtor < &__DTOR_END__)
-    if (*pdtor++ != NULL)
-      pdtor[-1] ();
-
-  if (__deregister_frame_info)
-    __deregister_frame_info(__EH_FRAME_BEGIN__);
-
-  return 0;
-}
index a468533c1d15d301fedfe2f181ffa0735dffe1c7..ecd1a3bfccc8000558ae2e755bbb8869e250b37a 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009
+# Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2011
 # Free Software Foundation, Inc.
 #
 # This file is part of GCC.
 # along with GCC; see the file COPYING3.  If not see
 # <http://www.gnu.org/licenses/>.
 
-CRTSTUFF_T_CFLAGS = -mpreferred-stack-boundary=2
-CRT0STUFF_T_CFLAGS = -mpreferred-stack-boundary=2 $(INCLUDES)
-# this is a slight misuse (it's not an assembler file)
-CRT0_S = $(srcdir)/config/i386/netware-crt0.c
-MCRT0_S = $(srcdir)/config/i386/netware-crt0.c
-
-$(T)libgcc.def: $(srcdir)/config/i386/t-nwld
-       echo "module libgcc_s" >$@
-
-$(T)libc.def: $(srcdir)/config/i386/t-nwld
-       echo "module libc" >$@
-
-$(T)libcpre.def: $(srcdir)/config/i386/t-nwld
-       echo "start _LibCPrelude" >$@
-       echo "exit _LibCPostlude" >>$@
-       echo "check _LibCCheckUnload" >>$@
-
-$(T)posixpre.def: $(srcdir)/config/i386/t-nwld
-       echo "start POSIX_Start" >$@
-       echo "exit POSIX_Stop" >>$@
-       echo "check POSIX_CheckUnload" >>$@
-
 nwld.o: $(srcdir)/config/i386/nwld.c $(RTL_H) $(TREE_H) $(CONFIG_H) $(TM_P_H)
        $(COMPILER) -c $(ALL_COMPILERFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) \
                $(srcdir)/config/i386/nwld.c
-
-
-s-crt0: $(srcdir)/unwind-dw2-fde.h
index 0221e7519195f8e352a97097b3235598ab035f7e..c358ae4126a439b72e17f24986f86dd4b0894607 100644 (file)
@@ -1,3 +1,14 @@
+2011-07-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
+
+       * config/i386/netware-crt0.c: New file.
+       * config/i386/t-nwld: Rename to ...
+       * config/i386/t-slibgcc-nwld: ... this.
+       * config/i386/t-nwld: New file.
+       * config.host (i[3456x]86-*-netware*): Add i386/t-slibgcc-nwld to
+       tmake_file.
+       Add crt0.o, libgcc.def, libc.def, libcpre.def, posixpre.def to
+       extra_parts.
+
 2011-07-11  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
 
        * configure.ac (i?86-*-solaris2*): Use libgcc copy of
index 55f8a5107665467d86f1291770e3cda5ed2fbc42..6b6caffde95043a433777238b98214258ddb681c 100644 (file)
@@ -369,7 +369,8 @@ i[34567]86-*-lynxos*)
 i[3456x]86-*-netware*)
        case /${with_ld} in
        */nwld)
-               tmake_file="${tmake_file} i386/t-nwld"
+               tmake_file="${tmake_file} i386/t-nwld i386/t-slibgcc-nwld"
+               extra_parts="${extra_parts} crt0.o libgcc.def libc.def libcpre.def posixpre.def"
                ;;
        esac
        ;;
diff --git a/libgcc/config/i386/netware-crt0.c b/libgcc/config/i386/netware-crt0.c
new file mode 100644 (file)
index 0000000..03141ab
--- /dev/null
@@ -0,0 +1,79 @@
+/* Startup routines for NetWare.
+   Contributed by Jan Beulich (jbeulich@novell.com)
+   Copyright (C) 2004, 2007 Free Software Foundation, Inc.
+
+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
+<http://www.gnu.org/licenses/>.  */
+
+#include <stddef.h>
+#include <stdint.h>
+#include "unwind-dw2-fde.h"
+
+int __init_environment (void *);
+int __deinit_environment (void *);
+
+
+#define SECTION_DECL(name, decl) decl __attribute__((__section__(name)))
+
+SECTION_DECL(".ctors",   void(*const __CTOR_LIST__)(void))
+  = (void(*)(void))(intptr_t)-1;
+SECTION_DECL(".ctors$_", void(*const __CTOR_END__)(void)) = NULL;
+
+SECTION_DECL(".dtors",   void(*const __DTOR_LIST__)(void))
+  = (void(*)(void))(intptr_t)-1;
+SECTION_DECL(".dtors$_", void(*const __DTOR_END__)(void)) = NULL;
+
+/* No need to use the __[de]register_frame_info_bases functions since
+   for us the bases are NULL always anyway. */
+void __register_frame_info (const void *, struct object *)
+  __attribute__((__weak__));
+void *__deregister_frame_info (const void *) __attribute__((__weak__));
+
+SECTION_DECL(".eh_frame", /*const*/ uint32_t __EH_FRAME_BEGIN__[]) = { };
+SECTION_DECL(".eh_frame$_", /*const*/ uint32_t __EH_FRAME_END__[]) = {0};
+
+int
+__init_environment (void *unused __attribute__((__unused__)))
+{
+  void (* const * pctor)(void);
+  static struct object object;
+
+  if (__register_frame_info)
+    __register_frame_info (__EH_FRAME_BEGIN__, &object);
+
+  for (pctor = &__CTOR_END__ - 1; pctor > &__CTOR_LIST__; --pctor)
+    if (*pctor != NULL)
+      (*pctor)();
+
+  return 0;
+}
+
+int
+__deinit_environment (void *unused __attribute__((__unused__)))
+{
+  /* This should be static to prevent calling the same destructor
+     twice (just in case where we get here multiple times).  */
+  static void (* const * pdtor)(void) = &__DTOR_LIST__ + 1;
+
+  while (pdtor < &__DTOR_END__)
+    if (*pdtor++ != NULL)
+      pdtor[-1] ();
+
+  if (__deregister_frame_info)
+    __deregister_frame_info(__EH_FRAME_BEGIN__);
+
+  return 0;
+}
index 408587273da6405956feb06eeffb5010043b0d0a..d08e2827f65aa197d6f039128ce2e84e15afcb85 100644 (file)
@@ -1,31 +1,39 @@
-# Build a shared libgcc library for NetWare.
+# Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2011
+# Free Software Foundation, Inc.
+#
+# 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
+# <http://www.gnu.org/licenses/>.
 
-SHLIB_EXT = .nlm
-SHLIB_NAME = @shlib_base_name@.nlm
-SHLIB_SLIBDIR_QUAL = @shlib_slibdir_qual@
-SHLIB_DEF = $(gcc_srcdir)/config/i386/netware-libgcc.def
-SHLIB_MAP = $(gcc_srcdir)/config/i386/netware-libgcc.exp
-SHLIB_SRC = $(gcc_srcdir)/config/i386/netware-libgcc.c
+crt0.o: $(srcdir)/config/i386/netware-crt0.c
+       $(crt_compile) $(CRTSTUFF_T_CFLAGS) -c $<
 
-SHLIB_LINK = set -e; \
-       cat $(SHLIB_DEF) >@shlib_base_name@.def; \
-       echo "name $(SHLIB_NAME)" >>@shlib_base_name@.def; \
-       echo "version $(version)" | sed "s!\.!,!g" >>@shlib_base_name@.def; \
-       touch build; \
-       echo "build $$(expr $$(<build) + 0)" >>@shlib_base_name@.def; \
-       echo "export @$(SHLIB_MAP)" >>@shlib_base_name@.def; \
-       if mpkxdc -n -p @shlib_base_name@.xdc; \
-               then echo "xdcdata @shlib_base_name@.xdc" >>@shlib_base_name@.def; \
-               else echo "WARNING: $(SHLIB_NAME) built without XDC data will not work well." 1>&2; \
-       fi; \
-       $(CC) $(LIBGCC2_CFLAGS) -o $(SHLIB_NAME) \
-               $(SHLIB_SRC) -posix -static-libgcc -lnetware \
-               -Wl,--Map,--map-info,full,--strip-all,--def-file,@shlib_base_name@.def; \
-       rm -f @shlib_base_name@.imp; $(LN_S) $(SHLIB_MAP) @shlib_base_name@.imp; \
-       rm -f libgcc.imp; $(LN_S) @shlib_base_name@.imp libgcc.imp; \
-       expr $$(<build) + 1 >build
+CRTSTUFF_T_CFLAGS = -mpreferred-stack-boundary=2
 
-SHLIB_INSTALL = \
-       $(SHELL) $(srcdir)/mkinstalldirs $(slibdir)$(SHLIB_SLIBDIR_QUAL); \
-       $(INSTALL_DATA) $(SHLIB_NAME) $(slibdir)$(SHLIB_SLIBDIR_QUAL)/$(SHLIB_NAME); \
-       $(INSTALL_DATA) @shlib_base_name@.imp $(DESTDIR)$(libsubdir)/
+libgcc.def: $(srcdir)/config/i386/t-nwld
+       echo "module libgcc_s" >$@
+
+libc.def: $(srcdir)/config/i386/t-nwld
+       echo "module libc" >$@
+
+libcpre.def: $(srcdir)/config/i386/t-nwld
+       echo "start _LibCPrelude" >$@
+       echo "exit _LibCPostlude" >>$@
+       echo "check _LibCCheckUnload" >>$@
+
+posixpre.def: $(srcdir)/config/i386/t-nwld
+       echo "start POSIX_Start" >$@
+       echo "exit POSIX_Stop" >>$@
+       echo "check POSIX_CheckUnload" >>$@
diff --git a/libgcc/config/i386/t-slibgcc-nwld b/libgcc/config/i386/t-slibgcc-nwld
new file mode 100644 (file)
index 0000000..4085872
--- /dev/null
@@ -0,0 +1,31 @@
+# Build a shared libgcc library for NetWare.
+
+SHLIB_EXT = .nlm
+SHLIB_NAME = @shlib_base_name@.nlm
+SHLIB_SLIBDIR_QUAL = @shlib_slibdir_qual@
+SHLIB_DEF = $(gcc_srcdir)/config/i386/netware-libgcc.def
+SHLIB_MAP = $(gcc_srcdir)/config/i386/netware-libgcc.exp
+SHLIB_SRC = $(gcc_srcdir)/config/i386/netware-libgcc.c
+
+SHLIB_LINK = set -e; \
+       cat $(SHLIB_DEF) >@shlib_base_name@.def; \
+       echo "name $(SHLIB_NAME)" >>@shlib_base_name@.def; \
+       echo "version $(version)" | sed "s!\.!,!g" >>@shlib_base_name@.def; \
+       touch build; \
+       echo "build $$(expr $$(<build) + 0)" >>@shlib_base_name@.def; \
+       echo "export @$(SHLIB_MAP)" >>@shlib_base_name@.def; \
+       if mpkxdc -n -p @shlib_base_name@.xdc; \
+               then echo "xdcdata @shlib_base_name@.xdc" >>@shlib_base_name@.def; \
+               else echo "WARNING: $(SHLIB_NAME) built without XDC data will not work well." 1>&2; \
+       fi; \
+       $(CC) $(LIBGCC2_CFLAGS) -o $(SHLIB_NAME) \
+               $(SHLIB_SRC) -posix -static-libgcc -lnetware \
+               -Wl,--Map,--map-info,full,--strip-all,--def-file,@shlib_base_name@.def; \
+       rm -f @shlib_base_name@.imp; $(LN_S) $(SHLIB_MAP) @shlib_base_name@.imp; \
+       rm -f libgcc.imp; $(LN_S) @shlib_base_name@.imp libgcc.imp; \
+       expr $$(<build) + 1 >build
+
+SHLIB_INSTALL = \
+       $(SHELL) $(srcdir)/mkinstalldirs $(slibdir)$(SHLIB_SLIBDIR_QUAL); \
+       $(INSTALL_DATA) $(SHLIB_NAME) $(slibdir)$(SHLIB_SLIBDIR_QUAL)/$(SHLIB_NAME); \
+       $(INSTALL_DATA) @shlib_base_name@.imp $(DESTDIR)$(libsubdir)/