On 23 February 2013 10:48, Bernhard Reutner-Fischer
<[email protected]> wrote:
> On Fri, Feb 22, 2013 at 02:06:43PM -0800, Vincent Wen wrote:
>>When build statically linked applications for MIPS platform,
>>sometimes the linker fails with following errors:
>>undefined reference to TLS_DTPREL_VALUE
>>undefined reference to TLS_TPREL_VALUE
>
> I still suspect that these uses may need a SHARED guard, no?

Would any static linkage legitimately use DTPREL?
>
>>The include of dl-tls.h is defined for shared library build.
>>Removing the SHARED compilation option to cover static link too.
>
> Otherwise this would be ok, yes.
> Can you have a look, please?

If anything, this should be

diff --git a/ldso/libdl/libdl.c b/ldso/libdl/libdl.c
index 71ade1f..385500a 100644
--- a/ldso/libdl/libdl.c
+++ b/ldso/libdl/libdl.c
@@ -41,8 +41,9 @@
 #endif

 #if defined(USE_TLS) && USE_TLS
-#include <ldsodefs.h>
+# include <ldsodefs.h>
 extern void _dl_add_to_slotinfo(struct link_map  *l);
+# include <dl-tls.h>
 #endif

 /* TODO: get rid of global lock and use more finegrained locking, or
@@ -51,7 +52,6 @@ __UCLIBC_MUTEX_STATIC(_dl_mutex,
PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP);

 #ifdef SHARED
 # if defined(USE_TLS) && USE_TLS
-# include <dl-tls.h>
 extern struct link_map *_dl_update_slotinfo(unsigned long int req_modid);
 # endif

thanks,
> TIA,
>>
>>Signed-off-by: Vincent Wen <[email protected]>
>>---
>> ldso/libdl/libdl.c |    5 ++++-
>> 1 files changed, 4 insertions(+), 1 deletions(-)
>>
>>diff --git a/ldso/libdl/libdl.c b/ldso/libdl/libdl.c
>>index 2337223..5172754 100644
>>--- a/ldso/libdl/libdl.c
>>+++ b/ldso/libdl/libdl.c
>>@@ -49,9 +49,12 @@ extern void _dl_add_to_slotinfo(struct link_map  *l);
>>  * perhaps RCU for the global structures */
>> __UCLIBC_MUTEX_STATIC(_dl_mutex, PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP);
>>
>>-#ifdef SHARED
>> # if defined(USE_TLS) && USE_TLS
>> # include <dl-tls.h>
>>+# endif
>>+
>>+#ifdef SHARED
>>+# if defined(USE_TLS) && USE_TLS
>> extern struct link_map *_dl_update_slotinfo(unsigned long int req_modid);
>> # endif
>>
>>--
>>1.7.9.1.g8d994
>>
>>
>>_______________________________________________
>>uClibc mailing list
>>[email protected]
>>http://lists.busybox.net/mailman/listinfo/uclibc
_______________________________________________
uClibc mailing list
[email protected]
http://lists.busybox.net/mailman/listinfo/uclibc

Reply via email to