diff options
Diffstat (limited to 'utils')
-rw-r--r-- | utils/Makefile.in | 2 | ||||
-rw-r--r-- | utils/getconf.c | 20 | ||||
-rw-r--r-- | utils/ldd.c | 17 |
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 |