Solaris 10 SPARC
I've seen this question asked a few time while trying to Google how to install Couchbase on our Solaris instance but have not been able to get this to build yet. I hope this makes it's way to Trond :)
I am currently getting stuck when trying to build the embedded sqlite3 in ep-engine (along with a few warnings):
gmake -C ep-engine install
gmake[1]: Entering directory `/u01/app/couch/couchbase/ep-engine'
gmake install-am
gmake[2]: Entering directory `/u01/app/couch/couchbase/ep-engine'
CC embedded/libsqlite3_la-sqlite3.lo
In file included from /usr/include/stdio.h:21:0,
from embedded/sqlite3.c:6767:
/opt/csw/lib/gcc/sparc-sun-solaris2.10/4.7.1/include-fixed/sys/feature_tests.h:341:2: error: #error "Compiler or options invalid for pre-UNIX 03 X/Open applications and pre-2001 POSIX applications"
embedded/sqlite3.c: In function 'sqlite3MallocInit':
I've seen here, https://groups.google.com/forum/?fromgroups#!topic/membase/veSBn18rinc, that you recommend using the Sun Studio c libraries. As a novice at best Solaris guy, I tried to download the 10 distribution from Oracle and added the bin to my path. Doesn't seem to matter. I see from here, http://www.norbye.org/jenkins/job/Couchbase-Server-2.0/label=s10u9-sparc..., that the c compiler for this build is configured to use the Sun compiler. I just can't get there.
I've tried to piece together what I can to get this to build but have not been able to do so yet, mostly from the aid of trond's resources online. I think that perhaps if I could get the studio compiler configured, I could keep going but need a little direction.
Thanks in advance.
Hi mikew
Thanks for letting me know about trond. I was able to get past the Sun compiler working but and stuck on the boost libraries now, very similar to this post....https://groups.google.com/forum/#!topic/membase/veSBn18rinc. only i can find the shared_ptr, just not the unordered_map.
This section of the configuration looks fishy but I'm not sure why it is unusable:
checking boost/unordered_map.hpp presence... yes
checking for boost/unordered_map.hpp... yes
checking the location of unordered_map header file...
configure: WARNING: a usable unordered_map implementation was not found. Let someone know what your platform is.vi
The config.log contains a bit more
configure:16440: checking the location of unordered_map header file
configure:16472: CC -c -m64 -I/u01/app/couch/couchbase/install64/include -I/u01/app/couch/couchbase/lib/boost-1.49.0 -m64 conftest.cpp >&5
"conftest.cpp", line 54: Error: unordered_map is not a member of std.
"conftest.cpp", line 61: Error: unordered_map is not defined.
"conftest.cpp", line 61: Error: Unexpected type name "std::string" encountered.
"conftest.cpp", line 61: Error: Unexpected type name "std::string" encountered.
"conftest.cpp", line 61: Error: test_map is not defined.
5 Error(s) detected.
I'm using 1.49.0 boost, going to try to downgrade but I'm no c guy and piecing this together has been slowwwww for me. I appreciate the note.
Thanks, Patrick
Downgrading doesn't help but if I change to the GNU compiler, I get past this issue, so it must be an incompatibility with the Sun Studio 12.3. trond, if you see this, what version of the studio do you use in your CI, and even your boost version?
Thanks
edit
I found https://svn.boost.org/trac/boost/ticket/6784 but also tried the beta release without any luck. moving now to downgrade the studio.
Hi,
I don't use my Solaris 10 builder that often, so I don't remember the exact details on how I got it working. I just logged on my Solaris 10 SPARC builder, and I see that I'm using boost 1.48.0. You should be able to use Sun studio 12.2 or 12.3. it shouldn't matter.
I so have automated builders building the stuff on Solaris at http://jenkins.norbye.org/jenkins for my personal amusement. You may look at the build logs there to look at the setup.
Let me know if I may help you with anything.
Cheers,
Trond
Thanks trond, I was able to get this to build (will post my environment and dependency listing soon as this was the biggest obstacle). I ended up using GCC instead of Sun's compiler. The boost stuff just wasn't working. [1] maybe, although I tried with 1.50 and it didn't work for me either.
Your jenkin's log were a great resource, thanks for that.
Trond is the best person to answer this question as I think he is the only person at Couchbase that builds on Solaris. I sent him an email, but I think he is on vacation right now. Hopefully he will be able to find some time to help you out when he gets back.