Issues with clang when building on MacOS 10.7

Hello,

I am trying to build the latest version of matplotlib from the git repository (1cd07a6c) on MacOS 10.7, and regardless of whether I build using the make.osx file or just 'python setup.py build', the C files get compiled with clang, and clang raises an error on one of the files:

/Developer/usr/bin/clang -fno-strict-aliasing -fno-common -dynamic -pipe -O2 -fwrapv -DNDEBUG -g -O3 -Wall -DPY_ARRAY_UNIQUE_SYMBOL=MPL_ARRAY_API -DPYCXX_ISO_CPP_LIB=1 -I/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/numpy/core/include -I. -I/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/numpy/core/include -Isrc -Iagg24/include -I. -I/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/numpy/core/include -I/opt/local/include/freetype2 -I/opt/local/include -I. -I/opt/local/Library/Frameworks/Python.framework/Versions/2.7/include/python2.7 -c src/backend_agg.cpp -o build/temp.macosx-10.7-x86_64-2.7/src/backend_agg.o
In file included from src/backend_agg.cpp:11:
In file included from src/_backend_agg.h:34:
agg24/include/agg_renderer_outline_aa.h:1368:45: error: binding of reference to type 'agg::line_profile_aa' to a value of type 'const agg::line_profile_aa' drops qualifiers
line_profile_aa& profile() { return *m_profile; }
^~~~~~~~~~
1 error generated.

error: command '/Developer/usr/bin/clang' failed with exit status 1

If I do:

CC=gcc python setup.py build

then things work fine, but I just wanted to raise the point that the C files do not compile successfully with clang at this time (but this seems to be the default compiler on 10.7).

Cheers,
Tom

It looks like a bug in agg that the stricter clang is picking up. If you change agg24/include/agg_renderer_outline_aa.h:1368 to read:

    const line_profile_aa& profile() { return *m_profile; }

does that help? (There's probably other cases like this behind it).

I don't have a complete OS-X environment right now to test with, or I'd see what the other issues were myself.

Mike

···

On 02/23/2012 07:47 AM, Thomas Robitaille wrote:

Hello,

I am trying to build the latest version of matplotlib from the git repository (1cd07a6c) on MacOS 10.7, and regardless of whether I build using the make.osx file or just 'python setup.py build', the C files get compiled with clang, and clang raises an error on one of the files:

/Developer/usr/bin/clang -fno-strict-aliasing -fno-common -dynamic -pipe -O2 -fwrapv -DNDEBUG -g -O3 -Wall -DPY_ARRAY_UNIQUE_SYMBOL=MPL_ARRAY_API -DPYCXX_ISO_CPP_LIB=1 -I/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/numpy/core/include -I. -I/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/numpy/core/include -Isrc -Iagg24/include -I. -I/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/numpy/core/include -I/opt/local/include/freetype2 -I/opt/local/include -I. -I/opt/local/Library/Frameworks/Python.framework/Versions/2.7/include/python2.7 -c src/backend_agg.cpp -o build/temp.macosx-10.7-x86_64-2.7/src/backend_agg.o
In file included from src/backend_agg.cpp:11:
In file included from src/_backend_agg.h:34:
agg24/include/agg_renderer_outline_aa.h:1368:45: error: binding of reference to type 'agg::line_profile_aa' to a value of type 'const agg::line_profile_aa' drops qualifiers
line_profile_aa& profile() { return *m_profile; }
^~~~~~~~~~
1 error generated.

error: command '/Developer/usr/bin/clang' failed with exit status 1

If I do:

CC=gcc python setup.py build

then things work fine, but I just wanted to raise the point that the C files do not compile successfully with clang at this time (but this seems to be the default compiler on 10.7).

Cheers,
Tom

------------------------------------------------------------------------------
Virtualization& Cloud Management Using Capacity Planning
Cloud computing makes use of virtualization - but cloud computing
also focuses on allowing computing to be delivered as a service.
http://www.accelacomm.com/jaw/sfnl/114/51521223/
_______________________________________________
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
matplotlib-users List Signup and Options

I got my OS-X machine going again -- I'm looking into this further now.

Mike

···

On 02/23/2012 10:19 AM, Michael Droettboom wrote:

It looks like a bug in agg that the stricter clang is picking up. If
you change agg24/include/agg_renderer_outline_aa.h:1368 to read:

     const line_profile_aa& profile() { return *m_profile; }

does that help? (There's probably other cases like this behind it).

I don't have a complete OS-X environment right now to test with, or I'd
see what the other issues were myself.

Mike

On 02/23/2012 07:47 AM, Thomas Robitaille wrote:

Hello,

I am trying to build the latest version of matplotlib from the git repository (1cd07a6c) on MacOS 10.7, and regardless of whether I build using the make.osx file or just 'python setup.py build', the C files get compiled with clang, and clang raises an error on one of the files:

/Developer/usr/bin/clang -fno-strict-aliasing -fno-common -dynamic -pipe -O2 -fwrapv -DNDEBUG -g -O3 -Wall -DPY_ARRAY_UNIQUE_SYMBOL=MPL_ARRAY_API -DPYCXX_ISO_CPP_LIB=1 -I/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/numpy/core/include -I. -I/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/numpy/core/include -Isrc -Iagg24/include -I. -I/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/numpy/core/include -I/opt/local/include/freetype2 -I/opt/local/include -I. -I/opt/local/Library/Frameworks/Python.framework/Versions/2.7/include/python2.7 -c src/backend_agg.cpp -o build/temp.macosx-10.7-x86_64-2.7/src/backend_agg.o
In file included from src/backend_agg.cpp:11:
In file included from src/_backend_agg.h:34:
agg24/include/agg_renderer_outline_aa.h:1368:45: error: binding of reference to type 'agg::line_profile_aa' to a value of type 'const agg::line_profile_aa' drops qualifiers
line_profile_aa& profile() { return *m_profile; }
^~~~~~~~~~
1 error generated.

error: command '/Developer/usr/bin/clang' failed with exit status 1

If I do:

CC=gcc python setup.py build

then things work fine, but I just wanted to raise the point that the C files do not compile successfully with clang at this time (but this seems to be the default compiler on 10.7).

Cheers,
Tom

------------------------------------------------------------------------------
Virtualization& Cloud Management Using Capacity Planning
Cloud computing makes use of virtualization - but cloud computing
also focuses on allowing computing to be delivered as a service.
http://www.accelacomm.com/jaw/sfnl/114/51521223/
_______________________________________________
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
matplotlib-users List Signup and Options

------------------------------------------------------------------------------
Virtualization& Cloud Management Using Capacity Planning
Cloud computing makes use of virtualization - but cloud computing
also focuses on allowing computing to be delivered as a service.
http://www.accelacomm.com/jaw/sfnl/114/51521223/
_______________________________________________
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
matplotlib-users List Signup and Options

It seems this was the only source of errors. There is a pull
request here:

https://github.com/matplotlib/matplotlib/pull/713

There are plenty of warnings that should probably also be dealt

with, but this at least allows compilation to complete for now.

Mike
···

http://www.accelacomm.com/jaw/sfnl/114/51521223/Matplotlib-users@lists.sourceforge.nethttps://lists.sourceforge.net/lists/listinfo/matplotlib-usershttp://www.accelacomm.com/jaw/sfnl/114/51521223/Matplotlib-users@lists.sourceforge.nethttps://lists.sourceforge.net/lists/listinfo/matplotlib-usershttp://www.accelacomm.com/jaw/sfnl/114/51521223/Matplotlib-users@lists.sourceforge.nethttps://lists.sourceforge.net/lists/listinfo/matplotlib-users