This is the mail archive of the elfutils-devel@sourceware.org mailing list for the elfutils project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Preparing for elfutils 0.164 (Friday)


Testing looks good. I did find one small issue with the dwfl_proc_attach
testcase if there is no libelf.so installed yet on the host. Josh helped
me analyze and we believe the correct fix is to make sure the AM_LDFLAGS
are always included. So tests/Makefile.am gets:

- dwfl_proc_attach_LDFLAGS = -pthread
+ dwfl_proc_attach_LDFLAGS = -pthread $(AM_LDFLAGS)

With that I get zero FAIL on Debian i686 and x86_64, Fedora x86_64, i686,
arm, aarch64, s390, s390x, ppc64 and ppc64le and various RHEL6 and RHEL7
arches. 

But I see one FAIL on ppc32. This is caused by the fact that we now do
more eu-elflint checks for the eu-strip/eu-unstrip roundtripping. There
are two issues:

- ppc_check_special_symbol contains a special case for the small data
  area base symbol _SDA_BASE_. It does need to be associated with the
  .sdata section and at an offset of sh_addr + 0x8000. But it seems
  that sometimes there might not be an small data area section because
  there is just very little or no data. In which case _SDA_BASE_ is
  associated with the .data section and has a different offset. I intent
  to just change the special case to:

    return (((strcmp (sname, ".sdata") == 0
              && sym->st_value == destshdr->sh_addr + 0x8000)
             || strcmp (sname, ".data") == 0)
            && sym->st_size == 0);

  which might be a little too loose, but I don't see a good/better way
  to check the _SDA_BASE_ symbol value and this is a very special ppc32
  only corner case.

- elflint doesn't like it when relocations are applied to a mergeable
  section. But ppc32 does seem to have such relocations. And gabi seems
  to allow it ("Relocations referencing elements of such sections must be
  resolved to the merged locations of the referenced values"). I think
  this can work if the elements are actually of the same size. It seems
  what we really want to prevent is relocations against sections
  containing mergeable strings, which are of arbitrary size. So I intent
  to change that check to:

@@ -1254,9 +1254,10 @@ section [%2d] '%s': sh_info should be zero\n"),
 		}
 	    }
 
-	  if (((*destshdrp)->sh_flags & (SHF_MERGE | SHF_STRINGS)) != 0)
+	  if ((((*destshdrp)->sh_flags & SHF_MERGE) != 0)
+	      && ((*destshdrp)->sh_flags & SHF_STRINGS) != 0)
 	    ERROR (gettext ("\
-section [%2d] '%s': no relocations for merge-able sections possible\n"),
+section [%2d] '%s': no relocations for merge-able string sections possible\n"),
 		   idx, section_name (ebl, idx));
 	}
     }

Sorry for not posting proper patches for these issue, it is a bit late here.
I'll create proper patches tomorrow before the release. Unless people object
to the above tweaks to make ppc32 zero FAIL too.

Cheers,

Mark

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]