Skip to content
This repository has been archived by the owner on May 3, 2023. It is now read-only.

mac wheels built for 10.9, but labelled 10.6+ #37

Closed
robbuckley opened this issue Jan 5, 2019 · 9 comments
Closed

mac wheels built for 10.9, but labelled 10.6+ #37

robbuckley opened this issue Jan 5, 2019 · 9 comments

Comments

@robbuckley
Copy link
Contributor

since pandas PR 24274, mac builds target macosx 10.9 by default. The wheel builder installs the 10.6 build of python, and assumes pandas extensions will be built for 10.6. The result is wheels built for 10.9+ which are labelled as 10.6+

For example. running otool -l on pandas/_libs/window.cpython-36m-darwin.so on one of the recent daily builds gives:

Load command 7
      cmd LC_VERSION_MIN_MACOSX
  cmdsize 16
  version 10.9
      sdk 10.13
Load command 8
      cmd LC_SOURCE_VERSION
  cmdsize 16
  version 0.0
Load command 9
          cmd LC_LOAD_DYLIB
      cmdsize 48
         name /usr/lib/libc++.1.dylib (offset 24)
   time stamp 2 Thu Jan  1 01:00:02 1970
      current version 400.9.0
compatibility version 1.0.0

Note LC_VERSION_MIN_MACOSX = 10.9, and the link to libc++, which may not be available on pre-10.9 systems.

An older daily wheel gives:

Load command 7
      cmd LC_VERSION_MIN_MACOSX
  cmdsize 16
  version 10.6
      sdk 10.13
Load command 8
          cmd LC_LOAD_DYLIB
      cmdsize 56
         name /usr/lib/libstdc++.6.dylib (offset 24)
   time stamp 2 Thu Jan  1 01:00:02 1970
      current version 104.1.0
compatibility version 7.0.0

The previous behaviour can be easily restored by setting the env var in the .travis.yml file (PR is coming).

A larger issue is if wheels should also be released which are targetted at 10.9+ (with correct labels). If apple stop including libstdc++ binaries in future macos releases (its been deprecated since 10.9), 10.6 wheels could stop working on new systems. See #23424 for the build version of this issue.

python.org have recently taken to releasing 2 mac builds -- 32/64bit 10.6+ and 64-bit 10.9+. Maybe pandas should go the same way?

@jreback
Copy link
Contributor

jreback commented Jan 5, 2019

cc @matthew-brett

@jreback
Copy link
Contributor

jreback commented Jan 5, 2019

is there a reason to release 10.6+ wheels at all? why not just do 10.9+

@robbuckley
Copy link
Contributor Author

i agree with that. Even 10.9 is pretty old now. travis osx environments only go back as far as 10.10 for example

@jreback
Copy link
Contributor

jreback commented Jan 5, 2019

ok, so if we do nothing then the wheels are 10.9? and are good?

@robbuckley
Copy link
Contributor Author

robbuckley commented Jan 5, 2019

no, the wheel labels are wrong. To fix that, needs an upstream change in multibuild, the 10.6 stuff is all hard-coded there as far as i can see. The PR i've submitted at least gets us back to 10.6 wheels which are properly labelled (as before)

@matthew-brett
Copy link
Contributor

Yes, labels are wrong, but we haven't updated them because we doubted anyone was suffering from the problem, as they would have to be using > 10.9, and that's very unlikely.

@robbuckley
Copy link
Contributor Author

@matthew-brett I have managed to get 10.9 wheels building, with the correct labels. Would you consider a PR on multibuild? As you say, the chances of encountering a <10.9 system in the wild are probably vanishingly small, so this could be seen as a tidying up exercise as much as anything

@matthew-brett
Copy link
Contributor

Sure - yes - it would be good to fix this properly.

@robbuckley
Copy link
Contributor Author

@jreback i think this issue can be closed now. I'll open another issue to change macosx wheels to 10.9+

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants