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? baruch > Signed-off-by: Vineet Gupta <[email protected]> > --- > 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------------{= - [email protected] - tel: +972.2.679.5364, http://www.tkos.co.il - _______________________________________________ uClibc mailing list [email protected] http://lists.busybox.net/mailman/listinfo/uclibc
