This is the mail archive of the libc-hacker@sourceware.cygnus.com mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

no sources at top level, revised



This patch moves all the source code currently compiled at top level
into the csu and elf directories, as appropriate.  This is a minor
tidiness win and enables a later patch which will separate
subdirectory and top-level rules entirely.  (Current semantics will be
preserved as far as possible.)

While I was in the makefiles I added Emacs mode markers to the ones
that it doesn't recognize.

zw

Fri May  8 19:24:33 1998  Zack Weinberg  <zack@rabi.phys.columbia.edu>

	* Makefile (+subdir-inits): Delete variable.
	(+init_subdirs): Likewise.
	(aux): Likewise.
	(before-compile): Likewise.
	(libc-init): Delete stanza.
	(version-info.h): Delete rule and associated variable.
	(distribute): Don't distribute moved files.
	* Makerules (interp-obj): It lives in elf now.  Only use it
	if $(elf) is set.  Delete rule to build it.
	* csu/Makefile: Build set-init.o and/or munch-init.o.  Build
	version.o and version-info.h.  Minor cleanups.
	(routines): Add libc-init, sysdep, version.
	(generated): Add version-info.h.
	* elf/Makefile: Build interp.os.	

	* interp.c: Moved to elf.
	* set-init.c: Moved to csu.
	* munch-init.c: Likewise.
	* munch.awk: Likewise.
	* version.c: Likewise.

	* Makeconfig: Add emacs mode marker.
	* Makerules: Likewise.
	* Rules: Likewise, and also unconfuse syntax highlighting with
	a fake comment.

Index: Makeconfig
===================================================================
RCS file: /egcs/carton/cvsfiles/libc/Makeconfig,v
retrieving revision 1.182
diff -u -r1.182 Makeconfig
--- Makeconfig	1998/05/06 14:40:45	1.182
+++ Makeconfig	1998/05/08 23:35:19
@@ -795,3 +795,7 @@
 	mv -f $@-tmp $@
 
 endif # Makeconfig not yet included
+
+# Local Variables:
+# mode: makefile
+# End:
Index: Makefile
===================================================================
RCS file: /egcs/carton/cvsfiles/libc/Makefile,v
retrieving revision 1.162
diff -u -r1.162 Makefile
--- Makefile	1998/05/06 12:51:17	1.162
+++ Makefile	1998/05/08 23:35:19
@@ -50,12 +50,6 @@
 configure: configure.in aclocal.m4; $(autoconf-it)
 %/configure: %/configure.in aclocal.m4; $(autoconf-it)
 
-# All initialization source files.
-+subdir_inits	:= $(wildcard $(foreach dir,$(subdirs),$(dir)/init-$(dir).c))
-# All subdirectories containing initialization source files.
-+init_subdirs	:= $(patsubst %/,%,$(dir $(+subdir_inits)))
-
-
 # These are the targets that are made by making them in each subdirectory.
 +subdir_targets	:= subdir_lib objects objs others subdir_mostlyclean	\
 		   subdir_clean subdir_distclean subdir_realclean	\
@@ -68,8 +62,6 @@
 headers := errno.h sys/errno.h bits/errno.h limits.h values.h	\
 	   features.h gnu-versions.h bits/libc-lock.h bits/xopen_lim.h	\
 	   gnu/libc-version.h
-aux	 = sysdep $(libc-init) version
-before-compile += $(objpfx)version-info.h
 
 echo-headers: subdir_echo-headers
 
@@ -85,17 +77,6 @@
 install-others += $(inst_includedir)/gnu/lib-names.h
 endif
 
-ifeq (yes,$(gnu-ld))
-libc-init = set-init
-else
-libc-init = munch-init
-$(objpfx)munch-init.c: munch.awk munch-tmpl.c $(+subdir_inits)
-	$(AWK) -f $< subdirs='$(+init_subdirs)' $(word 2,$^) > $@-t
-	mv -f $@-t $@
-generated := $(generated) munch-init.c
-endif
-
-
 include Makerules
 
 # Install from subdirectories too.
@@ -133,35 +114,6 @@
 lib: $(common-objpfx)libc.so
 endif
 
-all-Banner-files = $(wildcard $(addsuffix /Banner, $(subdirs)))
-$(objpfx)version-info.h: $(+sysdir_pfx)config.make $(all-Banner-files)
-	(case $(config-os) in \
-	   linux*) version=`(echo -e "#include <linux/version.h>\nUTS_RELEASE"\
-			     | $(CC) -E -P - | \
-			     sed -e 's/"\([^"]*\)".*/\1/p' -e d) 2>/dev/null`;\
-		   if [ -z "$$version" ]; then \
-		     if [ -r /proc/version ]; then \
-		       version=`sed 's/.*version \([^ ]*\) .*/>>\1<</' \
-				< /proc/version`; \
-		     else \
-		       version=`uname -r`; \
-		     fi; \
-		   fi; \
-		   echo -n "\"Compiled on a Linux $$version system "; \
-		   echo "on `date +%Y-%m-%d`.\\n\"" ;; \
-	   *) ;; \
-	 esac; \
-	 files="$(all-Banner-files)";				\
-	 if test -n "$$files"; then				\
-	   echo "\"Available extensions:";			\
-	   sed -e '/^#/d' -e 's/^[[:space:]]*/	/' $$files;	\
-	   echo "\"";						\
-	 fi) > $@T
-	mv -f $@T $@
-
-version.c-objects := $(addprefix $(objpfx)version,$(object-suffixes))
-$(version.c-objects): $(objpfx)version-info.h
-
 # Makerules creates a file `stubs' in each subdirectory, which
 # contains `#define __stub_FUNCTION' for each function defined in that
 # directory which is a stub.
@@ -285,18 +237,17 @@
 distribute  := README README.libm INSTALL FAQ NOTES NEWS PROJECTS BUGS	\
 	       COPYING.LIB COPYING ChangeLog ChangeLog.[0-9]		\
 	       Makefile Makeconfig Makerules Rules Make-dist MakeTAGS	\
-	       extra-lib.mk o-iterator.mk				\
+	       extra-lib.mk o-iterator.mk autolock.sh rellns-sh		\
 	       libc.map mkinstalldirs move-if-change install-sh		\
 	       configure configure.in aclocal.m4 config.sub config.guess\
 	       config.h.in config.make.in config-name.in Makefile.in	\
-	       autolock.sh rellns-sh munch-tmpl.c munch.awk interp.c	\
 	       sysdep.h set-hooks.h libc-symbols.h version.h shlib-versions \
 	       rpm/Makefile rpm/template rpm/rpmrc glibcbug.in abi-tags	\
 	       stub-tag.h test-installation.pl test-skeleton.c		\
 	       include/des.h
 
 distribute := $(strip $(distribute))
-generated := $(generated) stubs.h version-info.h
+generated := $(generated) stubs.h
 
 README: README.template version.h ; # Make-dist should update README.
 
Index: Makerules
===================================================================
RCS file: /egcs/carton/cvsfiles/libc/Makerules,v
retrieving revision 1.293
diff -u -r1.293 Makerules
--- Makerules	1998/05/08 14:58:37	1.293
+++ Makerules	1998/05/08 23:35:19
@@ -344,14 +344,11 @@
 no-whole-archive =
 endif
 
-interp-obj = $(common-objpfx)interp.os
-$(interp-obj): $(common-objpfx)%.os: $(..)%.c
-	$(compile-command.c)
-common-generated += interp.os
-CFLAGS-interp.c = -D'RUNTIME_LINKER="$(slibdir)/$(rtld-installed-name)"'
-
+ifeq ($(elf),yes)
+interp-obj = $(common-objpfx)elf/interp.os
 $(common-objpfx)libc.so: $(interp-obj)
 $(patsubst %,$(objpfx)%.so,$(extra-libs)): $(interp-obj)
+endif
 
 define build-shlib
 $(LINK.o) -shared -o $@ $(sysdep-LDFLAGS) $(config-LDFLAGS)  \
@@ -977,3 +974,7 @@
 endif
 endif
 endif
+
+# Local Variables:
+# mode: makefile
+# End:
Index: Rules
===================================================================
RCS file: /egcs/carton/cvsfiles/libc/Rules,v
retrieving revision 1.75
diff -u -r1.75 Rules
--- Rules	1998/05/08 14:59:02	1.75
+++ Rules	1998/05/08 23:35:19
@@ -31,6 +31,7 @@
 ifndef	subdir
 Each subdirectory makefile must define the `subdir' variable.
 endif
+# This ` unconfuses emacs.
 # This is benign and useless in GNU make before 3.63.
 export subdir := $(subdir)
 
@@ -188,3 +189,7 @@
 endef
 object-suffixes-left := $(object-suffixes)
 include $(o-iterator)
+
+# Local Variables:
+# mode: makefile
+# End:
Index: csu/Makefile
===================================================================
RCS file: /egcs/carton/cvsfiles/libc/csu/Makefile,v
retrieving revision 1.29
diff -u -r1.29 Makefile
--- csu/Makefile	1998/04/21 18:00:05	1.29
+++ csu/Makefile	1998/05/08 23:35:19
@@ -27,7 +27,7 @@
 
 subdir := csu
 
-routines = init-first libc-start
+routines = init-first libc-start $(libc-init) sysdep version
 csu-dummies = $(filter-out $(start-installed-name),crt1.o Mcrt1.o)
 extra-objs = start.o gmon-start.o \
 	     $(start-installed-name) g$(start-installed-name) \
@@ -36,17 +36,35 @@
 		             $(csu-dummies))
 install-lib = $(start-installed-name) g$(start-installed-name) \
 	      $(csu-dummies)
-distribute = initfini.c gmon-start.c start.c defs.awk abi-note.S init.c
+distribute = initfini.c gmon-start.c start.c defs.awk munch.awk \
+	     abi-note.S init.c
+generated = version-info.h
+before-compile = $(objpfx)version-info.h
 
 all: # Make this the default target; it will be defined in Rules.
 
 include ../Makeconfig
 
-ifeq ($(elf),yes)
-before-compile = $(objpfx)abi-tag.h
+ifeq (yes,$(elf))
+before-compile += $(objpfx)abi-tag.h
 generated += abi-tag.h
 endif
 
+ifeq (yes,$(gnu-ld))
+libc-init = set-init
+else
+libc-init = munch-init
+$(objpfx)munch-init.c: munch.awk munch-tmpl.c $(+subdir_inits)
+	$(AWK) -f $< subdirs='$(+init_subdirs)' $(word 2,$^) > $@-t
+	mv -f $@-t $@
+generated += munch-init.c
+
+# All initialization source files.
++subdir_inits	:= $(wildcard $(foreach dir,$(subdirs),$(dir)/init-$(dir).c))
+# All subdirectories containing initialization source files.
++init_subdirs	:= $(patsubst %/,%,$(dir $(+subdir_inits)))
+endif
+
 ifeq ($(have-initfini),yes)
 
 CPPFLAGS += -DHAVE_INITFINI
@@ -130,11 +148,12 @@
 	$(COMPILE.c) $(@:.o=.c) $(OUTPUT_OPTION)
 	rm -f $(@:.o=.c)
 
+# These headers are used by the startup code.
 / := $$/# bite me.
 $(objpfx)abi-tag.h: $(..)abi-tags
 	$(make-target-directory)
 	rm -f $@.new
-	sed 's/#.*$//;/^[ 	]*$$/d' $< | while read conf tag; do \
+	sed 's/#.*$//;/^[ 	]*$/d' $< | while read conf tag; do \
 	  test `expr '$(config-machine)-$(config-vendor)-$(config-os)' \
 		     : "$$conf"` != 0 || continue; \
 	  echo "$$tag" | sed > $@.new \
@@ -142,3 +161,30 @@
 	done
 	if test -r $@.new; then mv -f $@.new $@; \
 	else echo >&2 'This configuration not matched in $<'; exit 1; fi
+
+all-Banner-files = $(wildcard $(addsuffix /Banner, \
+					$(addprefix $(..), $(subdirs))))
+$(objpfx)version-info.h: $(common-objpfx)config.make $(all-Banner-files)
+	(case $(config-os) in \
+	   linux*) version=`(echo -e "#include <linux/version.h>\nUTS_RELEASE"\
+			     | $(CC) -E -P - | \
+			     sed -e 's/"\([^"]*\)".*/\1/p' -e d) 2>/dev/null`;\
+		   if [ -z "$$version" ]; then \
+		     if [ -r /proc/version ]; then \
+		       version=`sed 's/.*version \([^ ]*\) .*/>>\1<</' \
+				< /proc/version`; \
+		     else \
+		       version=`uname -r`; \
+		     fi; \
+		   fi; \
+		   echo -n "\"Compiled on a Linux $$version system "; \
+		   echo "on `date +%Y-%m-%d`.\\n\"" ;; \
+	   *) ;; \
+	 esac; \
+	 files="$(all-Banner-files)";				\
+	 if test -n "$$files"; then				\
+	   echo "\"Available extensions:";			\
+	   sed -e '/^#/d' -e 's/^[[:space:]]*/	/' $$files;	\
+	   echo "\"";						\
+	 fi) > $@T
+	mv -f $@T $@
Index: elf/Makefile
===================================================================
RCS file: /egcs/carton/cvsfiles/libc/elf/Makefile,v
retrieving revision 1.87
diff -u -r1.87 Makefile
--- elf/Makefile	1998/04/21 18:00:08	1.87
+++ elf/Makefile	1998/05/08 23:35:19
@@ -39,7 +39,7 @@
 distribute	= $(rtld-routines:=.c) dynamic-link.h do-rel.h dl-machine.h \
 		  dl-hash.h soinit.c sofini.c ldd.sh.in ldd.bash.in eval.c \
 		  genrtldtbl.awk atomicity.h dl-procinfo.h ldsodefs.h \
-		  dl-librecon.h
+		  dl-librecon.h interp.c
 
 extra-libs	 = libdl
 extra-libs-others = $(extra-libs)
@@ -54,7 +54,7 @@
 include ../Makeconfig
 
 ifeq (yes,$(build-shared))
-extra-objs	= $(rtld-routines:=.os) soinit.os sofini.os eval.os
+extra-objs	= $(rtld-routines:=.os) soinit.os sofini.os eval.os interp.os
 generated	= librtld.os dl-allobjs.os ld.so trusted-dirs.h rtldtbl.h
 install-others	= $(inst_slibdir)/$(rtld-installed-name)
 install-bin	= ldd
@@ -123,6 +123,9 @@
 
 # The dl code in the static libc needs a default library path.
 CFLAGS-dl-support.c = -D'DEFAULT_RPATH="$(default-rpath)"'
+
+# interp.c exists just to get this string into the libraries.
+CFLAGS-interp.c = -D'RUNTIME_LINKER="$(slibdir)/$(rtld-installed-name)"'
 
 ifneq (ld.so,$(rtld-installed-name))
 # Make sure ld.so.1 exists in the build directory so we can link
--- version.c	Fri May  8 15:16:14 1998
+++ /dev/null	Tue May 27 20:49:58 1997
@@ -1,73 +0,0 @@
-/* Copyright (C) 1991,92,93,94,95,96,97,98 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Library General Public License as
-   published by the Free Software Foundation; either version 2 of the
-   License, or (at your option) any later version.
-
-   The GNU C Library 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
-   Library General Public License for more details.
-
-   You should have received a copy of the GNU Library General Public
-   License along with the GNU C Library; see the file COPYING.LIB.  If not,
-   write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-   Boston, MA 02111-1307, USA.  */
-
-#include "version.h"
-#include <gnu/libc-version.h>
-
-static const char __libc_release[] = RELEASE;
-static const char __libc_version[] = VERSION;
-
-static const char banner[] =
-"GNU C Library "RELEASE" release version "VERSION", by Roland McGrath et al.\n\
-Copyright (C) 1992, 93, 94, 95, 96, 97, 98 Free Software Foundation, Inc.\n\
-This is free software; see the source for copying conditions.\n\
-There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A\n\
-PARTICULAR PURPOSE.\n\
-Compiled by GNU CC version "__VERSION__".\n"
-#include "version-info.h"
-"Report bugs using the `glibcbug' script to <bugs@gnu.org>.\n";
-
-#include <unistd.h>
-
-void
-__libc_print_version (void)
-{
-  __write (STDOUT_FILENO, banner, sizeof banner - 1);
-}
-
-const char *
-__gnu_get_libc_release (void)
-{
-  return __libc_release;
-}
-weak_alias (__gnu_get_libc_release, gnu_get_libc_release)
-
-const char *
-__gnu_get_libc_version (void)
-{
-  return __libc_version;
-}
-weak_alias (__gnu_get_libc_version, gnu_get_libc_version)
-
-#ifdef HAVE_ELF
-/* This function is the entry point for the shared object.
-   Running the library as a program will get here.  */
-
-void
-__libc_main (void)
-{
-  __libc_print_version ();
-  _exit (0);
-}
-#endif
-
-/*
-   Local Variables:
-   version-control: never
-   End:
-*/
--- /dev/null	Tue May 27 20:49:58 1997
+++ csu/version.c	Sun May  3 15:25:23 1998
@@ -0,0 +1,73 @@
+/* Copyright (C) 1991,92,93,94,95,96,97,98 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Library General Public License as
+   published by the Free Software Foundation; either version 2 of the
+   License, or (at your option) any later version.
+
+   The GNU C Library 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
+   Library General Public License for more details.
+
+   You should have received a copy of the GNU Library General Public
+   License along with the GNU C Library; see the file COPYING.LIB.  If not,
+   write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+   Boston, MA 02111-1307, USA.  */
+
+#include "version.h"
+#include <gnu/libc-version.h>
+
+static const char __libc_release[] = RELEASE;
+static const char __libc_version[] = VERSION;
+
+static const char banner[] =
+"GNU C Library "RELEASE" release version "VERSION", by Roland McGrath et al.\n\
+Copyright (C) 1992, 93, 94, 95, 96, 97, 98 Free Software Foundation, Inc.\n\
+This is free software; see the source for copying conditions.\n\
+There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A\n\
+PARTICULAR PURPOSE.\n\
+Compiled by GNU CC version "__VERSION__".\n"
+#include "version-info.h"
+"Report bugs using the `glibcbug' script to <bugs@gnu.org>.\n";
+
+#include <unistd.h>
+
+void
+__libc_print_version (void)
+{
+  __write (STDOUT_FILENO, banner, sizeof banner - 1);
+}
+
+const char *
+__gnu_get_libc_release (void)
+{
+  return __libc_release;
+}
+weak_alias (__gnu_get_libc_release, gnu_get_libc_release)
+
+const char *
+__gnu_get_libc_version (void)
+{
+  return __libc_version;
+}
+weak_alias (__gnu_get_libc_version, gnu_get_libc_version)
+
+#ifdef HAVE_ELF
+/* This function is the entry point for the shared object.
+   Running the library as a program will get here.  */
+
+void
+__libc_main (void)
+{
+  __libc_print_version ();
+  _exit (0);
+}
+#endif
+
+/*
+   Local Variables:
+   version-control: never
+   End:
+*/
--- set-init.c	Fri May  8 15:16:14 1998
+++ /dev/null	Tue May 27 20:49:58 1997
@@ -1,23 +0,0 @@
-/* Copyright (C) 1991, 1992, 1994, 1995, 1997 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Library General Public License as
-   published by the Free Software Foundation; either version 2 of the
-   License, or (at your option) any later version.
-
-   The GNU C Library 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
-   Library General Public License for more details.
-
-   You should have received a copy of the GNU Library General Public
-   License along with the GNU C Library; see the file COPYING.LIB.  If not,
-   write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-   Boston, MA 02111-1307, USA.  */
-
-#include <stdlib.h>
-#include <set-hooks.h>
-
-DEFINE_HOOK_RUNNER (__libc_subinit, __libc_init,
-		    (int argc, char **argv, char **envp), (argc, argv, envp))
--- /dev/null	Tue May 27 20:49:58 1997
+++ csu/set-init.c	Sun May  3 15:25:12 1998
@@ -0,0 +1,23 @@
+/* Copyright (C) 1991, 1992, 1994, 1995, 1997 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Library General Public License as
+   published by the Free Software Foundation; either version 2 of the
+   License, or (at your option) any later version.
+
+   The GNU C Library 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
+   Library General Public License for more details.
+
+   You should have received a copy of the GNU Library General Public
+   License along with the GNU C Library; see the file COPYING.LIB.  If not,
+   write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+   Boston, MA 02111-1307, USA.  */
+
+#include <stdlib.h>
+#include <set-hooks.h>
+
+DEFINE_HOOK_RUNNER (__libc_subinit, __libc_init,
+		    (int argc, char **argv, char **envp), (argc, argv, envp))
--- munch-tmpl.c	Fri May  8 15:16:14 1998
+++ /dev/null	Tue May 27 20:49:58 1997
@@ -1,38 +0,0 @@
-/* Copyright (C) 1991, 1995, 1997 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Library General Public License as
-   published by the Free Software Foundation; either version 2 of the
-   License, or (at your option) any later version.
-
-   The GNU C Library 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
-   Library General Public License for more details.
-
-   You should have received a copy of the GNU Library General Public
-   License along with the GNU C Library; see the file COPYING.LIB.  If not,
-   write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-   Boston, MA 02111-1307, USA.  */
-
-#include <stdlib.h>
-
-
-EXTERNS
-
-void
-__libc_init (int argc, char **argv, char **envp)
-{
-  CALLS
-
-#ifdef HAVE_INITFINI
-    {
-      /* These functions are defined in crti.o to run the .init and .fini
-	 sections, which are used for initializers and finalizers.  */
-      extern void _init __P ((void)), _fini __P ((void));
-      atexit (&_fini);		/* Arrange for _fini to run at exit.  */
-      _init ();
-    }
-#endif
-}
--- /dev/null	Tue May 27 20:49:58 1997
+++ csu/munch-tmpl.c	Sun May  3 15:25:12 1998
@@ -0,0 +1,38 @@
+/* Copyright (C) 1991, 1995, 1997 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Library General Public License as
+   published by the Free Software Foundation; either version 2 of the
+   License, or (at your option) any later version.
+
+   The GNU C Library 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
+   Library General Public License for more details.
+
+   You should have received a copy of the GNU Library General Public
+   License along with the GNU C Library; see the file COPYING.LIB.  If not,
+   write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+   Boston, MA 02111-1307, USA.  */
+
+#include <stdlib.h>
+
+
+EXTERNS
+
+void
+__libc_init (int argc, char **argv, char **envp)
+{
+  CALLS
+
+#ifdef HAVE_INITFINI
+    {
+      /* These functions are defined in crti.o to run the .init and .fini
+	 sections, which are used for initializers and finalizers.  */
+      extern void _init __P ((void)), _fini __P ((void));
+      atexit (&_fini);		/* Arrange for _fini to run at exit.  */
+      _init ();
+    }
+#endif
+}
--- munch.awk	Fri May  8 15:16:14 1998
+++ /dev/null	Tue May 27 20:49:58 1997
@@ -1,11 +0,0 @@
-BEGIN { special = 0 }
-
-/EXTERNS/ { ndirs = split(subdirs, dirs)
-	    for (i = 1; i <= ndirs; ++i)
-	    	printf "extern void __init_%s __P ((int argc, char **argv, char **envp));\n", dirs[i]
-	    special = 1 }
-/CALLS/ { ndirs = split(subdirs, dirs)
-	  for (i = 1; i <= ndirs; ++i) printf "  __init_%s (argc, argv, envp);\n", dirs[i]
-	  special = 1 }
-
-{ if (special == 0) print $0; special = 0 }
--- /dev/null	Tue May 27 20:49:58 1997
+++ csu/munch.awk	Sun May  3 15:25:12 1998
@@ -0,0 +1,11 @@
+BEGIN { special = 0 }
+
+/EXTERNS/ { ndirs = split(subdirs, dirs)
+	    for (i = 1; i <= ndirs; ++i)
+	    	printf "extern void __init_%s __P ((int argc, char **argv, char **envp));\n", dirs[i]
+	    special = 1 }
+/CALLS/ { ndirs = split(subdirs, dirs)
+	  for (i = 1; i <= ndirs; ++i) printf "  __init_%s (argc, argv, envp);\n", dirs[i]
+	  special = 1 }
+
+{ if (special == 0) print $0; special = 0 }
--- interp.c	Fri May  8 15:16:14 1998
+++ /dev/null	Tue May 27 20:49:58 1997
@@ -1,21 +0,0 @@
-/* interp - add information about dynamic loader to shared library objects.
-   Copyright (C) 1996 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Library General Public License as
-   published by the Free Software Foundation; either version 2 of the
-   License, or (at your option) any later version.
-
-   The GNU C Library 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
-   Library General Public License for more details.
-
-   You should have received a copy of the GNU Library General Public
-   License along with the GNU C Library; see the file COPYING.LIB.  If not,
-   write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-   Boston, MA 02111-1307, USA.  */
-
-const char __invoke_dynamic_linker__[] __attribute__ ((section (".interp")))
-  = RUNTIME_LINKER;
--- /dev/null	Tue May 27 20:49:58 1997
+++ elf/interp.c	Sun May  3 15:25:12 1998
@@ -0,0 +1,21 @@
+/* interp - add information about dynamic loader to shared library objects.
+   Copyright (C) 1996 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Library General Public License as
+   published by the Free Software Foundation; either version 2 of the
+   License, or (at your option) any later version.
+
+   The GNU C Library 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
+   Library General Public License for more details.
+
+   You should have received a copy of the GNU Library General Public
+   License along with the GNU C Library; see the file COPYING.LIB.  If not,
+   write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+   Boston, MA 02111-1307, USA.  */
+
+const char __invoke_dynamic_linker__[] __attribute__ ((section (".interp")))
+  = RUNTIME_LINKER;


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]