mirror of
https://sourceware.org/git/glibc.git
synced 2025-05-19 05:53:43 +03:00
parent
43f1b09e83
commit
f9126cc23e
@ -1,5 +1,8 @@
|
|||||||
2005-10-14 Ulrich Drepper <drepper@redhat.com>
|
2005-10-14 Ulrich Drepper <drepper@redhat.com>
|
||||||
|
|
||||||
|
[BZ #982]
|
||||||
|
* locales/ml_IN: Fix title.
|
||||||
|
|
||||||
[BZ #981]
|
[BZ #981]
|
||||||
* locales/ca_ES: Fix title.
|
* locales/ca_ES: Fix title.
|
||||||
|
|
||||||
|
@ -19,7 +19,7 @@ escape_char /
|
|||||||
% for commercial purposes.
|
% for commercial purposes.
|
||||||
|
|
||||||
LC_IDENTIFICATION
|
LC_IDENTIFICATION
|
||||||
title "Catalan locale for Catalonia"
|
title "Catalan locale for Spain"
|
||||||
source "RAP"
|
source "RAP"
|
||||||
address ""
|
address ""
|
||||||
contact ""
|
contact ""
|
||||||
|
@ -7,7 +7,7 @@ escape_char /
|
|||||||
%
|
%
|
||||||
|
|
||||||
LC_IDENTIFICATION
|
LC_IDENTIFICATION
|
||||||
title "Yiddish Language locale"
|
title "Yiddish Language locale for the USA"
|
||||||
source "http:////www.uyip.org//"
|
source "http:////www.uyip.org//"
|
||||||
address ""
|
address ""
|
||||||
contact "Pablo Saratxaga"
|
contact "Pablo Saratxaga"
|
||||||
|
@ -1,3 +1,11 @@
|
|||||||
|
2005-10-14 Jakub Jelinek <jakub@redhat.com>
|
||||||
|
Ulrich Drepper <drepper@redhat.com>
|
||||||
|
|
||||||
|
* sysdeps/unix/sysv/linux/x86_64/pthread_once.S: Fix stack
|
||||||
|
alignment in callback function.
|
||||||
|
* Makefile: Add rules to build and run tst-align3.
|
||||||
|
* tst-align3.c: New file.
|
||||||
|
|
||||||
2005-10-03 Jakub Jelinek <jakub@redhat.com>
|
2005-10-03 Jakub Jelinek <jakub@redhat.com>
|
||||||
|
|
||||||
* allocatestack.c (setxid_signal_thread): Add
|
* allocatestack.c (setxid_signal_thread): Add
|
||||||
|
@ -205,7 +205,7 @@ tests = tst-attr1 tst-attr2 tst-attr3 \
|
|||||||
tst-sem1 tst-sem2 tst-sem3 tst-sem4 tst-sem5 tst-sem6 tst-sem7 \
|
tst-sem1 tst-sem2 tst-sem3 tst-sem4 tst-sem5 tst-sem6 tst-sem7 \
|
||||||
tst-sem8 tst-sem9 \
|
tst-sem8 tst-sem9 \
|
||||||
tst-barrier1 tst-barrier2 tst-barrier3 tst-barrier4 \
|
tst-barrier1 tst-barrier2 tst-barrier3 tst-barrier4 \
|
||||||
tst-align tst-align2 \
|
tst-align tst-align2 tst-align3 \
|
||||||
tst-basic1 tst-basic2 tst-basic3 tst-basic4 tst-basic5 tst-basic6 \
|
tst-basic1 tst-basic2 tst-basic3 tst-basic4 tst-basic5 tst-basic6 \
|
||||||
tst-kill1 tst-kill2 tst-kill3 tst-kill4 tst-kill5 tst-kill6 \
|
tst-kill1 tst-kill2 tst-kill3 tst-kill4 tst-kill5 tst-kill6 \
|
||||||
tst-raise1 \
|
tst-raise1 \
|
||||||
@ -412,6 +412,7 @@ CFLAGS-tst-cleanupx4.c += -fexceptions
|
|||||||
CFLAGS-tst-oncex3.c += -fexceptions
|
CFLAGS-tst-oncex3.c += -fexceptions
|
||||||
CFLAGS-tst-oncex4.c += -fexceptions
|
CFLAGS-tst-oncex4.c += -fexceptions
|
||||||
CFLAGS-tst-align.c += $(stack-align-test-flags)
|
CFLAGS-tst-align.c += $(stack-align-test-flags)
|
||||||
|
CFLAGS-tst-align3.c += $(stack-align-test-flags)
|
||||||
CFLAGS-tst-initializers1.c += -W -Wall -Werror
|
CFLAGS-tst-initializers1.c += -W -Wall -Werror
|
||||||
|
|
||||||
tst-cancel7-ARGS = --command "$(built-program-cmd)"
|
tst-cancel7-ARGS = --command "$(built-program-cmd)"
|
||||||
|
@ -86,9 +86,11 @@ __pthread_once:
|
|||||||
/* Preserve the pointer to the control variable. */
|
/* Preserve the pointer to the control variable. */
|
||||||
3: pushq %rdi
|
3: pushq %rdi
|
||||||
.Lpush_rdi:
|
.Lpush_rdi:
|
||||||
|
pushq %rdi
|
||||||
|
.Lpush_rdi2:
|
||||||
|
|
||||||
.LcleanupSTART:
|
.LcleanupSTART:
|
||||||
callq *8(%rsp)
|
callq *16(%rsp)
|
||||||
.LcleanupEND:
|
.LcleanupEND:
|
||||||
|
|
||||||
/* Get the control variable address back. */
|
/* Get the control variable address back. */
|
||||||
@ -99,6 +101,9 @@ __pthread_once:
|
|||||||
LOCK
|
LOCK
|
||||||
incl (%rdi)
|
incl (%rdi)
|
||||||
|
|
||||||
|
addq $8, %rsp
|
||||||
|
.Ladd1:
|
||||||
|
|
||||||
/* Wake up all other threads. */
|
/* Wake up all other threads. */
|
||||||
movl $0x7fffffff, %edx
|
movl $0x7fffffff, %edx
|
||||||
movl $FUTEX_WAKE, %esi
|
movl $FUTEX_WAKE, %esi
|
||||||
@ -106,7 +111,7 @@ __pthread_once:
|
|||||||
syscall
|
syscall
|
||||||
|
|
||||||
4: addq $8, %rsp
|
4: addq $8, %rsp
|
||||||
.Ladd:
|
.Ladd2:
|
||||||
xorl %eax, %eax
|
xorl %eax, %eax
|
||||||
retq
|
retq
|
||||||
|
|
||||||
@ -224,20 +229,28 @@ clear_once_control:
|
|||||||
.byte 14 # DW_CFA_def_cfa_offset
|
.byte 14 # DW_CFA_def_cfa_offset
|
||||||
.uleb128 24
|
.uleb128 24
|
||||||
.byte 4 # DW_CFA_advance_loc4
|
.byte 4 # DW_CFA_advance_loc4
|
||||||
.long .Lpop_rdi-.Lpush_rdi
|
.long .Lpush_rdi2-.Lpush_rdi
|
||||||
|
.byte 14 # DW_CFA_def_cfa_offset
|
||||||
|
.uleb128 32
|
||||||
|
.byte 4 # DW_CFA_advance_loc4
|
||||||
|
.long .Lpop_rdi-.Lpush_rdi2
|
||||||
|
.byte 14 # DW_CFA_def_cfa_offset
|
||||||
|
.uleb128 24
|
||||||
|
.byte 4 # DW_CFA_advance_loc4
|
||||||
|
.long .Ladd1-.Lpop_rdi
|
||||||
.byte 14 # DW_CFA_def_cfa_offset
|
.byte 14 # DW_CFA_def_cfa_offset
|
||||||
.uleb128 16
|
.uleb128 16
|
||||||
.byte 4 # DW_CFA_advance_loc4
|
.byte 4 # DW_CFA_advance_loc4
|
||||||
.long .Ladd-.Lpop_rdi
|
.long .Ladd2-.Ladd1
|
||||||
.byte 14 # DW_CFA_def_cfa_offset
|
.byte 14 # DW_CFA_def_cfa_offset
|
||||||
.uleb128 8
|
.uleb128 8
|
||||||
.byte 4 # DW_CFA_advance_loc4
|
.byte 4 # DW_CFA_advance_loc4
|
||||||
.long clear_once_control-.Ladd
|
.long clear_once_control-.Ladd2
|
||||||
.byte 14 # DW_CFA_def_cfa_offset
|
.byte 14 # DW_CFA_def_cfa_offset
|
||||||
.uleb128 24
|
.uleb128 32
|
||||||
#if 0
|
#if 0
|
||||||
.byte 4 # DW_CFA_advance_loc4
|
.byte 4 # DW_CFA_advance_loc4
|
||||||
.long .Lpop_rdi2-clear_once_control
|
.long .Lpop_rdi3-clear_once_control
|
||||||
.byte 14 # DW_CFA_def_cfa_offset
|
.byte 14 # DW_CFA_def_cfa_offset
|
||||||
.uleb128 16
|
.uleb128 16
|
||||||
#endif
|
#endif
|
||||||
|
57
nptl/tst-align3.c
Normal file
57
nptl/tst-align3.c
Normal file
@ -0,0 +1,57 @@
|
|||||||
|
/* Copyright (C) 2005 Free Software Foundation, Inc.
|
||||||
|
This file is part of the GNU C Library.
|
||||||
|
Contributed by Jakub Jelinek <jakub@redhat.com>, 2005.
|
||||||
|
|
||||||
|
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. */
|
||||||
|
|
||||||
|
#include <pthread.h>
|
||||||
|
#include <stdbool.h>
|
||||||
|
#include <stdint.h>
|
||||||
|
#include <stdio.h>
|
||||||
|
#include <tst-stack-align.h>
|
||||||
|
|
||||||
|
static bool ok = true;
|
||||||
|
static pthread_once_t once = PTHREAD_ONCE_INIT;
|
||||||
|
|
||||||
|
static void
|
||||||
|
once_test (void)
|
||||||
|
{
|
||||||
|
puts ("in once_test");
|
||||||
|
|
||||||
|
if (TEST_STACK_ALIGN ())
|
||||||
|
ok = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
static int
|
||||||
|
do_test (void)
|
||||||
|
{
|
||||||
|
puts ("in main");
|
||||||
|
|
||||||
|
if (TEST_STACK_ALIGN ())
|
||||||
|
ok = false;
|
||||||
|
|
||||||
|
if (pthread_once (&once, once_test))
|
||||||
|
{
|
||||||
|
puts ("pthread once failed");
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
return ok ? 0 : 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
#define TEST_FUNCTION do_test ()
|
||||||
|
#include "../test-skeleton.c"
|
Loading…
x
Reference in New Issue
Block a user