Hi Filippo, On Thu, Feb 06, 2014 at 02:25:08PM +0100, Filippo Arcidiacono wrote: > On 2/6/2014 1:23 PM, Baruch Siach wrote: > >Hi Vineet, > > > >On Thu, Feb 06, 2014 at 05:49:21PM +0530, Vineet Gupta wrote: > >>--------------->8------------------- > >>tst-tls7.c: In function 'do_test': > >>tst-tls7.c:39:57: error: 'struct link_map' has no member named 'l_tls_modid' > >> modid = ((struct link_map *)((struct dyn_elf *)h)->dyn)->l_tls_modid; > >> ^ > >>tst-tls7.c:40:63: error: 'struct link_map' has no member named 'l_tls_modid' > >> else if (((struct link_map *)((struct dyn_elf > >> *)h)->dyn)->l_tls_modid > >> ^ > >>tst-tls7.c:45:52: error: 'struct link_map' has no member named 'l_tls_modid' > >> ((struct link_map *)((struct dyn_elf *)h)->dyn)->l_tls_modid, > >> ^ > >>make[2]: *** [tst-tls7] Error 1 > >>--------------->8------------------- > >I used a different approach to fix the same issue some while ago: > >http://article.gmane.org/gmane.comp.lib.uclibc.general/23449 . Does this work > >for you? > I wonder it should be fixed time ago by commit > d9c7e6a19ea2c96080f3bf7de069acf87c9a8a5d, > adding include path directive in Makefile.in.
No. It's broken since a2fdd604d (link.h: guard TLS related internals of struct link_map with _LIBC). baruch > >>Signed-off-by: Vineet Gupta <vgu...@synopsys.com> > >>--- > >> test/tls/tst-tls6.c | 7 +++---- > >> test/tls/tst-tls7.c | 7 +++---- > >> test/tls/tst-tls8.c | 21 ++++++++++----------- > >> 3 files changed, 16 insertions(+), 19 deletions(-) > >> > >>diff --git a/test/tls/tst-tls6.c b/test/tls/tst-tls6.c > >>index e692aca6b7c3..0ebc50737b3e 100644 > >>--- a/test/tls/tst-tls6.c > >>+++ b/test/tls/tst-tls6.c > >>@@ -38,13 +38,12 @@ do_test (void) > >> time. The value of the first round is used. */ > >> #ifdef __UCLIBC__ > >> if (modid == -1) > >>- modid = ((struct link_map *)((struct dyn_elf *)h)->dyn)->l_tls_modid; > >>- else if (((struct link_map *)((struct dyn_elf *)h)->dyn)->l_tls_modid > >>- != (size_t) modid) > >>+ modid = ((struct dyn_elf *) h)->dyn->l_tls_modid; > >>+ else if (((struct dyn_elf *)h)->dyn->l_tls_modid != (size_t) modid) > >> { > >> printf ("round %d: modid now %zu, initially %d\n", > >> i, > >>- ((struct link_map *)((struct dyn_elf *)h)->dyn)->l_tls_modid, > >>+ ((struct dyn_elf *)h)->dyn->l_tls_modid, > >> modid); > >> result = 1; > >> } > >>diff --git a/test/tls/tst-tls7.c b/test/tls/tst-tls7.c > >>index 41da2708d34b..2dde9afa4935 100644 > >>--- a/test/tls/tst-tls7.c > >>+++ b/test/tls/tst-tls7.c > >>@@ -36,13 +36,12 @@ do_test (void) > >> time. The value of the first round is used. */ > >> #ifdef __UCLIBC__ > >> if (modid == -1) > >>- modid = ((struct link_map *)((struct dyn_elf *)h)->dyn)->l_tls_modid; > >>- else if (((struct link_map *)((struct dyn_elf *)h)->dyn)->l_tls_modid > >>- != (size_t) modid) > >>+ modid = ((struct dyn_elf *) h)->dyn->l_tls_modid; > >>+ else if (((struct dyn_elf *)h)->dyn->l_tls_modid != (size_t) modid) > >> { > >> printf ("round %d: modid now %zu, initially %d\n", > >> i, > >>- ((struct link_map *)((struct dyn_elf *)h)->dyn)->l_tls_modid, > >>+ ((struct dyn_elf *)h)->dyn->l_tls_modid, > >> modid); > >> result = 1; > >> } > >>diff --git a/test/tls/tst-tls8.c b/test/tls/tst-tls8.c > >>index 2541609f1842..e0dd35bbebfc 100644 > >>--- a/test/tls/tst-tls8.c > >>+++ b/test/tls/tst-tls8.c > >>@@ -41,13 +41,12 @@ do_test (void) > >> time. The value of the first round is used. */ > >> #ifdef __UCLIBC__ > >> if (modid1 == (size_t) -1) > >>- modid1 = ((struct link_map *)((struct dyn_elf *)h1)->dyn)->l_tls_modid; > >>- else if (((struct link_map *)((struct dyn_elf > >>*)h1)->dyn)->l_tls_modid > >>- != (size_t) modid1) > >>+ modid1 = ((struct dyn_elf *) h1)->dyn->l_tls_modid; > >>+ else if (((struct dyn_elf *)h1)->dyn->l_tls_modid != (size_t) modid1) > >> { > >> printf ("round %d: modid now %zd, initially %zd\n", > >> i, > >>- ((struct link_map *)((struct dyn_elf *)h1)->dyn)->l_tls_modid, > >>+ ((struct dyn_elf *)h1)->dyn->l_tls_modid, > >> modid1); > >> result = 1; > >> } > >>@@ -85,13 +84,13 @@ do_test (void) > >> time. The value of the first round is used. */ > >> #ifdef __UCLIBC__ > >> if (modid2 == (size_t) -1) > >>- modid2 = ((struct link_map *)((struct dyn_elf *)h1)->dyn)->l_tls_modid; > >>- else if (((struct link_map *)((struct dyn_elf > >>*)h1)->dyn)->l_tls_modid > >>+ modid2 = ((struct dyn_elf *)h1)->dyn->l_tls_modid; > >>+ else if (((struct dyn_elf *)h1)->dyn->l_tls_modid > >> != (size_t) modid2) > >> { > >> printf ("round %d: modid now %zd, initially %zd\n", > >> i, > >>- ((struct link_map *)((struct dyn_elf *)h1)->dyn)->l_tls_modid, > >>+ ((struct dyn_elf *)h1)->dyn->l_tls_modid, > >> modid2); > >> result = 1; > >> } > >>@@ -139,12 +138,12 @@ do_test (void) > >> We make sure that the module gets assigned the same ID every > >> time. The value of the first round is used. */ > >> #ifdef __UCLIBC__ > >>- if (((struct link_map *)((struct dyn_elf *)h1)->dyn)->l_tls_modid > >>+ if (((struct dyn_elf *)h1)->dyn->l_tls_modid > >> != modid1) > >> { > >> printf ("round %d: modid now %zd, initially %zd\n", > >> i, > >>- ((struct link_map *)((struct dyn_elf *)h1)->dyn)->l_tls_modid, > >>+ ((struct dyn_elf *)h1)->dyn->l_tls_modid, > >> modid1); > >> result = 1; > >> } > >>@@ -179,12 +178,12 @@ do_test (void) > >> We make sure that the module gets assigned the same ID every > >> time. The value of the first round is used. */ > >> #ifdef __UCLIBC__ > >>- if (((struct link_map *)((struct dyn_elf *)h1)->dyn)->l_tls_modid > >>+ if (((struct dyn_elf *)h1)->dyn->l_tls_modid > >> != modid2) > >> { > >> printf ("round %d: modid now %zd, initially %zd\n", > >> i, > >>- ((struct link_map *)((struct dyn_elf *)h1)->dyn)->l_tls_modid, > >>+ ((struct dyn_elf *)h1)->dyn->l_tls_modid, > >> modid2); > >> result = 1; > >> } > >>-- > >>1.8.3.2 > -- http://baruch.siach.name/blog/ ~. .~ Tk Open Systems =}------------------------------------------------ooO--U--Ooo------------{= - bar...@tkos.co.il - tel: +972.2.679.5364, http://www.tkos.co.il - _______________________________________________ uClibc mailing list uClibc@uclibc.org http://lists.busybox.net/mailman/listinfo/uclibc