about summary refs log tree commit diff
path: root/sysdeps
diff options
context:
space:
mode:
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