This is the mail archive of the
glibc-cvs@sourceware.org
mailing list for the glibc project.
GNU C Library master sources branch, hjl/x32/master, updated. glibc-2.15-1400-ga8124e7
- From: hjl at sourceware dot org
- To: glibc-cvs at sourceware dot org
- Date: 24 May 2012 03:35:16 -0000
- Subject: 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