2005-12-16  Thorsten Kukuk  <kukuk@suse.de>
	[BZ #1978]
	* sysdeps/unix/sysv/linux/internal_statvfs.c (__statvfs_getflags):
	Map more filesystem types to a string.
	* sysdeps/unix/sysv/linux/linux_fsinfo.h: Add SYSFS_MAGIC.

2005-12-19  Jakub Jelinek  <jakub@redhat.com>

	* locale/Makefile (programs/%-kw.h): Run $(GPERF) inside of the
	programs subdirectory.

	* sysdeps/powerpc/powerpc32/__longjmp-common.S (__longjmp): Use
	PTR_DEMANGLE for PC if defined.
	* sysdeps/powerpc/powerpc64/__longjmp-common.S (__longjmp):
	Likewise.
	* sysdeps/unix/sysv/linux/ia64/__longjmp.S (__longjmp): Likewise.
	* sysdeps/s390/s390-32/__longjmp.c (__longjmp): Xor %r14 with
	THREAD_GET_POINTER_GUARD () if PTR_DEMANGLE is defined.
	* sysdeps/s390/s390-64/__longjmp.c (__longjmp): Likewise.
	* sysdeps/powerpc/powerpc32/setjmp-common.S (__sigsetjmp): Use
	PTR_MANGLE for PC if defined.
	* sysdeps/powerpc/powerpc64/setjmp-common.S (__sigsetjmp): Likewise.
	* sysdeps/s390/s390-32/setjmp.S (__sigsetjmp): Likewise.
	Avoid call to __sigjmp_save if IS_IN_rtld.
	* sysdeps/s390/s390-32/elf/setjmp.S (__sigsetjmp): Likewise.
	* sysdeps/s390/s390-64/setjmp.S (__sigsetjmp): Likewise.
	* sysdeps/s390/s390-64/elf/setjmp.S (__sigsetjmp): Likewise.
	* sysdeps/unix/sysv/linux/ia64/setjmp.S (__sigsetjmp): Likewise.
	* sysdeps/unix/sysv/linux/ia64/sysdep.h (PTR_MANGLE, PTR_DEMANGLE):
	Define.
	* sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep.h: Include tls.h.
	(PTR_MANGLE, PTR_DEMANGLE): Define.
	* sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep.h: Include tls.h
	(PTR_MANGLE, PTR_DEMANGLE): Define.
	* sysdeps/unix/sysv/linux/s390/s390-32/sysdep.h: Include tls.h.
	(PTR_MANGLE, PTR_DEMANGLE): Define.
	(SYSCALL_ERROR_HANDLER): Add missing semicolons.
	* sysdeps/unix/sysv/linux/s390/s390-64/sysdep.h: Include tls.h.
	(PTR_MANGLE, PTR_DEMANGLE): Define.
	* sysdeps/unix/sysv/linux/s390/s390-64/socket.S (__socket): Add
	SYSCALL_ERROR_HANDLER.

2005-12-19  Ulrich Drepper  <drepper@redhat.com>

	* sysdeps/unix/sysv/linux/sparc/sparc32/socket.S: Handle NO_WEAK_ALIAS.
	* sysdeps/unix/sysv/linux/sparc/sparc64/socket.S: Likewise.
	Patch by Clint Adams.

2005-12-16  Martin Schwidefsky  <schwidefsky@de.ibm.com>

	* sysdeps/unix/sysv/linux/s390/sys/user.h: Copy struct user and
	dependent definitions from the kernel header to sys/user.h and
	remove the #include of asm/user.h.
This commit is contained in:
Ulrich Drepper 2005-12-20 07:21:59 +00:00
parent fc3480d3ee
commit 00c2b3b91d
34 changed files with 663 additions and 255 deletions

View File

@ -1,3 +1,58 @@
2005-12-16 Thorsten Kukuk <kukuk@suse.de>
[BZ #1978]
* sysdeps/unix/sysv/linux/internal_statvfs.c (__statvfs_getflags):
Map more filesystem types to a string.
* sysdeps/unix/sysv/linux/linux_fsinfo.h: Add SYSFS_MAGIC.
2005-12-19 Jakub Jelinek <jakub@redhat.com>
* locale/Makefile (programs/%-kw.h): Run $(GPERF) inside of the
programs subdirectory.
* sysdeps/powerpc/powerpc32/__longjmp-common.S (__longjmp): Use
PTR_DEMANGLE for PC if defined.
* sysdeps/powerpc/powerpc64/__longjmp-common.S (__longjmp):
Likewise.
* sysdeps/unix/sysv/linux/ia64/__longjmp.S (__longjmp): Likewise.
* sysdeps/s390/s390-32/__longjmp.c (__longjmp): Xor %r14 with
THREAD_GET_POINTER_GUARD () if PTR_DEMANGLE is defined.
* sysdeps/s390/s390-64/__longjmp.c (__longjmp): Likewise.
* sysdeps/powerpc/powerpc32/setjmp-common.S (__sigsetjmp): Use
PTR_MANGLE for PC if defined.
* sysdeps/powerpc/powerpc64/setjmp-common.S (__sigsetjmp): Likewise.
* sysdeps/s390/s390-32/setjmp.S (__sigsetjmp): Likewise.
Avoid call to __sigjmp_save if IS_IN_rtld.
* sysdeps/s390/s390-32/elf/setjmp.S (__sigsetjmp): Likewise.
* sysdeps/s390/s390-64/setjmp.S (__sigsetjmp): Likewise.
* sysdeps/s390/s390-64/elf/setjmp.S (__sigsetjmp): Likewise.
* sysdeps/unix/sysv/linux/ia64/setjmp.S (__sigsetjmp): Likewise.
* sysdeps/unix/sysv/linux/ia64/sysdep.h (PTR_MANGLE, PTR_DEMANGLE):
Define.
* sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep.h: Include tls.h.
(PTR_MANGLE, PTR_DEMANGLE): Define.
* sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep.h: Include tls.h
(PTR_MANGLE, PTR_DEMANGLE): Define.
* sysdeps/unix/sysv/linux/s390/s390-32/sysdep.h: Include tls.h.
(PTR_MANGLE, PTR_DEMANGLE): Define.
(SYSCALL_ERROR_HANDLER): Add missing semicolons.
* sysdeps/unix/sysv/linux/s390/s390-64/sysdep.h: Include tls.h.
(PTR_MANGLE, PTR_DEMANGLE): Define.
* sysdeps/unix/sysv/linux/s390/s390-64/socket.S (__socket): Add
SYSCALL_ERROR_HANDLER.
2005-12-19 Ulrich Drepper <drepper@redhat.com>
* sysdeps/unix/sysv/linux/sparc/sparc32/socket.S: Handle NO_WEAK_ALIAS.
* sysdeps/unix/sysv/linux/sparc/sparc64/socket.S: Likewise.
Patch by Clint Adams.
2005-12-16 Martin Schwidefsky <schwidefsky@de.ibm.com>
* sysdeps/unix/sysv/linux/s390/sys/user.h: Copy struct user and
dependent definitions from the kernel header to sys/user.h and
remove the #include of asm/user.h.
2005-12-19 Ulrich Drepper <drepper@redhat.com>
* sysdeps/gnu/Makefile: Make sure the correct errlist.c file is

View File

@ -1,4 +1,4 @@
# Copyright (C) 1991,1992,1995-2002,2003 Free Software Foundation, Inc.
# Copyright (C) 1991,1992,1995-2003,2005 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
@ -72,7 +72,8 @@ GPERFFLAGS = -acCgopt -k1,2,5,9,$$ -L ANSI-C
include ../Rules
programs/%-kw.h: programs/%-kw.gperf
$(GPERF) $(GPERFFLAGS) -N $(@F:-kw.h=_hash) $< > $@.new
cd programs \
&& $(GPERF) $(GPERFFLAGS) -N $(@F:-kw.h=_hash) $(<F) > $(@F).new
mv -f $@.new $@
$(objpfx)localedef: $(localedef-modules:%=$(objpfx)%.o)

View File

@ -1,5 +1,5 @@
/* ANSI-C code produced by gperf version 3.0.1 */
/* Command-line: gperf -acCgopt -k'1,2,5,9,$' -L ANSI-C -N charmap_hash programs/charmap-kw.gperf */
/* Command-line: gperf -acCgopt -k'1,2,5,9,$' -L ANSI-C -N charmap_hash charmap-kw.gperf */
#if !((' ' == 32) && ('!' == 33) && ('"' == 34) && ('#' == 35) \
&& ('%' == 37) && ('&' == 38) && ('\'' == 39) && ('(' == 40) \
@ -28,7 +28,7 @@
#error "gperf generated tables don't work with this execution character set. Please report a bug to <bug-gnu-gperf@gnu.org>."
#endif
#line 1 "programs/charmap-kw.gperf"
#line 1 "charmap-kw.gperf"
/* Copyright (C) 1995,1996,1997,1998,1999,2005 Free Software Foundation, Inc.
This file is part of the GNU C Library.
@ -50,7 +50,7 @@
#include <string.h>
#include "locfile-token.h"
#line 23 "programs/charmap-kw.gperf"
#line 23 "charmap-kw.gperf"
struct keyword_t ;
#define TOTAL_KEYWORDS 17
@ -133,45 +133,45 @@ charmap_hash (register const char *str, register unsigned int len)
static const struct keyword_t wordlist[] =
{
{""}, {""}, {""},
#line 38 "programs/charmap-kw.gperf"
#line 38 "charmap-kw.gperf"
{"END", tok_end, 0},
{""},
#line 39 "programs/charmap-kw.gperf"
#line 39 "charmap-kw.gperf"
{"WIDTH", tok_width, 0},
#line 34 "programs/charmap-kw.gperf"
#line 34 "charmap-kw.gperf"
{"escseq", tok_escseq, 1},
#line 36 "programs/charmap-kw.gperf"
#line 36 "charmap-kw.gperf"
{"include", tok_include, 1},
{""}, {""},
#line 27 "programs/charmap-kw.gperf"
#line 27 "charmap-kw.gperf"
{"mb_cur_min", tok_mb_cur_min, 1},
#line 28 "programs/charmap-kw.gperf"
#line 28 "charmap-kw.gperf"
{"escape_char", tok_escape_char, 1},
#line 29 "programs/charmap-kw.gperf"
#line 29 "charmap-kw.gperf"
{"comment_char", tok_comment_char, 1},
#line 25 "programs/charmap-kw.gperf"
#line 25 "charmap-kw.gperf"
{"code_set_name", tok_code_set_name, 1},
#line 40 "programs/charmap-kw.gperf"
#line 40 "charmap-kw.gperf"
{"WIDTH_VARIABLE", tok_width_variable, 0},
#line 26 "programs/charmap-kw.gperf"
#line 26 "charmap-kw.gperf"
{"mb_cur_max", tok_mb_cur_max, 1},
#line 35 "programs/charmap-kw.gperf"
#line 35 "charmap-kw.gperf"
{"addset", tok_addset, 1},
#line 37 "programs/charmap-kw.gperf"
#line 37 "charmap-kw.gperf"
{"CHARMAP", tok_charmap, 0},
#line 41 "programs/charmap-kw.gperf"
#line 41 "charmap-kw.gperf"
{"WIDTH_DEFAULT", tok_width_default, 0},
{""},
#line 33 "programs/charmap-kw.gperf"
#line 33 "charmap-kw.gperf"
{"g3esc", tok_g3esc, 1},
{""}, {""}, {""}, {""},
#line 32 "programs/charmap-kw.gperf"
#line 32 "charmap-kw.gperf"
{"g2esc", tok_g2esc, 1},
{""}, {""}, {""}, {""},
#line 31 "programs/charmap-kw.gperf"
#line 31 "charmap-kw.gperf"
{"g1esc", tok_g1esc, 1},
{""}, {""}, {""}, {""},
#line 30 "programs/charmap-kw.gperf"
#line 30 "charmap-kw.gperf"
{"g0esc", tok_g0esc, 1}
};

View File

@ -1,5 +1,5 @@
/* ANSI-C code produced by gperf version 3.0.1 */
/* Command-line: gperf -acCgopt -k'1,2,5,9,$' -L ANSI-C -N locfile_hash programs/locfile-kw.gperf */
/* Command-line: gperf -acCgopt -k'1,2,5,9,$' -L ANSI-C -N locfile_hash locfile-kw.gperf */
#if !((' ' == 32) && ('!' == 33) && ('"' == 34) && ('#' == 35) \
&& ('%' == 37) && ('&' == 38) && ('\'' == 39) && ('(' == 40) \
@ -28,7 +28,7 @@
#error "gperf generated tables don't work with this execution character set. Please report a bug to <bug-gnu-gperf@gnu.org>."
#endif
#line 1 "programs/locfile-kw.gperf"
#line 1 "locfile-kw.gperf"
/* Copyright (C) 1996,1997,1998,1999,2000,2005 Free Software Foundation, Inc.
This file is part of the GNU C Library.
@ -50,7 +50,7 @@
#include <string.h>
#include "locfile-token.h"
#line 23 "programs/locfile-kw.gperf"
#line 23 "locfile-kw.gperf"
struct keyword_t ;
#define TOTAL_KEYWORDS 175
@ -133,457 +133,457 @@ locfile_hash (register const char *str, register unsigned int len)
static const struct keyword_t wordlist[] =
{
{""}, {""}, {""},
#line 30 "programs/locfile-kw.gperf"
#line 30 "locfile-kw.gperf"
{"END", tok_end, 0},
{""}, {""},
#line 69 "programs/locfile-kw.gperf"
#line 69 "locfile-kw.gperf"
{"IGNORE", tok_ignore, 0},
#line 127 "programs/locfile-kw.gperf"
#line 127 "locfile-kw.gperf"
{"LC_TIME", tok_lc_time, 0},
#line 29 "programs/locfile-kw.gperf"
#line 29 "locfile-kw.gperf"
{"LC_CTYPE", tok_lc_ctype, 0},
{""},
#line 164 "programs/locfile-kw.gperf"
#line 164 "locfile-kw.gperf"
{"LC_ADDRESS", tok_lc_address, 0},
#line 149 "programs/locfile-kw.gperf"
#line 149 "locfile-kw.gperf"
{"LC_MESSAGES", tok_lc_messages, 0},
#line 157 "programs/locfile-kw.gperf"
#line 157 "locfile-kw.gperf"
{"LC_NAME", tok_lc_name, 0},
#line 154 "programs/locfile-kw.gperf"
#line 154 "locfile-kw.gperf"
{"LC_PAPER", tok_lc_paper, 0},
#line 182 "programs/locfile-kw.gperf"
#line 182 "locfile-kw.gperf"
{"LC_MEASUREMENT", tok_lc_measurement, 0},
#line 55 "programs/locfile-kw.gperf"
#line 55 "locfile-kw.gperf"
{"LC_COLLATE", tok_lc_collate, 0},
{""},
#line 184 "programs/locfile-kw.gperf"
#line 184 "locfile-kw.gperf"
{"LC_IDENTIFICATION", tok_lc_identification, 0},
#line 197 "programs/locfile-kw.gperf"
#line 197 "locfile-kw.gperf"
{"revision", tok_revision, 0},
#line 68 "programs/locfile-kw.gperf"
#line 68 "locfile-kw.gperf"
{"UNDEFINED", tok_undefined, 0},
#line 123 "programs/locfile-kw.gperf"
#line 123 "locfile-kw.gperf"
{"LC_NUMERIC", tok_lc_numeric, 0},
#line 80 "programs/locfile-kw.gperf"
#line 80 "locfile-kw.gperf"
{"LC_MONETARY", tok_lc_monetary, 0},
#line 177 "programs/locfile-kw.gperf"
#line 177 "locfile-kw.gperf"
{"LC_TELEPHONE", tok_lc_telephone, 0},
{""},
#line 130 "programs/locfile-kw.gperf"
#line 130 "locfile-kw.gperf"
{"week", tok_week, 0},
{""},
#line 74 "programs/locfile-kw.gperf"
#line 74 "locfile-kw.gperf"
{"define", tok_define, 0},
#line 150 "programs/locfile-kw.gperf"
#line 150 "locfile-kw.gperf"
{"yesexpr", tok_yesexpr, 0},
#line 139 "programs/locfile-kw.gperf"
#line 139 "locfile-kw.gperf"
{"era_year", tok_era_year, 0},
{""},
#line 53 "programs/locfile-kw.gperf"
#line 53 "locfile-kw.gperf"
{"translit_ignore", tok_translit_ignore, 0},
#line 152 "programs/locfile-kw.gperf"
#line 152 "locfile-kw.gperf"
{"yesstr", tok_yesstr, 0},
{""},
#line 87 "programs/locfile-kw.gperf"
#line 87 "locfile-kw.gperf"
{"negative_sign", tok_negative_sign, 0},
{""},
#line 135 "programs/locfile-kw.gperf"
#line 135 "locfile-kw.gperf"
{"t_fmt", tok_t_fmt, 0},
#line 155 "programs/locfile-kw.gperf"
#line 155 "locfile-kw.gperf"
{"height", tok_height, 0},
{""}, {""},
#line 51 "programs/locfile-kw.gperf"
#line 51 "locfile-kw.gperf"
{"translit_start", tok_translit_start, 0},
#line 134 "programs/locfile-kw.gperf"
#line 134 "locfile-kw.gperf"
{"d_fmt", tok_d_fmt, 0},
{""},
#line 52 "programs/locfile-kw.gperf"
#line 52 "locfile-kw.gperf"
{"translit_end", tok_translit_end, 0},
#line 92 "programs/locfile-kw.gperf"
#line 92 "locfile-kw.gperf"
{"n_cs_precedes", tok_n_cs_precedes, 0},
#line 142 "programs/locfile-kw.gperf"
#line 142 "locfile-kw.gperf"
{"era_t_fmt", tok_era_t_fmt, 0},
#line 38 "programs/locfile-kw.gperf"
#line 38 "locfile-kw.gperf"
{"space", tok_space, 0},
#line 71 "programs/locfile-kw.gperf"
#line 71 "locfile-kw.gperf"
{"reorder-end", tok_reorder_end, 0},
#line 72 "programs/locfile-kw.gperf"
#line 72 "locfile-kw.gperf"
{"reorder-sections-after", tok_reorder_sections_after, 0},
{""},
#line 140 "programs/locfile-kw.gperf"
#line 140 "locfile-kw.gperf"
{"era_d_fmt", tok_era_d_fmt, 0},
#line 185 "programs/locfile-kw.gperf"
#line 185 "locfile-kw.gperf"
{"title", tok_title, 0},
{""}, {""},
#line 147 "programs/locfile-kw.gperf"
#line 147 "locfile-kw.gperf"
{"timezone", tok_timezone, 0},
{""},
#line 73 "programs/locfile-kw.gperf"
#line 73 "locfile-kw.gperf"
{"reorder-sections-end", tok_reorder_sections_end, 0},
{""}, {""}, {""},
#line 93 "programs/locfile-kw.gperf"
#line 93 "locfile-kw.gperf"
{"n_sep_by_space", tok_n_sep_by_space, 0},
{""}, {""},
#line 98 "programs/locfile-kw.gperf"
#line 98 "locfile-kw.gperf"
{"int_n_cs_precedes", tok_int_n_cs_precedes, 0},
{""}, {""}, {""},
#line 25 "programs/locfile-kw.gperf"
#line 25 "locfile-kw.gperf"
{"escape_char", tok_escape_char, 0},
{""},
#line 27 "programs/locfile-kw.gperf"
#line 27 "locfile-kw.gperf"
{"repertoiremap", tok_repertoiremap, 0},
#line 45 "programs/locfile-kw.gperf"
#line 45 "locfile-kw.gperf"
{"charclass", tok_charclass, 0},
#line 42 "programs/locfile-kw.gperf"
#line 42 "locfile-kw.gperf"
{"print", tok_print, 0},
#line 43 "programs/locfile-kw.gperf"
#line 43 "locfile-kw.gperf"
{"xdigit", tok_xdigit, 0},
#line 108 "programs/locfile-kw.gperf"
#line 108 "locfile-kw.gperf"
{"duo_n_cs_precedes", tok_duo_n_cs_precedes, 0},
#line 125 "programs/locfile-kw.gperf"
#line 125 "locfile-kw.gperf"
{"thousands_sep", tok_thousands_sep, 0},
#line 193 "programs/locfile-kw.gperf"
#line 193 "locfile-kw.gperf"
{"territory", tok_territory, 0},
#line 35 "programs/locfile-kw.gperf"
#line 35 "locfile-kw.gperf"
{"digit", tok_digit, 0},
{""}, {""},
#line 90 "programs/locfile-kw.gperf"
#line 90 "locfile-kw.gperf"
{"p_cs_precedes", tok_p_cs_precedes, 0},
{""},
#line 156 "programs/locfile-kw.gperf"
#line 156 "locfile-kw.gperf"
{"width", tok_width, 0},
#line 61 "programs/locfile-kw.gperf"
#line 61 "locfile-kw.gperf"
{"script", tok_script, 0},
#line 28 "programs/locfile-kw.gperf"
#line 28 "locfile-kw.gperf"
{"include", tok_include, 0},
{""},
#line 77 "programs/locfile-kw.gperf"
#line 77 "locfile-kw.gperf"
{"else", tok_else, 0},
#line 180 "programs/locfile-kw.gperf"
#line 180 "locfile-kw.gperf"
{"int_select", tok_int_select, 0},
{""}, {""}, {""}, {""},
#line 32 "programs/locfile-kw.gperf"
#line 32 "locfile-kw.gperf"
{"upper", tok_upper, 0},
{""}, {""},
#line 190 "programs/locfile-kw.gperf"
#line 190 "locfile-kw.gperf"
{"tel", tok_tel, 0},
#line 91 "programs/locfile-kw.gperf"
#line 91 "locfile-kw.gperf"
{"p_sep_by_space", tok_p_sep_by_space, 0},
{""}, {""},
#line 96 "programs/locfile-kw.gperf"
#line 96 "locfile-kw.gperf"
{"int_p_cs_precedes", tok_int_p_cs_precedes, 0},
{""}, {""},
#line 40 "programs/locfile-kw.gperf"
#line 40 "locfile-kw.gperf"
{"punct", tok_punct, 0},
{""}, {""},
#line 99 "programs/locfile-kw.gperf"
#line 99 "locfile-kw.gperf"
{"int_n_sep_by_space", tok_int_n_sep_by_space, 0},
{""}, {""}, {""},
#line 106 "programs/locfile-kw.gperf"
#line 106 "locfile-kw.gperf"
{"duo_p_cs_precedes", tok_duo_p_cs_precedes, 0},
{""}, {""},
#line 46 "programs/locfile-kw.gperf"
#line 46 "locfile-kw.gperf"
{"class", tok_class, 0},
#line 112 "programs/locfile-kw.gperf"
#line 112 "locfile-kw.gperf"
{"duo_int_n_cs_precedes", tok_duo_int_n_cs_precedes, 0},
#line 113 "programs/locfile-kw.gperf"
#line 113 "locfile-kw.gperf"
{"duo_int_n_sep_by_space", tok_duo_int_n_sep_by_space, 0},
#line 109 "programs/locfile-kw.gperf"
#line 109 "locfile-kw.gperf"
{"duo_n_sep_by_space", tok_duo_n_sep_by_space, 0},
#line 117 "programs/locfile-kw.gperf"
#line 117 "locfile-kw.gperf"
{"duo_int_n_sign_posn", tok_duo_int_n_sign_posn, 0},
{""}, {""}, {""},
#line 47 "programs/locfile-kw.gperf"
#line 47 "locfile-kw.gperf"
{"charconv", tok_charconv, 0},
{""}, {""},
#line 183 "programs/locfile-kw.gperf"
#line 183 "locfile-kw.gperf"
{"measurement", tok_measurement, 0},
{""}, {""}, {""}, {""}, {""}, {""}, {""},
#line 57 "programs/locfile-kw.gperf"
#line 57 "locfile-kw.gperf"
{"section-symbol", tok_section_symbol, 0},
#line 181 "programs/locfile-kw.gperf"
#line 181 "locfile-kw.gperf"
{"int_prefix", tok_int_prefix, 0},
{""}, {""}, {""}, {""},
#line 137 "programs/locfile-kw.gperf"
#line 137 "locfile-kw.gperf"
{"t_fmt_ampm", tok_t_fmt_ampm, 0},
{""}, {""},
#line 97 "programs/locfile-kw.gperf"
#line 97 "locfile-kw.gperf"
{"int_p_sep_by_space", tok_int_p_sep_by_space, 0},
{""},
#line 41 "programs/locfile-kw.gperf"
#line 41 "locfile-kw.gperf"
{"graph", tok_graph, 0},
{""}, {""},
#line 124 "programs/locfile-kw.gperf"
#line 124 "locfile-kw.gperf"
{"decimal_point", tok_decimal_point, 0},
{""}, {""},
#line 110 "programs/locfile-kw.gperf"
#line 110 "locfile-kw.gperf"
{"duo_int_p_cs_precedes", tok_duo_int_p_cs_precedes, 0},
#line 111 "programs/locfile-kw.gperf"
#line 111 "locfile-kw.gperf"
{"duo_int_p_sep_by_space", tok_duo_int_p_sep_by_space, 0},
#line 107 "programs/locfile-kw.gperf"
#line 107 "locfile-kw.gperf"
{"duo_p_sep_by_space", tok_duo_p_sep_by_space, 0},
#line 116 "programs/locfile-kw.gperf"
#line 116 "locfile-kw.gperf"
{"duo_int_p_sign_posn", tok_duo_int_p_sign_posn, 0},
#line 153 "programs/locfile-kw.gperf"
#line 153 "locfile-kw.gperf"
{"nostr", tok_nostr, 0},
{""}, {""},
#line 138 "programs/locfile-kw.gperf"
#line 138 "locfile-kw.gperf"
{"era", tok_era, 0},
{""},
#line 82 "programs/locfile-kw.gperf"
#line 82 "locfile-kw.gperf"
{"currency_symbol", tok_currency_symbol, 0},
{""},
#line 163 "programs/locfile-kw.gperf"
#line 163 "locfile-kw.gperf"
{"name_ms", tok_name_ms, 0},
#line 161 "programs/locfile-kw.gperf"
#line 161 "locfile-kw.gperf"
{"name_mrs", tok_name_mrs, 0},
#line 162 "programs/locfile-kw.gperf"
#line 162 "locfile-kw.gperf"
{"name_miss", tok_name_miss, 0},
#line 81 "programs/locfile-kw.gperf"
#line 81 "locfile-kw.gperf"
{"int_curr_symbol", tok_int_curr_symbol, 0},
#line 186 "programs/locfile-kw.gperf"
#line 186 "locfile-kw.gperf"
{"source", tok_source, 0},
#line 160 "programs/locfile-kw.gperf"
#line 160 "locfile-kw.gperf"
{"name_mr", tok_name_mr, 0},
#line 159 "programs/locfile-kw.gperf"
#line 159 "locfile-kw.gperf"
{"name_gen", tok_name_gen, 0},
#line 198 "programs/locfile-kw.gperf"
#line 198 "locfile-kw.gperf"
{"date", tok_date, 0},
{""}, {""},
#line 187 "programs/locfile-kw.gperf"
#line 187 "locfile-kw.gperf"
{"address", tok_address, 0},
#line 158 "programs/locfile-kw.gperf"
#line 158 "locfile-kw.gperf"
{"name_fmt", tok_name_fmt, 0},
#line 31 "programs/locfile-kw.gperf"
#line 31 "locfile-kw.gperf"
{"copy", tok_copy, 0},
{""}, {""},
#line 49 "programs/locfile-kw.gperf"
#line 49 "locfile-kw.gperf"
{"tolower", tok_tolower, 0},
#line 129 "programs/locfile-kw.gperf"
#line 129 "locfile-kw.gperf"
{"day", tok_day, 0},
#line 103 "programs/locfile-kw.gperf"
#line 103 "locfile-kw.gperf"
{"duo_currency_symbol", tok_duo_currency_symbol, 0},
#line 101 "programs/locfile-kw.gperf"
#line 101 "locfile-kw.gperf"
{"int_n_sign_posn", tok_int_n_sign_posn, 0},
{""}, {""},
#line 148 "programs/locfile-kw.gperf"
#line 148 "locfile-kw.gperf"
{"date_fmt", tok_date_fmt, 0},
#line 63 "programs/locfile-kw.gperf"
#line 63 "locfile-kw.gperf"
{"order_end", tok_order_end, 0},
{""}, {""},
#line 166 "programs/locfile-kw.gperf"
#line 166 "locfile-kw.gperf"
{"country_name", tok_country_name, 0},
#line 70 "programs/locfile-kw.gperf"
#line 70 "locfile-kw.gperf"
{"reorder-after", tok_reorder_after, 0},
#line 118 "programs/locfile-kw.gperf"
#line 118 "locfile-kw.gperf"
{"uno_valid_from", tok_uno_valid_from, 0},
#line 115 "programs/locfile-kw.gperf"
#line 115 "locfile-kw.gperf"
{"duo_n_sign_posn", tok_duo_n_sign_posn, 0},
#line 151 "programs/locfile-kw.gperf"
#line 151 "locfile-kw.gperf"
{"noexpr", tok_noexpr, 0},
{""},
#line 194 "programs/locfile-kw.gperf"
#line 194 "locfile-kw.gperf"
{"audience", tok_audience, 0},
{""},
#line 44 "programs/locfile-kw.gperf"
#line 44 "locfile-kw.gperf"
{"blank", tok_blank, 0},
{""},
#line 48 "programs/locfile-kw.gperf"
#line 48 "locfile-kw.gperf"
{"toupper", tok_toupper, 0},
#line 67 "programs/locfile-kw.gperf"
#line 67 "locfile-kw.gperf"
{"position", tok_position, 0},
#line 120 "programs/locfile-kw.gperf"
#line 120 "locfile-kw.gperf"
{"duo_valid_from", tok_duo_valid_from, 0},
#line 39 "programs/locfile-kw.gperf"
#line 39 "locfile-kw.gperf"
{"cntrl", tok_cntrl, 0},
{""},
#line 26 "programs/locfile-kw.gperf"
#line 26 "locfile-kw.gperf"
{"comment_char", tok_comment_char, 0},
#line 86 "programs/locfile-kw.gperf"
#line 86 "locfile-kw.gperf"
{"positive_sign", tok_positive_sign, 0},
{""}, {""}, {""}, {""},
#line 132 "programs/locfile-kw.gperf"
#line 132 "locfile-kw.gperf"
{"mon", tok_mon, 0},
{""}, {""},
#line 171 "programs/locfile-kw.gperf"
#line 171 "locfile-kw.gperf"
{"country_car", tok_country_car, 0},
{""},
#line 60 "programs/locfile-kw.gperf"
#line 60 "locfile-kw.gperf"
{"symbol-equivalence", tok_symbol_equivalence, 0},
#line 102 "programs/locfile-kw.gperf"
#line 102 "locfile-kw.gperf"
{"duo_int_curr_symbol", tok_duo_int_curr_symbol, 0},
#line 100 "programs/locfile-kw.gperf"
#line 100 "locfile-kw.gperf"
{"int_p_sign_posn", tok_int_p_sign_posn, 0},
{""}, {""}, {""}, {""}, {""}, {""},
#line 172 "programs/locfile-kw.gperf"
#line 172 "locfile-kw.gperf"
{"country_isbn", tok_country_isbn, 0},
#line 36 "programs/locfile-kw.gperf"
#line 36 "locfile-kw.gperf"
{"outdigit", tok_outdigit, 0},
{""},
#line 114 "programs/locfile-kw.gperf"
#line 114 "locfile-kw.gperf"
{"duo_p_sign_posn", tok_duo_p_sign_posn, 0},
{""},
#line 133 "programs/locfile-kw.gperf"
#line 133 "locfile-kw.gperf"
{"d_t_fmt", tok_d_t_fmt, 0},
{""}, {""},
#line 33 "programs/locfile-kw.gperf"
#line 33 "locfile-kw.gperf"
{"lower", tok_lower, 0},
{""},
#line 167 "programs/locfile-kw.gperf"
#line 167 "locfile-kw.gperf"
{"country_post", tok_country_post, 0},
#line 146 "programs/locfile-kw.gperf"
#line 146 "locfile-kw.gperf"
{"cal_direction", tok_cal_direction, 0},
{""},
#line 189 "programs/locfile-kw.gperf"
#line 189 "locfile-kw.gperf"
{"email", tok_email, 0},
#line 141 "programs/locfile-kw.gperf"
#line 141 "locfile-kw.gperf"
{"era_d_t_fmt", tok_era_d_t_fmt, 0},
{""}, {""},
#line 173 "programs/locfile-kw.gperf"
#line 173 "locfile-kw.gperf"
{"lang_name", tok_lang_name, 0},
{""},
#line 179 "programs/locfile-kw.gperf"
#line 179 "locfile-kw.gperf"
{"tel_dom_fmt", tok_tel_dom_fmt, 0},
{""}, {""}, {""},
#line 54 "programs/locfile-kw.gperf"
#line 54 "locfile-kw.gperf"
{"default_missing", tok_default_missing, 0},
#line 89 "programs/locfile-kw.gperf"
#line 89 "locfile-kw.gperf"
{"frac_digits", tok_frac_digits, 0},
{""}, {""}, {""},
#line 88 "programs/locfile-kw.gperf"
#line 88 "locfile-kw.gperf"
{"int_frac_digits", tok_int_frac_digits, 0},
#line 170 "programs/locfile-kw.gperf"
#line 170 "locfile-kw.gperf"
{"country_num", tok_country_num, 0},
#line 119 "programs/locfile-kw.gperf"
#line 119 "locfile-kw.gperf"
{"uno_valid_to", tok_uno_valid_to, 0},
{""}, {""}, {""}, {""}, {""},
#line 50 "programs/locfile-kw.gperf"
#line 50 "locfile-kw.gperf"
{"map", tok_map, 0},
{""},
#line 105 "programs/locfile-kw.gperf"
#line 105 "locfile-kw.gperf"
{"duo_frac_digits", tok_duo_frac_digits, 0},
#line 178 "programs/locfile-kw.gperf"
#line 178 "locfile-kw.gperf"
{"tel_int_fmt", tok_tel_int_fmt, 0},
#line 121 "programs/locfile-kw.gperf"
#line 121 "locfile-kw.gperf"
{"duo_valid_to", tok_duo_valid_to, 0},
#line 144 "programs/locfile-kw.gperf"
#line 144 "locfile-kw.gperf"
{"first_weekday", tok_first_weekday, 0},
{""},
#line 143 "programs/locfile-kw.gperf"
#line 143 "locfile-kw.gperf"
{"alt_digits", tok_alt_digits, 0},
#line 95 "programs/locfile-kw.gperf"
#line 95 "locfile-kw.gperf"
{"n_sign_posn", tok_n_sign_posn, 0},
#line 84 "programs/locfile-kw.gperf"
#line 84 "locfile-kw.gperf"
{"mon_thousands_sep", tok_mon_thousands_sep, 0},
#line 145 "programs/locfile-kw.gperf"
#line 145 "locfile-kw.gperf"
{"first_workday", tok_first_workday, 0},
#line 64 "programs/locfile-kw.gperf"
#line 64 "locfile-kw.gperf"
{"from", tok_from, 0},
#line 131 "programs/locfile-kw.gperf"
#line 131 "locfile-kw.gperf"
{"abmon", tok_abmon, 0},
{""}, {""},
#line 192 "programs/locfile-kw.gperf"
#line 192 "locfile-kw.gperf"
{"language", tok_language, 0},
{""}, {""},
#line 195 "programs/locfile-kw.gperf"
#line 195 "locfile-kw.gperf"
{"application", tok_application, 0},
{""},
#line 126 "programs/locfile-kw.gperf"
#line 126 "locfile-kw.gperf"
{"grouping", tok_grouping, 0},
#line 78 "programs/locfile-kw.gperf"
#line 78 "locfile-kw.gperf"
{"elif", tok_elif, 0},
#line 128 "programs/locfile-kw.gperf"
#line 128 "locfile-kw.gperf"
{"abday", tok_abday, 0},
{""},
#line 196 "programs/locfile-kw.gperf"
#line 196 "locfile-kw.gperf"
{"abbreviation", tok_abbreviation, 0},
{""}, {""}, {""}, {""}, {""}, {""}, {""},
#line 56 "programs/locfile-kw.gperf"
#line 56 "locfile-kw.gperf"
{"coll_weight_max", tok_coll_weight_max, 0},
{""}, {""}, {""}, {""}, {""}, {""}, {""},
#line 66 "programs/locfile-kw.gperf"
#line 66 "locfile-kw.gperf"
{"backward", tok_backward, 0},
#line 104 "programs/locfile-kw.gperf"
#line 104 "locfile-kw.gperf"
{"duo_int_frac_digits", tok_duo_int_frac_digits, 0},
{""},
#line 94 "programs/locfile-kw.gperf"
#line 94 "locfile-kw.gperf"
{"p_sign_posn", tok_p_sign_posn, 0},
{""},
#line 199 "programs/locfile-kw.gperf"
#line 199 "locfile-kw.gperf"
{"category", tok_category, 0},
{""},
#line 122 "programs/locfile-kw.gperf"
#line 122 "locfile-kw.gperf"
{"conversion_rate", tok_conversion_rate, 0},
{""},
#line 83 "programs/locfile-kw.gperf"
#line 83 "locfile-kw.gperf"
{"mon_decimal_point", tok_mon_decimal_point, 0},
{""}, {""}, {""},
#line 62 "programs/locfile-kw.gperf"
#line 62 "locfile-kw.gperf"
{"order_start", tok_order_start, 0},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""},
#line 188 "programs/locfile-kw.gperf"
#line 188 "locfile-kw.gperf"
{"contact", tok_contact, 0},
{""}, {""}, {""},
#line 169 "programs/locfile-kw.gperf"
#line 169 "locfile-kw.gperf"
{"country_ab3", tok_country_ab3, 0},
{""}, {""}, {""}, {""},
#line 168 "programs/locfile-kw.gperf"
#line 168 "locfile-kw.gperf"
{"country_ab2", tok_country_ab2, 0},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""},
#line 174 "programs/locfile-kw.gperf"
#line 174 "locfile-kw.gperf"
{"lang_ab", tok_lang_ab, 0},
#line 176 "programs/locfile-kw.gperf"
#line 176 "locfile-kw.gperf"
{"lang_lib", tok_lang_lib, 0},
{""}, {""}, {""}, {""},
#line 191 "programs/locfile-kw.gperf"
#line 191 "locfile-kw.gperf"
{"fax", tok_fax, 0},
{""},
#line 136 "programs/locfile-kw.gperf"
#line 136 "locfile-kw.gperf"
{"am_pm", tok_am_pm, 0},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""},
#line 37 "programs/locfile-kw.gperf"
#line 37 "locfile-kw.gperf"
{"alnum", tok_alnum, 0},
{""}, {""}, {""},
#line 175 "programs/locfile-kw.gperf"
#line 175 "locfile-kw.gperf"
{"lang_term", tok_lang_term, 0},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""}, {""}, {""},
#line 79 "programs/locfile-kw.gperf"
#line 79 "locfile-kw.gperf"
{"endif", tok_endif, 0},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
#line 165 "programs/locfile-kw.gperf"
#line 165 "locfile-kw.gperf"
{"postal_fmt", tok_postal_fmt, 0},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""}, {""},
#line 75 "programs/locfile-kw.gperf"
#line 75 "locfile-kw.gperf"
{"undef", tok_undef, 0},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""},
#line 58 "programs/locfile-kw.gperf"
#line 58 "locfile-kw.gperf"
{"collating-element", tok_collating_element, 0},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""},
#line 85 "programs/locfile-kw.gperf"
#line 85 "locfile-kw.gperf"
{"mon_grouping", tok_mon_grouping, 0},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""},
#line 65 "programs/locfile-kw.gperf"
#line 65 "locfile-kw.gperf"
{"forward", tok_forward, 0},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
#line 59 "programs/locfile-kw.gperf"
#line 59 "locfile-kw.gperf"
{"collating-symbol", tok_collating_symbol, 0},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""},
#line 34 "programs/locfile-kw.gperf"
#line 34 "locfile-kw.gperf"
{"alpha", tok_alpha, 0},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
@ -595,7 +595,7 @@ locfile_hash (register const char *str, register unsigned int len)
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
#line 76 "programs/locfile-kw.gperf"
#line 76 "locfile-kw.gperf"
{"ifdef", tok_ifdef, 0}
};

View File

@ -1,3 +1,19 @@
2005-12-19 Jakub Jelinek <jakub@redhat.com>
* sysdeps/ia64/tls.h (TLS_PRE_TCB_SIZE): Make room for 2 uintptr_t's
rather than one.
(THREAD_GET_POINTER_GUARD, THREAD_SET_POINTER_GUARD,
THREAD_COPY_POINTER_GUARD): Define.
* sysdeps/powerpc/tcb-offsets.sym (POINTER_GUARD): Add.
* sysdeps/powerpc/tls.h (tcbhead_t): Add pointer_guard field.
(THREAD_GET_POINTER_GUARD, THREAD_SET_POINTER_GUARD,
THREAD_COPY_POINTER_GUARD): Define.
* sysdeps/s390/tcb-offsets.sym (STACK_GUARD): Add.
* sysdeps/s390/tls.h (THREAD_GET_POINTER_GUARD,
THREAD_SET_POINTER_GUARD, THREAD_COPY_POINTER_GUARD): Define.
* sysdeps/unix/sysv/linux/ia64/__ia64_longjmp.S (__ia64_longjmp):
Use PTR_DEMANGLE for B0 if defined.
2005-12-17 Ulrich Drepper <drepper@redhat.com>
* pthread_create.c (__pthread_create_2_1): Use

View File

@ -81,13 +81,14 @@ register struct pthread *__thread_self __asm__("r13");
# define TLS_TCB_SIZE sizeof (tcbhead_t)
/* This is the size we need before TCB.
If there is not any room for uintptr_t stack_guard in struct pthread's
final padding, we need to put struct pthread 16 byte slower. */
If there is not any room for uintptr_t stack_guard and
uintptr_t pointer_guard in struct pthread's final padding,
we need to put struct pthread 16 byte slower. */
# define TLS_PRE_TCB_SIZE \
(sizeof (struct pthread) \
+ (PTHREAD_STRUCT_END_PADDING < sizeof (uintptr_t) \
? ((sizeof (uintptr_t) + __alignof__ (struct pthread) - 1)\
& ~(__alignof__ (struct pthread) - 1)) \
(sizeof (struct pthread) \
+ (PTHREAD_STRUCT_END_PADDING < 2 * sizeof (uintptr_t) \
? ((2 * sizeof (uintptr_t) + __alignof__ (struct pthread) - 1) \
& ~(__alignof__ (struct pthread) - 1)) \
: 0))
/* Alignment requirements for the TCB. */
@ -156,6 +157,15 @@ register struct pthread *__thread_self __asm__("r13");
(((uintptr_t *) ((char *) (descr) + TLS_PRE_TCB_SIZE))[-1] \
= ((uintptr_t *) __thread_self)[-1])
/* Set the pointer guard field in TCB head. */
#define THREAD_GET_POINTER_GUARD() \
(((uintptr_t *) __thread_self)[-2])
#define THREAD_SET_POINTER_GUARD(value) \
(((uintptr_t *) __thread_self)[-2] = (value))
#define THREAD_COPY_POINTER_GUARD(descr) \
(((uintptr_t *) ((char *) (descr) + TLS_PRE_TCB_SIZE))[-2] \
= THREAD_GET_POINTER_GUARD ())
#endif /* __ASSEMBLER__ */
#endif /* tls.h */

View File

@ -14,3 +14,4 @@ MULTIPLE_THREADS_OFFSET thread_offsetof (header.multiple_threads)
#endif
PID thread_offsetof (pid)
TID thread_offsetof (tid)
POINTER_GUARD (offsetof (tcbhead_t, pointer_guard) - TLS_TCB_OFFSET - sizeof (tcbhead_t))

View File

@ -66,9 +66,11 @@ typedef union dtv
# include <nptl/descr.h>
/* The stack_guard is accessed directly by GCC -fstack-protector code,
so it is a part of public ABI. The dtv field is private. */
so it is a part of public ABI. The dtv and pointer_guard fields
are private. */
typedef struct
{
uintptr_t pointer_guard;
uintptr_t stack_guard;
dtv_t *dtv;
} tcbhead_t;
@ -166,6 +168,17 @@ register void *__thread_register __asm__ ("r13");
= ((tcbhead_t *) ((char *) __thread_register \
- TLS_TCB_OFFSET))[-1].stack_guard)
/* Set the stack guard field in TCB head. */
# define THREAD_GET_POINTER_GUARD() \
(((tcbhead_t *) ((char *) __thread_register \
- TLS_TCB_OFFSET))[-1].pointer_guard)
# define THREAD_SET_POINTER_GUARD(value) \
(THREAD_GET_POINTER_GUARD () = (value))
# define THREAD_COPY_POINTER_GUARD(descr) \
(((tcbhead_t *) ((char *) (descr) \
+ TLS_PRE_TCB_SIZE))[-1].pointer_guard \
= THREAD_GET_POINTER_GUARD())
/* l_tls_offset == 0 is perfectly valid on PPC, so we have to use some
different value to mean unset l_tls_offset. */
# define NO_TLS_OFFSET -1

View File

@ -2,5 +2,6 @@
#include <tls.h>
MULTIPLE_THREADS_OFFSET offsetof (tcbhead_t, multiple_threads)
STACK_GUARD offsetof (tcbhead_t, stack_guard)
PID offsetof (struct pthread, pid)
TID offsetof (struct pthread, tid)

View File

@ -164,6 +164,13 @@ typedef struct
((descr)->header.stack_guard \
= THREAD_GETMEM (THREAD_SELF, header.stack_guard))
/* s390 doesn't have HP_TIMING_*, so for the time being
use stack_guard as pointer_guard. */
#define THREAD_GET_POINTER_GUARD() \
THREAD_GETMEM (THREAD_SELF, header.stack_guard)
#define THREAD_SET_POINTER_GUARD(value)
#define THREAD_COPY_POINTER_GUARD(descr)
#endif /* __ASSEMBLER__ */
#endif /* tls.h */

View File

@ -1,4 +1,4 @@
/* Copyright (C) 1999, 2000, 2001, 2004 Free Software Foundation, Inc.
/* Copyright (C) 1999, 2000, 2001, 2004, 2005 Free Software Foundation, Inc.
Contributed by David Mosberger-Tang <davidm@hpl.hp.com>.
The GNU C Library is free software; you can redistribute it and/or
@ -102,6 +102,9 @@ LEAF(__ia64_longjmp)
;;
ld8.nta r20=[r2],16 // b4
ld8.nta r21=[r3],16 // b5
#ifdef PTR_DEMANGLE
PTR_DEMANGLE (r16, r24)
#endif
;;
ld8.nta r11=[r2],16 // ar.pfs
ld8.nta r22=[r3],56 // ar.lc

View File

@ -1,5 +1,6 @@
/* longjmp for PowerPC.
Copyright (C) 1995-1997,1999-2001,2003,2004 Free Software Foundation, Inc.
Copyright (C) 1995-1997, 1999-2001, 2003, 2004, 2005
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
@ -40,6 +41,9 @@ ENTRY (BP_SYM (__longjmp))
lwz r18,((JB_GPRS+4)*4)(r3)
lwz r19,((JB_GPRS+5)*4)(r3)
lwz r20,((JB_GPRS+6)*4)(r3)
#ifdef PTR_DEMANGLE
PTR_DEMANGLE (r0, r25)
#endif
mtlr r0
lwz r21,((JB_GPRS+7)*4)(r3)
lwz r22,((JB_GPRS+8)*4)(r3)

View File

@ -36,6 +36,9 @@ ENTRY (BP_SYM (__sigsetjmp))
stw r1,(JB_GPR1*4)(3)
mflr r0
stw r14,((JB_GPRS+0)*4)(3)
#ifdef PTR_MANGLE
PTR_MANGLE (r0, r10)
#endif
stw r0,(JB_LR*4)(3)
stw r15,((JB_GPRS+1)*4)(3)
mfcr r0

View File

@ -1,5 +1,5 @@
/* longjmp for PowerPC64.
Copyright (C) 1995, 1996, 1997, 1999, 2000, 2001, 2002, 2003, 2004
Copyright (C) 1995, 1996, 1997, 1999, 2000, 2001, 2002, 2003, 2004, 2005
Free Software Foundation, Inc.
This file is part of the GNU C Library.
@ -128,6 +128,9 @@ L(no_vmx):
lfd fp19,((JB_FPRS+5)*8)(r3)
ld r20,((JB_GPRS+6)*8)(r3)
lfd fp20,((JB_FPRS+6)*8)(r3)
#ifdef PTR_DEMANGLE
PTR_DEMANGLE (r0, r25)
#endif
mtlr r0
/* std r2,40(r1) Restore the TOC save area. */
ld r21,((JB_GPRS+7)*8)(r3)

View File

@ -56,6 +56,9 @@ JUMPTARGET(GLUE(__sigsetjmp,_ent)):
#endif
std r14,((JB_GPRS+0)*8)(3)
stfd fp14,((JB_FPRS+0)*8)(3)
#ifdef PTR_MANGLE
PTR_MANGLE (r0, r10)
#endif
std r0,(JB_LR*8)(3)
std r15,((JB_GPRS+1)*8)(3)
stfd fp15,((JB_FPRS+1)*8)(3)

View File

@ -1,4 +1,4 @@
/* Copyright (C) 2000, 2001 Free Software Foundation, Inc.
/* Copyright (C) 2000, 2001, 2005 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Martin Schwidefsky (schwidefsky@de.ibm.com).
@ -29,14 +29,24 @@
void
__longjmp (__jmp_buf env, int val)
{
/* Restore registers and jump back. */
asm volatile ("lr %%r2,%0\n\t" /* PUT val in grp 2. */
"ld %%f6,48(%1)\n\t"
"ld %%f4,40(%1)\n\t"
"lm %%r6,%%r15,0(%1)\n\t"
"br %%r14"
: : "r" (val == 0 ? 1 : val),
"a" (env) : "2" );
#ifdef PTR_DEMANGLE
register uintptr_t r5 __asm ("%r5") = THREAD_GET_POINTER_GUARD ();
#endif
/* Restore registers and jump back. */
asm volatile ("lr %%r2,%0\n\t" /* PUT val in grp 2. */
"ld %%f6,48(%1)\n\t"
"ld %%f4,40(%1)\n\t"
"lm %%r6,%%r15,0(%1)\n\t"
#ifdef PTR_DEMANGLE
"xr %%r14,%2\n\t"
#endif
"br %%r14"
: : "r" (val == 0 ? 1 : val),
"a" (env)
#ifdef PTR_DEMANGLE
, "r" (r5)
#endif
: "2" );
/* Avoid `volatile function does return' warnings. */
for (;;);

View File

@ -1,5 +1,5 @@
/* setjmp for s390, ELF version.
Copyright (C) 2000, 2002 Free Software Foundation, Inc.
Copyright (C) 2000, 2002, 2005 Free Software Foundation, Inc.
Contributed by Martin Schwidefsky (schwidefsky@de.ibm.com).
This file is part of the GNU C Library.
@ -46,10 +46,22 @@ END (__setjmp)
ENTRY(__sigsetjmp)
.Linternal_sigsetjmp:
#ifdef PTR_MANGLE
stm %r6,%r13,0(%r2) /* store registers in jmp_buf */
lr %r4,%r14
PTR_MANGLE (%r4, %r5)
st %r4,32(%r2)
st %r15,36(%r2)
#else
stm %r6,%r15,0(%r2) /* store registers in jmp_buf */
#endif
std %f4,40(%r2)
std %f6,48(%r2)
#ifdef PIC
#if defined NOT_IN_libc && defined IS_IN_rtld
/* In ld.so we never save the signal mask. */
lhi %r2,0
br %r14
#elif defined PIC
/* We cannot use the PLT, because it requires that %r12 be set, but
we can't save and restore our caller's value. Instead, we do an
indirect jump through the GOT. */

View File

@ -1,5 +1,5 @@
/*
Copyright (C) 2000, 2001 Free Software Foundation, Inc.
Copyright (C) 2000, 2001, 2005 Free Software Foundation, Inc.
Contributed by Martin Schwidefsky (schwidefsky@de.ibm.com).
This file is part of the GNU C Library.
@ -29,10 +29,22 @@
/* R2 = pointer to jmp_buf, R3 = savemask */
ENTRY(__sigsetjmp)
#ifdef PTR_MANGLE
stm %r6,%r13,0(%r2) /* store registers in jmp_buf */
lr %r4,%r14
PTR_MANGLE (%r4, %r5)
st %r4,32(%r2)
st %r15,36(%r2)
#else
stm %r6,%r15,0(%r2) /* store registers in jmp_buf */
#endif
std %f4,40(%r2)
std %f6,48(%r2)
#ifdef PIC
#if defined NOT_IN_libc && defined IS_IN_rtld
/* In ld.so we never save the signal mask. */
lhi %r2,0
br %r14
#elif defined PIC
/* We cannot use the PLT, because it requires that %r12 be set, but
we can't save and restore our caller's value. Instead, we do an
indirect jump through the GOT. */

View File

@ -1,4 +1,4 @@
/* Copyright (C) 2001 Free Software Foundation, Inc.
/* Copyright (C) 2001, 2005 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Martin Schwidefsky (schwidefsky@de.ibm.com).
@ -29,18 +29,27 @@
void
__longjmp (__jmp_buf env, int val)
{
/* Restore registers and jump back. */
asm volatile ("lgr %%r2,%0\n\t" /* Put val in grp 2. */
"ld %%f7,104(%1)\n\t"
"ld %%f5,96(%1)\n\t"
"ld %%f3,88(%1)\n\t"
"ld %%f1,80(%1)\n\t"
"lmg %%r6,%%r15,0(%1)\n\t"
"br %%r14"
: : "r" (val == 0 ? 1 : val),
"a" (env) : "2" );
#ifdef PTR_DEMANGLE
register uintptr_t r5 __asm ("%r5") = THREAD_GET_POINTER_GUARD ();
#endif
/* Restore registers and jump back. */
asm volatile ("lgr %%r2,%0\n\t" /* Put val in grp 2. */
"ld %%f7,104(%1)\n\t"
"ld %%f5,96(%1)\n\t"
"ld %%f3,88(%1)\n\t"
"ld %%f1,80(%1)\n\t"
"lmg %%r6,%%r15,0(%1)\n\t"
#ifdef PTR_DEMANGLE
"xgr %%r14,%2\n\t"
#endif
"br %%r14"
: : "r" (val == 0 ? 1 : val),
"a" (env)
#ifdef PTR_DEMANGLE
, "r" (r5)
#endif
: "2" );
/* Avoid `volatile function does return' warnings. */
for (;;);
}

View File

@ -1,5 +1,5 @@
/* setjmp for 64 bit S/390, ELF version.
Copyright (C) 2001, 2002 Free Software Foundation, Inc.
Copyright (C) 2001, 2002, 2005 Free Software Foundation, Inc.
Contributed by Martin Schwidefsky (schwidefsky@de.ibm.com).
This file is part of the GNU C Library.
@ -46,12 +46,24 @@ END (setjmp)
ENTRY(__sigsetjmp)
.Linternal_sigsetjmp:
#ifdef PTR_MANGLE
stmg %r6,%r13,0(%r2) /* Store registers in jmp_buf. */
lgr %r4,%r14
PTR_MANGLE (%r4, %r5)
stg %r4,64(%r2)
stg %r15,72(%r2)
#else
stmg %r6,%r15,0(%r2) /* Store registers in jmp_buf. */
#endif
std %f1,80(%r2)
std %f3,88(%r2)
std %f5,96(%r2)
std %f7,104(%r2)
#ifdef PIC
#if defined NOT_IN_libc && defined IS_IN_rtld
/* In ld.so we never save the signal mask. */
lghi %r2,0
br %r14
#elif defined PIC
jg __sigjmp_save@PLT /* Branch to PLT of __sigsetjmp. */
#else
jg __sigjmp_save

View File

@ -1,4 +1,4 @@
/* Copyright (C) 2001 Free Software Foundation, Inc.
/* Copyright (C) 2001, 2005 Free Software Foundation, Inc.
Contributed by Martin Schwidefsky (schwidefsky@de.ibm.com).
This file is part of the GNU C Library.
@ -28,16 +28,26 @@
/* R2 = pointer to jmp_buf, R3 = savemask. */
ENTRY(__sigsetjmp)
#ifdef PTR_MANGLE
stmg %r6,%r13,0(%r2) /* Store registers in jmp_buf. */
lgr %r4,%r14
PTR_MANGLE (%r4, %r5)
stg %r4,64(%r2)
stg %r15,72(%r2)
#else
stmg %r6,%r15,0(%r2) /* Store registers in jmp_buf. */
#endif
std %f1,80(%r2)
std %f3,88(%r2)
std %f5,96(%r2)
std %f7,104(%r2)
#ifdef PIC
#if defined NOT_IN_libc && defined IS_IN_rtld
/* In ld.so we never save the signal mask. */
lghi %r2,0
br %r14
#elif defined PIC
jg __sigjmp_save@PLT /* Tail-call __sigjmp_save. */
#else
jg __sigjmp_save /* Tail-call __sigjmp_save. */
#endif
END (__sigsetjmp)

View File

@ -1,4 +1,4 @@
/* Copyright (C) 1999, 2000, 2001 Free Software Foundation, Inc.
/* Copyright (C) 1999, 2000, 2001, 2005 Free Software Foundation, Inc.
Contributed by David Mosberger-Tang <davidm@hpl.hp.com>.
The GNU C Library is free software; you can redistribute it and/or
@ -101,6 +101,9 @@ LEAF(__longjmp)
ld8.nta r18=[r2],16 // b2
ld8.nta r19=[r3],16 // b3
;;
#ifdef PTR_DEMANGLE
PTR_DEMANGLE (r16, r24)
#endif
ld8.nta r20=[r2],16 // b4
ld8.nta r21=[r3],16 // b5
;;

View File

@ -1,4 +1,5 @@
/* Copyright (C) 1999, 2000, 2001, 2002, 2004 Free Software Foundation, Inc.
/* Copyright (C) 1999, 2000, 2001, 2002, 2004, 2005
Free Software Foundation, Inc.
Contributed by David Mosberger-Tang <davidm@hpl.hp.com>.
The GNU C Library is free software; you can redistribute it and/or
@ -86,7 +87,7 @@ libc_hidden_def (_setjmp)
ENTRY(__sigsetjmp)
.prologue ASM_UNW_PRLG_RP|ASM_UNW_PRLG_PFS, ASM_UNW_PRLG_GRSAVE(2)
alloc loc1=ar.pfs,2,3,2,0
alloc loc1=ar.pfs,2,5,2,0
.save ar.unat, loc2
mov loc2=ar.unat
;;
@ -140,7 +141,13 @@ ENTRY(__sigsetjmp)
;;
stf.spill.nta [r8]=f28,32
stf.spill.nta [r9]=f29,32
#ifdef PTR_MANGLE
mov loc3=loc0
;;
PTR_MANGLE (loc3, loc4)
#else
;;
#endif
stf.spill.nta [r8]=f30
stf.spill.nta [r9]=f31
@ -151,7 +158,11 @@ ENTRY(__sigsetjmp)
mov r25=ar.unat
mov out0=in0
#ifdef PTR_MANGLE
st8.nta [r2]=loc3,16 // b0
#else
st8.nta [r2]=loc0,16 // b0
#endif
st8.nta [r3]=r17,16 // b1
mov out1=in1
;;
@ -169,7 +180,12 @@ ENTRY(__sigsetjmp)
;;
st8.nta [r2]=r25 // ar.unat
st8.nta [r3]=in0 // &__jmp_buf
#if defined NOT_IN_libc && defined IS_IN_rtld
/* In ld.so we never save the signal mask. */
;;
#else
br.call.dpnt.few rp=__sigjmp_save
#endif
.ret0: // force a new bundle ::q
mov.m ar.unat=loc2 // restore caller's unat
mov rp=loc0

View File

@ -1,4 +1,5 @@
/* Copyright (C) 1999, 2000, 2002, 2003, 2004 Free Software Foundation, Inc.
/* Copyright (C) 1999, 2000, 2002, 2003, 2004, 2005
Free Software Foundation, Inc.
This file is part of the GNU C Library.
Written by Jes Sorensen, <Jes.Sorensen@cern.ch>, April 1999.
Based on code originally written by David Mosberger-Tang
@ -360,4 +361,24 @@
#endif /* not __ASSEMBLER__ */
/* Pointer mangling support. */
#if defined NOT_IN_libc && defined IS_IN_rtld
/* We cannot use the thread descriptor because in ld.so we use setjmp
earlier than the descriptor is initialized. */
#else
# ifdef __ASSEMBLER__
# define PTR_MANGLE(reg, tmpreg) \
add tmpreg=-16,r13 \
;; \
ld8 tmpreg=[tmpreg] \
;; \
xor reg=reg, tmpreg
# define PTR_DEMANGLE(reg, tmpreg) PTR_MANGLE (reg, tmpreg)
# else
# define PTR_MANGLE(var) \
(var) = (void *) ((uintptr_t) (var) ^ THREAD_GET_POINTER_GUARD ())
# define PTR_DEMANGLE(var) PTR_MANGLE (var)
# endif
#endif
#endif /* linux/ia64/sysdep.h */

View File

@ -1,4 +1,4 @@
/* Copyright (C) 1998-2003, 2004 Free Software Foundation, Inc.
/* Copyright (C) 1998-2003, 2004, 2005 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998.
@ -71,6 +71,33 @@ __statvfs_getflags (const char *name, int fstype, struct stat64 *st)
case NFS_SUPER_MAGIC:
fsname = "nfs";
break;
case SYSFS_MAGIC:
fsname = "sysfs";
break;
case REISERFS_SUPER_MAGIC:
fsname = "reiserfs";
break;
case XFS_SUPER_MAGIC:
fsname = "xfs";
break;
case JFS_SUPER_MAGIC:
fsname = "jfs";
break;
case HPFS_SUPER_MAGIC:
fsname = "hpfs";
break;
case DEVFS_SUPER_MAGIC:
fsname = "devfs";
break;
case ISOFS_SUPER_MAGIC:
fsname = "iso9660";
break;
case MSDOS_SUPER_MAGIC:
fsname = "msdos";
break;
case NTFS_SUPER_MAGIC:
fsname = "ntfs";
break;
}
FILE *mtab = __setmntent ("/proc/mounts", "r");

View File

@ -1,5 +1,5 @@
/* Constants from kernel header for various FSes.
Copyright (C) 1998,1999,2000,2001,2002,2003 Free Software Foundation, Inc.
Copyright (C) 1998,1999,2000,2001,2002,2003,2005 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
@ -135,6 +135,9 @@
/* Constants that identify the `vxfs' filesystem. */
#define VXFS_SUPER_MAGIC 0xa501fcf5
/* Constants that identify the `sysfs´ filesystem. */
#define SYSFS_MAGIC 0x62656572
/* Maximum link counts. */
#define COH_LINK_MAX 10000
#define EXT2_LINK_MAX 32000

View File

@ -20,6 +20,7 @@
#define _LINUX_POWERPC_SYSDEP_H 1
#include <sysdeps/unix/powerpc/sysdep.h>
#include <tls.h>
/* Some systen calls got renamed over time, but retained the same semantics.
Handle them here so they can be catched by both C and assembler stubs in
@ -170,4 +171,21 @@
#endif /* __ASSEMBLER__ */
/* Pointer mangling support. */
#if defined NOT_IN_libc && defined IS_IN_rtld
/* We cannot use the thread descriptor because in ld.so we use setjmp
earlier than the descriptor is initialized. */
#else
# ifdef __ASSEMBLER__
# define PTR_MANGLE(reg, tmpreg) \
lwz tmpreg,POINTER_GUARD(r2); \
xor reg,tmpreg,reg
# define PTR_DEMANGLE(reg, tmpreg) PTR_MANGLE (reg, tmpreg)
# else
# define PTR_MANGLE(var) \
(var) = (void *) ((uintptr_t) (var) ^ THREAD_GET_POINTER_GUARD ())
# define PTR_DEMANGLE(var) PTR_MANGLE (var)
# endif
#endif
#endif /* linux/powerpc/powerpc32/sysdep.h */

View File

@ -23,6 +23,7 @@
#define _LINUX_POWERPC_SYSDEP_H 1
#include <sysdeps/unix/powerpc/sysdep.h>
#include <tls.h>
/* Define __set_errno() for INLINE_SYSCALL macro below. */
#ifndef __ASSEMBLER__
@ -180,4 +181,22 @@
#define ASM_INPUT_5 ASM_INPUT_4, "5" (r7)
#define ASM_INPUT_6 ASM_INPUT_5, "6" (r8)
/* Pointer mangling support. */
#if defined NOT_IN_libc && defined IS_IN_rtld
/* We cannot use the thread descriptor because in ld.so we use setjmp
earlier than the descriptor is initialized. */
#else
# ifdef __ASSEMBLER__
# define PTR_MANGLE(reg, tmpreg) \
ld tmpreg,POINTER_GUARD(r13); \
xor reg,tmpreg,reg
# define PTR_DEMANGLE(reg, tmpreg) PTR_MANGLE (reg, tmpreg)
# else
# define PTR_MANGLE(var) \
(var) = (void *) ((uintptr_t) (var) ^ THREAD_GET_POINTER_GUARD ())
# define PTR_DEMANGLE(var) PTR_MANGLE (var)
# endif
#endif
#endif /* linux/powerpc/powerpc64/sysdep.h */

View File

@ -1,4 +1,5 @@
/* Copyright (C) 2000,01,02,03,04 Free Software Foundation, Inc.
/* Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005
Free Software Foundation, Inc.
Contributed by Martin Schwidefsky (schwidefsky@de.ibm.com).
This file is part of the GNU C Library.
@ -23,6 +24,7 @@
#include <sysdeps/s390/s390-32/sysdep.h>
#include <sysdeps/unix/sysdep.h>
#include <dl-sysdep.h> /* For RTLD_PRIVATE_ERRNO. */
#include <tls.h>
/* For Linux we can use the system call table in the header file
/usr/include/asm/unistd.h
@ -111,8 +113,8 @@
0: lcr %r0,%r2; \
basr %r1,0; \
1: al %r1,2f-1b(%r1); \
l %r1,SYSCALL_ERROR_ERRNO@gotntpoff(%r1) \
ear %r2,%a0 \
l %r1,SYSCALL_ERROR_ERRNO@gotntpoff(%r1); \
ear %r2,%a0; \
st %r0,0(%r1,%r2); \
lhi %r2,-1; \
br %r14; \
@ -261,4 +263,24 @@
#define ASMFMT_4 , "0" (gpr2), "d" (gpr3), "d" (gpr4), "d" (gpr5)
#define ASMFMT_5 , "0" (gpr2), "d" (gpr3), "d" (gpr4), "d" (gpr5), "d" (gpr6)
/* Pointer mangling support. */
#if defined NOT_IN_libc && defined IS_IN_rtld
/* We cannot use the thread descriptor because in ld.so we use setjmp
earlier than the descriptor is initialized. */
#else
/* For the time being just use stack_guard rather than a separate
pointer_guard. */
# ifdef __ASSEMBLER__
# define PTR_MANGLE(reg, tmpreg) \
ear tmpreg,%a0; \
x reg,STACK_GUARD(tmpreg)
# define PTR_DEMANGLE(reg, tmpreg) PTR_MANGLE (reg, tmpreg)
# else
# define PTR_MANGLE(var) \
(var) = (void *) ((uintptr_t) (var) ^ THREAD_GET_POINTER_GUARD ())
# define PTR_DEMANGLE(var) PTR_MANGLE (var)
# endif
#endif
#endif /* _LINUX_S390_SYSDEP_H */

View File

@ -128,6 +128,7 @@ L(socket_cancel):
j 4b
#endif
SYSCALL_ERROR_HANDLER
END (__socket)
#ifndef NO_WEAK_ALIAS

View File

@ -1,5 +1,5 @@
/* Assembler macros for 64 bit S/390.
Copyright (C) 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
Copyright (C) 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
Contributed by Martin Schwidefsky (schwidefsky@de.ibm.com).
This file is part of the GNU C Library.
@ -24,6 +24,7 @@
#include <sysdeps/s390/s390-64/sysdep.h>
#include <sysdeps/unix/sysdep.h>
#include <dl-sysdep.h> /* For RTLD_PRIVATE_ERRNO. */
#include <tls.h>
/* For Linux we can use the system call table in the header file
/usr/include/asm/unistd.h
@ -263,4 +264,25 @@
#define ASMFMT_4 , "0" (gpr2), "d" (gpr3), "d" (gpr4), "d" (gpr5)
#define ASMFMT_5 , "0" (gpr2), "d" (gpr3), "d" (gpr4), "d" (gpr5), "d" (gpr6)
/* Pointer mangling support. */
#if defined NOT_IN_libc && defined IS_IN_rtld
/* We cannot use the thread descriptor because in ld.so we use setjmp
earlier than the descriptor is initialized. */
#else
/* For the time being just use stack_guard rather than a separate
pointer_guard. */
# ifdef __ASSEMBLER__
# define PTR_MANGLE(reg, tmpreg) \
ear tmpreg,%a0; \
sllg tmpreg,tmpreg,32; \
ear tmpreg,%a1; \
xg reg,STACK_GUARD(tmpreg)
# define PTR_DEMANGLE(reg, tmpreg) PTR_MANGLE (reg, tmpreg)
# else
# define PTR_MANGLE(var) \
(var) = (void *) ((uintptr_t) (var) ^ THREAD_GET_POINTER_GUARD ())
# define PTR_DEMANGLE(var) PTR_MANGLE (var)
# endif
#endif
#endif /* _LINUX_S390_SYSDEP_H */

View File

@ -1,4 +1,4 @@
/* Copyright (C) 2000 Free Software Foundation, Inc.
/* Copyright (C) 2000,2005 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
@ -19,6 +19,65 @@
#ifndef _SYS_USER_H
#define _SYS_USER_H 1
#include <asm/user.h>
/* The whole purpose of this file is for GDB and GDB only. Don't read
too much into it. Don't use it for anything other than GDB unless
you know what you are doing. */
struct _user_psw_struct
{
unsigned long mask;
unsigned long addr;
};
struct _user_fpregs_struct
{
unsigned int fpc;
double fprs[16];
};
struct _user_per_struct
{
unsigned long control_regs[3];
unsigned single_step : 1;
unsigned instruction_fetch : 1;
unsigned : 30;
unsigned long starting_addr;
unsigned long ending_addr;
unsigned short perc_atmid;
unsigned long address;
unsigned char access_id;
};
struct _user_regs_struct
{
struct _user_psw_struct psw; /* Program status word. */
unsigned long gprs[16]; /* General purpose registers. */
unsigned int acrs[16]; /* Access registers. */
unsigned long orig_gpr2; /* Original gpr2. */
struct _user_fpregs_struct fp_regs; /* Floating point registers. */
struct _user_per_struct per_info; /* Hardware tracing registers. */
unsigned long ieee_instruction_pointer;
};
struct user {
struct _user_regs_struct regs; /* User registers. */
unsigned long int u_tsize; /* Text segment size (pages). */
unsigned long int u_dsize; /* Data segment size (pages). */
unsigned long int u_ssize; /* Stack segment size (pages). */
unsigned long start_code; /* Starting address of text. */
unsigned long start_stack; /* Starting address of stack area. */
long int signal; /* Signal causing the core dump. */
struct _user_regs_struct *u_ar0; /* Help gdb find registers. */
unsigned long magic; /* Identifies a core file. */
char u_comm[32]; /* User command naem. */
};
#define PAGE_SHIFT 12
#define PAGE_SIZE (1UL << PAGE_SHIFT)
#define PAGE_MASK (~(PAGE_SIZE-1))
#define NBPG PAGE_SIZE
#define UPAGES 1
#define HOST_TEXT_START_ADDR (u.start_code)
#define HOST_STACK_END_ADDR (u.start_stack + u.u_ssize * NBPG)
#endif /* _SYS_USER_H */

View File

@ -40,7 +40,11 @@
The .S files for the other calls just #define socket and #include this. */
#ifndef __socket
#define __socket P(__,socket)
# ifndef NO_WEAK_ALIAS
# define __socket P(__,socket)
# else
# define __socket socket
# endif
#endif
.globl __socket
@ -105,4 +109,6 @@ ENTRY (__socket)
END (__socket)
#ifndef NO_WEAK_ALIAS
weak_alias (__socket, socket)
#endif

View File

@ -40,7 +40,11 @@
The .S files for the other calls just #define socket and #include this. */
#ifndef __socket
#define __socket P(__,socket)
# ifndef NO_WEAK_ALIAS
# define __socket P(__,socket)
# else
# define __socket socket
# endif
#endif
.globl __socket
@ -107,4 +111,6 @@ ENTRY (__socket)
END (__socket)
#ifndef NO_WEAK_ALIAS
weak_alias (__socket, socket)
#endif