Update. cvs/libc-ud-970524
authorUlrich Drepper <drepper@redhat.com>
Sun, 25 May 1997 01:12:55 +0000 (01:12 +0000)
committerUlrich Drepper <drepper@redhat.com>
Sun, 25 May 1997 01:12:55 +0000 (01:12 +0000)
1997-05-25 03:00  Ulrich Drepper  <drepper@cygnus.com>

* elf/dynamic-link.h (_dl_verbose): New variable, declare.
* elf/rtld.c (_dl_verbose): New variable, define.
(dl_main): Define _dl-verbose based on DL_WARN environment variable.
* sysdeps/i386/dl-machine.h (elf_machine_rel): Print warning about
changed size in copy relocation only if symbol in shared object
is larger or _dl_verbose is nonzero.
* sysdeps/m68k/dl-machine.h (elf_machine_rel): Likewise.
* sysdeps/powerpc/dl-machine.h (elf_machine_rel): Likewise.
* sysdeps/sparc/dl-machine.h (elf_machine_rel): Likewise.

* nis/nss_nis/nis-ethers.c: Don't use relative include paths, use
<...>.
* nis/nss_nis/nis-grp.c: Likewise.
* nis/nss_nis/nis-hosts.c: Likewise.
* nis/nss_nis/nis-network.c: Likewise.
* nis/nss_nis/nis-proto.c: Likewise.
* nis/nss_nis/nis-pwd.c: Likewise.
* nis/nss_nis/nis-rpc.c: Likewise.
* nis/nss_nis/nis-spwd.c: Likewise.
* sysdeps/unix/sysv/sysd-stdio.c: Likewise.
* wcsmbs/wcscoll.c: Likewise.
* wcsmbs/wcstod.c: Likewise.
* wcsmbs/wcstof.c: Likewise.
* wcsmbs/wcstol.c: Likewise.
* wcsmbs/wcstold.c: Likewise.
* wcsmbs/wcsxfrm.c: Likewise.
Reported by Zack Weinberg <zack@rabi.phys.columbia.edu>.

* time/strftime.c: Implement # flag which changes case of output for
%a, %b, %B, %p, and %Z format.
When printing numbers, the given field width is always respected.
This means that padding happens only up to the given width.
Proposed by Stephen Gildea <gildea@intouchsys.com>.

1997-05-25 00:44  Ulrich Drepper  <drepper@cygnus.com>

* sysdeps/i386/fpu/__math.h (logb): Fix thinko, reverse output
values.
Reported by Andreas Jaeger <aj@arthur.rhein-neckar.de>.

1997-05-24 21:03  Philip Blundell  <pjb27@cam.ac.uk>

* db/btree/bt_open.c (__bt_open): Only try to use st_blksize (from
struct stat) if it exists for this port.

1997-05-24 20:34  Philip Blundell  <pjb27@cam.ac.uk>

* sysdeps/standalone/arm/errnos.h: Add EPERM.

1997-05-23 16:28  Philip Blundell  <phil@kings-cross.london.uk.eu.org>

* linewrap.h: New file, needed to compile argp without libio.

1997-05-24 11:59  Andreas Jaeger  <aj@arthur.rhein-neckar.de>

* manual/stdio.texi (Formatted Messages): Corrected some typos.

1997-05-24 11:58  Philip Blundell  <pjb27@cam.ac.uk>

* sysdeps/stub/start.c: Fix typo.

29 files changed:
ChangeLog
db/btree/bt_open.c
elf/dynamic-link.h
elf/rtld.c
linewrap.h [new file with mode: 0644]
manual/stdio.texi
nis/nss_nis/nis-ethers.c
nis/nss_nis/nis-grp.c
nis/nss_nis/nis-hosts.c
nis/nss_nis/nis-network.c
nis/nss_nis/nis-proto.c
nis/nss_nis/nis-pwd.c
nis/nss_nis/nis-rpc.c
nis/nss_nis/nis-spwd.c
sysdeps/i386/dl-machine.h
sysdeps/i386/fpu/__math.h
sysdeps/m68k/dl-machine.h
sysdeps/powerpc/dl-machine.h
sysdeps/sparc/dl-machine.h
sysdeps/standalone/arm/errnos.h
sysdeps/stub/start.c
sysdeps/unix/sysv/sysd-stdio.c
time/strftime.c
wcsmbs/wcscoll.c
wcsmbs/wcstod.c
wcsmbs/wcstof.c
wcsmbs/wcstol.c
wcsmbs/wcstold.c
wcsmbs/wcsxfrm.c

index 65709ad..2d6539c 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,66 @@
+1997-05-25 03:00  Ulrich Drepper  <drepper@cygnus.com>
+
+       * elf/dynamic-link.h (_dl_verbose): New variable, declare.
+       * elf/rtld.c (_dl_verbose): New variable, define.
+       (dl_main): Define _dl-verbose based on DL_WARN environment variable.
+       * sysdeps/i386/dl-machine.h (elf_machine_rel): Print warning about
+       changed size in copy relocation only if symbol in shared object
+       is larger or _dl_verbose is nonzero.
+       * sysdeps/m68k/dl-machine.h (elf_machine_rel): Likewise.
+       * sysdeps/powerpc/dl-machine.h (elf_machine_rel): Likewise.
+       * sysdeps/sparc/dl-machine.h (elf_machine_rel): Likewise.
+
+       * nis/nss_nis/nis-ethers.c: Don't use relative include paths, use
+       <...>.
+       * nis/nss_nis/nis-grp.c: Likewise.
+       * nis/nss_nis/nis-hosts.c: Likewise.
+       * nis/nss_nis/nis-network.c: Likewise.
+       * nis/nss_nis/nis-proto.c: Likewise.
+       * nis/nss_nis/nis-pwd.c: Likewise.
+       * nis/nss_nis/nis-rpc.c: Likewise.
+       * nis/nss_nis/nis-spwd.c: Likewise.
+       * sysdeps/unix/sysv/sysd-stdio.c: Likewise.
+       * wcsmbs/wcscoll.c: Likewise.
+       * wcsmbs/wcstod.c: Likewise.
+       * wcsmbs/wcstof.c: Likewise.
+       * wcsmbs/wcstol.c: Likewise.
+       * wcsmbs/wcstold.c: Likewise.
+       * wcsmbs/wcsxfrm.c: Likewise.
+       Reported by Zack Weinberg <zack@rabi.phys.columbia.edu>.
+
+       * time/strftime.c: Implement # flag which changes case of output for
+       %a, %b, %B, %p, and %Z format.
+       When printing numbers, the given field width is always respected.
+       This means that padding happens only up to the given width.
+       Proposed by Stephen Gildea <gildea@intouchsys.com>.
+
+1997-05-25 00:44  Ulrich Drepper  <drepper@cygnus.com>
+
+       * sysdeps/i386/fpu/__math.h (logb): Fix thinko, reverse output
+       values.
+       Reported by Andreas Jaeger <aj@arthur.rhein-neckar.de>.
+
+1997-05-24 21:03  Philip Blundell  <pjb27@cam.ac.uk>
+
+       * db/btree/bt_open.c (__bt_open): Only try to use st_blksize (from
+       struct stat) if it exists for this port.
+
+1997-05-24 20:34  Philip Blundell  <pjb27@cam.ac.uk>
+
+       * sysdeps/standalone/arm/errnos.h: Add EPERM.
+
+1997-05-23 16:28  Philip Blundell  <phil@kings-cross.london.uk.eu.org>
+
+       * linewrap.h: New file, needed to compile argp without libio.
+
+1997-05-24 11:59  Andreas Jaeger  <aj@arthur.rhein-neckar.de>
+
+       * manual/stdio.texi (Formatted Messages): Corrected some typos.
+
+1997-05-24 11:58  Philip Blundell  <pjb27@cam.ac.uk>
+
+       * sysdeps/stub/start.c: Fix typo.
+
 1997-05-21 17:53  Miles Bader  <miles@gnu.ai.mit.edu>
 
        * argp-help.c (hol_add_cluster): Initialize CL->depth.
index 503db85..1396f3a 100644 (file)
@@ -259,7 +259,9 @@ __bt_open(fname, flags, mode, openinfo, dflags)
                 * Don't overflow the page offset type.
                 */
                if (b.psize == 0) {
+#ifdef _STATBUF_ST_BLKSIZE
                        b.psize = sb.st_blksize;
+#endif
                        if (b.psize < MINPSIZE)
                                b.psize = MINPSIZE;
                        if (b.psize > MAX_PAGE_OFFSET + 1)
index da63633..3377ee7 100644 (file)
 #include <assert.h>
 
 
+/* Global read-only variable defined in rtld.c which is nonzero if we
+   shall give more warning messages.  */
+extern int _dl_verbose __attribute__ ((unused));
+
+
 /* Read the dynamic section at DYN and fill in INFO with indices DT_*.  */
 
 static inline void __attribute__ ((unused))
index bad01a8..ffa569e 100644 (file)
@@ -56,6 +56,7 @@ static void print_missing_version (int errcode, const char *objname,
 int _dl_argc;
 char **_dl_argv;
 const char *_dl_rpath;
+int _dl_verbose;
 
 /* Set nonzero during loading and initialization of executable and
    libraries, cleared before the executable's entry point runs.  This
@@ -206,12 +207,13 @@ dl_main (const ElfW(Phdr) *phdr,
   int has_interp = 0;
 
   mode = getenv ("LD_TRACE_LOADED_OBJECTS") != NULL ? trace : normal;
+  _dl_verbose = *(getenv ("LD_WARN") ?: "") == '\0' ? 0 : 1;
 
-  /* LAZY is determined by the parameters --datadeps and --function-deps
-     if we trace the binary.  */
+  /* LAZY is determined by the environment variable LD_WARN and
+     LD_BIND_NOW if we trace the binary.  */
   if (mode == trace)
-    lazy = (*(getenv ("LD_WARN") ?: "") == '\0' ? -1
-           : (*(getenv ("LD_BIND_NOW") ?: "") == '\0' ? 1 : 0));
+    lazy = (_dl_verbose
+           ? (*(getenv ("LD_BIND_NOW") ?: "") == '\0' ? 1 : 0) : -1);
   else
     lazy = !__libc_enable_secure && *(getenv ("LD_BIND_NOW") ?: "") == '\0';
 
diff --git a/linewrap.h b/linewrap.h
new file mode 100644 (file)
index 0000000..03ca090
--- /dev/null
@@ -0,0 +1 @@
+#include "stdio/linewrap.h"
index 3d6a6c1..085a1c9 100644 (file)
@@ -3825,7 +3825,7 @@ wait until the rest of the manual is more done and polished.
 On systems which are based on System V messages of programs (especially
 the system tools) are printed in a strict form using the @code{fmtmsg}
 function.  The uniformity sometimes helps the user to interpret messages
-and the strictness tests of the @code{fmtmsg} function ensures that the
+and the strictness tests of the @code{fmtmsg} function ensure that the
 programmer follows some minimal requirements.
 
 @menu
@@ -3839,7 +3839,7 @@ programmer follows some minimal requirements.
 @subsection Printing Formatted Messages
 
 Messages can be printed to standard error and/or to the console.  To
-select the destination the programmer can use the following to values,
+select the destination the programmer can use the following two values,
 bitwise OR combined if wanted, for the @var{classification} parameter of
 @code{fmtmsg}:
 
@@ -3850,7 +3850,7 @@ Display the message in standard error.
 Display the message on the system console.
 @end vtable
 
-The errorneous piece of the system can be signal by exactly one of the
+The errorneous piece of the system can be signalled by exactly one of the
 following values which also is bitwise ORed with the
 @var{classification} parameter to @code{fmtmsg}:
 
@@ -3900,7 +3900,7 @@ reference to the online documentation where more information can be
 found.  It should contain the @var{label} value and a unique
 identification number.
 
-Each of the parameters can be of a special value which means this value
+Each of the parameters can be a special value which means this value
 is to be omitted.  The symbolic names for these values are:
 
 @vtable @code
@@ -3919,7 +3919,7 @@ Ignore @var{action} parameter.
 Ignore @var{tag} parameter.
 @end vtable
 
-There is another way certain fields can be omitted from the output the
+There is another way certain fields can be omitted from the output to
 standard error.  This is described below in the description of
 environment variables influencing the behaviour.
 
@@ -3961,10 +3961,10 @@ ignored.
 This function is specified in the X/Open Portability Guide.  It is also
 available on all system derived from System V.
 
-The function return the value @code{MM_OK} if no error occurred.  If
+The function returns the value @code{MM_OK} if no error occurred.  If
 only the printing to standard error failed, it returns @code{MM_NOMSG}.
 If printing to the console fails, it returns @code{MM_NOCON}.  If
-nothing is printed @code{MM_NOTOK} is returned.  Among situation where
+nothing is printed @code{MM_NOTOK} is returned.  Among situations where
 all outputs fail this last value is also returned if a parameter value
 is incorrect.
 @end deftypefun
@@ -3974,7 +3974,7 @@ There are two environment variables which influence the behaviour of
 output actually happening on standard error (@emph{not} the console
 output).  Each of the five fields can explicitely be enabled.  To do
 this the user has to put the @code{MSGVERB} variable with a format like
-following in the environment before calling the @code{fmtmsg} function
+the following in the environment before calling the @code{fmtmsg} function
 the first time:
 
 @smallexample
@@ -3990,7 +3990,7 @@ The second environment variable which influences the behaviour of
 @code{fmtmsg} is @code{SEV_LEVEL}.  This variable and the change in the
 behaviour of @code{fmtmsg} is not specified in the X/Open Portability
 Guide.  It is available in System V systems, though.  It can be used to
-introduce no severity levels.  By default, only the five severity levels
+introduce new severity levels.  By default, only the five severity levels
 described above are available.  Any other numeric value would make
 @code{fmtmsg} print nothing.
 
@@ -4026,7 +4026,7 @@ There is another possibility to introduce severity classes beside using
 the environment variable @code{SEV_LEVEL}.  This simplifies the task of
 introducing new classes in a running program.  One could use the
 @code{setenv} or @code{putenv} function to set the environment variable,
-but this toilsome.
+but this is toilsome.
 
 @deftypefun int addseverity (int @var{severity}, const char *@var{string})
 This function allows to introduce new severity classes which can be
@@ -4039,13 +4039,17 @@ value.
 If @var{string} is @code{NULL} the severity class with the numeric value
 according to @var{severity} is removed.
 
+It is not possible to overwrite or remove one of the default severity
+classes.  All calls to @code{addseverity} with @var{severity} set to one
+of the values for the default classes will fail.
+
 The return value is @code{MM_OK} if the task was successfully performed.
 If the return value is @code{MM_NOTOK} something went wrong.  This could
 mean that no more memory is available or a class is not available when
 it has to be removed.
 
 This function is not specified in the X/Open Portability Guide although
-the @code{fmtsmg} is.  It is available on System V systems.
+the @code{fmtsmg} function is.  It is available on System V systems.
 @end deftypefun
 
 
@@ -4120,7 +4124,7 @@ TO FIX: action
 
 @noindent
 I.e., the output produced by the @var{text} and the @var{tag} parameters
-to @code{fmtmsg} vanished.  Please also note the now there is no colon
+to @code{fmtmsg} vanished.  Please also note that now there is no colon
 after the @code{NOTE} and @code{NOTE2} strings in the output.  This is
 not necessary since there is no more output on this line since the text
 is missing.
index 2d08be7..a9730a3 100644 (file)
@@ -41,7 +41,7 @@ struct ether
 #define ENTNAME etherent
 #define STRUCTURE ether
 #define EXTERN_PARSER
-#include "../nss/nss_files/files-parse.c"
+#include <nss/nss_files/files-parse.c>
 
 struct response
 {
index 139edf2..cbe4d35 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996 Free Software Foundation, Inc.
+/* Copyright (C) 1996, 1997 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Thorsten Kukuk <kukuk@vt.uni-paderborn.de>, 1996.
 
@@ -32,7 +32,7 @@
 #define ENTNAME grent
 #define STRUCTURE group
 #define EXTERN_PARSER
-#include "../nss/nss_files/files-parse.c"
+#include <nss/nss_files/files-parse.c>
 
 /* Protect global state against multiple changers */
 __libc_lock_define_initialized (static, lock)
index 42fc5ae..5ca24c7 100644 (file)
@@ -31,8 +31,8 @@
 #include "nss-nis.h"
 
 /* Get implementation for some internal functions. */
-#include "../../resolv/mapv4v6addr.h"
-#include "../../resolv/mapv4v6hostent.h"
+#include <resolv/mapv4v6addr.h>
+#include <resolv/mapv4v6hostent.h>
 
 #define ENTNAME         hostent
 #define DATABASE        "hosts"
@@ -47,7 +47,7 @@ struct hostent_data
 
 #define TRAILING_LIST_MEMBER            h_aliases
 #define TRAILING_LIST_SEPARATOR_P       isspace
-#include "../../nss/nss_files/files-parse.c"
+#include <nss/nss_files/files-parse.c>
 LINE_PARSER
 ("#",
  {
index 391f4c5..0253ac8 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996 Free Software Foundation, Inc.
+/* Copyright (C) 1996, 1997 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Thorsten Kukuk <kukuk@vt.uni-paderborn.de>, 1996.
 
@@ -33,7 +33,7 @@
 /* Get the declaration of the parser function.  */
 #define ENTNAME netent
 #define EXTERN_PARSER
-#include "../nss/nss_files/files-parse.c"
+#include <nss/nss_files/files-parse.c>
 
 __libc_lock_define_initialized (static, lock)
 
index 92ef1c0..d939c9d 100644 (file)
@@ -31,7 +31,7 @@
 /* Get the declaration of the parser function.  */
 #define ENTNAME protoent
 #define EXTERN_PARSER
-#include "../nss/nss_files/files-parse.c"
+#include <nss/nss_files/files-parse.c>
 
 __libc_lock_define_initialized (static, lock)
 
@@ -45,7 +45,7 @@ static struct response *start = NULL;
 static struct response *next = NULL;
 
 static int
-saveit (int instatus, char *inkey, int inkeylen, char *inval, 
+saveit (int instatus, char *inkey, int inkeylen, char *inval,
         int invallen, char *indata)
 {
   if (instatus != YP_TRUE)
@@ -68,7 +68,7 @@ saveit (int instatus, char *inkey, int inkeylen, char *inval,
       strncpy (next->val, inval, invallen);
       next->val[invallen] = '\0';
     }
-  
+
   return 0;
 }
 
@@ -78,9 +78,9 @@ internal_nis_setprotoent (void)
   char *domainname;
   struct ypall_callback ypcb;
   enum nss_status status;
-  
+
   yp_get_default_domain (&domainname);
-  
+
   while (start != NULL)
     {
       if (start->val != NULL)
@@ -90,12 +90,12 @@ internal_nis_setprotoent (void)
       free (next);
     }
   start = NULL;
-  
+
   ypcb.foreach = saveit;
   ypcb.data = NULL;
   status = yperr2nss (yp_all (domainname, "protocols.bynumber", &ypcb));
   next = start;
-  
+
   return status;
 }
 
@@ -128,9 +128,9 @@ _nss_nis_endprotoent (void)
     }
   start = NULL;
   next = NULL;
-  
+
   __libc_lock_unlock (lock);
-  
+
   return NSS_STATUS_SUCCESS;
 }
 
@@ -148,12 +148,12 @@ internal_nis_getprotoent_r (struct protoent *proto,
   do
     {
       char *p;
-      
+
       if (next == NULL)
         return NSS_STATUS_NOTFOUND;
       p = strcpy (buffer, next->val);
       next = next->next;
-      
+
       while (isspace (*p))
         ++p;
 
@@ -162,7 +162,7 @@ internal_nis_getprotoent_r (struct protoent *proto,
         return NSS_STATUS_TRYAGAIN;
     }
   while (!parse_res);
-  
+
   return NSS_STATUS_SUCCESS;
 }
 
index 60a59fe..b273332 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996 Free Software Foundation, Inc.
+/* Copyright (C) 1996, 1997 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Thorsten Kukuk <kukuk@vt.uni-paderborn.de>, 1996.
 
@@ -32,7 +32,7 @@
 #define ENTNAME pwent
 #define STRUCTURE passwd
 #define EXTERN_PARSER
-#include "../nss/nss_files/files-parse.c"
+#include <nss/nss_files/files-parse.c>
 
 /* Protect global state against multiple changers */
 __libc_lock_define_initialized (static, lock)
index c4c9135..c209883 100644 (file)
@@ -31,7 +31,7 @@
 /* Get the declaration of the parser function.  */
 #define ENTNAME rpcent
 #define EXTERN_PARSER
-#include "../nss/nss_files/files-parse.c"
+#include <nss/nss_files/files-parse.c>
 
 __libc_lock_define_initialized (static, lock)
 
@@ -51,7 +51,7 @@ typedef struct intern_t intern_t;
 static intern_t intern = {NULL, NULL};
 
 static int
-saveit (int instatus, char *inkey, int inkeylen, char *inval, 
+saveit (int instatus, char *inkey, int inkeylen, char *inval,
         int invallen, char *indata)
 {
   intern_t *intern = (intern_t *)indata;
@@ -76,7 +76,7 @@ saveit (int instatus, char *inkey, int inkeylen, char *inval,
       strncpy (intern->next->val, inval, invallen);
       intern->next->val[invallen] = '\0';
     }
-  
+
   return 0;
 }
 
@@ -86,10 +86,10 @@ internal_nis_setrpcent (intern_t *intern)
   char *domainname;
   struct ypall_callback ypcb;
   enum nss_status status;
-  
+
   if (yp_get_default_domain (&domainname))
     return NSS_STATUS_UNAVAIL;
-  
+
   while (intern->start != NULL)
     {
       if (intern->start->val != NULL)
@@ -134,7 +134,7 @@ internal_nis_endrpcent (intern_t *intern)
       free (intern->next);
     }
   intern->start = NULL;
-  
+
   return NSS_STATUS_SUCCESS;
 }
 
@@ -159,10 +159,10 @@ internal_nis_getrpcent_r (struct rpcent *rpc, char *buffer, size_t buflen,
   struct parser_data *pdata = (void *) buffer;
   int parse_res;
   char *p;
-  
+
   if (data->start == NULL)
     internal_nis_setrpcent (data);
-  
+
   /* Get the next entry until we found a correct one. */
   do
     {
@@ -172,13 +172,13 @@ internal_nis_getrpcent_r (struct rpcent *rpc, char *buffer, size_t buflen,
       data->next = data->next->next;
       while (isspace (*p))
         ++p;
-      
+
       parse_res = _nss_files_parse_rpcent (p, rpc, pdata, buflen);
       if (!parse_res && errno == ERANGE)
        return NSS_STATUS_TRYAGAIN;
     }
   while (!parse_res);
-  
+
   return NSS_STATUS_SUCCESS;
 }
 
index 193cd71..cc4cf3a 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996 Free Software Foundation, Inc.
+/* Copyright (C) 1996, 1997 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Thorsten Kukuk <kukuk@vt.uni-paderborn.de>, 1996.
 
@@ -32,7 +32,7 @@
 #define ENTNAME spent
 #define STRUCTURE spwd
 #define EXTERN_PARSER
-#include "../nss/nss_files/files-parse.c"
+#include <nss/nss_files/files-parse.c>
 
 /* Protect global state against multiple changers */
 __libc_lock_define_initialized (static, lock)
index ea938c3..3e0f9b1 100644 (file)
@@ -263,7 +263,8 @@ elf_machine_rel (struct link_map *map, const Elf32_Rel *reloc,
       switch (ELF32_R_TYPE (reloc->r_info))
        {
        case R_386_COPY:
-         if (sym->st_size != refsym->st_size)
+         if (sym->st_size > refsym->st_size
+             || (_dl_verbose && sym->st_size < refsym->st_size))
            {
              const char *strtab;
 
index e6f5a31..d5945e8 100644 (file)
@@ -433,7 +433,7 @@ logb (double __x)
   register double __value, __junk;
   __asm __volatile__
     ("fxtract\n\t"
-     : "=t" (__value), "=u" (__junk) : "0" (__x));
+     : "=t" (__junk), "=u" (__value) : "0" (__x));
 
   return __value;
 }
index dee2a46..1523ddb 100644 (file)
@@ -227,7 +227,8 @@ elf_machine_rela (struct link_map *map, const Elf32_Rela *reloc,
       switch (ELF32_R_TYPE (reloc->r_info))
        {
        case R_68K_COPY:
-         if (sym->st_size != refsym->st_size)
+         if (sym->st_size > refsym->st_size
+             || (_dl_verbose && sym->st_size < refsym->st_size))
            {
              const char *strtab;
 
index 64ca7b4..17e8d9a 100644 (file)
@@ -591,7 +591,8 @@ elf_machine_rela (struct link_map *map, const Elf32_Rela *reloc,
     }
   else if (rinfo == R_PPC_COPY)
     {
-      if (sym->st_size != refsym->st_size)
+      if (sym->st_size > refsym->st_size
+         || (_dl_verbose && sym->st_size < refsym->st_size))
        {
          const char *strtab;
 
@@ -666,5 +667,3 @@ elf_machine_rela (struct link_map *map, const Elf32_Rela *reloc,
 #define ELF_MACHINE_NO_REL 1
 
 #endif
-
-
index accd3a1..20def2c 100644 (file)
@@ -130,7 +130,8 @@ elf_machine_rela (struct link_map *map, const Elf32_Rela *reloc,
       switch (ELF32_R_TYPE (reloc->r_info))
        {
        case R_SPARC_COPY:
-         if (sym->st_size != refsym->st_size)
+         if (sym->st_size > refsym->st_size
+             || (_dl_verbose && sym->st_size < refsym->st_size))
            {
              const char *strtab;
 
index 428fe9e..8090a80 100644 (file)
@@ -1,20 +1,20 @@
 /* Copyright (C) 1991, 1994, 1996, 1997 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
-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 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.
+   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., 675 Mass Ave,
-Cambridge, MA 02139, USA.  */
+   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.  */
 
 /* This file defines the `errno' constants for standalone ARM machines.
    These constants are essentially arbitrary.  */
@@ -46,6 +46,7 @@ Cambridge, MA 02139, USA.  */
 #define ENOENT         18
 #define EPROTOTYPE     19
 #define ESRCH          20
+#define EPERM          21
 #endif
 
 #define __set_errno(val) errno = (val)
index c16582d..cf7efc9 100644 (file)
@@ -13,4 +13,4 @@ weak_alias (__data_start, data_start)
 #endif
 
 volatile int __errno;
-string_alias (__errno, errno)
+strong_alias (__errno, errno)
index 35dae27..7f82340 100644 (file)
@@ -1,2 +1,2 @@
 #define        EINTR_REPEAT
-#include <../sysdeps/generic/sysd-stdio.c>
+#include <sysdeps/generic/sysd-stdio.c>
index 4cb6c9e..040b787 100644 (file)
@@ -282,6 +282,7 @@ memcpy_uppcase (dest, src, len)
   return dest;
 }
 
+
 #if ! HAVE_TM_GMTOFF
 /* Yield the difference between *A and *B,
    measured in seconds, ignoring leap seconds.  */
@@ -464,6 +465,7 @@ strftime (s, maxsize, format, tp)
       int width = -1;
       int to_lowcase = 0;
       int to_uppcase = 0;
+      int change_case = 0;
 
 #if DO_MULTIBYTE
 
@@ -555,6 +557,9 @@ strftime (s, maxsize, format, tp)
            case '^':
              to_uppcase = 1;
              continue;
+           case '#':
+             change_case = 1;
+             continue;
 
            default:
              break;
@@ -592,9 +597,11 @@ strftime (s, maxsize, format, tp)
       switch (*f)
        {
 #define DO_NUMBER(d, v) \
-         digits = d; number_value = v; goto do_number
+         digits = width == -1 ? d : width;                                   \
+         number_value = v; goto do_number
 #define DO_NUMBER_SPACEPAD(d, v) \
-         digits = d; number_value = v; goto do_number_spacepad
+         digits = width == -1 ? d : width;                                   \
+         number_value = v; goto do_number_spacepad
 
        case '%':
          if (modifier != 0)
@@ -605,12 +612,22 @@ strftime (s, maxsize, format, tp)
        case 'a':
          if (modifier != 0)
            goto bad_format;
+         if (change_case)
+           {
+             to_uppcase = 1;
+             to_lowcase = 0;
+           }
          cpy (aw_len, a_wkday);
          break;
 
        case 'A':
          if (modifier != 0)
            goto bad_format;
+         if (change_case)
+           {
+             to_uppcase = 1;
+             to_lowcase = 0;
+           }
          cpy (wkday_len, f_wkday);
          break;
 
@@ -624,6 +641,11 @@ strftime (s, maxsize, format, tp)
        case 'B':
          if (modifier != 0)
            goto bad_format;
+         if (change_case)
+           {
+             to_uppcase = 1;
+             to_lowcase = 0;
+           }
          cpy (month_len, f_month);
          break;
 
@@ -824,6 +846,11 @@ strftime (s, maxsize, format, tp)
          /* FALLTHROUGH */
 
        case 'p':
+         if (change_case)
+           {
+             to_uppcase = 0;
+             to_lowcase = 1;
+           }
          cpy (ap_len, ampm);
          break;
 
@@ -996,6 +1023,11 @@ strftime (s, maxsize, format, tp)
          DO_NUMBER (2, (tp->tm_year % 100 + 100) % 100);
 
        case 'Z':
+         if (change_case)
+           {
+             to_uppcase = 0;
+             to_lowcase = 1;
+           }
          cpy (zonelen, zone);
          break;
 
index 9b1a8a4..2703178 100644 (file)
@@ -28,4 +28,4 @@
 #endif
 #define STRCMP wcscmp
 
-#include "../string/strcoll.c"
+#include <string/strcoll.c>
index 6996c95..1c14987 100644 (file)
@@ -22,4 +22,4 @@
 
 #define        USE_WIDE_CHAR   1
 
-#include "../stdlib/strtod.c"
+#include <stdlib/strtod.c>
index 38cd95a..82a634a 100644 (file)
@@ -40,4 +40,4 @@
        (flt) = u.f;                                                          \
   } while (0)
 
-#include "../stdlib/strtod.c"
+#include <stdlib/strtod.c>
index aef2e2b..2f7d144 100644 (file)
@@ -20,4 +20,4 @@
 
 #define        USE_WIDE_CHAR   1
 
-#include "../stdlib/strtol.c"
+#include <stdlib/strtol.c>
index 1c7cc65..fc8c010 100644 (file)
@@ -41,4 +41,4 @@
        (flt) = u.d;                                                          \
   } while (0)
 
-#include "../stdlib/strtod.c"
+#include <stdlib/strtod.c>
index b899185..d3687c3 100644 (file)
@@ -31,4 +31,4 @@
 #define STRLEN wcslen
 #define STPNCPY __wcpncpy
 
-#include "../string/strxfrm.c"
+#include <string/strxfrm.c>