diff options
| author | joerg <joerg@NetBSD.org> | 2021-05-30 02:26:08 +0000 |
|---|---|---|
| committer | joerg <joerg@NetBSD.org> | 2021-05-30 02:26:08 +0000 |
| commit | 8d995d7cdb1e36c291a54eea13854aa01db64848 (patch) | |
| tree | d6f67afd70c4ea6400f12cfcd1487e07a54b612a /libexec | |
| parent | d92d8eea6ca0736290830d80b62e1b5211cfc413 (diff) | |
Don't use the return address hack with clang.
Diffstat (limited to 'libexec')
| -rw-r--r-- | libexec/ld.elf_so/rtld.c | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/libexec/ld.elf_so/rtld.c b/libexec/ld.elf_so/rtld.c index 9db6f58f8bf..69610001383 100644 --- a/libexec/ld.elf_so/rtld.c +++ b/libexec/ld.elf_so/rtld.c @@ -1,4 +1,4 @@ -/* $NetBSD: rtld.c,v 1.207 2020/09/22 00:41:27 kamil Exp $ */ +/* $NetBSD: rtld.c,v 1.208 2021/05/30 02:26:08 joerg Exp $ */ /* * Copyright 1996 John D. Polstra. @@ -40,7 +40,7 @@ #include <sys/cdefs.h> #ifndef lint -__RCSID("$NetBSD: rtld.c,v 1.207 2020/09/22 00:41:27 kamil Exp $"); +__RCSID("$NetBSD: rtld.c,v 1.208 2021/05/30 02:26:08 joerg Exp $"); #endif /* not lint */ #include <sys/param.h> @@ -1118,7 +1118,7 @@ _rtld_objmain_sym(const char *name) return NULL; } -#ifdef __powerpc__ +#if defined(__powerpc__) && !defined(__clang__) static __noinline void * hackish_return_address(void) { @@ -1284,7 +1284,7 @@ dlsym(void *handle, const char *name) dbg(("dlsym of %s in %p", name, handle)); -#ifdef __powerpc__ +#if defined(__powerpc__) && !defined(__clang__) retaddr = hackish_return_address(); #else retaddr = __builtin_return_address(0); @@ -1309,7 +1309,7 @@ dlvsym(void *handle, const char *name, const char *version) ver_entry.flags = 0; ventry = &ver_entry; } -#ifdef __powerpc__ +#if defined(__powerpc__) && !defined(__clang__) retaddr = hackish_return_address(); #else retaddr = __builtin_return_address(0); @@ -1407,7 +1407,7 @@ dlinfo(void *handle, int req, void *v) _rtld_shared_enter(); if (handle == RTLD_SELF) { -#ifdef __powerpc__ +#if defined(__powerpc__) && !defined(__clang__) retaddr = hackish_return_address(); #else retaddr = __builtin_return_address(0); |
