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

r5440 - in glibc-package/branches/eglibc-2.17/debian: . patches patches/arm



Author: adconrad
Date: 2013-01-11 05:16:38 +0000 (Fri, 11 Jan 2013)
New Revision: 5440

Modified:
   glibc-package/branches/eglibc-2.17/debian/changelog
   glibc-package/branches/eglibc-2.17/debian/patches/arm/unsubmitted-ldconfig-cache-abi.diff
   glibc-package/branches/eglibc-2.17/debian/patches/series
Log:
patches/arm/unsubmitted-ldconfig-cache-abi.diff: Rewritten slightly.

Modified: glibc-package/branches/eglibc-2.17/debian/changelog
===================================================================
--- glibc-package/branches/eglibc-2.17/debian/changelog	2013-01-11 04:17:15 UTC (rev 5439)
+++ glibc-package/branches/eglibc-2.17/debian/changelog	2013-01-11 05:16:38 UTC (rev 5440)
@@ -13,6 +13,7 @@
     - patches/arm/cvs-ldconfig-cache-abi.diff: Dropped, merged upstream.
     - patches/arm/local-atomic.diff: Dropped, fixed differently upstream.
     - patches/arm/unsubmitted-armhf-linker.diff: Dropped, not needed.
+    - patches/arm/unsubmitted-ldconfig-cache-abi.diff: Rewritten slightly.
     - patches/hppa/submitted-nptl-carlos.diff: Rebased against upstream.
     - patches/hppa/local-stack-grows-up.diff: Rebased against upstream.
     - patches/hurd-i386/local-enable-ldconfig.diff: dl-cache.c dropped.

Modified: glibc-package/branches/eglibc-2.17/debian/patches/arm/unsubmitted-ldconfig-cache-abi.diff
===================================================================
--- glibc-package/branches/eglibc-2.17/debian/patches/arm/unsubmitted-ldconfig-cache-abi.diff	2013-01-11 04:17:15 UTC (rev 5439)
+++ glibc-package/branches/eglibc-2.17/debian/patches/arm/unsubmitted-ldconfig-cache-abi.diff	2013-01-11 05:16:38 UTC (rev 5440)
@@ -1,72 +1,11 @@
----
- ports/sysdeps/unix/sysv/linux/arm/dl-cache.h   |   34 ++++
- ports/sysdeps/unix/sysv/linux/arm/readelflib.c |  186 +++++++++++++++++++++++++
- 4 files changed, 223 insertions(+)
-
---- /dev/null
-+++ b/ports/sysdeps/unix/sysv/linux/arm/dl-cache.h
-@@ -0,0 +1,34 @@
-+/* Support for reading /etc/ld.so.cache files written by Linux ldconfig.
-+   Copyright (C) 2011 Free Software Foundation, Inc.
-+   This file is part of the GNU C Library.
-+   Contributed by Steve McIntyre <steve.mcintyre@linaro.org>
-+
-+   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, write to the Free
-+   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-+   02111-1307 USA.  */
-+
-+#include <ldconfig.h>
-+
-+/* Redefine the cache ID for the new hf ABI; the sf ABI inverts the check.  */
-+#define _DL_CACHE_ARMHF_ID  (FLAG_ARM_LIBHF | FLAG_ELF_LIBC6)
-+
-+#ifdef __ARM_PCS_VFP
-+#define _dl_cache_check_flags(flags) \
-+  ((flags) == _DL_CACHE_ARMHF_ID)
-+#else
-+#define _dl_cache_check_flags(flags) \
-+  ((flags) != _DL_CACHE_ARMHF_ID)
-+#endif
-+
-+#include_next <dl-cache.h>
---- /dev/null
+diff --git a/ports/sysdeps/unix/sysv/linux/arm/readelflib.c b/ports/sysdeps/unix/sysv/linux/arm/readelflib.c
+index e767f9e..37483fc 100644
+--- a/ports/sysdeps/unix/sysv/linux/arm/readelflib.c
 +++ b/ports/sysdeps/unix/sysv/linux/arm/readelflib.c
-@@ -0,0 +1,186 @@
-+/* Copyright (C) 2011 Free Software Foundation, Inc.
-+   This file is part of the GNU C Library.
-+   Contributed by Steve McIntyre <steve.mcintyre@linaro.org>
-+
-+   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, write to the Free
-+   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-+   02111-1307 USA.  */
-+
-+
-+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);
-+
+@@ -25,6 +25,130 @@ 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);
+ 
 +/* Read an unsigned leb128 value from P, store the value in VAL, return
 +   P incremented past the value.  We assume that a word is large enough to
 +   hold any value so encoded; if it is smaller than a pointer on some target,
@@ -91,7 +30,6 @@
 +  return p;
 +}
 +
-+
 +#define ATTR_TAG_FILE          1
 +#define ABI_VFP_args          28
 +#define VFP_ARGS_IN_VFP_REGS   1
@@ -192,40 +130,17 @@
 +  return 0;
 +}
 +
-+/* 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_machine != EM_ARM)
-+    {
-+      error (0, 0, _("%s is for unknown machine %d.\n"),
-+	     file_name, elf_header->e_machine);
-+      return 1;
-+    }
-+
-+  /* Explicitly not coping with 64-bit yet... */
-+  if (elf_header->e_ident [EI_CLASS] != ELFCLASS32)
-+    {
-+      error (0, 0, _("%s is not 32-bit.\n"), file_name);
-+      return 1;
-+    }
-+  ret = process_elf32_file (file_name, lib, flag, osversion, soname,
-+			    file_contents, file_length);
-+
-+  if (!ret)
-+    /* Do we have a hard-float ABI library? */
-+    if (is_library_hf(file_name, file_contents, file_length))
-+      *flag = FLAG_ARM_LIBHF|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"
+ /* Returns 0 if everything is ok, != 0 in case of error.  */
+ int
+ process_elf_file (const char *file_name, const char *lib, int *flag,
+@@ -47,6 +171,10 @@ process_elf_file (const char *file_name, const char *lib, int *flag,
+ 	    *flag = FLAG_ARM_LIBHF|FLAG_ELF_LIBC6;
+ 	  else if (elf32_header->e_flags & EF_ARM_ABI_FLOAT_SOFT)
+ 	    *flag = FLAG_ELF_LIBC6;
++	  else if (is_library_hf(file_name, file_contents, file_length))
++	    *flag = FLAG_ARM_LIBHF|FLAG_ELF_LIBC6;
++	  else /* Assume all untagged EF_ARM_EABI_VER5 is armel */
++	    *flag = FLAG_ELF_LIBC6;
+ 	}
+     }
+   else

Modified: glibc-package/branches/eglibc-2.17/debian/patches/series
===================================================================
--- glibc-package/branches/eglibc-2.17/debian/patches/series	2013-01-11 04:17:15 UTC (rev 5439)
+++ glibc-package/branches/eglibc-2.17/debian/patches/series	2013-01-11 05:16:38 UTC (rev 5440)
@@ -50,8 +50,8 @@
 arm/local-ioperm.diff
 arm/local-lowlevellock.diff
 arm/local-sigaction.diff
-#arm/unsubmitted-ldconfig-cache-abi.diff
-#arm/unsubmitted-ldso-abi-check.diff
+arm/unsubmitted-ldconfig-cache-abi.diff
+arm/unsubmitted-ldso-abi-check.diff
 arm/local-soname-hack.diff
 arm/local-vfp-sysdeps.diff
 


Reply to: