[PATCH 1/2] test/tls/tst-tls[6-8]: Fix build errors

Baruch Siach baruch at tkos.co.il
Thu Feb 6 12:23:41 UTC 2014


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 <vgupta at 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------------{=
   - baruch at tkos.co.il - tel: +972.2.679.5364, http://www.tkos.co.il -


More information about the uClibc mailing list