Bug 348909

Summary: Support OS X 10.11 (El Capitan)
Product: [Developer tools] valgrind Reporter: Rhys Kidd <rhyskidd>
Component: generalAssignee: Rhys Kidd <rhyskidd>
Status: CONFIRMED ---    
Severity: normal CC: gorazd.hribar.rajteric, jseward, pjfloyd, tom, werickson
Priority: NOR    
Version: 3.10 SVN   
Target Milestone: ---   
Platform: macOS (DMG)   
OS: macOS   
Latest Commit: Version Fixed In:
Sentry Crash Report:
Bug Depends on: 349128, 353470, 349086, 349087, 349521, 351632, 353471, 354883, 383723    
Bug Blocks:    
Attachments: Preliminary patchset to support OS X 10.11 El Capitan

Description Rhys Kidd 2015-06-09 00:50:48 UTC
Valgrind should support Apple's OS X 10.11 (El Capitan) once a public, general release is made available in late 2015.

This is a meta bug for tracking any issues raised during the developer beta and public beta review process with Valgrind.

Reproducible: Always
Comment 1 Rhys Kidd 2015-06-09 05:29:07 UTC
Stretch targets are day 1 support for Firefox and the Swift runtime.
Comment 2 Rhys Kidd 2015-06-13 01:23:52 UTC
In addition to adding support for DARWIN_10_11 in configure.ac the following locations will definitely need to be looked at, as they don't appear to use a > platform approach (which would at least include OS X 10.11 in the set, if even incorrectly):

$ grep -r --exclude-dir=.svn "DARWIN_VERS == DARWIN_10_10" .
./coregrind/fixup_macho_loadcmds.c:#  if DARWIN_VERS == DARWIN_10_10
./coregrind/m_main.c:#if defined(VGO_darwin) && DARWIN_VERS == DARWIN_10_10
./coregrind/m_syswrap/priv_syswrap-darwin.h:#elif DARWIN_VERS == DARWIN_10_10
./coregrind/m_syswrap/priv_syswrap-darwin.h:#if DARWIN_VERS == DARWIN_10_10
./coregrind/m_syswrap/priv_syswrap-darwin.h:#endif /* DARWIN_VERS == DARWIN_10_10 */
./coregrind/m_syswrap/priv_syswrap-darwin.h:#if DARWIN_VERS == DARWIN_10_10
./coregrind/m_syswrap/priv_syswrap-darwin.h:#endif /* DARWIN_VERS == DARWIN_10_10 */
./coregrind/m_syswrap/syswrap-amd64-darwin.c:#  elif DARWIN_VERS == DARWIN_10_8 || DARWIN_VERS == DARWIN_10_9 || DARWIN_VERS == DARWIN_10_10
./coregrind/m_syswrap/syswrap-amd64-darwin.c:#      elif DARWIN_VERS == DARWIN_10_9 || DARWIN_VERS == DARWIN_10_10
./coregrind/m_syswrap/syswrap-darwin.c:#  if DARWIN_VERS == DARWIN_10_10 && VG_WORDSIZE == 8
./coregrind/m_syswrap/syswrap-darwin.c:#  endif /* DARWIN_VERS == DARWIN_10_10 && VG_WORDSIZE == 8 */
./coregrind/m_syswrap/syswrap-darwin.c:#     if DARWIN_VERS == DARWIN_10_10
./coregrind/m_syswrap/syswrap-x86-darwin.c:#  elif DARWIN_VERS == DARWIN_10_8 || DARWIN_VERS == DARWIN_10_9 || DARWIN_VERS == DARWIN_10_10
./coregrind/m_syswrap/syswrap-x86-darwin.c:#     elif DARWIN_VERS == DARWIN_10_9 || DARWIN_VERS == DARWIN_10_10
./include/vki/vki-darwin.h:#if DARWIN_VERS == DARWIN_10_10
./include/vki/vki-darwin.h:#endif /* DARWIN_VERS == DARWIN_10_10 */
./include/vki/vki-scnums-darwin.h:#elif DARWIN_VERS == DARWIN_10_10
./include/vki/vki-scnums-darwin.h:#elif DARWIN_VERS == DARWIN_10_10
./shared/vg_replace_strmem.c:# if DARWIN_VERS == DARWIN_10_9 || DARWIN_VERS == DARWIN_10_10
./shared/vg_replace_strmem.c:# if DARWIN_VERS == DARWIN_10_10
./shared/vg_replace_strmem.c:# if DARWIN_VERS == DARWIN_10_9 || DARWIN_VERS == DARWIN_10_10
./shared/vg_replace_strmem.c:# if DARWIN_VERS == DARWIN_10_9 || DARWIN_VERS == DARWIN_10_10
./shared/vg_replace_strmem.c:# if DARWIN_VERS == DARWIN_10_9 || DARWIN_VERS == DARWIN_10_10
./shared/vg_replace_strmem.c:# if DARWIN_VERS == DARWIN_10_9 || DARWIN_VERS == DARWIN_10_10
./shared/vg_replace_strmem.c:# if DARWIN_VERS == DARWIN_10_10
./shared/vg_replace_strmem.c:# if DARWIN_VERS == DARWIN_10_9 || DARWIN_VERS == DARWIN_10_10
./shared/vg_replace_strmem.c:# if DARWIN_VERS == DARWIN_10_9 || DARWIN_VERS == DARWIN_10_10
./VEX/priv/guest_amd64_toIR.c:#     if defined(VGP_amd64_darwin) && DARWIN_VERS == DARWIN_10_10
Comment 3 Rhys Kidd 2015-06-14 02:53:09 UTC
Created attachment 93161 [details]
Preliminary patchset to support OS X 10.11 El Capitan

== 592 tests, 229 stderr failures, 17 stdout failures, 0 stderrB failures, 0 stdoutB failures, 30 post failures ==

Which is relative to OS X 10.10:
stderr (+7)
stdout (+3)
post failures (unchanged)
Comment 4 Rhys Kidd 2015-06-27 03:37:26 UTC
Developer Preview 2, with Darwin kernel xnu-3247.1.6.2.2~1 reports the same, but importantly not worse, regressions relative to OS X 10.10 with the above preliminary patchset.
Comment 5 Julian Seward 2015-07-07 13:07:51 UTC
Rhys, thanks for looking at this.  I think that you should commit these
patches, if you feel they are suitable, so that others can easily try the
tree on 10.11.
Comment 6 Rhys Kidd 2015-07-08 12:19:34 UTC
I'll give the patches another visual review, then commit.
Comment 7 Rhys Kidd 2015-07-08 13:51:51 UTC
Above patchset landed in r15403.
Comment 8 Rhys Kidd 2015-07-10 04:06:47 UTC
And landed just in time. Apple have released a wider public beta of OS X 10.11, thus Valgrind SVN on that platform will see increasing adoption and testing.

Google currently top lists this bug report for most sensible search terms, for the inevitable bug reports that will start trickling in.
Comment 9 Rhys Kidd 2015-10-02 22:45:37 UTC
As of the final OS X 10.11 release and Valgrind 3.11.0 the regression test reports are:

== 596 tests, 224 stderr failures, 10 stdout failures, 0 stderrB failures, 0 stdoutB failures, 30 post failures ==

Which is relative to OS X 10.10 on the same hardware:
stderr (+6)
stdout (unchanged)
post failures (unchanged)

The majority of the failing stderr regression tests are within massif, helgrind and drd.
Comment 10 Gorazd Hribar Rajteric 2015-10-27 08:23:10 UTC
OS X 10.11 (El Capitan) does not allow user links in /usr/bin. It is cleared from non-Apple things and is further locked down using some new mechanism: I.e. not even root can put links there.

Valgrind plug-in for Eclipse should have configurable path to Valgrind installation or change the search location to /usr/local/bin
Comment 11 Tom Hughes 2015-10-27 10:50:51 UTC
(In reply to Gorazd Hribar Rajteric from comment #10)
> OS X 10.11 (El Capitan) does not allow user links in /usr/bin. It is cleared
> from non-Apple things and is further locked down using some new mechanism:
> I.e. not even root can put links there.
> 
> Valgrind plug-in for Eclipse should have configurable path to Valgrind
> installation or change the search location to /usr/local/bin

I'm sure that's very useful information, but shouldn't you be telling whoever writes the valgrind plugin for Eclipse? There's not much we can do about it...
Comment 12 Gorazd Hribar Rajteric 2015-10-27 11:08:05 UTC
(In reply to Tom Hughes from comment #11)
> (In reply to Gorazd Hribar Rajteric from comment #10)
> > OS X 10.11 (El Capitan) does not allow user links in /usr/bin. It is cleared
> > from non-Apple things and is further locked down using some new mechanism:
> > I.e. not even root can put links there.
> > 
> > Valgrind plug-in for Eclipse should have configurable path to Valgrind
> > installation or change the search location to /usr/local/bin
> 
> I'm sure that's very useful information, but shouldn't you be telling
> whoever writes the valgrind plugin for Eclipse? There's not much we can do
> about it...

Tom, you're absolutely right. Bug 480757 (https://bugs.eclipse.org/bugs/show_bug.cgi?id=480757) has been created for Linux-Tools group.