summaryrefslogtreecommitdiff
path: root/utils
diff options
context:
space:
mode:
Diffstat (limited to 'utils')
-rw-r--r--utils/Makefile.in2
-rw-r--r--utils/getconf.c20
-rw-r--r--utils/ldd.c17
3 files changed, 34 insertions, 5 deletions
diff --git a/utils/Makefile.in b/utils/Makefile.in
index 2f8d1c96a..1544c8fcc 100644
--- a/utils/Makefile.in
+++ b/utils/Makefile.in
@@ -9,7 +9,7 @@ subdirs += utils
# "make utils" flags
CFLAGS-utils := \
- $(SSP_ALL_CFLAGS) \
+ $(SSP_DISABLE_FLAGS) \
-I$(top_srcdir)ldso/ldso/$(TARGET_ARCH) \
-I$(top_srcdir)ldso/include \
-DUCLIBC_RUNTIME_PREFIX=\"$(RUNTIME_PREFIX)\" \
diff --git a/utils/getconf.c b/utils/getconf.c
index 3dd3d75d9..b8d00f90f 100644
--- a/utils/getconf.c
+++ b/utils/getconf.c
@@ -1154,7 +1154,6 @@ environment SPEC.\n\n");
const char *spec = NULL;
char buf[sizeof "POSIX_V6_LPBIG_OFFBIG"];
- char *argv0 = argv[0];
if (argc > 1 && strncmp (argv[1], "-v", 2) == 0)
{
if (argv[1][2] == '\0')
@@ -1199,42 +1198,56 @@ environment SPEC.\n\n");
switch (specs[i].num)
{
+#undef DO_GETCONF_NAME
#if !defined(_XBS5_ILP32_OFF32) && defined(_SC_XBS5_ILP32_OFF32)
+#define DO_GETCONF_NAME
case _SC_XBS5_ILP32_OFF32:
#endif
#if !defined(_XBS5_ILP32_OFFBIG) && defined(_SC_XBS5_ILP32_OFFBIG)
+#define DO_GETCONF_NAME
case _SC_XBS5_ILP32_OFFBIG:
#endif
#if !defined(_XBS5_LP64_OFF64) && defined(_SC_XBS5_LP64_OFF64)
+#define DO_GETCONF_NAME
case _SC_XBS5_LP64_OFF64:
#endif
#if !defined(_XBS5_LPBIG_OFFBIG) && defined(_SC_XBS5_LPBIG_OFFBIG)
+#define DO_GETCONF_NAME
case _SC_XBS5_LPBIG_OFFBIG:
#endif
#if !defined(_POSIX_V6_ILP32_OFF32) && defined(_SC_V6_ILP32_OFF32)
+#define DO_GETCONF_NAME
case _SC_V6_ILP32_OFF32:
#endif
#if !defined(_POSIX_V6_ILP32_OFFBIG) && defined(_SC_V6_ILP32_OFFBIG)
+#define DO_GETCONF_NAME
case _SC_V6_ILP32_OFFBIG:
#endif
#if !defined(_POSIX_V6_LP64_OFF64) && defined(_SC_V6_LP64_OFF64)
+#define DO_GETCONF_NAME
case _SC_V6_LP64_OFF64:
#endif
#if !defined(_POSIX_V6_LPBIG_OFFBIG) && defined(_SC_V6_LPBIG_OFFBIG)
+#define DO_GETCONF_NAME
case _SC_V6_LPBIG_OFFBIG:
#endif
#if !defined(_POSIX_V7_ILP32_OFF32) && defined(_SC_V7_ILP32_OFF32)
+#define DO_GETCONF_NAME
case _SC_V7_ILP32_OFF32:
#endif
#if !defined(_POSIX_V7_ILP32_OFFBIG) && defined(_SC_V7_ILP32_OFFBIG)
+#define DO_GETCONF_NAME
case _SC_V7_ILP32_OFFBIG:
#endif
#if !defined(_POSIX_V7_LP64_OFF64) && defined(_SC_V7_LP64_OFF64)
+#define DO_GETCONF_NAME
case _SC_V7_LP64_OFF64:
#endif
#if !defined(_POSIX_V7_LPBIG_OFFBIG) && defined(_SC_V7_LPBIG_OFFBIG)
+#define DO_GETCONF_NAME
case _SC_V7_LPBIG_OFFBIG:
#endif
+#ifdef DO_GETCONF_NAME
{
const char *args[argc + 3];
size_t spec_len = strlen (spec);
@@ -1242,14 +1255,15 @@ environment SPEC.\n\n");
memcpy (mempcpy (mempcpy (getconf_name, getconf_dir,
getconf_dirlen),
"/", 1), spec, spec_len + 1);
- args[0] = argv0;
+ args[0] = argv[0];
args[1] = "-v";
args[2] = spec;
memcpy (&args[3], &argv[1], argc * sizeof (argv[1]));
execv (getconf_name, (char * const *) args);
error (4, errno, _("Couldn't execute %s"), getconf_name);
}
- default:
+#endif
+ default:
break;
}
}
diff --git a/utils/ldd.c b/utils/ldd.c
index 4c5635ca7..46cd97170 100644
--- a/utils/ldd.c
+++ b/utils/ldd.c
@@ -14,6 +14,11 @@
#include "porting.h"
+#if defined(__kvx__)
+#define MATCH_MACHINE(x) (x == EM_KVX)
+#define ELFCLASSM ELFCLASS64
+#endif
+
#if defined(__aarch64__)
#define MATCH_MACHINE(x) (x == EM_AARCH64)
#define ELFCLASSM ELFCLASS64
@@ -25,7 +30,12 @@
#endif
#if defined(__arc__)
-#define MATCH_MACHINE(x) (x == EM_ARCOMPACT)
+#define MATCH_MACHINE(x) (x == EM_ARCOMPACT || x == EM_ARCV2)
+#define ELFCLASSM ELFCLASS32
+#endif
+
+#if defined(__ARC64_ARCH32__)
+#define MATCH_MACHINE(x) (x == EM_ARCV3_32)
#define ELFCLASSM ELFCLASS32
#endif
@@ -122,6 +132,11 @@
#define ELFCLASSM ELFCLASS32
#endif
+#if defined(__riscv)
+#define MATCH_MACHINE(x) (x == EM_RISCV)
+#define ELFCLASSM ELFCLASS64
+#endif
+
#if defined(__sh__)
#define MATCH_MACHINE(x) (x == EM_SH)
#define ELFCLASSM ELFCLASS32