1
0
mirror of https://sourceware.org/git/glibc.git synced 2025-07-29 11:41:21 +03:00

Mon Aug 7 14:04:36 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu>

* sysdeps/generic/sysd-stdio.c (__stdio_reopen): Return failure
 	when __stdio_open fails with a code other than ENFILE or EMFILE.

	* csu/initfini.c (SECTION): New macro, different definitions for
 	#ifdef HAVE_ELF and not.
	(_init, _fini): Use that macro.
	* config.make.in (have-initfini): New variable, set by configure.
	* conf/portability.h (NEED_INETADDR, NEED_INETATON): New macros.
This commit is contained in:
Roland McGrath
1995-08-07 18:24:47 +00:00
parent 5e98d83c10
commit 99a9e88e55
5 changed files with 35 additions and 5 deletions

View File

@ -1,3 +1,8 @@
Mon Aug 7 14:04:36 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
* sysdeps/generic/sysd-stdio.c (__stdio_reopen): Return failure
when __stdio_open fails with a code other than ENFILE or EMFILE.
Fri Aug 4 16:01:59 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu> Fri Aug 4 16:01:59 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
* Makefile (headers): Added gnu-versions.h. * Makefile (headers): Added gnu-versions.h.
@ -30,6 +35,9 @@ Wed Jul 26 02:00:29 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
[$(have-initfini)=yes]: Test this rather than $(elf) for crtstuff. [$(have-initfini)=yes]: Test this rather than $(elf) for crtstuff.
[start-installed-name-rule]: If this is defined, elide rule for [start-installed-name-rule]: If this is defined, elide rule for
$(objpfx)$(start-installed-name). $(objpfx)$(start-installed-name).
* csu/initfini.c (SECTION): New macro, different definitions for
#ifdef HAVE_ELF and not.
(_init, _fini): Use that macro.
* sysdeps/unix/sysv/sco3.2.4/Makefile [$(subdir)=csu] * sysdeps/unix/sysv/sco3.2.4/Makefile [$(subdir)=csu]
(start-installed-rule, start-installed-name-rule): New variables; (start-installed-rule, start-installed-name-rule): New variables;
specify crt1.o, created by our own rule. specify crt1.o, created by our own rule.
@ -42,6 +50,7 @@ Wed Jul 26 02:00:29 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
* munch-tmpl.c [HAVE_INITFINI]: Call _init and atexit (_fini) in * munch-tmpl.c [HAVE_INITFINI]: Call _init and atexit (_fini) in
this case rather than #ifdef HAVE_ELF. this case rather than #ifdef HAVE_ELF.
* config.h.in (HAVE_INITFINI): New macro. * config.h.in (HAVE_INITFINI): New macro.
* config.make.in (have-initfini): New variable, set by configure.
* stdio/vfscanf.c (conv_error): Simplify expression to avoid * stdio/vfscanf.c (conv_error): Simplify expression to avoid
"value computed is not used" warning. "value computed is not used" warning.
@ -78,6 +87,7 @@ Wed Jul 26 02:00:29 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
* inet/netdb.h: Incorporated from BIND 4.9.3-BETA24 release. * inet/netdb.h: Incorporated from BIND 4.9.3-BETA24 release.
[__GNU_LIBRARY__]: Include <rpc/netdb.h> instead of repeating [__GNU_LIBRARY__]: Include <rpc/netdb.h> instead of repeating
its declarations (and doing so only #ifdef sun!). its declarations (and doing so only #ifdef sun!).
* conf/portability.h (NEED_INETADDR, NEED_INETATON): New macros.
* posix/sys/types.h [__USE_BSD] (__BIT_TYPES_DEFINED__): New macro. * posix/sys/types.h [__USE_BSD] (__BIT_TYPES_DEFINED__): New macro.
[__USE_BSD] [__GNUC__] (int64_t, u_int64_t, register_t): New typedefs. [__USE_BSD] [__GNUC__] (int64_t, u_int64_t, register_t): New typedefs.

View File

@ -18,3 +18,9 @@
#ifdef sun. */ #ifdef sun. */
#undef sun #undef sun
/* The source code copied from BIND for inet_addr/inet_aton
doesn't actually define the functions without these macros. */
#define NEED_INETADDR
#define NEED_INETATON

View File

@ -14,11 +14,13 @@ config-sysdirs = @sysnames@
config-defines = @DEFS@ config-defines = @DEFS@
elf = @elf@
weak-symbols = @weak@
have-initfini = @libc_cv_have_initfini@
# Configuration options. # Configuration options.
gnu-as = @gnu_as@ gnu-as = @gnu_as@
gnu-ld = @gnu_ld@ gnu-ld = @gnu_ld@
elf = @elf@
weak-symbols = @weak@
build-shared = @shared@ build-shared = @shared@
build-profile = @profile@ build-profile = @profile@
build-omitfp = @omitfp@ build-omitfp = @omitfp@

View File

@ -34,12 +34,22 @@ Cambridge, MA 02139, USA. */
#include <stdlib.h> #include <stdlib.h>
#ifdef HAVE_ELF
/* These declarations make the functions go in the right sections when /* These declarations make the functions go in the right sections when
we define them below. GCC syntax does not allow the attribute we define them below. GCC syntax does not allow the attribute
specifications to be in the function definitions themselves. */ specifications to be in the function definitions themselves. */
void _init (void) __attribute__ ((section (".init"))); void _init (void) __attribute__ ((section (".init")));
void _fini (void) __attribute__ ((section (".fini"))); void _fini (void) __attribute__ ((section (".fini")));
#define SECTION(x) /* Put nothing extra before the defn. */
#else
/* Some non-ELF systems support .init and .fini sections,
but the __attribute__ syntax only works for ELF. */
#define SECTION(x) asm (".section " x);
#endif
/* End the here document containing the initial common code. /* End the here document containing the initial common code.
Then move the output file crtcommon.tmp to crti.s-new and crtn.s-new. */ Then move the output file crtcommon.tmp to crti.s-new and crtn.s-new. */
asm ("\nEOF_common\n\ asm ("\nEOF_common\n\
@ -48,10 +58,10 @@ cp -f crti.s-new crtn.s-new");
/* Append the .init prologue to crti.s-new. */ /* Append the .init prologue to crti.s-new. */
asm ("cat >> crti.s-new <<\\EOF.crti.init"); asm ("cat >> crti.s-new <<\\EOF.crti.init");
SECTION (".init")
void void
_init (void) _init (void)
{ {
(void) &_init; /* Don't optimize out the function! */
/* End the here document containing the .init prologue code. /* End the here document containing the .init prologue code.
Then fetch the .section directive just written and append that Then fetch the .section directive just written and append that
to crtn.s-new, followed by the function epilogue. */ to crtn.s-new, followed by the function epilogue. */
@ -67,10 +77,10 @@ asm ("\nEOF.crtn.init\
\n\ \n\
cat >> crti.s-new <<\\EOF.crti.fini"); cat >> crti.s-new <<\\EOF.crti.fini");
SECTION (".fini")
void void
_fini (void) _fini (void)
{ {
(void) &_fini; /* Don't optimize out the function! */
/* End the here document containing the .fini prologue code. /* End the here document containing the .fini prologue code.
Then fetch the .section directive just written and append that Then fetch the .section directive just written and append that
to crtn.s-new, followed by the function epilogue. */ to crtn.s-new, followed by the function epilogue. */

View File

@ -1,4 +1,4 @@
/* Copyright (C) 1991, 1992, 1993, 1994 Free Software Foundation, Inc. /* Copyright (C) 1991, 1992, 1993, 1994, 1995 Free Software Foundation, Inc.
This file is part of the GNU C Library. This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or The GNU C Library is free software; you can redistribute it and/or
@ -174,6 +174,8 @@ DEFUN(__stdio_reopen, (filename, m, cookieptr),
if (__stdio_open (filename, m, &newcookie)) if (__stdio_open (filename, m, &newcookie))
return -1; return -1;
} }
else
return -1;
} }
if (newcookie != *cookieptr) if (newcookie != *cookieptr)