]> git.ipfire.org Git - thirdparty/glibc.git/commitdiff
aarch64: Use FLAG_AARCH64_LIB64 ldconfig cache tag.
authorMarcus Shawcroft <marcus.shawcroft@linaro.org>
Thu, 29 Nov 2012 10:11:44 +0000 (10:11 +0000)
committerMarcus Shawcroft <marcus.shawcroft@linaro.org>
Thu, 29 Nov 2012 10:38:49 +0000 (10:38 +0000)
Use the new FLAG_AARCH64_LIB64 ldconfig cache tag for AArch64,
similarly to the way tags are handled for other architectures.

Signed-off-by: Steve McIntyre <steve.mcintyre@linaro.org>
Reviewed-by: Carlos O'Donell <carlos@systemhalted.org>
Signed-off-by: Marcus Shawcroft <marcus.shawcroft@linaro.org>
ports/ChangeLog.aarch64
ports/sysdeps/unix/sysv/linux/aarch64/dl-cache.h [new file with mode: 0644]

index e0ec344cb505e62fd8f61d70b8777541a52a78e8..eac41e5012f9d6664e80a125cfe1987a72485695 100644 (file)
@@ -1,3 +1,7 @@
+2012-11-29  Steve McIntyre <steve.mcintyre@linaro.org>
+
+       * sysdeps/unix/sysv/linux/aarch64/dl-cache.h: New file.
+
 2012-11-22  Marcus Shawcroft  <marcus.shawcroft@linaro.org>
 
        * sysdeps/aarch64/libm-test-ulps: Regenerate.
diff --git a/ports/sysdeps/unix/sysv/linux/aarch64/dl-cache.h b/ports/sysdeps/unix/sysv/linux/aarch64/dl-cache.h
new file mode 100644 (file)
index 0000000..1aa1a84
--- /dev/null
@@ -0,0 +1,45 @@
+/* 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>
+
+#define _DL_CACHE_DEFAULT_ID    (FLAG_AARCH64_LIB64 | FLAG_ELF_LIBC6)
+
+#define _dl_cache_check_flags(flags)                    \
+  ((flags) == _DL_CACHE_DEFAULT_ID)
+
+#define add_system_dir(dir) \
+  do                                                           \
+    {                                                          \
+      size_t len = strlen (dir);                               \
+      char path[len + 3];                                      \
+      memcpy (path, dir, len + 1);                             \
+      if (len >= 6 && ! memcmp (path + len - 6, "/lib64", 6))  \
+       {                                                       \
+         len -= 2;                                             \
+         path[len] = '\0';                                     \
+       }                                                       \
+      add_dir (path);                                          \
+      if (len >= 4 && ! memcmp (path + len - 4, "/lib", 4))    \
+       {                                                       \
+         memcpy (path + len, "64", 3);                         \
+         add_dir (path);                                       \
+       }                                                       \
+    } while (0)
+
+#include_next <dl-cache.h>