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.16-ports-merge-822-g931ed95


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  931ed9559b9717aafecc057e6ced05f4ac4bcfaf (commit)
       via  bc7981ac2b217098cc9f12fb8474e3254a472763 (commit)
       via  a55bca6542d033a8e869a0e617a0cece51083b39 (commit)
      from  029264d1fbcdbe950eafb4fbfb8b9d86e3b5947c (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=931ed9559b9717aafecc057e6ced05f4ac4bcfaf

commit 931ed9559b9717aafecc057e6ced05f4ac4bcfaf
Author: Marcus Shawcroft <marcus.shawcroft@linaro.org>
Date:   Tue Dec 4 12:13:06 2012 +0000

    arm: Check for the FLAG_ARM_LIBHF flag in the ldconfig cache
    
    Signed-off-by: Steve McIntyre <steve.mcintyre@linaro.org>

diff --git a/ports/ChangeLog.arm b/ports/ChangeLog.arm
index ee18710..c01a812 100644
--- a/ports/ChangeLog.arm
+++ b/ports/ChangeLog.arm
@@ -1,5 +1,9 @@
 2012-12-04  Steve McIntyre  <steve.mcintyre@linaro.org>
 
+	* sysdeps/unix/sysv/linux/arm/dl-cache.h: New file.
+
+2012-12-04  Steve McIntyre  <steve.mcintyre@linaro.org>
+
 	* sysdeps/unix/sysv/linux/arm/ldconfig.h: New file.
 
 2012-12-04  Steve McIntyre  <steve.mcintyre@linaro.org>
diff --git a/ports/sysdeps/unix/sysv/linux/arm/dl-cache.h b/ports/sysdeps/unix/sysv/linux/arm/dl-cache.h
new file mode 100644
index 0000000..525caa2
--- /dev/null
+++ b/ports/sysdeps/unix/sysv/linux/arm/dl-cache.h
@@ -0,0 +1,29 @@
+/* Support for reading /etc/ld.so.cache files written by Linux ldconfig.
+   Copyright (C) 2003-2012 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library.  If not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <ldconfig.h>
+
+#ifdef __ARM_PCS_VFP
+# define _dl_cache_check_flags(flags) \
+  ((flags) == (FLAG_ARM_LIBHF | FLAG_ELF_LIBC6))
+#else
+# define _dl_cache_check_flags(flags) \
+  ((flags) == FLAG_ELF_LIBC6)
+#endif
+
+#include_next <dl-cache.h>

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

commit bc7981ac2b217098cc9f12fb8474e3254a472763
Author: Marcus Shawcroft <marcus.shawcroft@linaro.org>
Date:   Tue Dec 4 11:00:19 2012 +0000

    arm: Tag ARM libc6-dependent binaries with FLAG_ELF_LIBC6
    
    Signed-off-by: Steve McIntyre <steve.mcintyre@linaro.org>

diff --git a/ports/ChangeLog.arm b/ports/ChangeLog.arm
index 80b9aa9..ee18710 100644
--- a/ports/ChangeLog.arm
+++ b/ports/ChangeLog.arm
@@ -1,5 +1,9 @@
 2012-12-04  Steve McIntyre  <steve.mcintyre@linaro.org>
 
+	* sysdeps/unix/sysv/linux/arm/ldconfig.h: New file.
+
+2012-12-04  Steve McIntyre  <steve.mcintyre@linaro.org>
+
         * sysdeps/unix/sysv/linux/arm/readelflib.c: New file.
 
 2012-11-30  Joseph Myers  <joseph@codesourcery.com>
diff --git a/ports/sysdeps/unix/sysv/linux/arm/ldconfig.h b/ports/sysdeps/unix/sysv/linux/arm/ldconfig.h
new file mode 100644
index 0000000..bb20b79
--- /dev/null
+++ b/ports/sysdeps/unix/sysv/linux/arm/ldconfig.h
@@ -0,0 +1,25 @@
+/* Copyright (C) 2001-2012 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <sysdeps/generic/ldconfig.h>
+
+#define SYSDEP_KNOWN_INTERPRETER_NAMES \
+  { "/lib/ld-linux.so.3", FLAG_ELF_LIBC6 }, \
+  { "/lib/ld-linux-armhf.so.3", FLAG_ELF_LIBC6 },
+#define SYSDEP_KNOWN_LIBRARY_NAMES \
+  { "libc.so.6", FLAG_ELF_LIBC6 },	\
+  { "libm.so.6", FLAG_ELF_LIBC6 },

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

commit a55bca6542d033a8e869a0e617a0cece51083b39
Author: Marcus Shawcroft <marcus.shawcroft@linaro.org>
Date:   Tue Dec 4 10:50:34 2012 +0000

    arm:  Tag ARM and AArch64 binaries in the ldconfig cache.
    
    Add the correct tags for ARM and AArch64 libraries in the ldconfig
    cache for ARM.
    
    Signed-off-by: Steve McIntyre <steve.mcintyre@linaro.org>

diff --git a/ports/ChangeLog.arm b/ports/ChangeLog.arm
index d28d28a..80b9aa9 100644
--- a/ports/ChangeLog.arm
+++ b/ports/ChangeLog.arm
@@ -1,3 +1,7 @@
+2012-12-04  Steve McIntyre  <steve.mcintyre@linaro.org>
+
+        * sysdeps/unix/sysv/linux/arm/readelflib.c: New file.
+
 2012-11-30  Joseph Myers  <joseph@codesourcery.com>
 
 	* sysdeps/arm/libm-test-ulps: Update.
diff --git a/ports/sysdeps/unix/sysv/linux/arm/readelflib.c b/ports/sysdeps/unix/sysv/linux/arm/readelflib.c
new file mode 100644
index 0000000..e767f9e
--- /dev/null
+++ b/ports/sysdeps/unix/sysv/linux/arm/readelflib.c
@@ -0,0 +1,73 @@
+/* Copyright (C) 1999-2012 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+   Contributed by Andreas Jaeger <aj@suse.de>, 1999 and
+		  Jakub Jelinek <jakub@redhat.com>, 1999.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+
+int process_elf32_file (const char *file_name, const char *lib, int *flag,
+			unsigned int *osversion, char **soname,
+			void *file_contents, size_t file_length);
+int process_elf64_file (const char *file_name, const char *lib, int *flag,
+			unsigned int *osversion, char **soname,
+			void *file_contents, size_t file_length);
+
+/* Returns 0 if everything is ok, != 0 in case of error.  */
+int
+process_elf_file (const char *file_name, const char *lib, int *flag,
+		  unsigned int *osversion, char **soname, void *file_contents,
+		  size_t file_length)
+{
+  ElfW(Ehdr) *elf_header = (ElfW(Ehdr) *) file_contents;
+  int ret;
+
+  if (elf_header->e_ident [EI_CLASS] == ELFCLASS32)
+    {
+      Elf32_Ehdr *elf32_header = (Elf32_Ehdr *) elf_header;
+
+      ret = process_elf32_file (file_name, lib, flag, osversion, soname,
+				file_contents, file_length);
+
+      if (!ret && EF_ARM_EABI_VERSION (elf32_header->e_flags) == EF_ARM_EABI_VER5)
+	{
+	  if (elf32_header->e_flags & EF_ARM_ABI_FLOAT_HARD)
+	    *flag = FLAG_ARM_LIBHF|FLAG_ELF_LIBC6;
+	  else if (elf32_header->e_flags & EF_ARM_ABI_FLOAT_SOFT)
+	    *flag = FLAG_ELF_LIBC6;
+	}
+    }
+  else
+    {
+      ret = process_elf64_file (file_name, lib, flag, osversion, soname,
+				file_contents, file_length);
+      /* AArch64 libraries are always libc.so.6+.  */
+      if (!ret)
+	*flag = FLAG_AARCH64_LIB64|FLAG_ELF_LIBC6;
+    }
+  return ret;
+}
+
+#undef __ELF_NATIVE_CLASS
+#undef process_elf_file
+#define process_elf_file process_elf32_file
+#define __ELF_NATIVE_CLASS 32
+#include "elf/readelflib.c"
+
+#undef __ELF_NATIVE_CLASS
+#undef process_elf_file
+#define process_elf_file process_elf64_file
+#define __ELF_NATIVE_CLASS 64
+#include "elf/readelflib.c"

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

Summary of changes:
 ports/ChangeLog.arm                            |   12 ++++
 ports/sysdeps/unix/sysv/linux/arm/dl-cache.h   |   29 +++++++++
 ports/sysdeps/unix/sysv/linux/arm/ldconfig.h   |   25 ++++++++
 ports/sysdeps/unix/sysv/linux/arm/readelflib.c |   73 ++++++++++++++++++++++++
 4 files changed, 139 insertions(+), 0 deletions(-)
 create mode 100644 ports/sysdeps/unix/sysv/linux/arm/dl-cache.h
 create mode 100644 ports/sysdeps/unix/sysv/linux/arm/ldconfig.h
 create mode 100644 ports/sysdeps/unix/sysv/linux/arm/readelflib.c


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]