Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

matplotlib 1.3.0 doesn't compile with Solaris Studio 12.1 CC #2375

Closed
podlipnik opened this issue Sep 4, 2013 · 27 comments
Closed

matplotlib 1.3.0 doesn't compile with Solaris Studio 12.1 CC #2375

podlipnik opened this issue Sep 4, 2013 · 27 comments
Labels

Comments

@podlipnik
Copy link

python setup.py build

Edit setup.cfg to change the build options

BUILDING MATPLOTLIB
matplotlib: yes [1.3.0]
python: yes [2.6.4 (r264:75706, Jun 26 2012, 21:27:36) [C]]
platform: yes [sunos5]

REQUIRED DEPENDENCIES AND EXTENSIONS
numpy: yes [version 1.7.1]
dateutil: yes [using dateutil version 2.1]
tornado: yes [using tornado version 3.1.1]
pyparsing: yes [using pyparsing version 2.0.1]
pycxx: yes [Couldn't import. Using local copy.]
libagg: yes [pkg-config information for 'libagg' could not
be found. Using local copy.]
freetype: yes [version 14.1.8]
png: yes [version 1.2.49]

OPTIONAL SUBPACKAGES
sample_data: yes [installing]
toolkits: yes [installing]
tests: yes [nose 0.11.1 or later is required to run the
matplotlib test suite]

OPTIONAL BACKEND EXTENSIONS
macosx: no [Mac OS-X only]
qt4agg: no [PyQt4 not found]
gtk3agg: no [Requires pygobject to be installed.]
gtk3cairo: no [Requires cairo to be installed.]
gtkagg: no [Requires pygtk]
tkagg: yes [version 73770]
wxagg: no [requires wxPython]
gtk: no [Requires pygtk]
agg: yes [installing]
cairo: no [cairo not found]
windowing: no [Microsoft Windows only]

OPTIONAL LATEX DEPENDENCIES
dvipng: no
ghostscript: yes [version 9.00]
latex: no
pdftops: yes [version 0.14.4]

/usr/lib/python2.6/distutils/dist.py:266: UserWarning: Unknown distribution option: 'use_2to3'
warnings.warn(msg)
running build
running build_py
copying lib/matplotlib/mpl-data/matplotlibrc -> build/lib.solaris-2.10-i86pc-2.6/matplotlib/mpl-data
running build_ext
building 'matplotlib.ft2font' extension
/usr/lib/python2.6/pycc -DNDEBUG -KPIC -DPY_ARRAY_UNIQUE_SYMBOL=MPL_matplotlib_ft2font_ARRAY_API -DPYCXX_ISO_CPP_LIB=1 -I/usr/local/include -I. -I/usr/sfw/include -I/usr/sfw/include/freetype2 -I/usr/lib/python2.6/site-packages/numpy/core/include -I/usr/include/python2.6 -c src/ft2font.cpp -o build/temp.solaris-2.10-i86pc-2.6/src/ft2font.o
CC: Warning: Option -fPIC passed to ld, if ld is invoked, ignored otherwise
"/usr/sfw/include/freetype2/freetype/config/ftconfig.h", line 83: Warning (Anachronism): Attempt to redefine SIZEOF_LONG without using #undef.
"src/ft2font.h", line 84: Error: PythonClass may not have a type qualifier.
"src/ft2font.h", line 84: Error: Py::PythonClassPy::T cannot be initialized in a constructor.
"src/ft2font.h", line 84: Error: Could not find Py::PythonClass::PythonClass() to initialize base class.
"/usr/lib/python2.6/site-packages/numpy/core/include/numpy/ndarraytypes.h", line 209: Warning: Identifier expected instead of "}".
"src/ft2font.cpp", line 849: Warning: error hides FT2Font::error.
"src/ft2font.cpp", line 1021: Warning: ptsize hides FT2Font::ptsize.
"src/ft2font.cpp", line 1022: Warning: dpi hides FT2Font::dpi.
"src/ft2font.cpp", line 1024: Warning: error hides FT2Font::error.
"src/ft2font.cpp", line 1328: Warning: error hides FT2Font::error.
"src/ft2font.cpp", line 1378: Warning: error hides FT2Font::error.
"src/ft2font.cpp", line 1738: Warning: error hides FT2Font::error.
"src/ft2font.cpp", line 1789: Warning: error hides FT2Font::error.
"src/ft2font.cpp", line 1992: Warning: angle hides FT2Font::angle.
"src/ft2font.cpp", line 2070: Warning: error hides FT2Font::error.
3 Error(s) and 12 Warning(s) detected.
error: command '/usr/lib/python2.6/pycc' failed with exit status 3

Looks like this is still not fixed. Any idea how to get matplotlib compiled on Solaris 10 x86?

Borut

@mdboom
Copy link
Member

mdboom commented Sep 4, 2013

Shot in the dark, since I don't have access to a Solaris box anymore.

Does

diff --git a/src/ft2font.h b/src/ft2font.h
index 813a554..2d2c997 100644
--- a/src/ft2font.h
+++ b/src/ft2font.h
@@ -81,7 +81,7 @@ class Glyph : public Py::PythonClass<Glyph>
 {
 public:
     Glyph(Py::PythonClassInstance *self, Py::Tuple &args, Py::Dict &kwds) :
-        Py::PythonClass<Glyph>::PythonClass(self, args, kwds) { }
+        Py::PythonClass<Glyph>(self, args, kwds) { }
     virtual ~Glyph();
     static Py::PythonClassObject<Glyph> factory(const FT_Face&, const FT_Glyph&, size_t, long);
     int setattro(const Py::String &name, const Py::Object &value);

help?

@podlipnik
Copy link
Author

Yes, this help little. Now I get:

"src/ft2font.cpp", line 849: Warning: error hides FT2Font::error.
"src/ft2font.cpp", line 1021: Warning: ptsize hides FT2Font::ptsize.
"src/ft2font.cpp", line 1022: Warning: dpi hides FT2Font::dpi.
"src/ft2font.cpp", line 1024: Warning: error hides FT2Font::error.
"src/ft2font.cpp", line 1328: Warning: error hides FT2Font::error.
"src/ft2font.cpp", line 1378: Warning: error hides FT2Font::error.
"src/ft2font.cpp", line 1738: Warning: error hides FT2Font::error.
"src/ft2font.cpp", line 1789: Warning: error hides FT2Font::error.
"src/ft2font.cpp", line 1992: Warning: angle hides FT2Font::angle.
"src/ft2font.cpp", line 2070: Warning: error hides FT2Font::error.
12 Warning(s) detected.

.....
CC: Warning: Option -fPIC passed to ld, if ld is invoked, ignored otherwise
"/usr/lib/python2.6/site-packages/numpy/core/include/numpy/ndarraytypes.h", line 209: Warning: Identifier expected instead of "}".
"lib/matplotlib/tri/_tri.h", line 821: Error: A declaration was expected instead of "0x00000020".
"lib/matplotlib/tri/_tri.h", line 822: Error: Use ";" to terminate declarations.
"lib/matplotlib/tri/_tri.cpp", line 2180: Error: "{" expected instead of "0x00000020".
"lib/matplotlib/tri/_tri.cpp", line 2180: Error: Only a function may be called.
"lib/matplotlib/tri/_tri.cpp", line 2180: Error: Only a function may be called.
"lib/matplotlib/tri/_tri.cpp", line 2181: Error: Use ";" to terminate statements.
"lib/matplotlib/tri/_tri.cpp", line 2185: Error: ( may not have a type qualifier.
"lib/matplotlib/tri/_tri.cpp", line 2185: Error: operator()(unsigned long) must be a member function.
"lib/matplotlib/tri/_tri.cpp", line 2185: Error: Use ";" to terminate declarations.
"lib/matplotlib/tri/_tri.cpp", line 2187: Error: max_value is not defined.
"lib/matplotlib/tri/_tri.cpp", line 2187: Error: "RandomNumberGenerator::RandomNumberGenerator(unsigned long)" cannot return a value.
"lib/matplotlib/tri/_tri.cpp", line 2198: Error: Linkage specifications are allowed only at file level.
"lib/matplotlib/tri/_tri.cpp", line 2201: Error: Use ";" to terminate declarations.
"lib/matplotlib/tri/_tri.cpp", line 2213: Error: Unexpected ":" found.
"lib/matplotlib/tri/_tri.cpp", line 2219: Error: The function "add_varargs_method" must have a prototype.
"lib/matplotlib/tri/_tri.cpp", line 2221: Error: The function "add_varargs_method" must have a prototype.
"lib/matplotlib/tri/_tri.cpp", line 2223: Error: The function "add_varargs_method" must have a prototype.
"lib/matplotlib/tri/_tri.cpp", line 2227: Error: The function "initialize" must have a prototype.
"lib/matplotlib/tri/_tri.cpp", line 2231: Error: new_triangulation may not have a type qualifier.
"lib/matplotlib/tri/_tri.cpp", line 2231: Error: Use ";" to terminate declarations.
"lib/matplotlib/tri/_tri.cpp", line 2233: Error: args is not defined.
"lib/matplotlib/tri/_tri.cpp", line 2233: Error: Badly formed expression.
"lib/matplotlib/tri/_tri.cpp", line 2237: Error: args is not defined.
"lib/matplotlib/tri/_tri.cpp", line 2236: Error: Cannot use int to initialize tagPyArrayObject_fields*.
"lib/matplotlib/tri/_tri.cpp", line 2239: Error: args is not defined.
Compilation aborted, too many Error messages.
error: command '/usr/lib/python2.6/pycc' failed with exit status 1

Any new idea?
Borut

@mdboom
Copy link
Member

mdboom commented Sep 4, 2013

The second is due to:

    const unsigned long _M, _A, _C;

which is common enough of a construction that any compiler should handle it, but you could try:

    const unsigned long _M;
    const unsigned long _A;
    const unsigned long _C;

instead.

@podlipnik
Copy link
Author

This didn't help:

building 'matplotlib._tri' extension
/usr/lib/python2.6/pycc -DNDEBUG -KPIC -DPY_ARRAY_UNIQUE_SYMBOL=MPL_matplotlib__tri_ARRAY_API -DPYCXX_ISO_CPP_LIB=1 -I/usr/local/include -I. -I/usr/lib/python2.6/site-packages/numpy/core/include -I/usr/include/python2.6 -c lib/matplotlib/tri/_tri.cpp -o build/temp.solaris-2.10-i86pc-2.6/lib/matplotlib/tri/_tri.o
CC: Warning: Option -fPIC passed to ld, if ld is invoked, ignored otherwise
"/usr/lib/python2.6/site-packages/numpy/core/include/numpy/ndarraytypes.h", line 209: Warning: Identifier expected instead of "}".
"lib/matplotlib/tri/_tri.h", line 822: Error: A declaration does not specify a tag or an identifier.
"lib/matplotlib/tri/_tri.h", line 822: Error: Use ";" to terminate declarations.
"lib/matplotlib/tri/_tri.h", line 822: Error: "}" expected instead of "0x00000020".
"lib/matplotlib/tri/_tri.h", line 822: Error: Use ";" to terminate declarations.
"lib/matplotlib/tri/_tri.h", line 822: Error: A declaration was expected instead of "0x00000020".
"lib/matplotlib/tri/_tri.h", line 824: Error: A declaration was expected instead of "}".
"lib/matplotlib/tri/_tri.cpp", line 2178: Error: "{" expected instead of "0x00000020".
"lib/matplotlib/tri/_tri.cpp", line 2178: Error: Only a function may be called.
"lib/matplotlib/tri/_tri.cpp", line 2178: Error: Only a function may be called.
"lib/matplotlib/tri/_tri.cpp", line 2179: Error: Use ";" to terminate statements.
"lib/matplotlib/tri/_tri.cpp", line 2183: Error: ( may not have a type qualifier.
"lib/matplotlib/tri/_tri.cpp", line 2183: Error: operator()(unsigned long) must be a member function.
"lib/matplotlib/tri/_tri.cpp", line 2183: Error: Use ";" to terminate declarations.
"lib/matplotlib/tri/_tri.cpp", line 2185: Error: max_value is not defined.
"lib/matplotlib/tri/_tri.cpp", line 2185: Error: "RandomNumberGenerator::RandomNumberGenerator(unsigned long)" cannot return a value.
"lib/matplotlib/tri/_tri.cpp", line 2196: Error: Linkage specifications are allowed only at file level.
"lib/matplotlib/tri/_tri.cpp", line 2199: Error: Use ";" to terminate declarations.
"lib/matplotlib/tri/_tri.cpp", line 2211: Error: Unexpected ":" found.
"lib/matplotlib/tri/_tri.cpp", line 2217: Error: The function "add_varargs_method" must have a prototype.
"lib/matplotlib/tri/_tri.cpp", line 2219: Error: The function "add_varargs_method" must have a prototype.
"lib/matplotlib/tri/_tri.cpp", line 2221: Error: The function "add_varargs_method" must have a prototype.
"lib/matplotlib/tri/_tri.cpp", line 2225: Error: The function "initialize" must have a prototype.
"lib/matplotlib/tri/_tri.cpp", line 2229: Error: new_triangulation may not have a type qualifier.
"lib/matplotlib/tri/_tri.cpp", line 2229: Error: Use ";" to terminate declarations.
"lib/matplotlib/tri/_tri.cpp", line 2231: Error: args is not defined.
Compilation aborted, too many Error messages.
error: command '/usr/lib/python2.6/pycc' failed with exit status 1

Borut

@mdboom
Copy link
Member

mdboom commented Sep 4, 2013

Then I'm at a loss, unfortunately.

@WeatherGod
Copy link
Member

At this point, I would go with my personal rule of "work from the top" when
dealing with compiler issues. The very first warning (of significance) is:
"/usr/lib/python2.6/site-packages/numpy/core/include/numpy/ndarraytypes.h",
line 209: Warning: Identifier expected instead of "}".

Which indicates to me a possible issue with something in numpy. Now, in my
version of numpy that I have on-hand, that line refers to one of the enums,
but there is nothing special that I can see about it. It would be helpful
to know which version of numpy it is including so we can see exactly what
it is warning about.

@podlipnik
Copy link
Author

BUILDING MATPLOTLIB
matplotlib: yes [1.3.0]
python: yes [2.6.4 (r264:75706, Jun 26 2012, 21:27:36) [C]]
platform: yes [sunos5]

REQUIRED DEPENDENCIES AND EXTENSIONS
numpy: yes [version 1.7.1]

@WeatherGod
Copy link
Member

So, the line in question refers to this enum definition:

typedef enum {
        /* Only allow identical types */
        NPY_NO_CASTING=0,
        /* Allow identical and byte swapped types */
        NPY_EQUIV_CASTING=1,
        /* Only allow safe casts */
        NPY_SAFE_CASTING=2,
        /* Allow safe casts or casts within the same kind */
        NPY_SAME_KIND_CASTING=3,
        /* Allow any casts */
        NPY_UNSAFE_CASTING=4,

        /*
         * Temporary internal definition only, will be removed in upcoming
         * release, see below
         * */
        NPY_INTERNAL_UNSAFE_CASTING_BUT_WARN_UNLESS_SAME_KIND = 100,
} NPY_CASTING;

This is completely a shot in the dark, but perhaps that incredibly long enum identifier might be tripping up the compiler?

@podlipnik
Copy link
Author

After removing the last comma in typedef enum, warning disappear:

typedef enum {
....
NPY_INTERNAL_UNSAFE_CASTING_BUT_WARN_UNLESS_SAME_KIND = 100
} NPY_CASTING;

in file /usr/lib/python2.6/site-packages/numpy/core/include/numpy/ndarraytypes.h

The first errors are coming from this part in lib/matplotlib/tri/_tri.h:
...
812: class RandomNumberGenerator
813: {
814: public:
815: RandomNumberGenerator(unsigned long seed);
816:
817: // Return random integer in the range 0 to max_value-1.
818: unsigned long operator()(unsigned long max_value);
819:
820: private:
821: const unsigned long _M;
822: const unsigned long _A;
823: const unsigned long _C;
824: unsigned long _seed;
825: }

"lib/matplotlib/tri/_tri.h", line 823: Error: A declaration does not specify a tag or an identifier.
"lib/matplotlib/tri/_tri.h", line 823: Error: Use ";" to terminate declarations.
"lib/matplotlib/tri/_tri.h", line 823: Error: "}" expected instead of "0x00000020".
"lib/matplotlib/tri/_tri.h", line 823: Error: Use ";" to terminate declarations.
"lib/matplotlib/tri/_tri.h", line 823: Error: A declaration was expected instead of "0x00000020".
"lib/matplotlib/tri/_tri.h", line 825: Error: A declaration was expected instead of "}".

Any idea?

@podlipnik
Copy link
Author

Looks like one of the problems are _M, _A, _C in lib/matplotlib/tri/_tri.cpp:

RandomNumberGenerator::RandomNumberGenerator(unsigned long seed)
: _M(21870), _A(1291), _C(4621), _seed(seed % _M)
{}

unsigned long
RandomNumberGenerator::operator()(unsigned long max_value)
{
_seed = (_seed__A + _C) % _M;
return (_seed_max_value) / _M;
}

Is underscore a problem?

@WeatherGod
Copy link
Member

Or, maybe specifically, "_C" is a problem, as in it might be treated as a
special identifier in the compiler (or, sometimes one might use _C to
indicate a class for templating). Again, another complete shot in the dark,
try changing the letter to be something else.

@podlipnik
Copy link
Author

I just replaced "M","A","C" with "M","A","C" and this works! However, there are many warnings:
...
/usr/lib/python2.6/pycc -DNDEBUG -KPIC -DPY_ARRAY_UNIQUE_SYMBOL=MPL_matplotlib__tri_ARRAY_API -DPYCXX_ISO_CPP_LIB=1 -I/usr/local/include -I. -I/usr/lib/python2.6/site-packages/numpy/core/include -I/usr/include/python2.6 -c lib/matplotlib/tri/tri.cpp -o build/temp.solaris-2.10-i86pc-2.6/lib/matplotlib/tri/tri.o
CC: Warning: Option -fPIC passed to ld, if ld is invoked, ignored otherwise
"./CXX/Python2/ExtensionOldType.hxx", line 209: Warning (Anachronism): Formal argument handler of type extern "C" object()(object,object) in call to Py::MethodDefExt::MethodDefExt(const char
, Py::Object(Triangulation::
)(const Py::Tuple&), extern "C" object(
)(object,object), const char
) is being passed object(
)(object,object).
"lib/matplotlib/tri/tri.cpp", line 600: Where: While instantiating "static Py::PythonExtension::add_varargs_method(const char, Py::Object(Triangulation::)(const Py::Tuple&), const char)".
"lib/matplotlib/tri/tri.cpp", line 600: Where: Instantiated from non-template code.
"./CXX/Python2/ExtensionOldType.hxx", line 209: Warning (Anachronism): Formal argument handler of type extern "C" object()(object,object) in call to Py::MethodDefExt::MethodDefExt(const char
, Py::Object(Triangulation::)(const Py::Tuple&), extern "C" object()(object,object), const char_) is being passed object()(object,object).
"lib/matplotlib/tri/tri.cpp", line 602: Where: While instantiating "static Py::PythonExtension::add_varargs_method(const char, Py::Object(Triangulation::
)(const Py::Tuple&), const char_)".
"lib/matplotlib/tri/tri.cpp", line 602: Where: Instantiated from non-template code.
"./CXX/Python2/ExtensionOldType.hxx", line 209: Warning (Anachronism): Using object(
)(object,object) to initialize extern "C" object(_)(object,object).

Exist any test routine to see if everything is working?

@podlipnik
Copy link
Author

Running basic_example.py failed:

./basic_example.py
Traceback (most recent call last):
File "./basic_example.py", line 4, in
import matplotlib.pyplot as plt
File "/usr/lib/python2.6/site-packages/matplotlib-1.3.0-py2.6-solaris-2.10-i86pc.egg/matplotlib/pyplot.py", line 24, in
import matplotlib.colorbar
File "/usr/lib/python2.6/site-packages/matplotlib-1.3.0-py2.6-solaris-2.10-i86pc.egg/matplotlib/colorbar.py", line 27, in
import matplotlib.artist as martist
File "/usr/lib/python2.6/site-packages/matplotlib-1.3.0-py2.6-solaris-2.10-i86pc.egg/matplotlib/artist.py", line 7, in
from transforms import Bbox, IdentityTransform, TransformedBbox,
File "/usr/lib/python2.6/site-packages/matplotlib-1.3.0-py2.6-solaris-2.10-i86pc.egg/matplotlib/transforms.py", line 35, in
from matplotlib._path import (affine_transform, count_bboxes_overlapping_bbox,
ImportError: ld.so.1: isapython2.6: fatal: relocation error: file /usr/lib/python2.6/site-packages/matplotlib-1.3.0-py2.6-solaris-2.10-i86pc.egg/matplotlib/_path.so: symbol _1cH__rwstdX__rwse_InvalidSizeParam: referenced symbol not found

@WeatherGod
Copy link
Member

At this point, I am just not sure anymore. As a complete guess, I would
wonder if completely nuking the build and starting from fresh would help.

@mdboom, a coworker passed along a link that might be useful for us:
https://blogs.oracle.com/observatory/entry/solaris_11_express_virtualbox_vm

It isn't solaris 12, but who knows?

@podlipnik
Copy link
Author

ldd /usr/lib/python2.6/site-packages/matplotlib-1.3.0-py2.6-solaris-2.10-i86pc.egg/matplotlib/_path.so
libstdc++.so.6 => /usr/sfw/lib/libstdc++.so.6
libm.so.2 => /usr/lib/libm.so.2
libpython2.6.so.1.0 => /usr/lib/libpython2.6.so.1.0
libgcc_s.so.1 => /usr/sfw/lib/libgcc_s.so.1
libc.so.1 => /usr/lib/libc.so.1
libresolv.so.2 => /usr/lib/libresolv.so.2
libsocket.so.1 => /usr/lib/libsocket.so.1
libnsl.so.1 => /usr/lib/libnsl.so.1
librt.so.1 => /usr/lib/librt.so.1
libdl.so.1 => /usr/lib/libdl.so.1
libmp.so.2 => /usr/lib/libmp.so.2
libmd.so.1 => /usr/lib/libmd.so.1
libscf.so.1 => /usr/lib/libscf.so.1
libaio.so.1 => /usr/lib/libaio.so.1
libdoor.so.1 => /usr/lib/libdoor.so.1
libuutil.so.1 => /usr/lib/libuutil.so.1
libgen.so.1 => /usr/lib/libgen.so.1

I am wondering what libgcc_s.so.1 is doing here when I am compiling with sunstudio12.1

@podlipnik
Copy link
Author

I am starting from fresh...

Why do I get /usr/sfw/lib instead of /opt/sunstudio12.1/lib here:

/usr/lib/python2.6/pyCC -L. -L/usr/sfw/lib -R/usr/sfw/lib -G build/temp.solaris-2.10-i86pc-2.6/src/mplutils.o build/temp.solaris-2.10-i86pc-2.6/src/agg_py_transforms.o build/temp.solaris-2.10-i86pc-2.6/src/_backend_agg.o build/temp.solaris-2.10-i86pc-2.6/agg24/src/agg_bezier_arc.o build/temp.solaris-2.10-i86pc-2.6/agg24/src/agg_curves.o build/temp.solaris-2.10-i86pc-2.6/agg24/src/agg_image_filters.o build/temp.solaris-2.10-i86pc-2.6/agg24/src/agg_trans_affine.o build/temp.solaris-2.10-i86pc-2.6/agg24/src/agg_vcgen_contour.o build/temp.solaris-2.10-i86pc-2.6/agg24/src/agg_vcgen_dash.o build/temp.solaris-2.10-i86pc-2.6/agg24/src/agg_vcgen_stroke.o build/temp.solaris-2.10-i86pc-2.6/agg24/src/agg_vpgen_segmentator.o build/temp.solaris-2.10-i86pc-2.6/CXX/cxxsupport.o build/temp.solaris-2.10-i86pc-2.6/CXX/IndirectPythonInterface.o build/temp.solaris-2.10-i86pc-2.6/CXX/cxx_extensions.o build/temp.solaris-2.10-i86pc-2.6/CXX/cxxextensions.o -L/usr/local/lib -L/usr/sfw/lib -L. -lfreetype -lstdc++ -lm -lpython2.6 -o build/lib.solaris-2.10-i86pc-2.6/matplotlib/backends/_backend_agg.so
CC: Warning: Option -shared passed to ld, if ld is invoked, ignored otherwise
CC: Warning: Option -fPIC passed to ld, if ld is invoked, ignored otherwise

This enviroment variables are set:
PATH=/usr/ccs/bin:/opt/sunstudio12.1/bin:/bin:/usr/bin:/usr/ucb:/etc:.:/usr/sbin:/usr/ccs/bin:/opt/csw/bin://bin
LAPACK=/opt/sunstudio12.1/lib/libsunmath.so
BLAS=/opt/sunstudio12.1/lib/libsunperf.so
CC=CC
CXX=CC
LD_LIBRARY_PATH=/opt/sunstudio12.1/lib:/usr/local/ssl/lib:/usr/local/mm/lib:/usr/local/gd/lib:/usr/local/netpbm/lib:/usr/lib

@podlipnik
Copy link
Author

How do I control which libraries should be linked? I am compiling with Solaris Studio and not with g++! As we can see "-lstdc++" from /usr/local/lib/libstdc++* is used instead of /opt/sunstudio12.1/lib/libCstd.so

I tried to compile matplotlib on Solaris 11 where I have only Solaris Studio installed. This failed because libstdc++ is not installed! Removing "-lstdc++" lead to successful build. Looks like "-lstdc++" is hard coded library to use.

How do I tell build process to use Solaris Studio and their libraries?

@mdboom
Copy link
Member

mdboom commented Sep 20, 2013

I don't think we have any developers on Solaris, and I wouldn't stick my neck out to say it's officially supported. However, we do use Python distutils as our build system, so anything that applies to that would also apply here. You may want to look through the distutils documentation for ways that the compiler can be forced or for Solaris Studio-specific information.

@tacaswell
Copy link
Member

@podlipnik Did you ever get this sorted out?

@podlipnik
Copy link
Author

Never!

On Tue, Feb 25, 2014 at 2:01 AM, Thomas A Caswell
notifications@github.comwrote:

@podlipnik https://github.com/podlipnik Did you ever get this sorted
out?

Reply to this email directly or view it on GitHubhttps://github.com//issues/2375#issuecomment-35963120
.

++++++++++++++++++++++++++++++++++++
Borut Podlipnik
Max Planck Institute for Solar System Research
Justus-von-Liebig-Weg 3
37077 Göttingen
Phone:+49 551 384 979 227
Email: podlipnik@mps.mpg.de
++++++++++++++++++++++++++++++++++++

@joan-smith
Copy link

Too bad, I'm hitting this identically. Have other folks had success installing matplotlib on other versions of solaris recently?

@tacaswell
Copy link
Member

@podlipnik @joan-smith Have you tried with more current version of matplotlib?

@tacaswell tacaswell added this to the v1.5.x milestone Aug 17, 2014
@podlipnik
Copy link
Author

I didn't.

On Sun, Aug 17, 2014 at 11:39 PM, Thomas A Caswell <notifications@github.com

wrote:

@podlipnik https://github.com/podlipnik @joan-smith
https://github.com/joan-smith Have you tried with more current version
of matplotlib?


Reply to this email directly or view it on GitHub
#2375 (comment)
.

@tacaswell tacaswell modified the milestones: unassigned, v1.5.x Nov 26, 2014
@tacaswell
Copy link
Member

Has anyone with a solaris box tried to recompile with 1.5.0? There were some pretty major refactoring of the c++ wrapping layer and minor refactoring it _tri

@mdboom
Copy link
Member

mdboom commented Nov 20, 2015

I used to have access to Solaris at STScI, but even they were phasing it out.

@joan-smith
Copy link

I'm no longer working on Solaris machines, so haven't tried with a more recent version. Sorry!

@efiring
Copy link
Member

efiring commented May 22, 2016

This looks like a case of "can't fix it", and declining importance as Solaris machines become less common. Closing.

@efiring efiring closed this as completed May 22, 2016
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

6 participants