mirror of
https://sourceware.org/git/glibc.git
synced 2025-07-30 22:43:12 +03:00
Update.
* intl/locale.alias: Change italian to it_IT.ISO-8859-1. Reported by Ottavio G. Rizzo <otto@mast.queensu.ca>. 1998-05-08 19:24 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. 1998-05-08 Ulrich Drepper <drepper@cygnus.com>
This commit is contained in:
57
csu/Makefile
57
csu/Makefile
@ -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 @@ omit-deps = $(patsubst %.o,%,$(start-installed-name) g$(start-installed-name) \
|
||||
$(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 @@ $(addprefix $(objpfx),$(filter-out $(start-installed-name),$(csu-dummies))):
|
||||
$(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,31 @@ $(objpfx)abi-tag.h: $(..)abi-tags
|
||||
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)
|
||||
$(make-target-directory)
|
||||
(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 $@
|
||||
|
38
csu/munch-tmpl.c
Normal file
38
csu/munch-tmpl.c
Normal file
@ -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
|
||||
}
|
11
csu/munch.awk
Normal file
11
csu/munch.awk
Normal file
@ -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 }
|
23
csu/set-init.c
Normal file
23
csu/set-init.c
Normal file
@ -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))
|
73
csu/version.c
Normal file
73
csu/version.c
Normal file
@ -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:
|
||||
*/
|
Reference in New Issue
Block a user