Opened 7 years ago
Closed 7 years ago
#55832 closed defect (fixed)
py-matplotlib fails to compile on Snow Leopard
Reported by: | fvaccari | Owned by: | seanfarley (Sean Farley) |
---|---|---|---|
Priority: | Normal | Milestone: | |
Component: | ports | Version: | 2.4.2 |
Keywords: | Cc: | ||
Port: | py-matplotlib |
Description
In order to compile py36-matplotlib on Snow Leopard I had to modify line 1313 of file _macosx.m from this
for (size_t state_index = 0; state_index < n; state_index++)
to this
size_t state_index; for (state_index = 0; state_index < n; state_index++)
I think this solution should work on any other system, but better leave the decision to the experts...
I didn't check if the same issue exists for other py?? versions
Attachments (2)
Change History (9)
Changed 7 years ago by fvaccari
Attachment: | matplotlibError.log added |
---|
comment:1 Changed 7 years ago by ryandesign (Ryan Carsten Schmidt)
Cc: | sean@… removed |
---|---|
Keywords: | py36-matplotlib Snow Leopard removed |
Owner: | set to seanfarley |
Port: | py-matplotlib added; py36-matplotlib removed |
Status: | new → assigned |
Summary: | py36-matplotlib fails to compile on Snow Leopard → py-matplotlib fails to compile on Snow Leopard |
The error in the log is:
error: ‘for’ loop initial declaration used outside C99 mode
Yes, the same problem would exist for all Python versions. It is not a Python version specific problem. The issue is that this code is not compatible with C89 mode, which is the default for the older gcc-4.2 and llvm-gcc-4.2 compilers used by default on Snow Leopard and earlier. C99 mode is the default for clang which is used by default on Lion and later.
The code could either be fixed to be C89-compatible, as per your suggested changes, or the build can declare that this code needs C99 mode using -std=c99
in CFLAGS
. The project's build system should do that. Either way, it's an upstream bug that should be reported to the developers of py-matplotlib so they can fix it.
comment:2 Changed 7 years ago by seanfarley (Sean Farley)
I agree with Ryan, fwiw. I'd be able to try to help upstream this if you can raise a ticket / PR with them.
comment:4 Changed 7 years ago by seanfarley (Sean Farley)
Thanks for reporting this, @fvaccari! Seems that 2.2.0 will have this fix and is going to drop soon so I'll update the port when that comes out :-)
comment:5 follow-up: 6 Changed 7 years ago by wroberts (Will Roberts)
I'm also seeing this issue with py36-matplotlib on OS X 10.6. Matplotlib 2.2.0 is out since March 6 with @fvaccari's change merged. Any update on the Portfile?
comment:6 Changed 7 years ago by fvaccari
Replying to wroberts:
I'm also seeing this issue with py36-matplotlib on OS X 10.6. Matplotlib 2.2.0 is out since March 6 with @fvaccari's change merged. Any update on the Portfile?
Just to be sure, did you clean py36-matplotlib and retried?
comment:7 Changed 7 years ago by seanfarley (Sean Farley)
Resolution: | → fixed |
---|---|
Status: | assigned → closed |
The error log