This is the mail archive of the glibc-cvs@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

GNU C Library master sources branch, hjl/x32/master, updated. glibc-2.15-1400-ga8124e7


This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GNU C Library master sources".

The branch, hjl/x32/master has been updated
       via  a8124e7795d9a5170fa67da6fdaed754ad171d31 (commit)
       via  260181b0ef431b31d76160e37413c67862d7ae8c (commit)
       via  dfb5cf8e4e332b41b5655b9c04885128713e842d (commit)
       via  ccd0a08f4e1ac5323cb229fbd401b70e9473b64e (commit)
       via  1f0832d173341250ceb7fb99d932fd6459c66945 (commit)
       via  ccd969f5868c18a1d59444769d1f4d6e3408cc21 (commit)
       via  118759a5bfa9a027617ef7c5dac3fa0daf1e824c (commit)
       via  58f34255ab6fffdd84cd45fade7330ead1573cbf (commit)
       via  7348f481c8db2f499cebed8438f7d28485627fa6 (commit)
       via  8de69b8360cdb7c2bb787fe343bc46c23aeb57c4 (commit)
       via  82205f75fd29479a6401dd8b1d4fa7b6e0d777f5 (commit)
       via  f4bb020d00853f21eb964344b6df33f773ff24fe (commit)
       via  653de9769fd5592295f9e8614e492fdad53d7764 (commit)
       via  2c7b7b55fe17448630c70616dc0f5c23445b8b1a (commit)
       via  f8591f8049a401c898737ca843d87872b93e6ccc (commit)
       via  94c7d826c97ec1ae6ced9f83fe1fe6cfcc235edb (commit)
       via  ce73d683974b3efc9e477cecb62d178e12cd1421 (commit)
       via  72a22e596cb1359fc7e05de6d5de6f35f3eb5785 (commit)
       via  68605433483b08e8a31541d833bf92ff3ecad75c (commit)
       via  03cf7fe31be5964707a54ed82969b9c181f8dd99 (commit)
       via  f04dfbc244efb683e395d40c08c86fb93e679167 (commit)
       via  62bdf9a68363655f0a3d03f930de2bda97a161cc (commit)
       via  5e292e4fa55177b858fa034ab5829de3f7587d76 (commit)
       via  8caf8c87e13f0f7881fa181e2482fe2d06a30456 (commit)
       via  45d348a8598f860b50a336ca4528b5dbd0076f17 (commit)
       via  1a09dc565db1da971ade18d9be7d9ac82646d599 (commit)
       via  1c87aba0f2949199382c193ae584fa034b49a0db (commit)
       via  70c161f555c0400ecc606829a0cf6ef1816a5037 (commit)
       via  c26705334c4f46420fff2d2cad4f3f37b51d7db6 (commit)
       via  3d8fdb9d1097a9683a16846ea00e337607982e15 (commit)
       via  40e45bd5d696c63e6227214179e7e601b60c93e3 (commit)
       via  882e410749f226fba5f83a980b09d0456df26004 (commit)
       via  be08eda54c7cf833ccfa4b8d1f1b1d668c26af66 (commit)
       via  9608531682983e083af717a690f672468022f079 (commit)
       via  0ba7f9e399b6eac5af73368c7be208d8a8489986 (commit)
       via  770bcce7741aa8a990828032ad1358bfdaf549a6 (commit)
       via  a6a056bba719828266eda8793e6d2842882042fe (commit)
       via  cb191f2300ad80e722fa6d2b3be8d9c9512ce7e2 (commit)
      from  e52c80d89a0beb5f3358384da45c6f9659cfd8cc (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
http://sources.redhat.com/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=a8124e7795d9a5170fa67da6fdaed754ad171d31

commit a8124e7795d9a5170fa67da6fdaed754ad171d31
Merge: dfb5cf8 260181b
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Wed May 23 20:34:32 2012 -0700

    Merge remote-tracking branch 'origin/hjl/abi' into hjl/x32/master


http://sources.redhat.com/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=dfb5cf8e4e332b41b5655b9c04885128713e842d

commit dfb5cf8e4e332b41b5655b9c04885128713e842d
Merge: 1f0832d ccd0a08
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Wed May 23 20:05:25 2012 -0700

    Merge remote-tracking branch 'origin/master' into hjl/x32/master


http://sources.redhat.com/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=1f0832d173341250ceb7fb99d932fd6459c66945

commit 1f0832d173341250ceb7fb99d932fd6459c66945
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Wed May 23 20:00:20 2012 -0700

    Set x32 arch_minimum_kernel to 3.4.0

diff --git a/ChangeLog.x32 b/ChangeLog.x32
index 1f5958e..6a386be 100644
--- a/ChangeLog.x32
+++ b/ChangeLog.x32
@@ -1,5 +1,11 @@
 2012-05-23  H.J. Lu  <hongjiu.lu@intel.com>
 
+	* sysdeps/unix/sysv/linux/x86_64/x32/configure.in: Moved to ...
+	* sysdeps/unix/sysv/linux/x86_64/x32/configure: Here.
+	(arch_minimum_kernel): Set to 3.4.0.
+
+2012-05-23  H.J. Lu  <hongjiu.lu@intel.com>
+
 	* Makeconfig ($(common-objpfx)gnu/lib-names.stmp): Depend on
 	scripts/lib-names.awk.
 
diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/configure b/sysdeps/unix/sysv/linux/x86_64/x32/configure
index 6850d00..51fc1e6 100644
--- a/sysdeps/unix/sysv/linux/x86_64/x32/configure
+++ b/sysdeps/unix/sysv/linux/x86_64/x32/configure
@@ -1,9 +1,8 @@
-# This file is generated from configure.in by Autoconf.  DO NOT EDIT!
- # Local configure fragment for sysdeps/unix/sysv/linux/86_64/x32.
+# Local configure fragment for sysdeps/unix/sysv/linux/86_64/x32.
 
 case "$machine" in
 x86_64/x32)
-  test -n "$arch_minimum_kernel" || arch_minimum_kernel=2.6.39
+  test -n "$arch_minimum_kernel" || arch_minimum_kernel=3.4.0
   test -n "$libc_cv_slibdir" ||
   case "$prefix" in
   /usr | /usr/)
diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/configure.in b/sysdeps/unix/sysv/linux/x86_64/x32/configure.in
deleted file mode 100644
index 9e57e59..0000000
--- a/sysdeps/unix/sysv/linux/x86_64/x32/configure.in
+++ /dev/null
@@ -1,19 +0,0 @@
-GLIBC_PROVIDES dnl See aclocal.m4 in the top level source directory.
-# Local configure fragment for sysdeps/unix/sysv/linux/86_64/x32.
-
-case "$machine" in
-x86_64/x32)
-  test -n "$arch_minimum_kernel" || arch_minimum_kernel=2.6.39
-  test -n "$libc_cv_slibdir" ||
-  case "$prefix" in
-  /usr | /usr/)
-    libc_cv_slibdir="/libx32"
-    if test "$libdir" = '${exec_prefix}/lib'; then
-      libdir='${exec_prefix}/libx32';
-      # Locale data can be shared.
-      libc_cv_localedir='${exec_prefix}/lib/locale'
-    fi
-    ;;
-  esac
-  ;;
-esac

http://sources.redhat.com/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=ccd969f5868c18a1d59444769d1f4d6e3408cc21

commit ccd969f5868c18a1d59444769d1f4d6e3408cc21
Merge: 8de69b8 118759a
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Wed May 23 19:58:03 2012 -0700

    Merge remote-tracking branch 'origin/hjl/abi' into hjl/x32/master
    
    Conflicts:
    	sysdeps/unix/sysv/linux/x86_64/Makefile


http://sources.redhat.com/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=8de69b8360cdb7c2bb787fe343bc46c23aeb57c4

commit 8de69b8360cdb7c2bb787fe343bc46c23aeb57c4
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Wed May 23 16:42:42 2012 -0700

    Revert more lib-names.h and stubs.h changes

diff --git a/ChangeLog.x32 b/ChangeLog.x32
index a619608..1f5958e 100644
--- a/ChangeLog.x32
+++ b/ChangeLog.x32
@@ -1,5 +1,18 @@
 2012-05-23  H.J. Lu  <hongjiu.lu@intel.com>
 
+	* Makeconfig ($(common-objpfx)gnu/lib-names.stmp): Depend on
+	scripts/lib-names.awk.
+
+	* Makefile ($(inst_includedir)/gnu/stubs.h): Depend on
+	include/stubs-biarch.h.
+
+	* config.make.in (stubs-biarch_h): Removed.
+	(lib-names_awk): Likewise.
+
+	* configure.in: Don't subst stubs_biarch_h nor lib_names_awk.
+
+2012-05-23  H.J. Lu  <hongjiu.lu@intel.com>
+
 	* sysdeps/unix/sysv/linux/i386/configure.in: Removed.
 	* sysdeps/unix/sysv/linux/i386/configure: Likewise.
 	* sysdeps/unix/sysv/linux/x86_64/configure.in: Likewise.
diff --git a/Makeconfig b/Makeconfig
index e7de726..3a09764 100644
--- a/Makeconfig
+++ b/Makeconfig
@@ -843,7 +843,7 @@ postclean-generated += soversions.mk soversions.i \
 before-compile += $(common-objpfx)gnu/lib-names.h
 ifeq ($(soversions.mk-done),t)
 $(common-objpfx)gnu/lib-names.h: $(common-objpfx)gnu/lib-names.stmp; @:
-$(common-objpfx)gnu/lib-names.stmp: $(..)$(lib-names_awk) \
+$(common-objpfx)gnu/lib-names.stmp: $(..)scripts/lib-names.awk \
 				    $(common-objpfx)soversions.i
 	$(make-target-directory)
 	@rm -f ${@:stmp=T} $@
diff --git a/Makefile b/Makefile
index d2edf75..c0a0cfb 100644
--- a/Makefile
+++ b/Makefile
@@ -175,7 +175,7 @@ installed-stubs = $(inst_includedir)/gnu/stubs.h
 else
 installed-stubs = $(inst_includedir)/gnu/stubs-$(biarch).h
 
-$(inst_includedir)/gnu/stubs.h: $(stubs-biarch_h) $(+force)
+$(inst_includedir)/gnu/stubs.h: include/stubs-biarch.h $(+force)
 	$(make-target-directory)
 	$(INSTALL_DATA) $< $@
 
diff --git a/config.make.in b/config.make.in
index 982fbb8..f0db199 100644
--- a/config.make.in
+++ b/config.make.in
@@ -77,9 +77,6 @@ oldest-abi = @oldest_abi@
 exceptions = @exceptions@
 multi-arch = @multi_arch@
 
-stubs-biarch_h = @stubs_biarch_h@
-lib-names_awk = @lib_names_awk@
-
 mach-interface-list = @mach_interface_list@
 
 have-bash2 = @libc_cv_have_bash2@
diff --git a/configure b/configure
index ae8572f..09a0637 100755
--- a/configure
+++ b/configure
@@ -607,8 +607,6 @@ ac_subst_vars='LTLIBOBJS
 LIBOBJS
 RELEASE
 VERSION
-lib_names_awk
-stubs_biarch_h
 mach_interface_list
 DEFINES
 static_nss
@@ -7824,16 +7822,6 @@ $as_echo "$libc_cv_pic_default" >&6; }
 
 
 
-if test -z "${stubs_biarch_h}"; then
-  stubs_biarch_h=include/stubs-biarch.h
-fi
-
-
-if test -z "${lib_names_awk}"; then
-  lib_names_awk=scripts/lib-names.awk
-fi
-
-
 if test "`(cd $srcdir; pwd)`" = "`pwd`"; then
   config_makefile=
 else
diff --git a/configure.in b/configure.in
index 212291c..38b55a6 100644
--- a/configure.in
+++ b/configure.in
@@ -2181,16 +2181,6 @@ AC_SUBST(DEFINES)
 dnl See sysdeps/mach/configure.in for this variable.
 AC_SUBST(mach_interface_list)
 
-if test -z "${stubs_biarch_h}"; then
-  stubs_biarch_h=include/stubs-biarch.h
-fi
-AC_SUBST(stubs_biarch_h)
-
-if test -z "${lib_names_awk}"; then
-  lib_names_awk=scripts/lib-names.awk
-fi
-AC_SUBST(lib_names_awk)
-
 if test "`(cd $srcdir; pwd)`" = "`pwd`"; then
   config_makefile=
 else

http://sources.redhat.com/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=82205f75fd29479a6401dd8b1d4fa7b6e0d777f5

commit 82205f75fd29479a6401dd8b1d4fa7b6e0d777f5
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Wed May 23 16:38:26 2012 -0700

    Revert x32 lib-names changes

diff --git a/ChangeLog.x32 b/ChangeLog.x32
index b4b0780..a619608 100644
--- a/ChangeLog.x32
+++ b/ChangeLog.x32
@@ -1,5 +1,14 @@
 2012-05-23  H.J. Lu  <hongjiu.lu@intel.com>
 
+	* sysdeps/unix/sysv/linux/i386/configure.in: Removed.
+	* sysdeps/unix/sysv/linux/i386/configure: Likewise.
+	* sysdeps/unix/sysv/linux/x86_64/configure.in: Likewise.
+	* sysdeps/unix/sysv/linux/x86_64/configure: Likewise.
+	* sysdeps/unix/sysv/linux/x86_64/lib-names.awk: Likewise.
+	* sysdeps/unix/sysv/linux/x86_64/stubs-biarch.h: Likewise.
+
+2012-05-23  H.J. Lu  <hongjiu.lu@intel.com>
+
 	* sysdeps/unix/sysv/linux/x86_64/x32/sched_getcpu.S: Rearrange
 	code so that pseudo_end is just ret and the stack pointer is
 	correct also for static library in error case.
diff --git a/sysdeps/unix/sysv/linux/i386/configure b/sysdeps/unix/sysv/linux/i386/configure
deleted file mode 100644
index 482a0b4..0000000
--- a/sysdeps/unix/sysv/linux/i386/configure
+++ /dev/null
@@ -1,4 +0,0 @@
-# This file is generated from configure.in by Autoconf.  DO NOT EDIT!
- # Local configure fragment for sysdeps/unix/sysv/linux/x86_64.
-
-lib_names_awk=sysdeps/unix/sysv/linux/x86_64/lib-names.awk
diff --git a/sysdeps/unix/sysv/linux/i386/configure.in b/sysdeps/unix/sysv/linux/i386/configure.in
deleted file mode 100644
index 8009ee9..0000000
--- a/sysdeps/unix/sysv/linux/i386/configure.in
+++ /dev/null
@@ -1,5 +0,0 @@
-GLIBC_PROVIDES dnl See aclocal.m4 in the top level source directory.
-# Local configure fragment for sysdeps/unix/sysv/linux/x86_64.
-
-dnl Need to handle lib-names properly for x86-64 and x32.
-lib_names_awk=sysdeps/unix/sysv/linux/x86_64/lib-names.awk
diff --git a/sysdeps/unix/sysv/linux/x86_64/configure b/sysdeps/unix/sysv/linux/x86_64/configure
deleted file mode 100644
index 482a0b4..0000000
--- a/sysdeps/unix/sysv/linux/x86_64/configure
+++ /dev/null
@@ -1,4 +0,0 @@
-# This file is generated from configure.in by Autoconf.  DO NOT EDIT!
- # Local configure fragment for sysdeps/unix/sysv/linux/x86_64.
-
-lib_names_awk=sysdeps/unix/sysv/linux/x86_64/lib-names.awk
diff --git a/sysdeps/unix/sysv/linux/x86_64/configure.in b/sysdeps/unix/sysv/linux/x86_64/configure.in
deleted file mode 100644
index 8009ee9..0000000
--- a/sysdeps/unix/sysv/linux/x86_64/configure.in
+++ /dev/null
@@ -1,5 +0,0 @@
-GLIBC_PROVIDES dnl See aclocal.m4 in the top level source directory.
-# Local configure fragment for sysdeps/unix/sysv/linux/x86_64.
-
-dnl Need to handle lib-names properly for x86-64 and x32.
-lib_names_awk=sysdeps/unix/sysv/linux/x86_64/lib-names.awk
diff --git a/sysdeps/unix/sysv/linux/x86_64/lib-names.awk b/sysdeps/unix/sysv/linux/x86_64/lib-names.awk
deleted file mode 100644
index 5a2d0d4..0000000
--- a/sysdeps/unix/sysv/linux/x86_64/lib-names.awk
+++ /dev/null
@@ -1,122 +0,0 @@
-# awk script for soversions.i -> gnu/lib-names.h; see Makeconfig.
-
-$1 != "DEFAULT" { multi = 1 }
-
-#
-{
-  lib = $2;
-  version = $3;
-  if ($3 !~ /^[0-9]/) {
-    soname = $3;
-    extra = $3;
-    sub(/\.so.*$/, "", extra);
-  }
-  else {
-    soname = lib ".so." $3;
-    extra = "";
-  }
-  soname = "\"" soname "\"";
-  lib = toupper(lib);
-  extra = toupper(extra);
-  gsub(/-/, "_", lib);
-  gsub(/-/, "_", extra);
-  if (extra) {
-    if (extra == "LD_LINUX_X32") {
-      x32_macros[$1 FS lib "_SO"] = soname;
-      x32_macros[$1 FS extra "_SO"] = soname;
-      x86_64_macros[$1 FS lib "_SO"] = "\"ld-linux-x86-64.so.2\"";
-      x86_64_macros[$1 FS "LD_LINUX_X86_64_SO"] = "\"ld-linux-x86-64.so.2\"";
-    }
-    else if (extra == "LD_LINUX_X86_64") {
-      x86_64_macros[$1 FS lib "_SO"] = soname;
-      x86_64_macros[$1 FS extra "_SO"] = soname;
-      x32_macros[$1 FS lib "_SO"] = "\"ld-linux-x32.so.2\"";
-      x32_macros[$1 FS "LD_LINUX_X32_SO"] = "\"ld-linux-x32.so.2\"";
-    }
-    else if (extra == "LD_LINUX") {
-      x86_64_macros[$1 FS lib "_SO"] = "\"ld-linux-x86-64.so.2\"";
-      x86_64_macros[$1 FS "LD_LINUX_X86_64_SO"] = "\"ld-linux-x86-64.so.2\"";
-      x32_macros[$1 FS lib "_SO"] = "\"ld-linux-x32.so.2\"";
-      x32_macros[$1 FS "LD_LINUX_X32_SO"] = "\"ld-linux-x32.so.2\"";
-      macros[$1 FS lib "_SO"] = soname;
-      macros[$1 FS extra "_SO"] = soname;
-    }
-    else if (extra != "LD") {
-      macros[$1 FS lib "_SO"] = soname;
-      macros[$1 FS extra "_SO"] = soname;
-    }
-  }
-  else {
-    macros[$1 FS lib "_SO"] = soname;
-  }
-}
-
-END {
-  print "/* This file is automatically generated.";
-  print "   It defines macros to allow user program to find the shared";
-  print "   library files which come as part of GNU libc.  */";
-  print "#ifndef __GNU_LIB_NAMES_H";
-  print "#define __GNU_LIB_NAMES_H	1";
-  print "";
-
-  pfx = multi ? "# define " : "#define ";
-  for (elt in macros) {
-    split(elt, x);
-    line = sprintf("%-40s%s", pfx x[2], macros[elt]);
-    if (x[1] in lines)
-      lines[x[1]] = lines[x[1]] "\n" line;
-    else
-      lines[x[1]] = line;
-  }
-
-  if (multi) {
-    # Print these in a fixed order so the result is identical
-    # on both sides of the coin.
-    pfx = "#  define ";
-    for (elt in x32_macros) {
-      split(elt, x);
-      line = sprintf("%-40s%s", pfx x[2], x32_macros[elt]);
-      if (x[1] in x32_lines)
-	x32_lines[x[1]] = x32_lines[x[1]] "\n" line;
-      else
-	x32_lines[x[1]] = line;
-    }
-    for (elt in x86_64_macros) {
-      split(elt, x);
-      line = sprintf("%-40s%s", pfx x[2], x86_64_macros[elt]);
-      if (x[1] in x86_64_lines)
-	x86_64_lines[x[1]] = x86_64_lines[x[1]] "\n" line;
-      else
-	x86_64_lines[x[1]] = line;
-    }
-    if (!("WORDSIZE32" in lines))
-      lines["WORDSIZE32"] = lines["DEFAULT"];
-    if (!("WORDSIZE64" in lines))
-      lines["WORDSIZE64"] = lines["DEFAULT"];
-    if (!("WORDSIZE32" in x32_lines))
-      x32_lines["WORDSIZE32"] = x32_lines["DEFAULT"];
-    if (!("WORDSIZE64" in x32_lines))
-      x32_lines["WORDSIZE64"] = x32_lines["DEFAULT"];
-    if (!("WORDSIZE32" in x86_64_lines))
-      x86_64_lines["WORDSIZE32"] = x86_64_lines["DEFAULT"];
-    if (!("WORDSIZE64" in x86_64_lines))
-      x86_64_lines["WORDSIZE64"] = x86_64_lines["DEFAULT"];
-    print "#include <bits/wordsize.h>\n";
-    print "#ifndef __x86_64__";
-    cmd = "LC_ALL=C sort"; print lines["WORDSIZE32"] | cmd; close(cmd);
-    print "#else"
-    print "# if __WORDSIZE == 32"
-    cmd = "LC_ALL=C sort"; print x32_lines["WORDSIZE64"] | cmd; close(cmd);
-    print "# else"
-    cmd = "LC_ALL=C sort"; print x86_64_lines["WORDSIZE64"] | cmd; close(cmd);
-    print "# endif"
-    cmd = "LC_ALL=C sort"; print lines["WORDSIZE64"] | cmd; close(cmd);
-    print "#endif";
-  }
-  else {
-    cmd = "LC_ALL=C sort"; print lines["DEFAULT"] | cmd; close(cmd);
-  }
-
-  print "";
-  print "#endif	/* gnu/lib-names.h */"
-}
diff --git a/sysdeps/unix/sysv/linux/x86_64/stubs-biarch.h b/sysdeps/unix/sysv/linux/x86_64/stubs-biarch.h
deleted file mode 100644
index 241a95e..0000000
--- a/sysdeps/unix/sysv/linux/x86_64/stubs-biarch.h
+++ /dev/null
@@ -1,24 +0,0 @@
-/* This file selects the right generated file of `__stub_FUNCTION' macros
-   based on the architecture being compiled for.  */
-
-#ifdef __x86_64__
-# include <gnu/stubs-64.h>
-/* The following obsolete system calls are available in x86-64 kernel.
-   But they are not supported in x32 kernel.  We always undef them for
-   x86-64 and define them for x32.  It works with gnu/stubs-64.h
-   generated during x32 glibc build as well as x86-64 glibc build.  */
-# undef __stub_create_module
-# undef __stub_get_kernel_syms
-# undef __stub_nfsservctl
-# undef __stub_query_module
-# undef __stub_uselib
-# ifdef __ILP32__
-#  define __stub_create_module
-#  define __stub_get_kernel_syms
-#  define __stub_nfsservctl
-#  define __stub_query_module
-#  define __stub_uselib
-# endif
-#else
-# include <gnu/stubs-32.h>
-#endif

http://sources.redhat.com/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=f4bb020d00853f21eb964344b6df33f773ff24fe

commit f4bb020d00853f21eb964344b6df33f773ff24fe
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Wed May 23 16:35:21 2012 -0700

    Revert "Move include/stubs-biarch.h to sysdeps/generic"
    
    This reverts commit c9908e5705610d3fcde227898fd1774dd13ac43a.
    
    Conflicts:
    
    	ChangeLog.x32
    	sysdeps/x86_64/preconfigure

diff --git a/ChangeLog.x32 b/ChangeLog.x32
index 7ece534..b4b0780 100644
--- a/ChangeLog.x32
+++ b/ChangeLog.x32
@@ -1265,21 +1265,6 @@
 	(__WORDSIZE_COMPAT32): Restored.
 	* sysdeps/x86_64/x32/bits/wordsize.h: Likewise.
 
-2012-03-16  H.J. Lu  <hongjiu.lu@intel.com>
-
-	* Makefile ($(inst_includedir)/gnu/stubs.h): Replace
-	include/stubs-biarch.h with stubs-biarch.h.
-
-	* config.make.in (stubs-biarch_h): Removed.
-
-	* configure.in (stubs_biarch_h): Don't substitute.
-	* configure: Regenerated.
-
-	* include/stubs-biarch.h: Moved to ...
-	* sysdeps/generic/stubs-biarch.h: Here.
-
-	* sysdeps/x86_64/preconfigure: Don't set stubs_biarch_h.
-
 2012-03-15  H.J. Lu  <hongjiu.lu@intel.com>
 
 	* configure.in: Source preconfigure befor add-ons.
diff --git a/Makefile b/Makefile
index ec9ca35..d2edf75 100644
--- a/Makefile
+++ b/Makefile
@@ -175,7 +175,7 @@ installed-stubs = $(inst_includedir)/gnu/stubs.h
 else
 installed-stubs = $(inst_includedir)/gnu/stubs-$(biarch).h
 
-$(inst_includedir)/gnu/stubs.h: stubs-biarch.h $(+force)
+$(inst_includedir)/gnu/stubs.h: $(stubs-biarch_h) $(+force)
 	$(make-target-directory)
 	$(INSTALL_DATA) $< $@
 
diff --git a/config.make.in b/config.make.in
index e9741b0..982fbb8 100644
--- a/config.make.in
+++ b/config.make.in
@@ -77,6 +77,7 @@ oldest-abi = @oldest_abi@
 exceptions = @exceptions@
 multi-arch = @multi_arch@
 
+stubs-biarch_h = @stubs_biarch_h@
 lib-names_awk = @lib_names_awk@
 
 mach-interface-list = @mach_interface_list@
diff --git a/configure b/configure
index 95c880e..ae8572f 100755
--- a/configure
+++ b/configure
@@ -608,6 +608,7 @@ LIBOBJS
 RELEASE
 VERSION
 lib_names_awk
+stubs_biarch_h
 mach_interface_list
 DEFINES
 static_nss
@@ -7823,6 +7824,11 @@ $as_echo "$libc_cv_pic_default" >&6; }
 
 
 
+if test -z "${stubs_biarch_h}"; then
+  stubs_biarch_h=include/stubs-biarch.h
+fi
+
+
 if test -z "${lib_names_awk}"; then
   lib_names_awk=scripts/lib-names.awk
 fi
diff --git a/configure.in b/configure.in
index ce8462a..212291c 100644
--- a/configure.in
+++ b/configure.in
@@ -2181,6 +2181,11 @@ AC_SUBST(DEFINES)
 dnl See sysdeps/mach/configure.in for this variable.
 AC_SUBST(mach_interface_list)
 
+if test -z "${stubs_biarch_h}"; then
+  stubs_biarch_h=include/stubs-biarch.h
+fi
+AC_SUBST(stubs_biarch_h)
+
 if test -z "${lib_names_awk}"; then
   lib_names_awk=scripts/lib-names.awk
 fi
diff --git a/sysdeps/generic/stubs-biarch.h b/include/stubs-biarch.h
similarity index 100%
rename from sysdeps/generic/stubs-biarch.h
rename to include/stubs-biarch.h

http://sources.redhat.com/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=653de9769fd5592295f9e8614e492fdad53d7764

commit 653de9769fd5592295f9e8614e492fdad53d7764
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Wed May 23 16:28:58 2012 -0700

    Copied from trunk at commit f8591f8049a401c898737ca843d87872b93e6ccc

diff --git a/time/mktime.c b/time/mktime.c
index 8dec864..e1fbf9e 100644
--- a/time/mktime.c
+++ b/time/mktime.c
@@ -36,7 +36,7 @@
 
 #include <limits.h>
 
-#include <string.h>             /* For the real memcpy prototype.  */
+#include <string.h>		/* For the real memcpy prototype.  */
 
 #if DEBUG
 # include <stdio.h>
@@ -150,7 +150,7 @@ leapyear (long_int year)
   return
     ((year & 3) == 0
      && (year % 100 != 0
-         || ((year / 100) & 3) == (- (TM_YEAR_BASE / 100) & 3)));
+	 || ((year / 100) & 3) == (- (TM_YEAR_BASE / 100) & 3)));
 }
 
 /* How many days come before each month (0-12).  */
@@ -296,8 +296,8 @@ guess_time_tm (long_int year, long_int yday, int hour, int min, int sec,
      match; and don't oscillate between two values, as that would
      confuse the spring-forward gap detector.  */
   return (*t < TIME_T_MIDPOINT
-          ? (*t <= TIME_T_MIN + 1 ? *t + 1 : TIME_T_MIN)
-          : (TIME_T_MAX - 1 <= *t ? *t - 1 : TIME_T_MAX));
+	  ? (*t <= TIME_T_MIN + 1 ? *t + 1 : TIME_T_MIN)
+	  : (TIME_T_MAX - 1 <= *t ? *t - 1 : TIME_T_MAX));
 }
 
 /* Use CONVERT to convert *T to a broken down time in *TP.
@@ -305,7 +305,7 @@ guess_time_tm (long_int year, long_int yday, int hour, int min, int sec,
    it is the nearest in-range value and then convert that.  */
 static struct tm *
 ranged_convert (struct tm *(*convert) (const time_t *, struct tm *),
-                time_t *t, struct tm *tp)
+		time_t *t, struct tm *tp)
 {
   struct tm *r = convert (t, tp);
 
@@ -315,8 +315,8 @@ ranged_convert (struct tm *(*convert) (const time_t *, struct tm *),
       time_t ok = 0;
 
       /* BAD is a known unconvertible time_t, and OK is a known good one.
-         Use binary search to narrow the range between BAD and OK until
-         they differ by 1.  */
+	 Use binary search to narrow the range between BAD and OK until
+	 they differ by 1.  */
       while (bad != ok + (bad < 0 ? -1 : 1))
 	{
 	  time_t mid = *t = time_t_avg (ok, bad);
@@ -328,12 +328,12 @@ ranged_convert (struct tm *(*convert) (const time_t *, struct tm *),
 	}
 
       if (!r && ok)
-        {
-          /* The last conversion attempt failed;
-             revert to the most recent successful attempt.  */
-          *t = ok;
-          r = convert (t, tp);
-        }
+	{
+	  /* The last conversion attempt failed;
+	     revert to the most recent successful attempt.  */
+	  *t = ok;
+	  r = convert (t, tp);
+	}
     }
 
   return r;
@@ -348,8 +348,8 @@ ranged_convert (struct tm *(*convert) (const time_t *, struct tm *),
    This function is external because it is used also by timegm.c.  */
 time_t
 __mktime_internal (struct tm *tp,
-                   struct tm *(*convert) (const time_t *, struct tm *),
-                   time_t *offset)
+		   struct tm *(*convert) (const time_t *, struct tm *),
+		   time_t *offset)
 {
   time_t t, gt, t0, t1, t2;
   struct tm tm;
@@ -400,33 +400,33 @@ __mktime_internal (struct tm *tp,
   if (LEAP_SECONDS_POSSIBLE)
     {
       /* Handle out-of-range seconds specially,
-         since ydhms_tm_diff assumes every minute has 60 seconds.  */
+	 since ydhms_tm_diff assumes every minute has 60 seconds.  */
       if (sec < 0)
-        sec = 0;
+	sec = 0;
       if (59 < sec)
-        sec = 59;
+	sec = 59;
     }
 
   /* Invert CONVERT by probing.  First assume the same offset as last
      time.  */
 
   t0 = ydhms_diff (year, yday, hour, min, sec,
-                   EPOCH_YEAR - TM_YEAR_BASE, 0, 0, 0, - guessed_offset);
+		   EPOCH_YEAR - TM_YEAR_BASE, 0, 0, 0, - guessed_offset);
 
   if (TIME_T_MAX / INT_MAX / 366 / 24 / 60 / 60 < 3)
     {
       /* time_t isn't large enough to rule out overflows, so check
-         for major overflows.  A gross check suffices, since if t0
-         has overflowed, it is off by a multiple of TIME_T_MAX -
-         TIME_T_MIN + 1.  So ignore any component of the difference
-         that is bounded by a small value.  */
+	 for major overflows.  A gross check suffices, since if t0
+	 has overflowed, it is off by a multiple of TIME_T_MAX -
+	 TIME_T_MIN + 1.  So ignore any component of the difference
+	 that is bounded by a small value.  */
 
       /* Approximate log base 2 of the number of time units per
-         biennium.  A biennium is 2 years; use this unit instead of
-         years to avoid integer overflow.  For example, 2 average
-         Gregorian years are 2 * 365.2425 * 24 * 60 * 60 seconds,
-         which is 63113904 seconds, and rint (log2 (63113904)) is
-         26.  */
+	 biennium.  A biennium is 2 years; use this unit instead of
+	 years to avoid integer overflow.  For example, 2 average
+	 Gregorian years are 2 * 365.2425 * 24 * 60 * 60 seconds,
+	 which is 63113904 seconds, and rint (log2 (63113904)) is
+	 26.  */
       int ALOG2_SECONDS_PER_BIENNIUM = 26;
       int ALOG2_MINUTES_PER_BIENNIUM = 20;
       int ALOG2_HOURS_PER_BIENNIUM = 14;
@@ -434,27 +434,27 @@ __mktime_internal (struct tm *tp,
       int LOG2_YEARS_PER_BIENNIUM = 1;
 
       int approx_requested_biennia =
-        (SHR (year_requested, LOG2_YEARS_PER_BIENNIUM)
-         - SHR (EPOCH_YEAR - TM_YEAR_BASE, LOG2_YEARS_PER_BIENNIUM)
-         + SHR (mday, ALOG2_DAYS_PER_BIENNIUM)
-         + SHR (hour, ALOG2_HOURS_PER_BIENNIUM)
-         + SHR (min, ALOG2_MINUTES_PER_BIENNIUM)
-         + (LEAP_SECONDS_POSSIBLE
-            ? 0
-            : SHR (sec, ALOG2_SECONDS_PER_BIENNIUM)));
+	(SHR (year_requested, LOG2_YEARS_PER_BIENNIUM)
+	 - SHR (EPOCH_YEAR - TM_YEAR_BASE, LOG2_YEARS_PER_BIENNIUM)
+	 + SHR (mday, ALOG2_DAYS_PER_BIENNIUM)
+	 + SHR (hour, ALOG2_HOURS_PER_BIENNIUM)
+	 + SHR (min, ALOG2_MINUTES_PER_BIENNIUM)
+	 + (LEAP_SECONDS_POSSIBLE
+	    ? 0
+	    : SHR (sec, ALOG2_SECONDS_PER_BIENNIUM)));
 
       int approx_biennia = SHR (t0, ALOG2_SECONDS_PER_BIENNIUM);
       int diff = approx_biennia - approx_requested_biennia;
       int approx_abs_diff = diff < 0 ? -1 - diff : diff;
 
       /* IRIX 4.0.5 cc miscalculates TIME_T_MIN / 3: it erroneously
-         gives a positive value of 715827882.  Setting a variable
-         first then doing math on it seems to work.
-         (ghazi@caip.rutgers.edu) */
+	 gives a positive value of 715827882.  Setting a variable
+	 first then doing math on it seems to work.
+	 (ghazi@caip.rutgers.edu) */
       time_t time_t_max = TIME_T_MAX;
       time_t time_t_min = TIME_T_MIN;
       time_t overflow_threshold =
-        (time_t_max / 3 - time_t_min / 3) >> ALOG2_SECONDS_PER_BIENNIUM;
+	(time_t_max / 3 - time_t_min / 3) >> ALOG2_SECONDS_PER_BIENNIUM;
 
       if (overflow_threshold < approx_abs_diff)
 	{
@@ -475,23 +475,23 @@ __mktime_internal (struct tm *tp,
 
   for (t = t1 = t2 = t0, dst2 = 0;
        (gt = guess_time_tm (year, yday, hour, min, sec, &t,
-                            ranged_convert (convert, &t, &tm)),
-        t != gt);
+			    ranged_convert (convert, &t, &tm)),
+	t != gt);
        t1 = t2, t2 = t, t = gt, dst2 = tm.tm_isdst != 0)
     if (t == t1 && t != t2
-        && (tm.tm_isdst < 0
-            || (isdst < 0
-                ? dst2 <= (tm.tm_isdst != 0)
-                : (isdst != 0) != (tm.tm_isdst != 0))))
+	&& (tm.tm_isdst < 0
+	    || (isdst < 0
+		? dst2 <= (tm.tm_isdst != 0)
+		: (isdst != 0) != (tm.tm_isdst != 0))))
       /* We can't possibly find a match, as we are oscillating
-         between two values.  The requested time probably falls
-         within a spring-forward gap of size GT - T.  Follow the common
-         practice in this case, which is to return a time that is GT - T
-         away from the requested time, preferring a time whose
-         tm_isdst differs from the requested value.  (If no tm_isdst
-         was requested and only one of the two values has a nonzero
-         tm_isdst, prefer that value.)  In practice, this is more
-         useful than returning -1.  */
+	 between two values.  The requested time probably falls
+	 within a spring-forward gap of size GT - T.  Follow the common
+	 practice in this case, which is to return a time that is GT - T
+	 away from the requested time, preferring a time whose
+	 tm_isdst differs from the requested value.  (If no tm_isdst
+	 was requested and only one of the two values has a nonzero
+	 tm_isdst, prefer that value.)  In practice, this is more
+	 useful than returning -1.  */
       goto offset_found;
     else if (--remaining_probes == 0)
       return -1;
@@ -501,30 +501,30 @@ __mktime_internal (struct tm *tp,
   if (isdst_differ (isdst, tm.tm_isdst))
     {
       /* tm.tm_isdst has the wrong value.  Look for a neighboring
-         time with the right value, and use its UTC offset.
+	 time with the right value, and use its UTC offset.
 
-         Heuristic: probe the adjacent timestamps in both directions,
-         looking for the desired isdst.  This should work for all real
-         time zone histories in the tz database.  */
+	 Heuristic: probe the adjacent timestamps in both directions,
+	 looking for the desired isdst.  This should work for all real
+	 time zone histories in the tz database.  */
 
       /* Distance between probes when looking for a DST boundary.  In
-         tzdata2003a, the shortest period of DST is 601200 seconds
-         (e.g., America/Recife starting 2000-10-08 01:00), and the
-         shortest period of non-DST surrounded by DST is 694800
-         seconds (Africa/Tunis starting 1943-04-17 01:00).  Use the
-         minimum of these two values, so we don't miss these short
-         periods when probing.  */
+	 tzdata2003a, the shortest period of DST is 601200 seconds
+	 (e.g., America/Recife starting 2000-10-08 01:00), and the
+	 shortest period of non-DST surrounded by DST is 694800
+	 seconds (Africa/Tunis starting 1943-04-17 01:00).  Use the
+	 minimum of these two values, so we don't miss these short
+	 periods when probing.  */
       int stride = 601200;
 
       /* The longest period of DST in tzdata2003a is 536454000 seconds
-         (e.g., America/Jujuy starting 1946-10-01 01:00).  The longest
-         period of non-DST is much longer, but it makes no real sense
-         to search for more than a year of non-DST, so use the DST
-         max.  */
+	 (e.g., America/Jujuy starting 1946-10-01 01:00).  The longest
+	 period of non-DST is much longer, but it makes no real sense
+	 to search for more than a year of non-DST, so use the DST
+	 max.  */
       int duration_max = 536454000;
 
       /* Search in both directions, so the maximum distance is half
-         the duration; add the stride to avoid off-by-1 problems.  */
+	 the duration; add the stride to avoid off-by-1 problems.  */
       int delta_bound = duration_max / 2 + stride;
 
       int delta, direction;
@@ -553,7 +553,7 @@ __mktime_internal (struct tm *tp,
   if (LEAP_SECONDS_POSSIBLE && sec_requested != tm.tm_sec)
     {
       /* Adjust time to reflect the tm_sec requested, not the normalized value.
-         Also, repair any damage from a false match due to a leap second.  */
+	 Also, repair any damage from a false match due to a leap second.  */
       int sec_adjustment = (sec == 0 && tm.tm_sec == 60) - sec;
       if (! time_t_int_add_ok (t, sec_requested))
 	return -1;
@@ -620,9 +620,9 @@ print_tm (const struct tm *tp)
 {
   if (tp)
     printf ("%04d-%02d-%02d %02d:%02d:%02d yday %03d wday %d isdst %d",
-            tp->tm_year + TM_YEAR_BASE, tp->tm_mon + 1, tp->tm_mday,
-            tp->tm_hour, tp->tm_min, tp->tm_sec,
-            tp->tm_yday, tp->tm_wday, tp->tm_isdst);
+	    tp->tm_year + TM_YEAR_BASE, tp->tm_mon + 1, tp->tm_mday,
+	    tp->tm_hour, tp->tm_min, tp->tm_sec,
+	    tp->tm_yday, tp->tm_wday, tp->tm_isdst);
   else
     printf ("0");
 }
@@ -654,11 +654,11 @@ main (int argc, char **argv)
 
   if ((argc == 3 || argc == 4)
       && (sscanf (argv[1], "%d-%d-%d%c",
-                  &tm.tm_year, &tm.tm_mon, &tm.tm_mday, &trailer)
-          == 3)
+		  &tm.tm_year, &tm.tm_mon, &tm.tm_mday, &trailer)
+	  == 3)
       && (sscanf (argv[2], "%d:%d:%d%c",
-                  &tm.tm_hour, &tm.tm_min, &tm.tm_sec, &trailer)
-          == 3))
+		  &tm.tm_hour, &tm.tm_min, &tm.tm_sec, &trailer)
+	  == 3))
     {
       tm.tm_year -= TM_YEAR_BASE;
       tm.tm_mon--;
@@ -667,10 +667,10 @@ main (int argc, char **argv)
       tl = mktime (&tmk);
       lt = localtime (&tl);
       if (lt)
-        {
-          tml = *lt;
-          lt = &tml;
-        }
+	{
+	  tml = *lt;
+	  lt = &tml;
+	}
       printf ("mktime returns %ld == ", (long int) tl);
       print_tm (&tmk);
       printf ("\n");
@@ -683,51 +683,51 @@ main (int argc, char **argv)
       time_t to = atol (argv[3]);
 
       if (argc == 4)
-        for (tl = from; by < 0 ? to <= tl : tl <= to; tl = tl1)
-          {
-            lt = localtime (&tl);
-            if (lt)
-              {
-                tmk = tml = *lt;
-                tk = mktime (&tmk);
-                status |= check_result (tk, tmk, tl, &tml);
-              }
-            else
-              {
-                printf ("localtime (%ld) yields 0\n", (long int) tl);
-                status = 1;
-              }
-            tl1 = tl + by;
-            if ((tl1 < tl) != (by < 0))
-              break;
-          }
+	for (tl = from; by < 0 ? to <= tl : tl <= to; tl = tl1)
+	  {
+	    lt = localtime (&tl);
+	    if (lt)
+	      {
+		tmk = tml = *lt;
+		tk = mktime (&tmk);
+		status |= check_result (tk, tmk, tl, &tml);
+	      }
+	    else
+	      {
+		printf ("localtime (%ld) yields 0\n", (long int) tl);
+		status = 1;
+	      }
+	    tl1 = tl + by;
+	    if ((tl1 < tl) != (by < 0))
+	      break;
+	  }
       else
-        for (tl = from; by < 0 ? to <= tl : tl <= to; tl = tl1)
-          {
-            /* Null benchmark.  */
-            lt = localtime (&tl);
-            if (lt)
-              {
-                tmk = tml = *lt;
-                tk = tl;
-                status |= check_result (tk, tmk, tl, &tml);
-              }
-            else
-              {
-                printf ("localtime (%ld) yields 0\n", (long int) tl);
-                status = 1;
-              }
-            tl1 = tl + by;
-            if ((tl1 < tl) != (by < 0))
-              break;
-          }
+	for (tl = from; by < 0 ? to <= tl : tl <= to; tl = tl1)
+	  {
+	    /* Null benchmark.  */
+	    lt = localtime (&tl);
+	    if (lt)
+	      {
+		tmk = tml = *lt;
+		tk = tl;
+		status |= check_result (tk, tmk, tl, &tml);
+	      }
+	    else
+	      {
+		printf ("localtime (%ld) yields 0\n", (long int) tl);
+		status = 1;
+	      }
+	    tl1 = tl + by;
+	    if ((tl1 < tl) != (by < 0))
+	      break;
+	  }
     }
   else
     printf ("Usage:\
 \t%s YYYY-MM-DD HH:MM:SS [ISDST] # Test given time.\n\
 \t%s FROM BY TO # Test values FROM, FROM+BY, ..., TO.\n\
 \t%s FROM BY TO - # Do not test those values (for benchmark).\n",
-            argv[0], argv[0], argv[0]);
+	    argv[0], argv[0], argv[0]);
 
   return status;
 }

http://sources.redhat.com/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=2c7b7b55fe17448630c70616dc0f5c23445b8b1a

commit 2c7b7b55fe17448630c70616dc0f5c23445b8b1a
Merge: 70c161f f8591f8
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Wed May 23 16:27:58 2012 -0700

    Merge remote-tracking branch 'origin/master' into hjl/x32/master
    
    Conflicts:
    	time/mktime.c

diff --cc sysdeps/x86_64/x32/shlib-versions
index 4d273c2,757a35d..d9f63e1
--- a/sysdeps/x86_64/x32/shlib-versions
+++ b/sysdeps/x86_64/x32/shlib-versions
@@@ -2,4 -2,3 +2,7 @@@
  # -------------		---------------		------------------------------
  x86_64-.*-linux.*	DEFAULT			GLIBC_2.16
  x86_64-.*-linux.*	ld=ld-linux-x32.so.2	GLIBC_2.16
++
++# Configuration		ABI			Identifier for ABI data files
++# -------------		----------		-----------------------------
 +x86_64-.*-.*		ABI			x32-@OS@
diff --cc time/mktime.c
index d54fd22,e1fbf9e..8dec864
--- a/time/mktime.c
+++ b/time/mktime.c
@@@ -313,25 -315,25 +315,25 @@@ ranged_convert (struct tm *(*convert) (
        time_t ok = 0;
  
        /* BAD is a known unconvertible time_t, and OK is a known good one.
 -	 Use binary search to narrow the range between BAD and OK until
 -	 they differ by 1.  */
 +         Use binary search to narrow the range between BAD and OK until
 +         they differ by 1.  */
        while (bad != ok + (bad < 0 ? -1 : 1))
-         {
-           time_t mid = *t = time_t_avg (ok, bad);
-           r = convert (t, tp);
-           if (r)
-             ok = mid;
-           else
-             bad = mid;
-         }
+ 	{
+ 	  time_t mid = *t = time_t_avg (ok, bad);
+ 	  r = convert (t, tp);
+ 	  if (r)
+ 	    ok = mid;
+ 	  else
+ 	    bad = mid;
+ 	}
  
        if (!r && ok)
 -	{
 -	  /* The last conversion attempt failed;
 -	     revert to the most recent successful attempt.  */
 -	  *t = ok;
 -	  r = convert (t, tp);
 -	}
 +        {
 +          /* The last conversion attempt failed;
 +             revert to the most recent successful attempt.  */
 +          *t = ok;
 +          r = convert (t, tp);
 +        }
      }
  
    return r;
@@@ -443,30 -445,30 +445,30 @@@ __mktime_internal (struct tm *tp
  
        int approx_biennia = SHR (t0, ALOG2_SECONDS_PER_BIENNIUM);
        int diff = approx_biennia - approx_requested_biennia;
-       int abs_diff = diff < 0 ? -1 - diff : diff;
+       int approx_abs_diff = diff < 0 ? -1 - diff : diff;
  
        /* IRIX 4.0.5 cc miscalculates TIME_T_MIN / 3: it erroneously
 -	 gives a positive value of 715827882.  Setting a variable
 -	 first then doing math on it seems to work.
 -	 (ghazi@caip.rutgers.edu) */
 +         gives a positive value of 715827882.  Setting a variable
 +         first then doing math on it seems to work.
 +         (ghazi@caip.rutgers.edu) */
        time_t time_t_max = TIME_T_MAX;
        time_t time_t_min = TIME_T_MIN;
        time_t overflow_threshold =
 -	(time_t_max / 3 - time_t_min / 3) >> ALOG2_SECONDS_PER_BIENNIUM;
 +        (time_t_max / 3 - time_t_min / 3) >> ALOG2_SECONDS_PER_BIENNIUM;
  
-       if (overflow_threshold < abs_diff)
-         {
-           /* Overflow occurred.  Try repairing it; this might work if
-              the time zone offset is enough to undo the overflow.  */
-           time_t repaired_t0 = -1 - t0;
-           approx_biennia = SHR (repaired_t0, ALOG2_SECONDS_PER_BIENNIUM);
-           diff = approx_biennia - approx_requested_biennia;
-           abs_diff = diff < 0 ? -1 - diff : diff;
-           if (overflow_threshold < abs_diff)
-             return -1;
-           guessed_offset += repaired_t0 - t0;
-           t0 = repaired_t0;
-         }
+       if (overflow_threshold < approx_abs_diff)
+ 	{
+ 	  /* Overflow occurred.  Try repairing it; this might work if
+ 	     the time zone offset is enough to undo the overflow.  */
+ 	  time_t repaired_t0 = -1 - t0;
+ 	  approx_biennia = SHR (repaired_t0, ALOG2_SECONDS_PER_BIENNIUM);
+ 	  diff = approx_biennia - approx_requested_biennia;
+ 	  approx_abs_diff = diff < 0 ? -1 - diff : diff;
+ 	  if (overflow_threshold < approx_abs_diff)
+ 	    return -1;
+ 	  guessed_offset += repaired_t0 - t0;
+ 	  t0 = repaired_t0;
+ 	}
      }
  
    /* Repeatedly use the error to improve the guess.  */
@@@ -551,16 -553,16 +553,16 @@@
    if (LEAP_SECONDS_POSSIBLE && sec_requested != tm.tm_sec)
      {
        /* Adjust time to reflect the tm_sec requested, not the normalized value.
 -	 Also, repair any damage from a false match due to a leap second.  */
 +         Also, repair any damage from a false match due to a leap second.  */
        int sec_adjustment = (sec == 0 && tm.tm_sec == 60) - sec;
        if (! time_t_int_add_ok (t, sec_requested))
-         return -1;
+ 	return -1;
        t1 = t + sec_requested;
        if (! time_t_int_add_ok (t1, sec_adjustment))
-         return -1;
+ 	return -1;
        t2 = t1 + sec_adjustment;
        if (! convert (&t2, &tm))
-         return -1;
+ 	return -1;
        t = t2;
      }
  

http://sources.redhat.com/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=70c161f555c0400ecc606829a0cf6ef1816a5037

commit 70c161f555c0400ecc606829a0cf6ef1816a5037
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Wed May 23 05:53:20 2012 -0700

    Fix x32 sched_getcpu.S error code

diff --git a/ChangeLog.x32 b/ChangeLog.x32
index 45f03a6..7ece534 100644
--- a/ChangeLog.x32
+++ b/ChangeLog.x32
@@ -1,5 +1,11 @@
 2012-05-23  H.J. Lu  <hongjiu.lu@intel.com>
 
+	* sysdeps/unix/sysv/linux/x86_64/x32/sched_getcpu.S: Rearrange
+	code so that pseudo_end is just ret and the stack pointer is
+	correct also for static library in error case.
+
+2012-05-23  H.J. Lu  <hongjiu.lu@intel.com>
+
 	* sysdeps/unix/sysv/linux/i386/sysdep.h (SYSCALL_ERROR_HANDLER):
 	Replace "jmp L(pseudo_end)" with "ret".
 	* sysdeps/unix/sysv/linux/x86_64/sysdep.h (SYSCALL_ERROR_HANDLER):
diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/sched_getcpu.S b/sysdeps/unix/sysv/linux/x86_64/x32/sched_getcpu.S
index f3ba9f1..789552e 100644
--- a/sysdeps/unix/sysv/linux/x86_64/x32/sched_getcpu.S
+++ b/sysdeps/unix/sysv/linux/x86_64/x32/sched_getcpu.S
@@ -33,14 +33,18 @@ ENTRY (sched_getcpu)
 
 	call	__getcpu
 
+	/* Local variable is result if the call is successful.  */
+	mov	(%rsp), %edx
+	/* Restore stack pointer before we might jump to
+	   SYSCALL_ERROR_LABEL which returns to the caller.  */
+	add	$0x8, %esp
+	cfi_adjust_cfa_offset(-8)
+
 	cmp	$-4095, %eax
 	jae	SYSCALL_ERROR_LABEL
 
-	mov	(%rsp), %eax
-
+	mov	%edx, %eax
 L(pseudo_end):
-	add	$0x8, %esp
-	cfi_adjust_cfa_offset(-8)
 	ret
 PSEUDO_END(sched_getcpu)
 #endif

http://sources.redhat.com/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=3d8fdb9d1097a9683a16846ea00e337607982e15

commit 3d8fdb9d1097a9683a16846ea00e337607982e15
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Wed May 23 05:50:51 2012 -0700

    Replace "jmp L(pseudo_end)" with "ret"

diff --git a/ChangeLog.x32 b/ChangeLog.x32
index e89020c..45f03a6 100644
--- a/ChangeLog.x32
+++ b/ChangeLog.x32
@@ -1,3 +1,10 @@
+2012-05-23  H.J. Lu  <hongjiu.lu@intel.com>
+
+	* sysdeps/unix/sysv/linux/i386/sysdep.h (SYSCALL_ERROR_HANDLER):
+	Replace "jmp L(pseudo_end)" with "ret".
+	* sysdeps/unix/sysv/linux/x86_64/sysdep.h (SYSCALL_ERROR_HANDLER):
+	Likewise.
+
 2012-05-22  H.J. Lu  <hongjiu.lu@intel.com>
 
 	* sysdeps/x86_64/stubs-biarch.h: Moved to ...
diff --git a/sysdeps/unix/sysv/linux/i386/sysdep.h b/sysdeps/unix/sysv/linux/i386/sysdep.h
index 6c4f778..17b816d 100644
--- a/sysdeps/unix/sysv/linux/i386/sysdep.h
+++ b/sysdeps/unix/sysv/linux/i386/sysdep.h
@@ -115,7 +115,7 @@
   negl %eax;								      \
   movl %eax, rtld_errno@GOTOFF(%ecx);					      \
   orl $-1, %eax;							      \
-  jmp L(pseudo_end);
+  ret;
 
 # elif defined _LIBC_REENTRANT
 
@@ -131,7 +131,7 @@
   negl %eax;								      \
   SYSCALL_ERROR_HANDLER_TLS_STORE (%eax, %ecx);				      \
   orl $-1, %eax;							      \
-  jmp L(pseudo_end);
+  ret;
 #  ifndef NO_TLS_DIRECT_SEG_REFS
 #   define SYSCALL_ERROR_HANDLER_TLS_STORE(src, destoff)		      \
   movl src, %gs:(destoff)
@@ -149,7 +149,7 @@
   movl errno@GOT(%ecx), %ecx;						      \
   movl %eax, (%ecx);							      \
   orl $-1, %eax;							      \
-  jmp L(pseudo_end);
+  ret;
 # endif	/* _LIBC_REENTRANT */
 #endif	/* PIC */
 
diff --git a/sysdeps/unix/sysv/linux/x86_64/sysdep.h b/sysdeps/unix/sysv/linux/x86_64/sysdep.h
index cde8652..1c3cbd6 100644
--- a/sysdeps/unix/sysv/linux/x86_64/sysdep.h
+++ b/sysdeps/unix/sysv/linux/x86_64/sysdep.h
@@ -136,7 +136,7 @@
 0:						\
   SYSCALL_SET_ERRNO;				\
   or $-1, %RAX_LP;				\
-  jmp L(pseudo_end);
+  ret;
 # endif	/* PIC */
 
 /* The Linux/x86-64 kernel expects the system call parameters in

http://sources.redhat.com/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=882e410749f226fba5f83a980b09d0456df26004

commit 882e410749f226fba5f83a980b09d0456df26004
Merge: 9608531 be08eda
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Wed May 23 05:33:15 2012 -0700

    Merge remote-tracking branch 'origin/master' into hjl/x32/master


http://sources.redhat.com/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=9608531682983e083af717a690f672468022f079

commit 9608531682983e083af717a690f672468022f079
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Tue May 22 16:15:45 2012 -0700

    Move stubs-biarch.h to sysdeps/unix/sysv/linux/x86_64

diff --git a/ChangeLog.x32 b/ChangeLog.x32
index e1ef5ab..e89020c 100644
--- a/ChangeLog.x32
+++ b/ChangeLog.x32
@@ -1,5 +1,15 @@
 2012-05-22  H.J. Lu  <hongjiu.lu@intel.com>
 
+	* sysdeps/x86_64/stubs-biarch.h: Moved to ...
+	* sysdeps/unix/sysv/linux/x86_64/stubs-biarch.h: Here.
+	(__stub_create_module): Define for x32.
+	(__stub_get_kernel_syms): Likewise.
+	(__stub_nfsservctl): Likewise.
+	(__stub_query_module): Likewise.
+	(__stub_uselib): Likewise.
+
+2012-05-22  H.J. Lu  <hongjiu.lu@intel.com>
+
 	* sysdeps/unix/sysv/linux/x86_64/Makefile
 	(syscall-list-variants): Add x32.
 	(syscall-list-32bit-condition): Set to !defined __x86_64__.
@@ -7,7 +17,7 @@
 	(syscall-list-64bit-condition): Set to
 	defined __x86_64__ && defined __LP64__.
 	(syscall-list-x32-options): New variable.
-	(syscall-list-x32-condition): Likewis.
+	(syscall-list-x32-condition): Likewise.
 
 2012-05-22  H.J. Lu  <hongjiu.lu@intel.com>
 
diff --git a/sysdeps/unix/sysv/linux/x86_64/stubs-biarch.h b/sysdeps/unix/sysv/linux/x86_64/stubs-biarch.h
new file mode 100644
index 0000000..241a95e
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/x86_64/stubs-biarch.h
@@ -0,0 +1,24 @@
+/* This file selects the right generated file of `__stub_FUNCTION' macros
+   based on the architecture being compiled for.  */
+
+#ifdef __x86_64__
+# include <gnu/stubs-64.h>
+/* The following obsolete system calls are available in x86-64 kernel.
+   But they are not supported in x32 kernel.  We always undef them for
+   x86-64 and define them for x32.  It works with gnu/stubs-64.h
+   generated during x32 glibc build as well as x86-64 glibc build.  */
+# undef __stub_create_module
+# undef __stub_get_kernel_syms
+# undef __stub_nfsservctl
+# undef __stub_query_module
+# undef __stub_uselib
+# ifdef __ILP32__
+#  define __stub_create_module
+#  define __stub_get_kernel_syms
+#  define __stub_nfsservctl
+#  define __stub_query_module
+#  define __stub_uselib
+# endif
+#else
+# include <gnu/stubs-32.h>
+#endif
diff --git a/sysdeps/x86_64/stubs-biarch.h b/sysdeps/x86_64/stubs-biarch.h
deleted file mode 100644
index 2579ec6..0000000
--- a/sysdeps/x86_64/stubs-biarch.h
+++ /dev/null
@@ -1,8 +0,0 @@
-/* This file selects the right generated file of `__stub_FUNCTION' macros
-   based on the architecture being compiled for.  */
-
-#ifdef __x86_64__
-# include <gnu/stubs-64.h>
-#else
-# include <gnu/stubs-32.h>
-#endif

http://sources.redhat.com/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=0ba7f9e399b6eac5af73368c7be208d8a8489986

commit 0ba7f9e399b6eac5af73368c7be208d8a8489986
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Tue May 22 15:42:18 2012 -0700

    Add syscall-list-x32-options/syscall-list-x32-condition

diff --git a/ChangeLog.x32 b/ChangeLog.x32
index 3e69f98..e1ef5ab 100644
--- a/ChangeLog.x32
+++ b/ChangeLog.x32
@@ -1,5 +1,16 @@
 2012-05-22  H.J. Lu  <hongjiu.lu@intel.com>
 
+	* sysdeps/unix/sysv/linux/x86_64/Makefile
+	(syscall-list-variants): Add x32.
+	(syscall-list-32bit-condition): Set to !defined __x86_64__.
+	(syscall-list-64bit-options): Add -U__ILP32__ -D__LP64__.
+	(syscall-list-64bit-condition): Set to
+	defined __x86_64__ && defined __LP64__.
+	(syscall-list-x32-options): New variable.
+	(syscall-list-x32-condition): Likewis.
+
+2012-05-22  H.J. Lu  <hongjiu.lu@intel.com>
+
 	* sysdeps/unix/sysv/linux/sysctl.mk: Remove conditionals and
 	add some comments.
 	* sysdeps/unix/sysv/linux/x86_64/x32/sysctl.mk: Remove
diff --git a/sysdeps/unix/sysv/linux/x86_64/Makefile b/sysdeps/unix/sysv/linux/x86_64/Makefile
index b692212..3676948 100644
--- a/sysdeps/unix/sysv/linux/x86_64/Makefile
+++ b/sysdeps/unix/sysv/linux/x86_64/Makefile
@@ -1,8 +1,10 @@
-syscall-list-variants := 32bit 64bit
+syscall-list-variants := 32bit 64bit x32
 syscall-list-32bit-options := -D__i386__ -U__x86_64__
 syscall-list-32bit-condition := !defined __x86_64__
-syscall-list-64bit-options := -U__i386__ -U__ILP32__ -D__x86_64__ -D__LP64__
-syscall-list-64bit-condition := defined __x86_64__
+syscall-list-64bit-options := -U__i386__ -D__x86_64__ -U__ILP32__ -D__LP64__
+syscall-list-64bit-condition := defined __x86_64__ && defined __LP64__
+syscall-list-x32-options := -U__i386__ -D__x86_64__ -D__ILP32__ -U__LP64__
+syscall-list-x32-condition := defined __x86_64__ && defined __ILP32__
 
 ifeq ($(subdir),misc)
 sysdep_routines += ioperm iopl

http://sources.redhat.com/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=770bcce7741aa8a990828032ad1358bfdaf549a6

commit 770bcce7741aa8a990828032ad1358bfdaf549a6
Merge: e52c80d cb191f2
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Tue May 22 14:53:45 2012 -0700

    Merge remote-tracking branch 'origin/master' into hjl/x32/master


-----------------------------------------------------------------------

Summary of changes:
 ChangeLog                                          |  115 ++++++-
 ChangeLog.abi                                      |   55 +++
 ChangeLog.x32                                      |   77 ++++-
 INSTALL                                            |   11 +-
 Makeconfig                                         |   53 +++-
 Makefile                                           |   26 ++-
 config.make.in                                     |    2 -
 configure                                          |    6 -
 configure.in                                       |    5 -
 manual/install.texi                                |    9 +-
 scripts/lib-names.awk                              |   51 +---
 scripts/soversions.awk                             |   11 -
 shlib-versions                                     |   16 -
 sysdeps/generic/stubs-biarch.h                     |   12 -
 sysdeps/unix/sysv/linux/Makefile                   |   43 +--
 sysdeps/unix/sysv/linux/bits/in.h                  |    4 +-
 sysdeps/unix/sysv/linux/dl-vdso.h                  |   12 +-
 sysdeps/unix/sysv/linux/i386/Makefile              |   18 +
 sysdeps/unix/sysv/linux/i386/bits/mman.h           |    6 +-
 sysdeps/unix/sysv/linux/i386/configure             |    4 -
 sysdeps/unix/sysv/linux/i386/configure.in          |    5 -
 sysdeps/unix/sysv/linux/i386/sysdep.h              |    6 +-
 sysdeps/unix/sysv/linux/poll.c                     |   47 ---
 sysdeps/unix/sysv/linux/powerpc/Makefile           |   10 +-
 sysdeps/unix/sysv/linux/powerpc/bits/mman.h        |    3 +
 sysdeps/unix/sysv/linux/powerpc/chown.c            |    2 +
 sysdeps/unix/sysv/linux/powerpc/powerpc64/pread.c  |    2 +
 .../unix/sysv/linux/powerpc/powerpc64/pread64.c    |    2 +
 sysdeps/unix/sysv/linux/powerpc/powerpc64/pwrite.c |    2 +
 .../unix/sysv/linux/powerpc/powerpc64/pwrite64.c   |    2 +
 sysdeps/unix/sysv/linux/s390/Makefile              |   10 +-
 sysdeps/unix/sysv/linux/s390/bits/mman.h           |    3 +
 sysdeps/unix/sysv/linux/sh/bits/mman.h             |    3 +
 sysdeps/unix/sysv/linux/sparc/Makefile             |   10 +-
 sysdeps/unix/sysv/linux/sparc/bits/mman.h          |    3 +
 sysdeps/unix/sysv/linux/sys/reboot.h               |    8 +-
 sysdeps/unix/sysv/linux/syscalls.list              |    1 +
 sysdeps/unix/sysv/linux/sysctl.mk                  |    4 +-
 sysdeps/unix/sysv/linux/x86_64/64/Makefile         |    2 +
 sysdeps/unix/sysv/linux/x86_64/Makefile            |   19 +-
 sysdeps/unix/sysv/linux/x86_64/bits/mman.h         |    6 +-
 sysdeps/unix/sysv/linux/x86_64/configure           |    4 -
 sysdeps/unix/sysv/linux/x86_64/configure.in        |    5 -
 sysdeps/unix/sysv/linux/x86_64/lib-names.awk       |  122 -------
 sysdeps/unix/sysv/linux/x86_64/sysdep.h            |    2 +-
 sysdeps/unix/sysv/linux/x86_64/x32/Makefile        |    3 +
 sysdeps/unix/sysv/linux/x86_64/x32/configure       |    5 +-
 sysdeps/unix/sysv/linux/x86_64/x32/configure.in    |   19 -
 sysdeps/unix/sysv/linux/x86_64/x32/sched_getcpu.S  |   12 +-
 sysdeps/unix/sysv/linux/x86_64/x32/sysctl.mk       |    1 -
 sysdeps/x86_64/stubs-biarch.h                      |    8 -
 sysdeps/x86_64/x32/shlib-versions                  |    3 +
 time/mktime.c                                      |  370 ++++++++++----------
 53 files changed, 623 insertions(+), 617 deletions(-)
 create mode 100644 ChangeLog.abi
 delete mode 100644 sysdeps/generic/stubs-biarch.h
 delete mode 100644 sysdeps/unix/sysv/linux/i386/configure
 delete mode 100644 sysdeps/unix/sysv/linux/i386/configure.in
 delete mode 100644 sysdeps/unix/sysv/linux/poll.c
 create mode 100644 sysdeps/unix/sysv/linux/x86_64/64/Makefile
 delete mode 100644 sysdeps/unix/sysv/linux/x86_64/configure
 delete mode 100644 sysdeps/unix/sysv/linux/x86_64/configure.in
 delete mode 100644 sysdeps/unix/sysv/linux/x86_64/lib-names.awk
 delete mode 100644 sysdeps/unix/sysv/linux/x86_64/x32/configure.in
 delete mode 100644 sysdeps/x86_64/stubs-biarch.h


hooks/post-receive
-- 
GNU C Library master sources


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]