It seems as though Solaris RW sections can also have the
execute flag set. Checking for RW and !X was causing the
debuginfo reading to fail. That meant that the helgrind and
drd preload shared libraries weren't processed, and also
the rtld bind function pointers not setup. Without the rtld bind
function an assert fires and Helgrind and DRD abort.
#else
flag_x = 0;
#endif
+
+#if defined(VGO_solaris)
+ flag_x = 0;
+#endif
+
vg_assert(ehdr_mioff == 0); // ensured by its initialisation
ok = ML_(img_valid)(mimg, ehdr_mioff, sizeof(ehdr_m));
vg_assert(ok); // ML_(is_elf_object_file) should ensure this