From 569914be2e968a1bda8b4982ca97c1524635174e Mon Sep 17 00:00:00 2001 From: Waldemar Brodkorb Date: Thu, 8 Dec 2016 04:36:10 +0100 Subject: fix static linking for FDPIC toolchains Fixes following problem, when trying to compile a simple C application statically with a FDPIC toolchain (for example with Blackfin architecture): lib/libc.a(libdl.os): In function `do_dlclose': (.text+0x6be): undefined reference to `_dl_free' .. --- ldso/libdl/libdl.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/ldso/libdl/libdl.c b/ldso/libdl/libdl.c index 0cf3b7037..04d7c432c 100644 --- a/ldso/libdl/libdl.c +++ b/ldso/libdl/libdl.c @@ -30,6 +30,14 @@ */ +/* When libdl is linked in statically into libc.a, we need to replace + * these symbols that otherwise would have been loaded in from ldso. + * This must be before including ldso.h */ +#ifndef SHARED +#define _dl_malloc malloc +#define _dl_free free +#endif + #include #include #include @@ -86,9 +94,6 @@ extern char *_dl_debug; #else /* !SHARED */ -#define _dl_malloc malloc -#define _dl_free free - /* When libdl is linked as a static library, we need to replace all * the symbols that otherwise would have been loaded in from ldso... */ -- cgit v1.2.3