[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[commits] r9570 - in /trunk/libc: ./ hurd/ include/ nptl/ nptl/sysdeps/unix/sysv/linux/s390/s390-32/ nptl/sysdeps/unix/sysv/linux/s390...



Author: joseph
Date: Wed Dec 30 09:36:00 2009
New Revision: 9570

Log:
Merge changes between r9495 and r9569 from /fsf/trunk.

Added:
    trunk/libc/stdlib/tst-makecontext3.c
      - copied unchanged from r9569, fsf/trunk/libc/stdlib/tst-makecontext3.c
Modified:
    trunk/libc/ChangeLog
    trunk/libc/configure
    trunk/libc/configure.in
    trunk/libc/hurd/hurdioctl.c
    trunk/libc/include/stdlib.h
    trunk/libc/nptl/ChangeLog
    trunk/libc/nptl/sysdeps/unix/sysv/linux/s390/s390-32/pt-initfini.c
    trunk/libc/nptl/sysdeps/unix/sysv/linux/s390/s390-64/pt-initfini.c
    trunk/libc/stdlib/Makefile
    trunk/libc/stdlib/tst-setcontext.c
    trunk/libc/sysdeps/mach/hurd/getcwd.c
    trunk/libc/sysdeps/s390/s390-32/dl-machine.h
    trunk/libc/sysdeps/s390/s390-64/dl-machine.h
    trunk/libc/sysdeps/unix/sysv/linux/futimens.c

Modified: trunk/libc/ChangeLog
==============================================================================
--- trunk/libc/ChangeLog (original)
+++ trunk/libc/ChangeLog Wed Dec 30 09:36:00 2009
@@ -1,3 +1,45 @@
+2009-12-15  Maciej W. Rozycki  <macro@xxxxxxxxxxxxxxxx>
+
+	[BZ #11115]
+	* stdlib/tst-makecontext3.c: New file.
+	* stdlib/Makefile (tests): Add new test.
+
+	* stdlib/tst-setcontext.c (check_called): Fix a typo.
+
+2009-12-17  H.J. Lu  <hongjiu.lu@xxxxxxxxx>
+
+	* configure.in: Enable multi-arch by default if the assembler
+	supports gnu_indirect_function symbol type and the architecture
+	supports it.
+
+2009-12-23  Ulrich Drepper  <drepper@xxxxxxxxxx>
+
+	* include/stdlib.h: Exclude some includes and prototypes if _ISOMAC
+	is defined.
+
+2009-12-22  Samuel Thibault  <samuel.thibault@xxxxxxxxxxxx>
+
+	* hurd/hurdioctl.c (_hurd_locked_install_cttyid): Set newctty to
+	MACH_PORT_NULL when id != cttyid.
+
+2009-12-20  Samuel Thibault  <samuel.thibault@xxxxxxxxxxxx>
+
+	* sysdeps/mach/hurd/getcwd.c (cleanup): Do not call
+	__mach_port_deallocate on rootdevid.
+
+2009-12-17  Martin Schwidefsky  <schwidefsky@xxxxxxxxxx>
+
+	* sysdeps/s390/s390-32/dl-machine.h (elf_machine_rela): Handle
+	R_390_PC32DBL. Remove unneeded R_390_PLT16DBL.
+	* sysdeps/s390/s390-32/dl-machine.h (elf_machine_rela): Remove
+	unneeded R_390_PLT16DBL and R_390_PLT32DBL.
+
+2009-12-21  Ulrich Drepper  <drepper@xxxxxxxxxx>
+
+	[BZ #10992]
+	* sysdeps/unix/sysv/linux/futimens.c: Handle AT_FDCWD.
+	Patch by Eric Blake <ebb9@xxxxxxx>.
+
 2009-12-15  Ulrich Drepper  <drepper@xxxxxxxxxx>
 
 	[BZ #11093]

Modified: trunk/libc/configure
==============================================================================
--- trunk/libc/configure (original)
+++ trunk/libc/configure Wed Dec 30 09:36:00 2009
@@ -725,12 +725,12 @@
 sysdeps_add_ons
 sysnames
 submachine
+multi_arch
 base_machine
 add_on_subdirs
 add_ons
 libc_cv_nss_crypt
 experimental_malloc
-multi_arch
 REPORT_BUGS_TEXI
 REPORT_BUGS_TO
 PKGVERSION
@@ -3869,17 +3869,12 @@
 if test "${enable_multi_arch+set}" = set; then
   enableval=$enable_multi_arch; multi_arch=$enableval
 else
-  multi_arch=no
-fi
-
-if test x"$multi_arch" = xyes; then
-  cat >>confdefs.h <<\_ACEOF
-#define USE_MULTIARCH 1
-_ACEOF
-
+  multi_arch=default
+fi
+
+if test x"$multi_arch" != xno; then
   multi_arch_d=/multiarch
 fi
-
 
 # Check whether --enable-experimental-malloc was given.
 if test "${enable_experimental_malloc+set}" = set; then
@@ -4427,6 +4422,44 @@
   done
 done
 
+# If the assembler supports gnu_indirect_function symbol type and the
+# architecture supports multi-arch, we enable multi-arch by default.
+if test "$multi_arch" = default; then
+{ $as_echo "$as_me:$LINENO: checking for assembler gnu_indirect_function symbol type support" >&5
+$as_echo_n "checking for assembler gnu_indirect_function symbol type support... " >&6; }
+if test "${libc_cv_asm_gnu_indirect_function+set}" = set; then
+  $as_echo_n "(cached) " >&6
+else
+  cat > conftest.s <<EOF
+.type foo,%gnu_indirect_function
+EOF
+if ${CC-cc} -c $ASFLAGS conftest.s 1>&5 2>&5;
+then
+  libc_cv_asm_gnu_indirect_function=yes
+else
+  libc_cv_asm_gnu_indirect_function=no
+fi
+rm -f conftest*
+fi
+{ $as_echo "$as_me:$LINENO: result: $libc_cv_asm_gnu_indirect_function" >&5
+$as_echo "$libc_cv_asm_gnu_indirect_function" >&6; }
+  multi_arch=no
+  if test "$libc_cv_asm_gnu_indirect_function" = yes; then
+    case $sysnames_add_ons$sysnames in
+    *"$multi_arch_d"*)
+       multi_arch=yes
+      ;;
+    esac
+  fi
+fi
+if test x"$multi_arch" = xyes; then
+  cat >>confdefs.h <<\_ACEOF
+#define USE_MULTIARCH 1
+_ACEOF
+
+fi
+
+
 if test -z "$os_used" && test "$os" != none; then
   { { $as_echo "$as_me:$LINENO: error: Operating system $os is not supported." >&5
 $as_echo "$as_me: error: Operating system $os is not supported." >&2;}

Modified: trunk/libc/configure.in
==============================================================================
--- trunk/libc/configure.in (original)
+++ trunk/libc/configure.in Wed Dec 30 09:36:00 2009
@@ -277,12 +277,10 @@
 	      AC_HELP_STRING([--enable-multi-arch],
 			     [enable single DSO with optimizations for multiple architectures]),
 	      [multi_arch=$enableval],
-	      [multi_arch=no])
-if test x"$multi_arch" = xyes; then
-  AC_DEFINE(USE_MULTIARCH)
+	      [multi_arch=default])
+if test x"$multi_arch" != xno; then
   multi_arch_d=/multiarch
 fi
-AC_SUBST(multi_arch)
 
 AC_ARG_ENABLE([experimental-malloc],
 	      AC_HELP_STRING([--enable-experimental-malloc],
@@ -727,6 +725,35 @@
   done
 done
 
+# If the assembler supports gnu_indirect_function symbol type and the
+# architecture supports multi-arch, we enable multi-arch by default.
+if test "$multi_arch" = default; then
+AC_CACHE_CHECK([for assembler gnu_indirect_function symbol type support],
+               libc_cv_asm_gnu_indirect_function, [dnl
+cat > conftest.s <<EOF
+.type foo,%gnu_indirect_function
+EOF
+if ${CC-cc} -c $ASFLAGS conftest.s 1>&AS_MESSAGE_LOG_FD 2>&AS_MESSAGE_LOG_FD;
+then
+  libc_cv_asm_gnu_indirect_function=yes
+else
+  libc_cv_asm_gnu_indirect_function=no
+fi
+rm -f conftest*])
+  multi_arch=no
+  if test "$libc_cv_asm_gnu_indirect_function" = yes; then
+    case $sysnames_add_ons$sysnames in
+    *"$multi_arch_d"*)
+       multi_arch=yes
+      ;;
+    esac
+  fi
+fi
+if test x"$multi_arch" = xyes; then
+  AC_DEFINE(USE_MULTIARCH)
+fi
+AC_SUBST(multi_arch)
+
 if test -z "$os_used" && test "$os" != none; then
   AC_MSG_ERROR(Operating system $os is not supported.)
 fi

Modified: trunk/libc/hurd/hurdioctl.c
==============================================================================
--- trunk/libc/hurd/hurdioctl.c (original)
+++ trunk/libc/hurd/hurdioctl.c Wed Dec 30 09:36:00 2009
@@ -1,5 +1,6 @@
 /* ioctl commands which must be done in the C library.
-   Copyright (C) 1994,95,96,97,99,2001,02 Free Software Foundation, Inc.
+   Copyright (C) 1994,95,96,97,99,2001,2002,2009
+	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
@@ -169,33 +170,28 @@
   for (i = 0; i < _hurd_dtablesize; ++i)
     {
       struct hurd_fd *const d = _hurd_dtable[i];
-      mach_port_t newctty;
+      mach_port_t newctty = MACH_PORT_NULL;
 
       if (d == NULL)
 	/* Nothing to do for an unused descriptor cell.  */
 	continue;
 
-      if (cttyid == MACH_PORT_NULL)
-	/* We now have no controlling tty at all.  */
-	newctty = MACH_PORT_NULL;
-      else
+      if (cttyid != MACH_PORT_NULL)
+	/* We do have some controlling tty.  */
 	HURD_PORT_USE (&d->port,
 		       ({ mach_port_t id;
 			  /* Get the io object's cttyid port.  */
 			  if (! __term_getctty (port, &id))
 			    {
-			      if (id == cttyid && /* Is it ours?  */
+			      if (id == cttyid /* Is it ours?  */
 				  /* Get the ctty io port.  */
-				  __term_open_ctty (port,
-						    _hurd_pid, _hurd_pgrp,
-						    &newctty))
+				  && __term_open_ctty (port,
+						       _hurd_pid, _hurd_pgrp,
+						       &newctty))
 				/* XXX it is our ctty but the call failed? */
 				newctty = MACH_PORT_NULL;
-			      __mach_port_deallocate
-				(__mach_task_self (), (mach_port_t) id);
+			      __mach_port_deallocate (__mach_task_self (), id);
 			    }
-			  else
-			    newctty = MACH_PORT_NULL;
 			  0;
 			}));
 

Modified: trunk/libc/include/stdlib.h
==============================================================================
--- trunk/libc/include/stdlib.h (original)
+++ trunk/libc/include/stdlib.h Wed Dec 30 09:36:00 2009
@@ -9,7 +9,9 @@
 
 /* Now define the internal interfaces.  */
 #ifndef __Need_M_And_C
-# include <sys/stat.h>
+# ifndef _ISOMAC
+#  include <sys/stat.h>
+# endif
 
 __BEGIN_DECLS
 
@@ -78,8 +80,10 @@
 extern char *__canonicalize_file_name (__const char *__name);
 extern char *__realpath (__const char *__name, char *__resolved);
 extern int __ptsname_r (int __fd, char *__buf, size_t __buflen);
+# ifndef _ISOMAC
 extern int __ptsname_internal (int fd, char *buf, size_t buflen,
 			       struct stat64 *stp);
+# endif
 extern int __getpt (void);
 extern int __posix_openpt (int __oflag);
 

Modified: trunk/libc/nptl/ChangeLog
==============================================================================
--- trunk/libc/nptl/ChangeLog (original)
+++ trunk/libc/nptl/ChangeLog Wed Dec 30 09:36:00 2009
@@ -1,3 +1,9 @@
+2009-12-18  Thomas Schwinge  <thomas@xxxxxxxxxxxxxxxx>
+
+	* sysdeps/unix/sysv/linux/s390/s390-32/pt-initfini.c (_init): Don't
+	call __gmon_start__.
+	* sysdeps/unix/sysv/linux/s390/s390-64/pt-initfini.c (_init): Likewise.
+
 2009-12-17  Ulrich Drepper  <drepper@xxxxxxxxxx>
 
 	* pthread_rwlock_init.c (__pthread_rwlock_init): Simplify code by

Modified: trunk/libc/nptl/sysdeps/unix/sysv/linux/s390/s390-32/pt-initfini.c
==============================================================================
--- trunk/libc/nptl/sysdeps/unix/sysv/linux/s390/s390-32/pt-initfini.c (original)
+++ trunk/libc/nptl/sysdeps/unix/sysv/linux/s390/s390-32/pt-initfini.c Wed Dec 30 09:36:00 2009
@@ -1,5 +1,5 @@
 /* Special .init and .fini section support for S/390.
-   Copyright (C) 2003 Free Software Foundation, Inc.
+   Copyright (C) 2003, 2009 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it
@@ -67,8 +67,6 @@
 .LT1_0:\n\
 .LC13:\n\
 	.long	__pthread_initialize_minimal_internal-.LT1_0\n\
-.LC14:\n\
-	.long	__gmon_start__@GOT\n\
 .LC15:\n\
 	.long	_GLOBAL_OFFSET_TABLE_-.LT1_0\n\
 .LTN1_0:\n\
@@ -80,12 +78,6 @@
 	L     1,.LC13-.LT1_0(13)\n\
 	LA    1,0(1,13)\n\
 	BASR  14,1\n\
-	L     1,.LC14-.LT1_0(13)\n\
-	L     1,0(1,12)\n\
-	LTR   1,1\n\
-	JE    .L22\n\
-	BASR  14,1\n\
-.L22:\n\
 #APP\n\
 	.align 4,0x07\n\
 	END_INIT\n\

Modified: trunk/libc/nptl/sysdeps/unix/sysv/linux/s390/s390-64/pt-initfini.c
==============================================================================
--- trunk/libc/nptl/sysdeps/unix/sysv/linux/s390/s390-64/pt-initfini.c (original)
+++ trunk/libc/nptl/sysdeps/unix/sysv/linux/s390/s390-64/pt-initfini.c Wed Dec 30 09:36:00 2009
@@ -1,5 +1,5 @@
 /* Special .init and .fini section support for 64 bit S/390.
-   Copyright (C) 2003 Free Software Foundation, Inc.
+   Copyright (C) 2003, 2009 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it
@@ -68,12 +68,6 @@
 	STG	1,0(15)\n\
 	LARL	12,_GLOBAL_OFFSET_TABLE_\n\
 	BRASL	14,__pthread_initialize_minimal_internal\n\
-	LARL	1,__gmon_start__@GOTENT\n\
-	LG	1,0(1)\n\
-	LTGR	1,1\n\
-	JE	.L22\n\
-	BASR	14,1\n\
-.L22:\n\
 #APP\n\
 	.align 4,0x07\n\
 	END_INIT\n\

Modified: trunk/libc/stdlib/Makefile
==============================================================================
--- trunk/libc/stdlib/Makefile (original)
+++ trunk/libc/stdlib/Makefile Wed Dec 30 09:36:00 2009
@@ -80,7 +80,7 @@
 		   test-a64l tst-qsort tst-system bug-strtod2		    \
 		   tst-atof1 tst-atof2 tst-strtod2 tst-rand48-2             \
 		   tst-makecontext tst-qsort2 tst-makecontext2 tst-strtod6  \
-		   tst-unsetenv1
+		   tst-unsetenv1 tst-makecontext3
 tests-$(OPTION_EGLIBC_LOCALE_CODE) \
 		+= tst-strtod3 tst-strtod4 tst-strtod5 testmb2
 tests-$(OPTION_POSIX_C_LANG_WIDE_CHAR) \

Modified: trunk/libc/stdlib/tst-setcontext.c
==============================================================================
--- trunk/libc/stdlib/tst-setcontext.c (original)
+++ trunk/libc/stdlib/tst-setcontext.c Wed Dec 30 09:36:00 2009
@@ -133,7 +133,7 @@
 {
   if (back_in_main == 0)
     {
-      puts ("program did no reach main again");
+      puts ("program did not reach main again");
       _exit (1);
     }
 }

Modified: trunk/libc/sysdeps/mach/hurd/getcwd.c
==============================================================================
--- trunk/libc/sysdeps/mach/hurd/getcwd.c (original)
+++ trunk/libc/sysdeps/mach/hurd/getcwd.c Wed Dec 30 09:36:00 2009
@@ -1,4 +1,5 @@
-/* Copyright (C) 1991,92,93,94,95,96,97,98,2002,04 Free Software Foundation, Inc.
+/* Copyright (C) 1991,92,93,94,95,96,97,98,2002,2004,2009
+	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
@@ -60,7 +61,6 @@
       __mach_port_deallocate (__mach_task_self (), thisid);
       __mach_port_deallocate (__mach_task_self (), thisdevid);
       __mach_port_deallocate (__mach_task_self (), rootid);
-      __mach_port_deallocate (__mach_task_self (), rootdevid);
 
       if (dirbuf != NULL)
 	__vm_deallocate (__mach_task_self (),

Modified: trunk/libc/sysdeps/s390/s390-32/dl-machine.h
==============================================================================
--- trunk/libc/sysdeps/s390/s390-32/dl-machine.h (original)
+++ trunk/libc/sysdeps/s390/s390-32/dl-machine.h Wed Dec 30 09:36:00 2009
@@ -389,9 +389,12 @@
 	  *reloc_addr = value + reloc->r_addend - (Elf32_Addr) reloc_addr;
 	  break;
 	case R_390_PC16DBL:
-	case R_390_PLT16DBL:
 	  *(unsigned short *) reloc_addr = (unsigned short)
 	    ((short) (value + reloc->r_addend - (Elf32_Addr) reloc_addr) >> 1);
+	  break;
+	case R_390_PC32DBL:
+	  *(unsigned int *) reloc_addr = (unsigned int)
+	    ((int) (value + reloc->r_addend - (Elf32_Addr) reloc_addr) >> 1);
 	  break;
 	case R_390_PC16:
 	  *(unsigned short *) reloc_addr =

Modified: trunk/libc/sysdeps/s390/s390-64/dl-machine.h
==============================================================================
--- trunk/libc/sysdeps/s390/s390-64/dl-machine.h (original)
+++ trunk/libc/sysdeps/s390/s390-64/dl-machine.h Wed Dec 30 09:36:00 2009
@@ -371,7 +371,6 @@
 	  *reloc_addr = value +reloc->r_addend - (Elf64_Addr) reloc_addr;
 	  break;
 	case R_390_PC32DBL:
-	case R_390_PLT32DBL:
 	  *(unsigned int *) reloc_addr = (unsigned int)
 	    ((int) (value + reloc->r_addend - (Elf64_Addr) reloc_addr) >> 1);
 	  break;
@@ -380,7 +379,6 @@
 	    value + reloc->r_addend - (Elf64_Addr) reloc_addr;
 	  break;
 	case R_390_PC16DBL:
-	case R_390_PLT16DBL:
 	  *(unsigned short *) reloc_addr = (unsigned short)
 	    ((short) (value + reloc->r_addend - (Elf64_Addr) reloc_addr) >> 1);
 	  break;

Modified: trunk/libc/sysdeps/unix/sysv/linux/futimens.c
==============================================================================
--- trunk/libc/sysdeps/unix/sysv/linux/futimens.c (original)
+++ trunk/libc/sysdeps/unix/sysv/linux/futimens.c Wed Dec 30 09:36:00 2009
@@ -33,6 +33,11 @@
 futimens (int fd, const struct timespec tsp[2])
 {
 #ifdef __NR_utimensat
+  if (fd < 0)
+    {
+      __set_errno (EBADF);
+      return -1;
+    }
   return INLINE_SYSCALL (utimensat, 4, fd, NULL, tsp, 0);
 #else
   __set_errno (ENOSYS);