+2008-04-09 Ulrich Drepper <drepper@redhat.com>
+
+ * stdlib/tst-makecontext.c: Change parameter to cf to negative
+ value to check for correct sign extension.
+
+ [BZ #5436]
+ * sysdeps/unix/sysv/linux/x86_64/makecontext.c (__makecontext):
+ Copy 64-bit parameter values even though this is not required in
+ the standard.
+
+ * sysdeps/unix/sysv/linux/x86_64/vfork.S (__vfork): Record return
+ PC save.
+
2008-02-14 Daniel Jacobowitz <dan@codesourcery.com>
* sysdeps/unix/sysv/linux/i386/vfork.S (__vfork): Record return
#! /bin/sh
# Test nl_langinfo.
-# Copyright (C) 2000, 2001, 2003, 2007 Free Software Foundation, Inc.
+# Copyright (C) 2000, 2001, 2003, 2007, 2008 Free Software Foundation, Inc.
# This file is part of the GNU C Library.
#
de_DE.UTF-8 THOUSEP .
de_DE.UTF-8 YESEXPR ^[jJyY].*
de_DE.UTF-8 NOEXPR ^[nN].*
-fr_FR.ISO-8859-1 ABDAY_1 dim
-fr_FR.ISO-8859-1 ABDAY_2 lun
-fr_FR.ISO-8859-1 ABDAY_3 mar
-fr_FR.ISO-8859-1 ABDAY_4 mer
-fr_FR.ISO-8859-1 ABDAY_5 jeu
-fr_FR.ISO-8859-1 ABDAY_6 ven
-fr_FR.ISO-8859-1 ABDAY_7 sam
+fr_FR.ISO-8859-1 ABDAY_1 dim.
+fr_FR.ISO-8859-1 ABDAY_2 lun.
+fr_FR.ISO-8859-1 ABDAY_3 mar.
+fr_FR.ISO-8859-1 ABDAY_4 mer.
+fr_FR.ISO-8859-1 ABDAY_5 jeu.
+fr_FR.ISO-8859-1 ABDAY_6 ven.
+fr_FR.ISO-8859-1 ABDAY_7 sam.
fr_FR.ISO-8859-1 DAY_1 dimanche
fr_FR.ISO-8859-1 DAY_2 lundi
fr_FR.ISO-8859-1 DAY_3 mardi
fr_FR.ISO-8859-1 DAY_5 jeudi
fr_FR.ISO-8859-1 DAY_6 vendredi
fr_FR.ISO-8859-1 DAY_7 samedi
-fr_FR.ISO-8859-1 ABMON_1 jan
-fr_FR.ISO-8859-1 ABMON_2 fév
-fr_FR.ISO-8859-1 ABMON_3 mar
-fr_FR.ISO-8859-1 ABMON_4 avr
+fr_FR.ISO-8859-1 ABMON_1 janv.
+fr_FR.ISO-8859-1 ABMON_2 févr.
+fr_FR.ISO-8859-1 ABMON_3 mars
+fr_FR.ISO-8859-1 ABMON_4 avril
fr_FR.ISO-8859-1 ABMON_5 mai
-fr_FR.ISO-8859-1 ABMON_6 jun
-fr_FR.ISO-8859-1 ABMON_7 jui
-fr_FR.ISO-8859-1 ABMON_8 aoû
-fr_FR.ISO-8859-1 ABMON_9 sep
-fr_FR.ISO-8859-1 ABMON_10 oct
-fr_FR.ISO-8859-1 ABMON_11 nov
-fr_FR.ISO-8859-1 ABMON_12 déc
+fr_FR.ISO-8859-1 ABMON_6 juin
+fr_FR.ISO-8859-1 ABMON_7 juil.
+fr_FR.ISO-8859-1 ABMON_8 août
+fr_FR.ISO-8859-1 ABMON_9 sept.
+fr_FR.ISO-8859-1 ABMON_10 oct.
+fr_FR.ISO-8859-1 ABMON_11 nov.
+fr_FR.ISO-8859-1 ABMON_12 déc.
fr_FR.ISO-8859-1 MON_1 janvier
fr_FR.ISO-8859-1 MON_2 février
fr_FR.ISO-8859-1 MON_3 mars
fr_FR.ISO-8859-1 MON_11 novembre
fr_FR.ISO-8859-1 MON_12 décembre
fr_FR.ISO-8859-1 D_T_FMT "%a %d %b %Y %T %Z"
-fr_FR.ISO-8859-1 D_FMT "%d.%m.%Y"
+fr_FR.ISO-8859-1 D_FMT "%d/%m/%Y"
fr_FR.ISO-8859-1 T_FMT "%T"
fr_FR.ISO-8859-1 RADIXCHAR ,
fr_FR.ISO-8859-1 THOUSEP " "
-/* Copyright (C) 2002,2003,2004,2005,2006,2007 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2007, 2008 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
/* If pthread_create is present, libgcc_eh.a and libsupc++.a expects some other POSIX thread
functions to be present as well. */
PTHREAD_STATIC_FN_REQUIRE (pthread_mutex_lock)
+PTHREAD_STATIC_FN_REQUIRE (pthread_mutex_trylock)
PTHREAD_STATIC_FN_REQUIRE (pthread_mutex_unlock)
PTHREAD_STATIC_FN_REQUIRE (pthread_once)
PTHREAD_STATIC_FN_REQUIRE (pthread_cancel)
PTHREAD_STATIC_FN_REQUIRE (pthread_key_create)
+PTHREAD_STATIC_FN_REQUIRE (pthread_key_delete)
PTHREAD_STATIC_FN_REQUIRE (pthread_setspecific)
PTHREAD_STATIC_FN_REQUIRE (pthread_getspecific)
-/* Copyright (C) 2006, 2007 Free Software Foundation, Inc.
+/* Copyright (C) 2006, 2007, 2008 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
void
cf (int i)
{
- if (i != 78 || thr != 94)
+ if (i != -78 || thr != 94)
{
printf ("i %d thr %d\n", i, thr);
exit (1);
ucp.uc_link = NULL;
ucp.uc_stack.ss_sp = st1;
ucp.uc_stack.ss_size = sizeof st1;
- makecontext (&ucp, (void (*) (void)) cf, 1, 78);
+ makecontext (&ucp, (void (*) (void)) cf, 1, -78);
if (setcontext (&ucp) != 0)
{
puts ("setcontext failed");
-/* Copyright (C) 1999, 2002, 2004, 2005 Free Software Foundation, Inc.
+/* Copyright (C) 1999, 2002, 2004, 2005, 2008 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Andreas Schwab <schwab@gnu.org>.
/* Pop the return PC value into ECX. */
popl %ecx
cfi_adjust_cfa_offset (-4)
+ cfi_register (%eip, %ecx)
#ifdef SAVE_PID
SAVE_PID
/* Create new context.
- Copyright (C) 2002, 2004, 2005 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2004, 2005, 2008 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Andreas Jaeger <aj@suse.de>, 2002.
sp[idx_uc_link] = (unsigned long int) ucp->uc_link;
va_start (ap, argc);
- /* Handle arguments. */
+ /* Handle arguments.
+
+ The standard says the parameters must all be int values. This is
+ an historic accident and would be done differently today. For
+ x86-64 all integer values are passed as 64-bit values and
+ therefore extending the API to copy 64-bit values instead of
+ 32-bit ints makes sense. It does not break existing
+ functionality and it does not violate the standard which says
+ that passing non-int values means undefined behavior. */
for (i = 0; i < argc; ++i)
switch (i)
{
case 0:
- ucp->uc_mcontext.gregs [REG_RDI] = va_arg (ap, int);
+ ucp->uc_mcontext.gregs[REG_RDI] = va_arg (ap, long int);
break;
case 1:
- ucp->uc_mcontext.gregs [REG_RSI] = va_arg (ap, int);
+ ucp->uc_mcontext.gregs[REG_RSI] = va_arg (ap, long int);
break;
case 2:
- ucp->uc_mcontext.gregs [REG_RDX] = va_arg (ap, int);
+ ucp->uc_mcontext.gregs[REG_RDX] = va_arg (ap, long int);
break;
case 3:
- ucp->uc_mcontext.gregs [REG_RCX] = va_arg (ap, int);
+ ucp->uc_mcontext.gregs[REG_RCX] = va_arg (ap, long int);
break;
case 4:
- ucp->uc_mcontext.gregs [REG_R8] = va_arg (ap, int);
+ ucp->uc_mcontext.gregs[REG_R8] = va_arg (ap, long int);
break;
case 5:
- ucp->uc_mcontext.gregs [REG_R9] = va_arg (ap, int);
+ ucp->uc_mcontext.gregs[REG_R9] = va_arg (ap, long int);
break;
default:
/* Put value on stack. */
- sp[(i - 5)] = va_arg (ap, int);
+ sp[i - 5] = va_arg (ap, unsigned long int);
break;
}
va_end (ap);
-/* Copyright (C) 2001, 2002, 2004 Free Software Foundation, Inc.
+/* Copyright (C) 2001, 2002, 2004, 2008 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
is preserved by the syscall and that we're allowed to destroy. */
popq %rdi
cfi_adjust_cfa_offset(-8)
+ cfi_register(%rip, %rdi)
#ifdef SAVE_PID
SAVE_PID