summaryrefslogtreecommitdiff
path: root/sysdeps
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>1997-06-12 21:38:55 +0000
committerUlrich Drepper <drepper@redhat.com>1997-06-12 21:38:55 +0000
commit714a562f0bf855da3835adb2dbecc245e39f8759 (patch)
tree856c801ff8bc895274a8914e5c846c86ecf37046 /sysdeps
parentb0de3e9e30113e669ad7944579ec4e2d10163758 (diff)
downloadglibc-714a562f0bf855da3835adb2dbecc245e39f8759.tar.gz
<1997-06-12 21:22 Ulrich Drepper <drepper@cygnus.com> * Makefile (libc-map): Define before including Makerules. * Makerules (lib%.so): Depend on $(lib%-map). (build-shlib): Adapt rule for above change. (libc.so): Depend on $(libc-map). * db/Makefile (libcdb-map): New definition. * elf/Makefile (libdl-map): New definition. * elf/dl-lookup.c: Don't use relative include path. (undefined_msg): New variable. Use single string in all functions. (do_lookup): Correctly recognize default version. Return -2 if no version information is available. Stop processing hash entries when string was found. Don't bark about missing versioned symbol in file with original reference if it is a weak symbol. (_dl_lookup_symbol): Use undefined_msg. (_dl_lookup_versioned_symbol): Likewise. Give extra information if no verdef info is available. * elf/dl-version.c (file_needed): Remove first argument. We must seek in the whole search list. (match_symbol): Correct check for available verdef info. (_dl_check_map_versions): Correct call of find_needed. * locale/Makefile (libBrokenLocale-map): New definition. * login/Makefile (libutil-map): New definition. * math/Makefile (libm-map): New definition. * md5-crypt/Makefile (libcrypt-map): New definition. * nis/Makefile (libnsl-map, libnss_compat-map, libnss_nis-map, libnss_nisplus-map): New definition. * nss/Makefile (libnss_files-map, libnss_db-map): New definitions. * resolv/Makefile (libresolv-map, libnss_dns-map): New definitions. * libc.map: New file. * db/libdb.map: New file. * elf/libdl.map: New file. * locale/libBrokenLocale.map: New file. * login/libutil.map: New file. * math/libm.map: New file. * md5-crypt/libcrypt.map: New file. * nis/libnss_compat.map: New file. * nis/libnsl.map: New file. * nis/libnss_nis.map: New file. * nis/libnss_nisplus.map: New file. * nss/libnss_files.map: New file. * nss/libnss_db.map: New file. * resolv/libnss_dns.map: New file. * resolv/libresolv.map: New file. * sysdeps/i386/dl-machine.h (elf_machine_rel): Don't do anything for R_386_NONE entries. * Makefile (manual/dir-add.info): New rule. * Makerules: Add vpath definition for .x files. * Makerules (distinfo): Make sure target directory exists. * argp/argp-help.c (argp_args_usage): Don't modify `fdoc' value since it is used to distinguish filtered strings from unmodifed strings. * elf/dl-lookup.c (do_lookup): Optimize STT_* recognition. * elf/dl-reloc.c: Fix typo. * inet/arpa/tftp.h (struct tftphdr): Change type of tu_block to `unsigned short'. * manual/Makefile (dir-add.texi): Also emit wrapper text for info/install-info. (distribute): Add dir-add.texi and dir-add.info. (mostlyclean): Add dir-add.info. (realclean): Add dir-add.texi. (install): Add entries in `dir' file using install-info. * manual/libc.texinfo: Add @dircategory and @direntry text. Reported by Miles Bader <miles@gnu.ai.mit.edu>. * manual/pattern.texi: Correct description of GLOB_MAGCHAR and GLOB_NOMAGIC. Changes by Roland McGrath <roland@gnu.ai.mit.edu>. * nis/nis_addmember.c: Little optimizations. * nis/nis_call.c: Likewise. * nis/nis_creategroup.c: Likewise. * nis/nis_defaults.c: Likewise. * nis/nis_destroygroup.c: Likewise. * nis/nis_ismember.c: Likewise. * nis/nis_local_names.c: Likewise. * nis/nis_print_group_entry.c: Likewise. * nis/nis_verifygroup.c: Likewise. * posix/unistd.h: Fix comment for getcwd. * stdlib/Makefile (headers): Remove inttypes.h. It's a system dependent header. * sysdeps/wordsize-32/Dist: New file. * sysdeps/wordsize-32/Makefile: New file. * sysdeps/wordsize-64/Dist: New file. * sysdeps/wordsize-64/Makefile: New file. * sunrpc/Makefile: Adopt comment for real situation. * sysdeps/i386/add_n.S: Add ASM_TYPE_DIRECTIVE and AS_SIZE_DIRECTIVE. * sysdeps/i386/addmul_1.s: Likewise. * sysdeps/i386/lshist.s: Likewise. * sysdeps/i386/rshift.s: Likewise. * sysdeps/i386/sub_n.s: Likewise. * sysdeps/i386/submul_1.s: Likewise. * sysdeps/unix/sysv/linux/i386/sysdep.h (SYSCALL_ERROR_HANDLER): Add .type and .size. 1997-06-12 13:32 Philip Blundell <Philip.Blundell@pobox.com> * libc/sysdeps/unix/arm/brk.S: New file. * libc/sysdeps/unix/arm/sysdep.S: Likewise. * libc/sysdeps/unix/sysv/linux/arm/sysdep.S: Likewise. 1997-06-11 11:51 Thorsten Kukuk <kukuk@vt.uni-paderborn.de> * nis/nss_nisplus/nisplus-spwd.c (_nss_nisplus_parse_spent): Check if we have shadow information. 1997-06-08 19:33 Thorsten Kukuk <kukuk@vt.uni-paderborn.de> * nis/nis_getservlist.c (nis_getservlist): Use calloc instead of malloc, alloc memory for nis_server struct. * nis/nis_getservlist.c (nis_freeservlist): Give the memory for the nis_server struct free, too. * nis/nis_removemember (nis_removemember): Fix for loop. 1997-06-12 12:45 Ulrich Drepper <drepper@cygnus.com> * sysdeps/i386/fpu/__math.h (__M_SQRT2): Define here since we cannot rely on M_SQRT2 being defined. (log1p): Use __M_SQRT2 not M_SQRT2. * math/math.h (_Mldbl): Define even if M_* constants are not defined. Reported by corsepiu@faw.uni-ulm.de. 1997-06-12 03:08 Philip Blundell <Philip.Blundell@pobox.com> * nss/getXXbyYY_r.c (do_weak_alias): Remove extra parentheses. 1997-06-11 13:22 Ulrich Drepper <drepper@cygnus.com> * misc/regexp.h (compile): Allow use of macro INIT for variable declaration. Add documentation for INIT. Reported by Robert Bihlmeyer <robbe@orcus.priv.at>. 1997-06-11 10:47 Philip Blundell <Philip.Blundell@pobox.com> * sysdeps/unix/sysv/linux/net/if_arp.h: Add two new hardware types. 1997-06-10 11:31 H.J. Lu <hjl@gnu.ai.mit.edu> * sysdeps/powerpc/strlen.s: Use -0x101 instead of 0xfffffeff for a signed 16-bit value. 1997-06-07 07:54 H.J. Lu <hjl@gnu.ai.mit.edu> * sysdeps/unix/sysv/linux/powerpc/dl-sysdep.c (_dl_sysdep_read_whole_file): Deleted. * sysdeps/powerpc/fenvbits.h (__FE_ALL_INVALID): Changed to FE_ALL_INVALID. * sysdeps/powerpc/fraiseexcpt.c (__FE_INVALID_SOFTWARE): Changed to FE_INVALID_SOFTWARE. (__FPSCR_STICKY_BITS): Changed to FPSCR_STICKY_BITS. * sysdeps/libm-ieee754/s_fmin.c: Fix a typo. 1997-06-07 18:48 H.J. Lu <hjl@gnu.ai.mit.edu> * shlib-versions (.*-.*-linux.*): Set libc to 6. 1997-06-08 15:35 Thorsten Kukuk <kukuk@vt.uni-paderborn.de> * nis/nis_add.c (nis_add): Use nis_leaf_of_r instead of nis_name_of_r. * nis/nis_addmember.c (nis_addmember): Fix a lot of pointer errors. * nis/nis_clone.c: Likewise. * nis/nis_removemember.c (nis_removemember): Likewise. * nis/nis_table.c: Likewise. * nis/nss_nis/nis-hosts.c: Use addr, not p for inet_pton call. * nis/nss_nisplus/nisplus-hosts.c: Likewise. * nis/nss_nis/nis-netgrp.c (_nss_nis_setnetgrent): Check for group == NULL. 1997-06-08 21:21 Mark Kettenis <kettenis@phys.uva.nl> * login/login.c, login/utmp_daemon.c, login/utmp_file.c, login/getutent_r.c, login/utmpname.c: Cleanup `#if _LIBC' and `#ifndef _LIBC' fragments. * login/programs/utmpd.c: Define DEFAULT_USER. (drop_priviliges): Use it. (main): Set locale and text domain. * login/programs/utmpd-private.h: Declare proc_utmp_eq. * login/programs/database.c (proc_utmp_eq): Removed. * login/programs/request.c (proc_utmp_eq): Made global. Only use ut_id field if valid. * login/utmp_file.c (proc_utmp_eq): Restore patch made by Miles Bader that was lost when adding the daemon backend; Only use ut_id field if valid. 1997-06-05 23:10 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> * sysdeps/unix/sysv/linux/Dist: Remove netatalk/atalk.h and netinet/icmp.h, add netatalk/at.h. * sysdeps/unix/sysv/linux/powerpc/Dist: Remove termios.h. * sysdeps/unix/sysv/linux/sparc/Dist: Remove start.c. 1997-06-04 19:22 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> * stdlib/testsort.c (compare): Fix parameter types. 1997-06-04 19:05 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> * md5-crypt/Makefile (distribute): Fix name of file. 1997-06-04 19:02 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> * login/Makefile (utmpd-routines): Remove utmpd again, which is already added implicitly through $(others). 1997-06-05 13:43 Fila Kolodny <fila@filapc.ibi.com> * sysdeps/unix/sysv/linux/Makefile (sysdep_headers): Add netipx/ipx.h. 1997-06-05 13:25 Andreas Jaeger <aj@arthur.rhein-neckar.de> * md5-crypt/md5-crypt.c: Add prototype for __md5_crypt. 1997-06-05 17:08 Ulrich Drepper <drepper@cygnus.com> * string/argz-addsep.c: Correct weak alias. Reported by Ben Pfaff <pfaffben@pilot.msu.edu>. * locale/setlocale.c (setlocale): Free variable with locale path before returning. (setname): Don't test for _nl_current[category] being NULL before freeing. Reported by Ben Pfaff <pfaffben@pilot.msu.edu>. 1997-06-04 12:41 Andreas Jaeger <aj@arthur.rhein-neckar.de> * manual/intro.texi (XPG): Correct some typos. * manual/libc.texinfo (Program Arguments): Menu updated. * nis/nis_local_names.c (nis_local_host): Fix pointer errors.
Diffstat (limited to 'sysdeps')
-rw-r--r--sysdeps/i386/add_n.S3
-rw-r--r--sysdeps/i386/addmul_1.S3
-rw-r--r--sysdeps/i386/dl-machine.h4
-rw-r--r--sysdeps/i386/fpu/__math.h6
-rw-r--r--sysdeps/i386/lshift.S3
-rw-r--r--sysdeps/i386/rshift.S3
-rw-r--r--sysdeps/i386/sub_n.S3
-rw-r--r--sysdeps/i386/submul_1.S3
-rw-r--r--sysdeps/libm-ieee754/s_fmin.c2
-rw-r--r--sysdeps/powerpc/fenvbits.h2
-rw-r--r--sysdeps/powerpc/fraiseexcpt.c4
-rw-r--r--sysdeps/powerpc/strlen.s10
-rw-r--r--sysdeps/unix/arm/brk.S43
-rw-r--r--sysdeps/unix/arm/sysdep.S49
-rw-r--r--sysdeps/unix/sysv/linux/Dist3
-rw-r--r--sysdeps/unix/sysv/linux/Makefile3
-rw-r--r--sysdeps/unix/sysv/linux/arm/sysdep.S51
-rw-r--r--sysdeps/unix/sysv/linux/i386/sysdep.h8
-rw-r--r--sysdeps/unix/sysv/linux/net/if_arp.h2
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/Dist1
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/dl-sysdep.c35
-rw-r--r--sysdeps/unix/sysv/linux/sparc/Dist1
-rw-r--r--sysdeps/wordsize-32/Dist1
-rw-r--r--sysdeps/wordsize-32/Makefile3
-rw-r--r--sysdeps/wordsize-64/Dist1
-rw-r--r--sysdeps/wordsize-64/Makefile3
26 files changed, 195 insertions, 55 deletions
diff --git a/sysdeps/i386/add_n.S b/sysdeps/i386/add_n.S
index a68fe2ed39..55c5dda446 100644
--- a/sysdeps/i386/add_n.S
+++ b/sysdeps/i386/add_n.S
@@ -32,6 +32,7 @@
.text
ALIGN (3)
.globl C_SYMBOL_NAME(__mpn_add_n)
+ ASM_TYPE_DIRECTIVE(C_SYMBOL_NAME(__mpn_add_n),@function)
C_SYMBOL_NAME(__mpn_add_n:)
pushl %edi
pushl %esi
@@ -102,3 +103,5 @@ L(oop): movl (%esi),%eax
popl %esi
popl %edi
ret
+
+ ASM_SIZE_DIRECTIVE(C_SYMBOL_NAME(__mpn_add_n)) \ No newline at end of file
diff --git a/sysdeps/i386/addmul_1.S b/sysdeps/i386/addmul_1.S
index 3e2c5cd616..8194ec495e 100644
--- a/sysdeps/i386/addmul_1.S
+++ b/sysdeps/i386/addmul_1.S
@@ -37,6 +37,7 @@
TEXT
ALIGN (3)
GLOBL C_SYMBOL_NAME(__mpn_addmul_1)
+ ASM_TYPE_DIRECTIVE(C_SYMBOL_NAME(__mpn_addmul_1),@function)
C_SYMBOL_NAME(__mpn_addmul_1:)
INSN1(push,l ,R(edi))
@@ -72,3 +73,5 @@ L(oop):
INSN1(pop,l ,R(esi))
INSN1(pop,l ,R(edi))
ret
+
+ ASM_SIZE_DIRECTIVE(C_SYMBOL_NAME(__mpn_addmul_1))
diff --git a/sysdeps/i386/dl-machine.h b/sysdeps/i386/dl-machine.h
index 3e0f9b126c..6efa32bcd1 100644
--- a/sysdeps/i386/dl-machine.h
+++ b/sysdeps/i386/dl-machine.h
@@ -253,7 +253,7 @@ elf_machine_rel (struct link_map *map, const Elf32_Rel *reloc,
#endif
*reloc_addr += map->l_addr;
}
- else
+ else if (ELF32_R_TYPE (reloc->r_info) != R_386_NONE)
{
const Elf32_Sym *const refsym = sym;
Elf32_Addr value = RESOLVE (&sym, version, ELF32_R_TYPE (reloc->r_info));
@@ -305,8 +305,6 @@ elf_machine_rel (struct link_map *map, const Elf32_Rel *reloc,
case R_386_PC32:
*reloc_addr += (value - (Elf32_Addr) reloc_addr);
break;
- case R_386_NONE: /* Alright, Wilbur. */
- break;
default:
assert (! "unexpected dynamic reloc type");
break;
diff --git a/sysdeps/i386/fpu/__math.h b/sysdeps/i386/fpu/__math.h
index d5945e8ca2..9e1c23cec0 100644
--- a/sysdeps/i386/fpu/__math.h
+++ b/sysdeps/i386/fpu/__math.h
@@ -382,13 +382,17 @@ hypot (double __x, double __y)
return sqrt (__x * __x + __y * __y);
}
+/* We cannot rely on M_SQRT being defined. So we do it for ourself
+ here. */
+#define __M_SQRT2 _Mldbl(1.41421356237309504880) /* sqrt(2) */
+
__MATH_INLINE double log1p (double __x);
__MATH_INLINE double
log1p (double __x)
{
register double __value;
- if (fabs (__x) >= 1.0 - 0.5 * M_SQRT2)
+ if (fabs (__x) >= 1.0 - 0.5 * __M_SQRT2)
__value = log (1.0 + __x);
else
__asm __volatile__
diff --git a/sysdeps/i386/lshift.S b/sysdeps/i386/lshift.S
index cd6d95b62e..2f629b0303 100644
--- a/sysdeps/i386/lshift.S
+++ b/sysdeps/i386/lshift.S
@@ -31,6 +31,7 @@
.text
ALIGN (3)
.globl C_SYMBOL_NAME(__mpn_lshift)
+ ASM_TYPE_DIRECTIVE(C_SYMBOL_NAME(__mpn_lshift),@function)
C_SYMBOL_NAME(__mpn_lshift:)
pushl %edi
pushl %esi
@@ -81,3 +82,5 @@ L(end): shll %cl,%ebx /* compute least significant limb */
popl %esi
popl %edi
ret
+
+ ASM_SIZE_DIRECTIVE(C_SYMBOL_NAME(__mpn_lshift)) \ No newline at end of file
diff --git a/sysdeps/i386/rshift.S b/sysdeps/i386/rshift.S
index f00f9d59f2..a0382672de 100644
--- a/sysdeps/i386/rshift.S
+++ b/sysdeps/i386/rshift.S
@@ -31,6 +31,7 @@
.text
ALIGN (3)
.globl C_SYMBOL_NAME(__mpn_rshift)
+ ASM_TYPE_DIRECTIVE(C_SYMBOL_NAME(__mpn_rshift),@function)
C_SYMBOL_NAME(__mpn_rshift:)
pushl %edi
pushl %esi
@@ -83,3 +84,5 @@ L(end): shrl %cl,%ebx /* compute most significant limb */
popl %esi
popl %edi
ret
+
+ ASM_SIZE_DIRECTIVE(C_SYMBOL_NAME(__mpn_rshift)) \ No newline at end of file
diff --git a/sysdeps/i386/sub_n.S b/sysdeps/i386/sub_n.S
index 229734c2e9..c41c9a6408 100644
--- a/sysdeps/i386/sub_n.S
+++ b/sysdeps/i386/sub_n.S
@@ -32,6 +32,7 @@
.text
ALIGN (3)
.globl C_SYMBOL_NAME(__mpn_sub_n)
+ ASM_TYPE_DIRECTIVE(C_SYMBOL_NAME(__mpn_sub_n),@function)
C_SYMBOL_NAME(__mpn_sub_n:)
pushl %edi
pushl %esi
@@ -102,3 +103,5 @@ L(oop): movl (%esi),%eax
popl %esi
popl %edi
ret
+
+ ASM_SIZE_DIRECTIVE(C_SYMBOL_NAME(__mpn_sub_n)) \ No newline at end of file
diff --git a/sysdeps/i386/submul_1.S b/sysdeps/i386/submul_1.S
index 8efef7609f..6bba494417 100644
--- a/sysdeps/i386/submul_1.S
+++ b/sysdeps/i386/submul_1.S
@@ -37,6 +37,7 @@
TEXT
ALIGN (3)
GLOBL C_SYMBOL_NAME(__mpn_submul_1)
+ ASM_TYPE_DIRECTIVE(C_SYMBOL_NAME(__mpn_submul_1),@function)
C_SYMBOL_NAME(__mpn_submul_1:)
INSN1(push,l ,R(edi))
@@ -72,3 +73,5 @@ L(oop):
INSN1(pop,l ,R(esi))
INSN1(pop,l ,R(edi))
ret
+
+ ASM_SIZE_DIRECTIVE(C_SYMBOL_NAME(__mpn_addmul_1))
diff --git a/sysdeps/libm-ieee754/s_fmin.c b/sysdeps/libm-ieee754/s_fmin.c
index f9a937c850..b79e6eca5a 100644
--- a/sysdeps/libm-ieee754/s_fmin.c
+++ b/sysdeps/libm-ieee754/s_fmin.c
@@ -28,6 +28,6 @@ __fmin (double x, double y)
}
weak_alias (__fmin, fmin)
#ifdef NO_LONG_DOUBLE
-strong_alias (__fmim, __fminl)
+strong_alias (__fmin, __fminl)
weak_alias (__fmin, fminl)
#endif
diff --git a/sysdeps/powerpc/fenvbits.h b/sysdeps/powerpc/fenvbits.h
index 867ea5f5b4..8acd0ab8a4 100644
--- a/sysdeps/powerpc/fenvbits.h
+++ b/sysdeps/powerpc/fenvbits.h
@@ -85,7 +85,7 @@ enum
FE_INVALID_INTEGER_CONVERSION = 1 << 31-23,
#define FE_INVALID_INTEGER_CONVERSION FE_INVALID_INTEGER_CONVERSION
-#define __FE_ALL_INVALID \
+#define FE_ALL_INVALID \
(FE_INVALID_SNAN | FE_INVALID_ISI | FE_INVALID_IDI | FE_INVALID_ZDZ \
| FE_INVALID_IMZ | FE_INVALID_COMPARE | FE_INVALID_SOFTWARE \
| FE_INVALID_SQRT | FE_INVALID_INTEGER_CONVERSION)
diff --git a/sysdeps/powerpc/fraiseexcpt.c b/sysdeps/powerpc/fraiseexcpt.c
index aa8f1fcdc6..4305c3dcd2 100644
--- a/sysdeps/powerpc/fraiseexcpt.c
+++ b/sysdeps/powerpc/fraiseexcpt.c
@@ -34,9 +34,9 @@ feraiseexcept (int excepts)
/* Add the exceptions */
u.l[1] = (u.l[1]
- | excepts & __FPSCR_STICKY_BITS
+ | excepts & FPSCR_STICKY_BITS
/* Turn FE_INVALID into FE_INVALID_SOFTWARE. */
- | excepts << (31 - 21) - (31 - 24) & __FE_INVALID_SOFTWARE);
+ | excepts << (31 - 21) - (31 - 24) & FE_INVALID_SOFTWARE);
/* Store the new status word (along with the rest of the environment),
triggering any appropriate exceptions. */
diff --git a/sysdeps/powerpc/strlen.s b/sysdeps/powerpc/strlen.s
index fa1c670912..9d671cabc3 100644
--- a/sysdeps/powerpc/strlen.s
+++ b/sysdeps/powerpc/strlen.s
@@ -100,8 +100,8 @@ strlen:
bne done0
# Handle second word of pair. Put addi between branches to avoid hurting
# branch prediction.
- addi %r6,%r6,0xfffffeff
-
+ addi %r6,%r6,-0x101
+
bne %cr1,loop
lwzu %r8,4(%r4)
and %r0,%r7,%r8
@@ -111,7 +111,7 @@ strlen:
bne done0
# The loop.
-
+
loop: lwz %r8,4(%r4)
lwzu %r9,8(%r4)
add %r0,%r6,%r8
@@ -127,12 +127,12 @@ loop: lwz %r8,4(%r4)
add %r0,%r0,%r7
andc %r8,%r12,%r0
b done0
-
+
done1: and %r0,%r7,%r8
subi %r4,%r4,4
add %r0,%r0,%r7
andc %r8,%r10,%r0
-
+
# When we get to here, r4 points to the first word in the string that
# contains a zero byte, and the most significant set bit in r8 is in that
# byte.
diff --git a/sysdeps/unix/arm/brk.S b/sysdeps/unix/arm/brk.S
new file mode 100644
index 0000000000..a801674283
--- /dev/null
+++ b/sysdeps/unix/arm/brk.S
@@ -0,0 +1,43 @@
+/* Copyright (C) 1991, 1992, 1993, 1995 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., 675 Mass Ave,
+Cambridge, MA 02139, USA. */
+
+#include <sysdep.h>
+
+#ifndef SYS_brk
+#define SYS_brk 17
+#endif
+
+.data
+.globl C_SYMBOL_NAME(__curbrk)
+C_LABEL(__curbrk)
+#ifdef HAVE_GNU_LD
+ .long C_SYMBOL_NAME(_end)
+#else
+ .long C_SYMBOL_NAME(end)
+#endif
+
+.text
+SYSCALL__ (brk, 1)
+ ldr r1, _cb_addr
+ str r0, [r1]
+ mov r0, $0
+ RETINSTR(mov, pc, r14)
+_cb_addr: .long C_SYMBOL_NAME(__curbrk)
+
+
+weak_alias (__brk, brk)
diff --git a/sysdeps/unix/arm/sysdep.S b/sysdeps/unix/arm/sysdep.S
new file mode 100644
index 0000000000..5d3ad551c6
--- /dev/null
+++ b/sysdeps/unix/arm/sysdep.S
@@ -0,0 +1,49 @@
+/* Copyright (C) 1991, 92, 93, 94, 95, 96, 97 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 <sysdep.h>
+#define _ERRNO_H
+#include <errnos.h>
+
+.globl C_SYMBOL_NAME(errno)
+.globl syscall_error
+
+_errno_loc: .long C_SYMBOL_NAME(errno)
+
+#undef syscall_error
+#ifdef NO_UNDERSCORES
+__syscall_error:
+#else
+syscall_error:
+#endif
+#if defined (EWOULDBLOCK_sys) && EWOULDBLOCK_sys != EAGAIN
+ /* We translate the system's EWOULDBLOCK error into EAGAIN.
+ The GNU C library always defines EWOULDBLOCK==EAGAIN.
+ EWOULDBLOCK_sys is the original number. */
+ cmp r0, $EWOULDBLOCK_sys /* Is it the old EWOULDBLOCK? */
+ moveq r0, $EAGAIN /* Yes; translate it to EAGAIN. */
+#endif
+#ifndef PIC
+ ldr r1, _errno_loc
+ str r0, [r1]
+#endif
+ mvn r0, $0
+ RETINSTR(mov, pc, r14)
+
+#undef __syscall_error
+END (__syscall_error)
diff --git a/sysdeps/unix/sysv/linux/Dist b/sysdeps/unix/sysv/linux/Dist
index d4b6bac217..fc403871f3 100644
--- a/sysdeps/unix/sysv/linux/Dist
+++ b/sysdeps/unix/sysv/linux/Dist
@@ -13,8 +13,7 @@ net/if_ppp.h
net/ppp-comp.h
net/ppp_defs.h
net/route.h
-netatalk/atalk.h
-netinet/icmp.h
+netatalk/at.h
netinet/if_fddi.h
netinet/if_tr.h
netinet/igmp.h
diff --git a/sysdeps/unix/sysv/linux/Makefile b/sysdeps/unix/sysv/linux/Makefile
index 4e698ce1d8..c61904a3b8 100644
--- a/sysdeps/unix/sysv/linux/Makefile
+++ b/sysdeps/unix/sysv/linux/Makefile
@@ -55,7 +55,8 @@ endif
ifeq ($(subdir),inet)
sysdep_headers += netinet/in_systm.h netinet/udp.h \
netinet/if_fddi.h netinet/if_tr.h netinet/igmp.h \
- netinet/ip_fw.h netinet/ip_icmp.h sys/socketvar.h
+ netinet/ip_fw.h netinet/ip_icmp.h netipx/ipx.h \
+ sys/socketvar.h
endif
# Don't compile the ctype glue code, since there is no old non-GNU C library.
diff --git a/sysdeps/unix/sysv/linux/arm/sysdep.S b/sysdeps/unix/sysv/linux/arm/sysdep.S
new file mode 100644
index 0000000000..a71181c911
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/arm/sysdep.S
@@ -0,0 +1,51 @@
+/* Copyright (C) 1995, 1996, 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 <sysdep.h>
+
+/* We define errno here, to be consistent with Linux/i386. */
+ .bss
+ .globl errno
+ .type errno,@object
+ .size errno,4
+errno: .zero 4
+ .globl _errno
+ .type _errno,@object
+_errno = errno /* This name is expected by hj's libc.so.5 startup code. */
+ .text
+
+/* The following code is only used in the shared library when we
+ compile the reentrant version. Otherwise each system call defines
+ each own version. */
+
+#ifndef PIC
+
+/* The syscall stubs jump here when they detect an error.
+ The code for Linux is almost identical to the canonical Unix/i386
+ code, except that the error number in %eax is negated. */
+
+#undef CALL_MCOUNT
+#define CALL_MCOUNT /* Don't insert the profiling call, it clobbers %eax. */
+
+ENTRY (__syscall_error)
+ mvn r0, r0
+
+#define __syscall_error __syscall_error_1
+#include <sysdeps/unix/arm/sysdep.S>
+
+#endif /* !PIC */
diff --git a/sysdeps/unix/sysv/linux/i386/sysdep.h b/sysdeps/unix/sysv/linux/i386/sysdep.h
index a38e4b3531..66fbeca73e 100644
--- a/sysdeps/unix/sysv/linux/i386/sysdep.h
+++ b/sysdeps/unix/sysv/linux/i386/sysdep.h
@@ -62,6 +62,7 @@
/* Store (- %eax) into errno through the GOT. */
#ifdef _LIBC_REENTRANT
#define SYSCALL_ERROR_HANDLER \
+ .type syscall_error,@function; \
syscall_error: \
pushl %ebx; \
call 0f; \
@@ -77,11 +78,13 @@ syscall_error: \
popl %ebx; \
movl %ecx, (%eax); \
movl $-1, %eax; \
- ret;
+ ret; \
+ .size syscall_error,.-syscall_error;
/* A quick note: it is assumed that the call to `__errno_location' does
not modify the stack! */
#else
#define SYSCALL_ERROR_HANDLER \
+ .type syscall_error,@function; \
syscall_error: \
call 0f; \
0:popl %ecx; \
@@ -91,7 +94,8 @@ syscall_error: \
movl errno@GOT(%ecx), %ecx; \
movl %edx, (%ecx); \
movl $-1, %eax; \
- ret;
+ ret; \
+ .size syscall_error,.-syscall_error;
#endif /* _LIBC_REENTRANT */
#endif /* PIC */
diff --git a/sysdeps/unix/sysv/linux/net/if_arp.h b/sysdeps/unix/sysv/linux/net/if_arp.h
index b1cd18360e..d784f0cfc7 100644
--- a/sysdeps/unix/sysv/linux/net/if_arp.h
+++ b/sysdeps/unix/sysv/linux/net/if_arp.h
@@ -90,6 +90,8 @@ struct arphdr
#define ARPHRD_ROSE 270
#define ARPHRD_X25 271 /* CCITT X.25. */
#define ARPHRD_PPP 512
+#define ARPHRD_HDLC 513 /* (Cisco) HDLC. */
+#define ARPHRD_LAPB 516 /* LAPB. */
#define ARPHRD_TUNNEL 768 /* IPIP tunnel. */
#define ARPHRD_TUNNEL6 769 /* IPIP6 tunnel. */
diff --git a/sysdeps/unix/sysv/linux/powerpc/Dist b/sysdeps/unix/sysv/linux/powerpc/Dist
index c8c265c474..27a951f169 100644
--- a/sysdeps/unix/sysv/linux/powerpc/Dist
+++ b/sysdeps/unix/sysv/linux/powerpc/Dist
@@ -1,7 +1,6 @@
clone.S
ioctl-types.h
termbits.h
-termios.h
kernel_stat.h
kernel_termios.h
sys/kernel_termios.h
diff --git a/sysdeps/unix/sysv/linux/powerpc/dl-sysdep.c b/sysdeps/unix/sysv/linux/powerpc/dl-sysdep.c
index 1c79f6a93c..7280315933 100644
--- a/sysdeps/unix/sysv/linux/powerpc/dl-sysdep.c
+++ b/sysdeps/unix/sysv/linux/powerpc/dl-sysdep.c
@@ -149,38 +149,3 @@ _dl_sysdep_open_zero_fill (void)
return __open ("/dev/zero", O_RDONLY);
}
#endif
-
-/* Read the whole contents of FILE into new mmap'd space with given
- protections. *SIZEP gets the size of the file. */
-
-void *
-_dl_sysdep_read_whole_file (const char *file, size_t *sizep, int prot)
-{
- void *result;
- struct stat st;
- int fd = __open (file, O_RDONLY);
- if (fd < 0)
- return NULL;
- if (__fstat (fd, &st) < 0)
- result = NULL;
- else
- {
- /* Map a copy of the file contents. */
- result = __mmap (0, st.st_size, prot,
-#ifdef MAP_COPY
- MAP_COPY
-#else
- MAP_PRIVATE
-#endif
-#ifdef MAP_FILE
- | MAP_FILE
-#endif
- , fd, 0);
- if (result == (void *) -1)
- result = NULL;
- else
- *sizep = st.st_size;
- }
- __close (fd);
- return result;
-}
diff --git a/sysdeps/unix/sysv/linux/sparc/Dist b/sysdeps/unix/sysv/linux/sparc/Dist
index ab22392c04..c31f140137 100644
--- a/sysdeps/unix/sysv/linux/sparc/Dist
+++ b/sysdeps/unix/sysv/linux/sparc/Dist
@@ -1,6 +1,5 @@
__sigtrampoline.S
clone.S
-start.c
pipe.S
fork.S
kernel_stat.h
diff --git a/sysdeps/wordsize-32/Dist b/sysdeps/wordsize-32/Dist
new file mode 100644
index 0000000000..625e4d0fc7
--- /dev/null
+++ b/sysdeps/wordsize-32/Dist
@@ -0,0 +1 @@
+inttypes.h \ No newline at end of file
diff --git a/sysdeps/wordsize-32/Makefile b/sysdeps/wordsize-32/Makefile
new file mode 100644
index 0000000000..73b64ed054
--- /dev/null
+++ b/sysdeps/wordsize-32/Makefile
@@ -0,0 +1,3 @@
+ifeq ($(subdir),stdlib)
+sysdep_headers += inttypes.h
+endif \ No newline at end of file
diff --git a/sysdeps/wordsize-64/Dist b/sysdeps/wordsize-64/Dist
new file mode 100644
index 0000000000..625e4d0fc7
--- /dev/null
+++ b/sysdeps/wordsize-64/Dist
@@ -0,0 +1 @@
+inttypes.h \ No newline at end of file
diff --git a/sysdeps/wordsize-64/Makefile b/sysdeps/wordsize-64/Makefile
new file mode 100644
index 0000000000..73b64ed054
--- /dev/null
+++ b/sysdeps/wordsize-64/Makefile
@@ -0,0 +1,3 @@
+ifeq ($(subdir),stdlib)
+sysdep_headers += inttypes.h
+endif \ No newline at end of file