new syscall stub support for ia64 libc

Jakub Jelinek jakub@redhat.com
Thu Nov 13 21:44:00 GMT 2003


On Thu, Nov 13, 2003 at 01:34:13PM -0800, David Mosberger wrote:
> --- elf/rtld.c
> +++ elf/rtld.c
> @@ -1169,7 +1169,7 @@
>  		  l->l_ldnum = ph->p_memsz / sizeof (ElfW(Dyn));
>  		  break;
>  		}
> -	      if (ph->p_type == PT_LOAD)
> +	      if (i == 0 && ph->p_type == PT_LOAD)
>  		assert ((void *) ph->p_vaddr == GL(dl_sysinfo_dso));
>  	    }
>  	  elf_get_dynamic_info (l, dyn_temp);

Shouldn't this be:

+#ifndef NDEBUG
+	  uint_fast16_t pt_load_num = 0;
+#endif
          for (uint_fast16_t i = 0; i < l->l_phnum; ++i)
            {
              const ElfW(Phdr) *const ph = &l->l_phdr[i];
              if (ph->p_type == PT_DYNAMIC)
                {
                  l->l_ld = (void *) ph->p_vaddr;
                  l->l_ldnum = ph->p_memsz / sizeof (ElfW(Dyn));
                  break;
                }
+#ifndef NDEBUG
              if (ph->p_type == PT_LOAD)
-		assert ((void *) ph->p_vaddr == GL(dl_sysinfo_dso));
+		{
+		  assert (pt_load_num
+			  || (void *) ph->p_vaddr == GL(dl_sysinfo_dso));
+		  pt_load_num++;
+		}
+#endif
            }

?

	Jakub



More information about the Libc-hacker mailing list