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 master updated. glibc-2.18-805-g3a3acb6


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, master has been updated
       via  3a3acb6afc753475675b5724f206e619d0c9590d (commit)
       via  b67e7fe0f9f9b0f6c4386a0eccba83178098438c (commit)
      from  91cbd0bc72387d0729136e44002082fbdd9cd42d (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://sourceware.org/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=3a3acb6afc753475675b5724f206e619d0c9590d

commit 3a3acb6afc753475675b5724f206e619d0c9590d
Author: Tom Tromey <tromey@redhat.com>
Date:   Mon Jan 20 12:58:03 2014 +0000

    [AArch64] BZ #16169 Add CFI directives to clone.S
    
    [BZ #16169] Add CFI directives to the AArch64 clone.S implementation
    and ensure that the FP in the child is zero'd in order to comply with
    AAPCS.

diff --git a/NEWS b/NEWS
index da86ee5..87ab048 100644
--- a/NEWS
+++ b/NEWS
@@ -22,10 +22,10 @@ Version 2.19
   15919, 15921, 15923, 15939, 15941, 15948, 15963, 15966, 15985, 15988,
   15997, 16032, 16034, 16036, 16037, 16038, 16041, 16055, 16071, 16072,
   16074, 16077, 16078, 16103, 16112, 16133, 16143, 16144, 16146, 16150,
-  16151, 16153, 16167, 16172, 16195, 16214, 16245, 16271, 16274, 16283,
-  16289, 16293, 16314, 16316, 16330, 16337, 16338, 16356, 16365, 16366,
-  16369, 16372, 16375, 16379, 16384, 16385, 16386, 16387, 16390, 16394,
-  16400, 16407, 16408, 16414, 16430, 16453.
+  16151, 16153, 16167, 16169, 16172, 16195, 16214, 16245, 16271, 16274,
+  16283, 16289, 16293, 16314, 16316, 16330, 16337, 16338, 16356, 16365,
+  16366, 16369, 16372, 16375, 16379, 16384, 16385, 16386, 16387, 16390,
+  16394, 16400, 16407, 16408, 16414, 16430, 16453.
 
 * Slovenian translations for glibc messages have been contributed by the
   Translation Project's Slovenian team of translators.
diff --git a/ports/ChangeLog.aarch64 b/ports/ChangeLog.aarch64
index 19d8fe1..f11a086 100644
--- a/ports/ChangeLog.aarch64
+++ b/ports/ChangeLog.aarch64
@@ -1,3 +1,9 @@
+2014-01-20  Tom Tromey  <tromey@redhat.com>
+
+	[BZ #16169]
+	* sysdeps/unix/sysv/linux/aarch64/clone.S (__clone): Add CFI
+	directives;  Zero x29.
+
 2014-01-20  Marcus Shawcroft  <marcus.shawcroft@linaro.org>
 
 	* sysdeps/aarch64/configure.ac: New file.
diff --git a/ports/sysdeps/unix/sysv/linux/aarch64/clone.S b/ports/sysdeps/unix/sysv/linux/aarch64/clone.S
index 2ca8021..f2964f4 100644
--- a/ports/sysdeps/unix/sysv/linux/aarch64/clone.S
+++ b/ports/sysdeps/unix/sysv/linux/aarch64/clone.S
@@ -63,6 +63,7 @@ ENTRY(__clone)
 	mov	x8, #SYS_ify(clone)
 	/* X0:flags, x1:newsp, x2:parenttidptr, x3:newtls, x4:childtid.  */
 	svc	0x0
+	cfi_endproc
 	cmp	x0, #0
 	beq	2f
 	blt	3f
@@ -72,6 +73,9 @@ ENTRY(__clone)
 	b	syscall_error
 
 2:
+	cfi_startproc
+	cfi_undefined (x30)
+	mov	x29, 0
 #ifdef RESET_PID
 	tbnz	x5, #CLONE_THREAD_BIT, 3f
 	mov	x0, #-1
@@ -93,7 +97,8 @@ ENTRY(__clone)
 
 	/* We are done, pass the return value through x0.  */
 	b	HIDDEN_JUMPTARGET(_exit)
-
+	cfi_endproc
+	cfi_startproc
 PSEUDO_END (__clone)
 
 weak_alias (__clone, clone)

http://sourceware.org/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=b67e7fe0f9f9b0f6c4386a0eccba83178098438c

commit b67e7fe0f9f9b0f6c4386a0eccba83178098438c
Author: Marcus Shawcroft <marcus.shawcroft@linaro.org>
Date:   Wed Jan 1 17:29:23 2014 +0000

    [AArch64] Define BE loader name.

diff --git a/ports/ChangeLog.aarch64 b/ports/ChangeLog.aarch64
index 3867810..19d8fe1 100644
--- a/ports/ChangeLog.aarch64
+++ b/ports/ChangeLog.aarch64
@@ -1,3 +1,15 @@
+2014-01-20  Marcus Shawcroft  <marcus.shawcroft@linaro.org>
+
+	* sysdeps/aarch64/configure.ac: New file.
+	* sysdeps/aarch64/configure: New file.
+	* sysdeps/aarch64/shlib-versions: Define ld-linux-aarch64_be.so.1
+	* sysdeps/unix/sysv/linux/aarch64/Makefile (abi-variants)
+	(abi-lp64-options, abi-lp64-condition, abi-lp64-ld-soname)
+	(abi-lp64_be-options, abi-lp64_be-condition)
+	(abi-lp64_be-ld-soname) Define.
+	* sysdeps/unix/sysv/linux/aarch64/ldconfig.h
+	(SYSDEP_KNOWN_INTERPRETER_NAMES): Add ld-linux-aarch64_be.so.1
+
 2014-01-07  Marcus Shawcroft  <marcus.shawcroft@linaro.org>
 
 	[BZ #16387]
diff --git a/ports/sysdeps/aarch64/configure b/ports/sysdeps/aarch64/configure
new file mode 100644
index 0000000..af870b7
--- /dev/null
+++ b/ports/sysdeps/aarch64/configure
@@ -0,0 +1,174 @@
+# This file is generated from configure.ac by Autoconf.  DO NOT EDIT!
+ # Local configure fragment for sysdeps/aarch64.
+
+# We check to see if the compiler and flags are
+# selecting the big endian ABI and if they are then
+# we set libc_cv_aarch64_be to yes which causes
+# HAVE_AARCH64_BE to be defined in config.h and
+# in include/libc-symbols.h and thus available to
+# shlib-versions to select the appropriate name for
+# the dynamic linker via %ifdef.
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5
+$as_echo_n "checking for grep that handles long lines and -e... " >&6; }
+if ${ac_cv_path_GREP+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -z "$GREP"; then
+  ac_path_GREP_found=false
+  # Loop through the user's path and test for each of PROGNAME-LIST
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_prog in grep ggrep; do
+    for ac_exec_ext in '' $ac_executable_extensions; do
+      ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext"
+      { test -f "$ac_path_GREP" && $as_test_x "$ac_path_GREP"; } || continue
+# Check for GNU ac_path_GREP and select it if it is found.
+  # Check for GNU $ac_path_GREP
+case `"$ac_path_GREP" --version 2>&1` in
+*GNU*)
+  ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;;
+*)
+  ac_count=0
+  $as_echo_n 0123456789 >"conftest.in"
+  while :
+  do
+    cat "conftest.in" "conftest.in" >"conftest.tmp"
+    mv "conftest.tmp" "conftest.in"
+    cp "conftest.in" "conftest.nl"
+    $as_echo 'GREP' >> "conftest.nl"
+    "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break
+    diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
+    as_fn_arith $ac_count + 1 && ac_count=$as_val
+    if test $ac_count -gt ${ac_path_GREP_max-0}; then
+      # Best one so far, save it but keep looking for a better one
+      ac_cv_path_GREP="$ac_path_GREP"
+      ac_path_GREP_max=$ac_count
+    fi
+    # 10*(2^10) chars as input seems more than enough
+    test $ac_count -gt 10 && break
+  done
+  rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
+esac
+
+      $ac_path_GREP_found && break 3
+    done
+  done
+  done
+IFS=$as_save_IFS
+  if test -z "$ac_cv_path_GREP"; then
+    as_fn_error $? "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
+  fi
+else
+  ac_cv_path_GREP=$GREP
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_GREP" >&5
+$as_echo "$ac_cv_path_GREP" >&6; }
+ GREP="$ac_cv_path_GREP"
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5
+$as_echo_n "checking for egrep... " >&6; }
+if ${ac_cv_path_EGREP+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if echo a | $GREP -E '(a|b)' >/dev/null 2>&1
+   then ac_cv_path_EGREP="$GREP -E"
+   else
+     if test -z "$EGREP"; then
+  ac_path_EGREP_found=false
+  # Loop through the user's path and test for each of PROGNAME-LIST
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_prog in egrep; do
+    for ac_exec_ext in '' $ac_executable_extensions; do
+      ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext"
+      { test -f "$ac_path_EGREP" && $as_test_x "$ac_path_EGREP"; } || continue
+# Check for GNU ac_path_EGREP and select it if it is found.
+  # Check for GNU $ac_path_EGREP
+case `"$ac_path_EGREP" --version 2>&1` in
+*GNU*)
+  ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;;
+*)
+  ac_count=0
+  $as_echo_n 0123456789 >"conftest.in"
+  while :
+  do
+    cat "conftest.in" "conftest.in" >"conftest.tmp"
+    mv "conftest.tmp" "conftest.in"
+    cp "conftest.in" "conftest.nl"
+    $as_echo 'EGREP' >> "conftest.nl"
+    "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break
+    diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
+    as_fn_arith $ac_count + 1 && ac_count=$as_val
+    if test $ac_count -gt ${ac_path_EGREP_max-0}; then
+      # Best one so far, save it but keep looking for a better one
+      ac_cv_path_EGREP="$ac_path_EGREP"
+      ac_path_EGREP_max=$ac_count
+    fi
+    # 10*(2^10) chars as input seems more than enough
+    test $ac_count -gt 10 && break
+  done
+  rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
+esac
+
+      $ac_path_EGREP_found && break 3
+    done
+  done
+  done
+IFS=$as_save_IFS
+  if test -z "$ac_cv_path_EGREP"; then
+    as_fn_error $? "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
+  fi
+else
+  ac_cv_path_EGREP=$EGREP
+fi
+
+   fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP" >&5
+$as_echo "$ac_cv_path_EGREP" >&6; }
+ EGREP="$ac_cv_path_EGREP"
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for big endian" >&5
+$as_echo_n "checking for big endian... " >&6; }
+if ${libc_cv_aarch64_be+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#ifdef __AARCH64EB__
+                      yes
+                     #endif
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  $EGREP "yes" >/dev/null 2>&1; then :
+  libc_cv_aarch64_be=yes
+else
+  libc_cv_aarch64_be=no
+fi
+rm -f conftest*
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_cv_aarch64_be" >&5
+$as_echo "$libc_cv_aarch64_be" >&6; }
+if test $libc_cv_aarch64_be = yes; then
+  $as_echo "#define HAVE_AARCH64_BE 1" >>confdefs.h
+
+  config_vars="$config_vars
+default-abi = lp64_be"
+else
+  config_vars="$config_vars
+default-abi = lp64"
+fi
diff --git a/ports/sysdeps/aarch64/configure.ac b/ports/sysdeps/aarch64/configure.ac
new file mode 100644
index 0000000..7851dd4
--- /dev/null
+++ b/ports/sysdeps/aarch64/configure.ac
@@ -0,0 +1,22 @@
+GLIBC_PROVIDES dnl See aclocal.m4 in the top level source directory.
+# Local configure fragment for sysdeps/aarch64.
+
+# We check to see if the compiler and flags are
+# selecting the big endian ABI and if they are then
+# we set libc_cv_aarch64_be to yes which causes
+# HAVE_AARCH64_BE to be defined in config.h and
+# in include/libc-symbols.h and thus available to
+# shlib-versions to select the appropriate name for
+# the dynamic linker via %ifdef.
+AC_CACHE_CHECK([for big endian],
+  [libc_cv_aarch64_be],
+  [AC_EGREP_CPP(yes,[#ifdef __AARCH64EB__
+                      yes
+                     #endif
+  ], libc_cv_aarch64_be=yes, libc_cv_aarch64_be=no)])
+if test $libc_cv_aarch64_be = yes; then
+  AC_DEFINE(HAVE_AARCH64_BE)
+  LIBC_CONFIG_VAR([default-abi], [lp64_be])
+else
+  LIBC_CONFIG_VAR([default-abi], [lp64])
+fi
diff --git a/ports/sysdeps/aarch64/shlib-versions b/ports/sysdeps/aarch64/shlib-versions
index 82b227d..67f1911 100644
--- a/ports/sysdeps/aarch64/shlib-versions
+++ b/ports/sysdeps/aarch64/shlib-versions
@@ -1,2 +1,7 @@
 aarch64.*-.*-linux.*	DEFAULT			GLIBC_2.17
+
+%ifdef HAVE_AARCH64_BE
+aarch64.*-.*-linux.*	ld=ld-linux-aarch64_be.so.1
+%else
 aarch64.*-.*-linux.*	ld=ld-linux-aarch64.so.1
+%endif
diff --git a/ports/sysdeps/unix/sysv/linux/aarch64/Makefile b/ports/sysdeps/unix/sysv/linux/aarch64/Makefile
index 8a3d76b..d3f1603 100644
--- a/ports/sysdeps/unix/sysv/linux/aarch64/Makefile
+++ b/ports/sysdeps/unix/sysv/linux/aarch64/Makefile
@@ -22,3 +22,18 @@ endif
 ifeq ($(subdir),stdlib)
 gen-as-const-headers += ucontext_i.sym
 endif
+
+abi-variants := lp64
+abi-variants += lp64_be
+
+ifeq (,$(filter $(default-abi),$(abi-variants)))
+Unknown ABI, must be one of $(abi-variants)
+endif
+
+abi-lp64-options := -U__AARCH64EB__
+abi-lp64-condition := !defined __AARCH64EB__
+abi-lp64-ld-soname := ld-linux-aarch64.so.1
+
+abi-lp64_be-options := -D__AARCH6464EB__
+abi-lp64_be-condition := defined __AARCH64EB__
+abi-lp64_be-ld-soname := ld-linux-aarch64_be.so.1
diff --git a/ports/sysdeps/unix/sysv/linux/aarch64/ldconfig.h b/ports/sysdeps/unix/sysv/linux/aarch64/ldconfig.h
index 10be197..b0e6b6a 100644
--- a/ports/sysdeps/unix/sysv/linux/aarch64/ldconfig.h
+++ b/ports/sysdeps/unix/sysv/linux/aarch64/ldconfig.h
@@ -20,6 +20,7 @@
 
 #define SYSDEP_KNOWN_INTERPRETER_NAMES \
   { "/lib/ld-linux-aarch64.so.1", FLAG_ELF_LIBC6 }, \
+  { "/lib/ld-linux-aarch64_be.so.1", FLAG_ELF_LIBC6 }, \
   { "/lib/ld-linux.so.3", FLAG_ELF_LIBC6 }, \
   { "/lib/ld-linux-armhf.so.3", FLAG_ELF_LIBC6 },
 #define SYSDEP_KNOWN_LIBRARY_NAMES \

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

Summary of changes:
 NEWS                                               |    8 ++--
 ports/ChangeLog.aarch64                            |   18 ++++++++++
 .../powerpc64 => ports/sysdeps/aarch64}/configure  |   34 ++++++++++++-------
 ports/sysdeps/aarch64/configure.ac                 |   22 +++++++++++++
 ports/sysdeps/aarch64/shlib-versions               |    5 +++
 ports/sysdeps/unix/sysv/linux/aarch64/Makefile     |   15 +++++++++
 ports/sysdeps/unix/sysv/linux/aarch64/clone.S      |    7 +++-
 ports/sysdeps/unix/sysv/linux/aarch64/ldconfig.h   |    1 +
 8 files changed, 92 insertions(+), 18 deletions(-)
 copy {sysdeps/unix/sysv/linux/powerpc/powerpc64 => ports/sysdeps/aarch64}/configure (84%)
 create mode 100644 ports/sysdeps/aarch64/configure.ac


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]