aboutsummaryrefslogtreecommitdiff
path: root/sysdeps
diff options
context:
space:
mode:
Diffstat (limited to 'sysdeps')
-rw-r--r--sysdeps/generic/strtol.c3
-rw-r--r--sysdeps/ia64/elf/initfini.c156
-rw-r--r--sysdeps/ia64/hp-timing.h3
-rw-r--r--sysdeps/unix/sysv/linux/i386/sysdep.S9
-rw-r--r--sysdeps/unix/sysv/linux/ia64/Makefile4
-rw-r--r--sysdeps/unix/sysv/linux/ia64/sys/user.h54
-rw-r--r--sysdeps/unix/sysv/linux/m68k/sysdep.S11
-rw-r--r--sysdeps/unix/sysv/linux/mips/sysdep.S11
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-32/sysdep.S11
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-64/sysdep.S14
-rw-r--r--sysdeps/unix/sysv/linux/x86_64/sysdep.S11
11 files changed, 170 insertions, 117 deletions
diff --git a/sysdeps/generic/strtol.c b/sysdeps/generic/strtol.c
index 7e174d488b..28806083cf 100644
--- a/sysdeps/generic/strtol.c
+++ b/sysdeps/generic/strtol.c
@@ -188,7 +188,8 @@ extern int errno;
# define TOUPPER(Ch) towupper (Ch)
# endif
# else
-# if defined STDC_HEADERS || (!defined isascii && !defined HAVE_ISASCII)
+# if defined _LIBC \
+ || defined STDC_HEADERS || (!defined isascii && !defined HAVE_ISASCII)
# define IN_CTYPE_DOMAIN(c) 1
# else
# define IN_CTYPE_DOMAIN(c) isascii(c)
diff --git a/sysdeps/ia64/elf/initfini.c b/sysdeps/ia64/elf/initfini.c
index e4d6df7613..2e3234a2aa 100644
--- a/sysdeps/ia64/elf/initfini.c
+++ b/sysdeps/ia64/elf/initfini.c
@@ -1,5 +1,5 @@
/* Special .init and .fini section support for ia64.
- Copyright (C) 2000 Free Software Foundation, Inc.
+ Copyright (C) 2000, 2002 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
@@ -27,81 +27,81 @@
* crtn.s puts the corresponding function epilogues
in the .init and .fini sections. */
-__asm__ ("
-
-#include \"defs.h\"
-
-/*@HEADER_ENDS*/
-
-/*@_init_PROLOG_BEGINS*/
- .section .init
- .align 16
- .global _init#
- .proc _init#
-_init:
- alloc r34 = ar.pfs, 0, 3, 0, 0
- mov r32 = r12
- mov r33 = b0
- adds r12 = -16, r12
- addl r14 = @ltoff(@fptr(__gmon_start__#)), gp
- ;;
- ld8 r15 = [r14]
- ;;
- cmp.eq p6, p7 = 0, r15
- (p6) br.cond.dptk .L5
-
-/* we could use r35 to save gp, but we use the stack since that's what
- * all the other init routines will do --davidm 00/04/05 */
- st8 [r12] = gp, -16
- br.call.sptk.many b0 = __gmon_start__# ;;
- adds r12 = 16, r12
- ;;
- ld8 gp = [r12]
- ;;
-.L5:
- .align 16
- .endp _init#
-
-/*@_init_PROLOG_ENDS*/
-
-/*@_init_EPILOG_BEGINS*/
- .section .init
- .regstk 0,2,0,0
- mov r12 = r32
- mov ar.pfs = r34
- mov b0 = r33
- br.ret.sptk.many b0
- .endp _init#
-/*@_init_EPILOG_ENDS*/
-
-/*@_fini_PROLOG_BEGINS*/
- .section .fini
- .align 16
- .global _fini#
- .proc _fini#
-_fini:
- alloc r34 = ar.pfs, 0, 3, 0, 0
- mov r32 = r12
- mov r33 = b0
- adds r12 = -16, r12
- ;;
- .align 16
- .endp _fini#
-
-/*@_fini_PROLOG_ENDS*/
- br.call.sptk.many b0 = i_am_not_a_leaf# ;;
- ;;
-
-/*@_fini_EPILOG_BEGINS*/
- .section .fini
- mov r12 = r32
- mov ar.pfs = r34
- mov b0 = r33
- br.ret.sptk.many b0
- .endp _fini#
-
-/*@_fini_EPILOG_ENDS*/
-
-/*@TRAILER_BEGINS*/
- .weak __gmon_start__#
+__asm__ ("\n\
+\n\
+#include \"defs.h\"\n\
+\n\
+/*@HEADER_ENDS*/\n\
+\n\
+/*@_init_PROLOG_BEGINS*/\n\
+ .section .init\n\
+ .align 16\n\
+ .global _init#\n\
+ .proc _init#\n\
+_init:\n\
+ alloc r34 = ar.pfs, 0, 3, 0, 0\n\
+ mov r32 = r12\n\
+ mov r33 = b0\n\
+ adds r12 = -16, r12\n\
+ addl r14 = @ltoff(@fptr(__gmon_start__#)), gp\n\
+ ;;\n\
+ ld8 r15 = [r14]\n\
+ ;;\n\
+ cmp.eq p6, p7 = 0, r15\n\
+ (p6) br.cond.dptk .L5\n\
+\n\
+/* we could use r35 to save gp, but we use the stack since that's what\n\
+ * all the other init routines will do --davidm 00/04/05 */\n\
+ st8 [r12] = gp, -16\n\
+ br.call.sptk.many b0 = __gmon_start__# ;;\n\
+ adds r12 = 16, r12\n\
+ ;;\n\
+ ld8 gp = [r12]\n\
+ ;;\n\
+.L5:\n\
+ .align 16\n\
+ .endp _init#\n\
+\n\
+/*@_init_PROLOG_ENDS*/\n\
+\n\
+/*@_init_EPILOG_BEGINS*/\n\
+ .section .init\n\
+ .regstk 0,2,0,0\n\
+ mov r12 = r32\n\
+ mov ar.pfs = r34\n\
+ mov b0 = r33\n\
+ br.ret.sptk.many b0\n\
+ .endp _init#\n\
+/*@_init_EPILOG_ENDS*/\n\
+\n\
+/*@_fini_PROLOG_BEGINS*/\n\
+ .section .fini\n\
+ .align 16\n\
+ .global _fini#\n\
+ .proc _fini#\n\
+_fini:\n\
+ alloc r34 = ar.pfs, 0, 3, 0, 0\n\
+ mov r32 = r12\n\
+ mov r33 = b0\n\
+ adds r12 = -16, r12\n\
+ ;;\n\
+ .align 16\n\
+ .endp _fini#\n\
+\n\
+/*@_fini_PROLOG_ENDS*/\n\
+ br.call.sptk.many b0 = i_am_not_a_leaf# ;;\n\
+ ;;\n\
+\n\
+/*@_fini_EPILOG_BEGINS*/\n\
+ .section .fini\n\
+ mov r12 = r32\n\
+ mov ar.pfs = r34\n\
+ mov b0 = r33\n\
+ br.ret.sptk.many b0\n\
+ .endp _fini#\n\
+\n\
+/*@_fini_EPILOG_ENDS*/\n\
+\n\
+/*@TRAILER_BEGINS*/\n\
+ .weak __gmon_start__#\n\
");
diff --git a/sysdeps/ia64/hp-timing.h b/sysdeps/ia64/hp-timing.h
index 3b6c07f451..fd920c348d 100644
--- a/sysdeps/ia64/hp-timing.h
+++ b/sysdeps/ia64/hp-timing.h
@@ -141,7 +141,8 @@ typedef unsigned long int hp_timing_t;
char *__dest = (Buf); \
while (__len-- > 0 && __cp < __buf + sizeof (__buf)) \
*__dest++ = *__cp++; \
- memcpy (__dest, " clock cycles", MIN (__len, sizeof (" clock cycles"))); \
+ memcpy (__dest, " clock cycles", MIN (__len, \
+ (int) sizeof (" clock cycles"))); \
} while (0)
#endif /* hp-timing.h */
diff --git a/sysdeps/unix/sysv/linux/i386/sysdep.S b/sysdeps/unix/sysv/linux/i386/sysdep.S
index 09428987ec..9546bb3c64 100644
--- a/sysdeps/unix/sysv/linux/i386/sysdep.S
+++ b/sysdeps/unix/sysv/linux/i386/sysdep.S
@@ -19,11 +19,10 @@
#include <sysdep.h>
#include <tls.h>
-/* Because the Linux version is in fact i386/ELF and the start.? file
- for this system (sysdeps/i386/elf/start.S) is also used by The Hurd
- and therefore this files must not contain the definition of the
- `errno' variable (I don't know why, ask Roland), we have to define
- it somewhere else.
+/* The Linux version is in fact i386/ELF and the start.? file for this
+ system (sysdeps/i386/elf/start.S) is also used by The Hurd. This file
+ must not contain the definition of the `errno' variable, we have to
+ define it somewhere else.
...and this place is here. */
#if USE_TLS && HAVE___THREAD
diff --git a/sysdeps/unix/sysv/linux/ia64/Makefile b/sysdeps/unix/sysv/linux/ia64/Makefile
index e028a2d618..4c1e6f2059 100644
--- a/sysdeps/unix/sysv/linux/ia64/Makefile
+++ b/sysdeps/unix/sysv/linux/ia64/Makefile
@@ -16,3 +16,7 @@ sysdep-dl-routines += dl-static
sysdep_routines += $(sysdep-dl-routines)
sysdep-rtld-routines += $(sysdep-dl-routines)
endif
+
+# This is a crude attempt to silence the compiler which complains about
+# then 'current' definition in the kernel headers.
+CPPFLAGS += -D_ASM_IA64_CURRENT_H
diff --git a/sysdeps/unix/sysv/linux/ia64/sys/user.h b/sysdeps/unix/sysv/linux/ia64/sys/user.h
new file mode 100644
index 0000000000..039218761b
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/ia64/sys/user.h
@@ -0,0 +1,54 @@
+/* Copyright (C) 2002 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 Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 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
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, write to the Free
+ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+ 02111-1307 USA. */
+
+#ifndef _SYS_USER_H
+#define _SYS_USER_H 1
+
+#include <features.h>
+#include <sys/types.h>
+
+/* This definition comes directly from the kernel headers. If
+ anything changes in them this header has to be changed, too. */
+
+
+/* The definition in the kernel has the comment "XXX fix me". */
+#define EF_SIZE 3072
+
+
+struct user
+{
+ unsigned long int regs[EF_SIZE / 8 + 32]; /* Integer and fp regs. */
+ size_t u_tsize; /* Text size (pages). */
+ size_t u_dsize; /* Data size (pages). */
+ size_t u_ssize; /* Stack size (pages). */
+ unsigned long int start_code; /* Text starting address. */
+ unsigned long int start_data; /* Data starting address. */
+ unsigned long int start_stack; /* Stack starting address. */
+ long int signal; /* Signal causing core dump. */
+ struct regs *u_ar0; /* Help gdb find registers. */
+ unsigned long int magic; /* Identifies a core file. */
+ char u_comm[32]; /* User command name. */
+};
+
+#define NBPG PAGE_SIZE
+#define UPAGES 1
+#define HOST_TEXT_START_ADDR (u.start_code)
+#define HOST_DATA_START_ADDR (u.start_data)
+#define HOST_STACK_END_ADDR (u.start_stack + u.u_ssize * NBPG)
+
+#endif /* sys/user.h */
diff --git a/sysdeps/unix/sysv/linux/m68k/sysdep.S b/sysdeps/unix/sysv/linux/m68k/sysdep.S
index 30beaf233f..628335b8d0 100644
--- a/sysdeps/unix/sysv/linux/m68k/sysdep.S
+++ b/sysdeps/unix/sysv/linux/m68k/sysdep.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996 Free Software Foundation, Inc.
+/* Copyright (C) 1996, 2002 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
@@ -18,11 +18,10 @@
#include <sysdep.h>
-/* Because the Linux version is in fact m68k/ELF and the start.? file
- for this system (sysdeps/m68k/elf/start.S) is also used by The Hurd
- and therefore this files must not contain the definition of the
- `errno' variable (I don't know why, ask Roland), we have to define
- it somewhere else.
+/* The Linux version is in fact m68k/ELF and the start.? file for this
+ system (sysdeps/m68k/elf/start.S) is also used by The Hurd. This file
+ must not contain the definition of the `errno' variable, we have to
+ define it somewhere else.
...and this place is here. */
.bss
diff --git a/sysdeps/unix/sysv/linux/mips/sysdep.S b/sysdeps/unix/sysv/linux/mips/sysdep.S
index d051c4fe6e..2584982bb0 100644
--- a/sysdeps/unix/sysv/linux/mips/sysdep.S
+++ b/sysdeps/unix/sysv/linux/mips/sysdep.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 1998 Free Software Foundation, Inc.
+/* Copyright (C) 1998, 2002 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
@@ -18,11 +18,10 @@
#include <sysdep.h>
-/* Because the Linux version is in fact MIPS/ELF and the start.? file
- for this system (sysdeps/mips/elf/start.S) is also used by The Hurd
- and therefore this files must not contain the definition of the
- `errno' variable (I don't know why, ask Roland), we have to define
- it somewhere else.
+/* The Linux version is in fact MIPS/ELF and the start.? file for this
+ system (sysdeps/mips/elf/start.S) is also used by The Hurd. This file
+ must not contain the definition of the `errno' variable, we have to
+ define it somewhere else.
...and this place is here. */
.bss
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/sysdep.S b/sysdeps/unix/sysv/linux/s390/s390-32/sysdep.S
index bb90491cba..5b17f6ba4b 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/sysdep.S
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/sysdep.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000, 2001 Free Software Foundation, Inc.
+/* Copyright (C) 2000, 2001, 2002 Free Software Foundation, Inc.
Contributed by Martin Schwidefsky (schwidefsky@de.ibm.com).
This file is part of the GNU C Library.
@@ -19,11 +19,10 @@
#include <sysdep.h>
-/* Because the Linux version is in fact m68k/ELF and the start.? file
- for this system (sysdeps/m68k/elf/start.S) is also used by The Hurd
- and therefore this files must not contain the definition of the
- `errno' variable (I don't know why, ask Roland), we have to define
- it somewhere else.
+/* The Linux version is in fact S390-32/ELF and the start.? file for this
+ system (sysdeps/s390/s390-32/elf/start.S) is also used by The Hurd.
+ This file must not contain the definition of the `errno' variable,
+ we have to define it somewhere else.
...and this place is here. */
.bss
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/sysdep.S b/sysdeps/unix/sysv/linux/s390/s390-64/sysdep.S
index 2d49d36d8b..caa50ccc3d 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-64/sysdep.S
+++ b/sysdeps/unix/sysv/linux/s390/s390-64/sysdep.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001 Free Software Foundation, Inc.
+/* Copyright (C) 2001, 2002 Free Software Foundation, Inc.
Contributed by Martin Schwidefsky (schwidefsky@de.ibm.com).
This file is part of the GNU C Library.
@@ -19,11 +19,10 @@
#include <sysdep.h>
-/* Because the Linux version is in fact m68k/ELF and the start.? file
- for this system (sysdeps/m68k/elf/start.S) is also used by The Hurd
- and therefore this files must not contain the definition of the
- `errno' variable (I don't know why, ask Roland), we have to define
- it somewhere else.
+/* The Linux version is in fact S390-64/ELF and the start.? file for this
+ system (sysdeps/s390/s390-64/elf/start.S) is also used by The Hurd.
+ This file must not contain the definition of the `errno' variable,
+ we have to define it somewhere else.
...and this place is here. */
.bss
@@ -81,10 +80,9 @@ ENTRY(__syscall_error)
brasl %r14,__errno_location@PLT
st %r13,0(%r2)
lmg %r13,%r15,264(%r15)
- lghi %r2,-1
+ lghi %r2,-1
br %r14
#endif
#endif
END (__syscall_error)
-
diff --git a/sysdeps/unix/sysv/linux/x86_64/sysdep.S b/sysdeps/unix/sysv/linux/x86_64/sysdep.S
index 7f041aa730..b8eccc8b9f 100644
--- a/sysdeps/unix/sysv/linux/x86_64/sysdep.S
+++ b/sysdeps/unix/sysv/linux/x86_64/sysdep.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001 Free Software Foundation, Inc.
+/* Copyright (C) 2001, 2002 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
@@ -18,11 +18,10 @@
#include <sysdep.h>
-/* Because the Linux version is in fact x86-64/ELF and the start.? file
- for this system (sysdeps/x86_64/elf/start.S) is also used by The Hurd
- and therefore this files must not contain the definition of the
- `errno' variable (I don't know why, ask Roland), we have to define
- it somewhere else.
+/* The Linux version is in fact x86-64/ELF and the start.? file for this
+ system (sysdeps/x86_64/elf/start.S) is also used by The Hurd. This file
+ must not contain the definition of the `errno' variable, we have to
+ define it somewhere else.
...and this place is here. */
.bss