Archived
This forum has been archived. Please start a new discussion on GitHub.
Building Ice (cpp) on Solaris 10 (sparc)
After going through the Ice source documentation several times, I am trying to still flesh out the correct environment for building Ice on Solaris 10 on sparc.
The src documentation simply states that the only supported compilers are GCC 3.4.3 on x86/x64 and GCC 4.3.2 on SPARC and mentions nothing else, however, the 'Supported Platforms for Ice 3.4.1' web page specifically states that 'Sun GCC' is what's supported for Solaris 10 on sparc.
I've tried installing GCC for Sun Systems 4.3.2 and am consistently getting errors such as cg assertion failures in sunIR.cc when building Ice. Other versions of GCC available for Solaris / sparc, such as Blastwave GCC v4.5.1, produce undefined symbol errors after a brief period of building Ice but seem to build other things just fine.
Not having used the actual 'GCC for Sun Systems' packages before (I've traditionally used SunFreeWare or Blastwave), and with none of Oracle's installation documentation links currently working on any of the GCC downloads they've got on their site, I was wondering if someone could provide a working build environment profile for the Solaris 10 on sparc combination so I can compare what I've been doing. Specifically, I'm looking for where the Sun code generator and GCC should live and any environment variables that need to be set (plus anything else relevant).
I'm using a fresh install of Solaris 10 u9 on a T2000.
Any help would be appreciated.
Many thanks,
- Darren
The src documentation simply states that the only supported compilers are GCC 3.4.3 on x86/x64 and GCC 4.3.2 on SPARC and mentions nothing else, however, the 'Supported Platforms for Ice 3.4.1' web page specifically states that 'Sun GCC' is what's supported for Solaris 10 on sparc.
I've tried installing GCC for Sun Systems 4.3.2 and am consistently getting errors such as cg assertion failures in sunIR.cc when building Ice. Other versions of GCC available for Solaris / sparc, such as Blastwave GCC v4.5.1, produce undefined symbol errors after a brief period of building Ice but seem to build other things just fine.
Not having used the actual 'GCC for Sun Systems' packages before (I've traditionally used SunFreeWare or Blastwave), and with none of Oracle's installation documentation links currently working on any of the GCC downloads they've got on their site, I was wondering if someone could provide a working build environment profile for the Solaris 10 on sparc combination so I can compare what I've been doing. Specifically, I'm looking for where the Sun code generator and GCC should live and any environment variables that need to be set (plus anything else relevant).
I'm using a fresh install of Solaris 10 u9 on a T2000.
Any help would be appreciated.
Many thanks,
- Darren
0
Comments
-
I'll give it a try and let you know how it goes.
Thanks!0 -
Actually, just looking over that page, the GCC for Sun Systems 4.3.2 is exactly what I tried first.
I'm in the midst of re-installing the whole thing at the moment to make sure I didn't miss anything.0 -
On Solaris 10 9/10 on sparc (sun4v), I'm consistently getting a requirement of libiconv during the build process (undefined symbols). I've done several fresh Solaris installs all with the same outcome.
Undefined first referenced
symbol in file
libiconv_close ../../lib/libIce.so
libiconv_open ../../lib/libIce.so
libiconv ../../lib/libIce.so
ld: fatal: Symbol referencing errors. No output written to ../../bin/icepatch2server
collect2: ld returned 1 exit status
Modifying the cpp/config/Make.rules.SunOS to include the -liconv as well as editing the individual component Makfiles to add the $(ICONV_LIBS) variable - seems to get the job done. I've had to implement this work-around with FreezeScript, IceBox, Glacier2, IcePatch2, etc.
I'm wondering what it is I'm missing . . any ideas? Should I be installing just a base system without any Solaris development tools? I did notice in the cpp/config/Make.rules.SunOS, that it only accounts Sun4u as well - is this intended?
As far as the system I'm working on, here are some of the environment details.
Building with 'gmake DB_HOME=/usr/local/BerkeleyDB.4.8 EXPAT_HOME=/usr/local OPENSSL_HOME=/usr/local/ssl MCPP_HOME=/usr/local ICONV_HOME=/usr/local'
GCC for Sun Systems 4.3.2 is setup in /opt/gcc.
BDB and patched MCPP installed from Third-Party sources in /usr/local/BerkeleyDB.4.8 and /usr/local/lib respectively.
Expat, openssl, libintl, and (now) iconv installed from Sunfreeware in /usr/local/lib.
The '/etc/default/login' & '/etc/default/su' paths are setup as:
PATH=/opt/gcc/bin:/usr/local/bin:/usr/sfw/bin:/usr/bin:/opt/csw/bin:/usr/ccs/bin
SUPATH=/opt/gcc/bin:/usr/local/bin:/usr/sfw/bin:/usr/bin:/usr/sbin:/opt/csw/bin:/usr/ccs/bin
The ld library paths are setup as:
crle -c /var/ld/ld.config -l /lib:/usr/lib:/opt/gcc/lib:/usr/local/lib:/opt/csw/lib:/usr/sfw/lib:/opt/gcc/lib/sys
crle 4-64 -c /var/ld/64/ld.config -l /lib/64:/usr/lib/64:/opt/gcc/lib/sparcv9:/opt/csw/lib/sparcv9:/usr/sfw/lib/sparcv9:/opt/gcc/lib/sys:/usr/sfw/lib/64
bash-3.00$ ldd lib/libIce.so
libIceUtil.so.34 => (file not found)
libbz2.so.1 => /usr/lib/libbz2.so.1
libsocket.so.1 => /lib/libsocket.so.1
libstdc++.so.6 => /usr/sfw/lib/libstdc++.so.6
libm.so.2 => /lib/libm.so.2
libgcc_s.so.1 => /usr/sfw/lib/libgcc_s.so.1
libc.so.1 => /lib/libc.so.1
libnsl.so.1 => /lib/libnsl.so.1
libmp.so.2 => /lib/libmp.so.2
libmd.so.1 => /lib/libmd.so.1
libscf.so.1 => /lib/libscf.so.1
libdoor.so.1 => /lib/libdoor.so.1
libuutil.so.1 => /lib/libuutil.so.1
libgen.so.1 => /lib/libgen.so.1
/platform/SUNW,Sun-Fire-T200/lib/libc_psr.so.1
/platform/SUNW,Sun-Fire-T200/lib/libmd_psr.so.1
bash-3.00$ find ./ -name libIceUtil.so.34
./lib/libIceUtil.so.34
bash-3.00$ nm /lib/libc.so.1 | grep iconv
000526b0 T _iconv
00052634 T _iconv_close
00051ef0 T _iconv_open
000526b0 W iconv
00052634 W iconv_close
00051ef0 W iconv_open
000521c8 t iconv_open_all
00052414 t iconv_open_private
00052298 t iconv_search_alias
bash-3.00$ what /lib/libc.so.1
/lib/libc.so.1:
SunOS 5.10 Generic 142909-17 Aug 20100 -
Hi Darren,
It looks like you're not using / linking with the Sun C library:sun:~/install/Ice-3.4.1/lib$ ldd libIce.so libIceUtil.so.34 => /home/bernard/install/Ice-3.4.1/lib/libIceUtil.so.34 libbz2.so.1 => /usr/lib/libbz2.so.1 libdl.so.1 => /lib/libdl.so.1 libsocket.so.1 => /lib/libsocket.so.1 libstdc++.so.6 => /opt/cooltools/gcc/bin/../lib//libstdc++.so.6 libm.so.2 => /lib/libm.so.2 libgcc_s.so.1 => /opt/cooltools/gcc/bin/../lib//libgcc_s.so.1 libpthread.so.1 => /lib/libpthread.so.1 librt.so.1 => /lib/librt.so.1 libc.so.1 => /lib/libc.so.1 libnsl.so.1 => /lib/libnsl.so.1 libaio.so.1 => /lib/libaio.so.1 libmd.so.1 => /lib/libmd.so.1 libmp.so.2 => /lib/libmp.so.2 libscf.so.1 => /lib/libscf.so.1 libdoor.so.1 => /lib/libdoor.so.1 libuutil.so.1 => /lib/libuutil.so.1 libgen.so.1 => /lib/libgen.so.1 /platform/SUNW,UltraAX-i2/lib/libc_psr.so.1 /platform/SUNW,UltraAX-i2/lib/libmd_psr.so.1 sun:~/install/Ice-3.4.1/lib$ nm /lib/libc.so.1 | grep iconv [8882] | 334004| 52|FUNC |GLOB |0 |9 |_iconv [7342] | 333880| 124|FUNC |GLOB |0 |9 |_iconv_close [8764] | 332020| 180|FUNC |GLOB |0 |9 |_iconv_open [7548] | 334004| 52|FUNC |WEAK |0 |9 |iconv [2238] | 0| 0|FILE |LOCL |0 |ABS |iconv.c [6628] | 333880| 124|FUNC |WEAK |0 |9 |iconv_close [8360] | 332020| 180|FUNC |WEAK |0 |9 |iconv_open [2250] | 332748| 208|FUNC |LOCL |0 |9 |iconv_open_all [2253] | 333336| 544|FUNC |LOCL |0 |9 |iconv_open_private [2251] | 332956| 380|FUNC |LOCL |0 |9 |iconv_search_alias sun:~/install/Ice-3.4.1/lib$ what /lib/libc.so.1 /lib/libc.so.1: SunOS 5.10 Generic 127127-11 Mar 2008
From looking at the Makefiles, it looks like on x86 we link with a separate iconv library.
I don't know why this would be necessary for your SPARC build, but if you want to do this, you can by editing the Make.rules.SunOS and no other Makefile.
Best regards,
Bernard0 -
Just updated my last post with some additional details.
Thanks!0 -
Hi Darren,
I suspect the issue is that you defined 'ICONV_HOME' in your build environment.
You don't need it, as you want to use the built-in iconv on SPARC. Let us know how it goes!
Cheers,
Bernard0 -
I'll take that out with another fresh copy of Ice and see what happens.0
-
Hi Darren,
For Expat and Openssl, our build (and binaries) also use the Sun distribution, installed in /usr/sfw, and not the Sunfreeware distrib.
I copied below the Solaris section of our third-party README.====================================================================== 4. Instructions for Solaris ====================================================================== If a third-party package is not listed below, there are no special requirements for configuring or building that package. Berkeley DB ----------- Berkeley DB must be configured with C++ support enabled. If you intend to use Ice for Java with Berkeley DB, you must also enable Java support: $ ../dist/configure --enable-cxx (plus --prefix=<dir> and/or --enable-java if you like) For 64-bit builds, use: $ export CFLAGS="-m64" $ export CXXFLAGS="-m64" $ export LDFLAGS="-m64 $ ../dist/configure --enable-cxx (plus --prefix=<dir> and/or --enable-java if you like) OpenSSL ------- OpenSSL is included with the Solaris 10 operating system and is installed in /usr/sfw. If you want to use this version of OpenSSL with Ice, we recommend that you also install the "Solaris 10 Encryption Kit" available from: http://www.sun.com/download/index.jsp?cat=Security&tab=3&subcat=Cryptography%20%26%20Encryption This kit is required to run the IceSSL tests successfully. expat ----- expat is included with the Solaris 10 operating system and is installed in /usr/sfw. mcpp ---- Ice requires the library version of mcpp, so configure mcpp as shown below: $ ./configure CFLAGS=-fPIC --enable-mcpplib --disable-shared (and --prefix=<dir> if you like) For 64-bit builds, use: $ ./configure CFLAGS="-fPIC -m64" --enable-mcpplib --disable-shared (and --prefix=<dir> if you like) On 64-bit platforms, after installation it is necessary to rename the library installation directory from $(prefix)/lib to $(prefix)/lib/sparcv9 for SPARC or $(prefix)/lib/amd64 for x86.
Best regards,
Bernard0 -
Well, on the iconv front, we're using git (which requires the iconv libs). I've uninstalled it, and am trying again without my makefile hacks.0
-
Hi Darren,
Even git does not always need libiconvsun:~$ ldd /opt/git/bin/git libz.so.1 => /usr/lib/libz.so.1 libsocket.so.1 => /lib/libsocket.so.1 libnsl.so.1 => /lib/libnsl.so.1 libcrypto.so.0.9.7 => /usr/sfw/lib/libcrypto.so.0.9.7 libc.so.1 => /lib/libc.so.1 libmp.so.2 => /lib/libmp.so.2 libmd.so.1 => /lib/libmd.so.1 libscf.so.1 => /lib/libscf.so.1 libdoor.so.1 => /lib/libdoor.so.1 libuutil.so.1 => /lib/libuutil.so.1 libgen.so.1 => /lib/libgen.so.1 libcrypto_extra.so.0.9.7 => /usr/sfw/lib/libcrypto_extra.so.0.9.7 libm.so.2 => /lib/libm.so.2 /platform/SUNW,UltraAX-i2/lib/libc_psr.so.1 /platform/SUNW,UltraAX-i2/lib/libmd_psr.so.1
If you have iconv installed in /usr/local and also use /usr/local as the home of another third-party package (like mcpp, DB, or your own Expat build), you may accidentally pick up the iconv headers from /usr/local while building some binaries, which in turn could result in an unwanted dependency on libiconv.
Cheers,
Bernard0 -
Taken from the actual gmake output using:
gmake MCPP_HOME=/usr/local EXPAT_HOME=/usr/sfw OPENSSL_HOME=/usr/sfw DB_HOME=/usr/local/BerkeleyDB.4.8
This is the latest error I'm getting when building a fresh copy of ice:
g++ -R /opt/Ice-3.4/lib:/usr/sfw/lib -Wall -D_REENTRANT -fPIC -g -L../../lib -o ../../bin/transformdb TransformAnalyzer.o TransformVisitor.o Transformer.o transformdb.o ../FreezeScript/Grammar.o Scanner.o AssignVisitor.o Data.o Error.o Functions.o Exception.o Parser.o Print.o Util.o -lSlice -L/usr/sfw/lib -lIceXML -L/usr/local/BerkeleyDB.4.8/lib -lFreeze -lIce -lIceUtil -lpthread -L/usr/local/BerkeleyDB.4.8/lib -ldb_cxx
ld: warning: file libmcpp.so.0: required by ../../lib/libSlice.so, not found
Undefined first referenced
symbol in file
mcpp_use_mem_buffers ../../lib/libSlice.so
std::basic_string<char, std::char_traits<char>, std::allocator<char> >::_Rep::_M_set_length_and_sharable(unsigned int) ../../lib/libFreeze.so
mcpp_get_mem_buffer ../../lib/libSlice.so
mcpp_lib_main ../../lib/libSlice.so
std::basic_ostream<char, std::char_traits<char> >& std::__ostream_insert<char, std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*, int) /usr/local/BerkeleyDB.4.8/lib/libdb_cxx.so
ld: fatal: Symbol referencing errors. No output written to ../../bin/transformdb
collect2: ld returned 1 exit status
gmake[2]: *** [../../bin/transformdb] Error 1
gmake[2]: Leaving directory `/export/home/darrens/ice/cpp/src/FreezeScript'
gmake[1]: *** [all] Error 1
gmake[1]: Leaving directory `/export/home/darrens/ice/cpp/src'
gmake: *** [all] Error 1
bash-3.00$ ldd lib/libSlice.so
libIceUtil.so.34 => (file not found)
libmcpp.so.0 => /usr/local/lib/libmcpp.so.0
libstdc++.so.6 => /usr/sfw/lib/libstdc++.so.6
libm.so.2 => /lib/libm.so.2
libgcc_s.so.1 => /usr/sfw/lib/libgcc_s.so.1
libc.so.1 => /lib/libc.so.1
libgcc_s.so.1 => /opt/gcc/bin/../lib//libgcc_s.so.1
/platform/SUNW,Sun-Fire-T200/lib/libc_psr.so.1
bash-3.00$
bash-3.00$ ls lib/libIceUtil.so.34
lib/libIceUtil.so.34
Additionally, if I manually execute that g++ command and the -l and -L flags I get the following output:
bash-3.00$ g++ -R /opt/Ice-3.4/lib:/usr/sfw/lib -Wall -D_REENTRANT -fPIC -g -L../../lib -o ../../bin/transformdb TransformAnalyzer.o TransformVisitor.o Transformer.o transformdb.o ../FreezeScript/Grammar.o Scanner.o AssignVisitor.o Data.o Error.o Functions.o Exception.o Parser.o Print.o Util.o -lSlice -L/usr/sfw/lib -lIceXML -L/usr/local/BerkeleyDB.4.8/lib -lFreeze -lIce -lIceUtil -lpthread -L/usr/local/lib -ldb_cxx -lmcpp
Undefined first referenced
symbol in file
std::basic_string<char, std::char_traits<char>, std::allocator<char> >::_Rep::_M_set_length_and_sharable(unsigned int) ../../lib/libFreeze.so
std::basic_ostream<char, std::char_traits<char> >& std::__ostream_insert<char, std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*, int) /usr/local/BerkeleyDB.4.8/lib/libdb_cxx.so
ld: fatal: Symbol referencing errors. No output written to ../../bin/transformdb
collect2: ld returned 1 exit status0 -
Hi Darren,
The mcpp link error suggests you didn't build libmcpp as per our instructions: it should be a static library.
And for the Freeze / Berkeley DB error, can you check & confirm you built Berkeley DB with the correct C++ compiler--the one you're using to build Ice?
Best regards,
Bernard0 -
mcpp was built using:
./configure CFLAGS=-fPIC --enable-mcpplib --disable-shared
from mcpp config.log:
It was created by mcpp configure 2.7.2, which was
generated by GNU Autoconf 2.61. Invocation command line was
$ ./configure CFLAGS=-fPIC --enable-mcpplib --disable-shared
-- snip --
configure:2021: checking build system type
configure:2039: result: sparc-sun-solaris2.10
configure:2061: checking host system type
configure:2076: result: sparc-sun-solaris2.10
configure:2098: checking target system type
configure:2113: result: sparc-sun-solaris2.10
configure:2156: checking for a BSD-compatible install
configure:2212: result: config/install-sh -c
configure:2223: checking whether build environment is sane
configure:2266: result: yes
configure:2294: checking for a thread-safe mkdir -p
configure:2333: result: config/install-sh -c -d
configure:2346: checking for gawk
configure:2376: result: no
configure:2346: checking for mawk
configure:2376: result: no
configure:2346: checking for nawk
configure:2362: found /usr/bin/nawk
configure:2373: result: nawk
configure:2384: checking whether make sets $(MAKE)
configure:2405: result: yes
configure:2643: checking for gcc
configure:2659: found /opt/gcc/bin/gcc
configure:2670: result: gcc
configure:2908: checking for C compiler version
configure:2915: gcc --version >&5
sparc-sun-solaris2.10-gcc (GCC) 4.3.2 (20090604) (gccfss)
Copyright (C) 2008 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
from the Third-Party-Sources Berkley DB config.log
It was created by Berkeley DB configure 4.8.30, which was
generated by GNU Autoconf 2.65. Invocation command line was
$ ../dist/configure --enable-cxx
-- snip --
configure:2900: checking build system type
configure:2914: result: sparc-sun-solaris2.10
configure:2934: checking host system type
configure:2947: result: sparc-sun-solaris2.10
configure:2979: checking if building in the top-level or dist directories
configure:2990: result: no
configure:3074: checking if --disable-cryptography option specified
configure:3087: result: no
configure:3091: checking if --disable-hash option specified
configure:3104: result: no
configure:3108: checking if --disable-partition option specified
configure:3121: result: no
configure:3125: checking if --disable-compression option specified
configure:3138: result: no
configure:3142: checking if --disable-mutexsupport option specified
configure:3155: result: no
configure:3159: checking if --disable-atomicsupport option specified
configure:3172: result: no
configure:3176: checking if --disable-queue option specified
configure:3189: result: no
configure:3193: checking if --disable-replication option specified
configure:3206: result: no
configure:3210: checking if --disable-statistics option specified
configure:3223: result: no
configure:3227: checking if --disable-verify option specified
configure:3240: result: no
configure:3244: checking if --enable-compat185 option specified
configure:3253: result: no
configure:3256: checking if --enable-cxx option specified
configure:3265: result: yes
configure:3268: checking if --enable-debug option specified
configure:3277: result: no
configure:3280: checking if --enable-debug_rop option specified
configure:3289: result: no
configure:3292: checking if --enable-debug_wop option specified
configure:3301: result: no
configure:3304: checking if --enable-diagnostic option specified
configure:3328: result: no
configure:3332: checking if --enable-dump185 option specified
configure:3341: result: no
configure:3344: checking if --enable-java option specified
configure:3353: result: no
configure:3356: checking if --enable-mingw option specified
configure:3365: result: no
configure:3368: checking if --enable-o_direct option specified
configure:3377: result: no
configure:3380: checking if --enable-posixmutexes option specified
configure:3389: result: no
configure:3406: checking if --enable-rpc option specified
configure:3419: result: no
configure:3422: checking if --enable-smallbuild option specified
configure:3441: result: no
configure:3444: checking if --enable-stl option specified
configure:3456: result: no
configure:3459: checking if --enable-tcl option specified
configure:3468: result: no
configure:3471: checking if --enable-test option specified
configure:3480: result: no
configure:3483: checking if --enable-uimutexes option specified
configure:3492: result: no
configure:3495: checking if --enable-umrw option specified
configure:3504: result: no
configure:3507: checking if --with-mutex=MUTEX option specified
configure:3523: result: no
configure:3535: checking if --with-tcl=DIR option specified
configure:3545: result: no
configure:3551: checking if --with-uniquename=NAME option specified
configure:3564: result: no
configure:3662: checking for chmod
configure:3678: found /usr/bin/chmod
configure:3689: result: chmod
configure:3756: checking for cp
configure:3772: found /usr/bin/cp
configure:3783: result: cp
configure:3947: checking for ln
configure:3963: found /usr/bin/ln
configure:3974: result: ln
configure:4041: checking for mkdir
configure:4057: found /usr/bin/mkdir
configure:4068: result: mkdir
configure:4135: checking for rm
configure:4151: found /usr/bin/rm
configure:4162: result: rm
configure:4335: checking for sh
configure:4353: found /usr/bin/sh
configure:4365: result: /usr/bin/sh
configure:4407: checking for a BSD-compatible install
configure:4475: result: ../dist/install-sh -c
configure:4621: checking for cc
configure:4651: result: no
configure:4621: checking for gcc
configure:4637: found /opt/gcc/bin/gcc
configure:4648: result: gcc
configure:4679: checking for C compiler version
configure:4688: gcc --version >&5
sparc-sun-solaris2.10-gcc (GCC) 4.3.2 (20090604) (gccfss)
Copyright (C) 2008 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.0 -
I think I've found the problem . .
bash-3.00$ ldd /usr/local/BerkeleyDB.4.8/lib/libdb_cxx.so
libresolv.so.2 => /lib/libresolv.so.2
librt.so.1 => /lib/librt.so.1
libpthread.so.1 => /lib/libpthread.so.1
libnsl.so.1 => /lib/libnsl.so.1
libsocket.so.1 => /lib/libsocket.so.1
libstdc++.so.6 => /usr/sfw/lib/libstdc++.so.6
libm.so.2 => /lib/libm.so.2
libgcc_s.so.1 => /usr/sfw/lib/libgcc_s.so.1
libc.so.1 => /lib/libc.so.1
libaio.so.1 => /lib/libaio.so.1
libmd.so.1 => /lib/libmd.so.1
libmp.so.2 => /lib/libmp.so.2
libscf.so.1 => /lib/libscf.so.1
libdoor.so.1 => /lib/libdoor.so.1
libuutil.so.1 => /lib/libuutil.so.1
libgen.so.1 => /lib/libgen.so.1
/platform/SUNW,Sun-Fire-T200/lib/libc_psr.so.1
/platform/SUNW,Sun-Fire-T200/lib/libmd_psr.so.10 -
Hi Darren,
Hope you found the solution to these builds issues. Perhaps a problem with your LD_LIBRARY_PATH, or too many GCCs installed on your system?
Once your build is working, it would be great if you could summarize the issues you encountered and associated solutions/work-arounds. We will then update our build instructions to highlight any potential pitfall.
Thanks,
Bernard0 -
Sure thing . .
I had several issues, but certainly I spent the most time getting GCC for Sun Systems installed properly with the existing GCC installation (I installed Solaris with the 'Entire Distribution' system package). With Oracle's integration of Sun, documentation links from docs.sun.com (even the GCC for Sun Systems docs themselves) are either dead or getting redirected to an Oracle documentation search page (with sub-optimal results at best).
The basis for this installation exercise is primarily to facilitate some easy to follow documentation for the Asterisk SCF project on our public wiki as well as getting a continuous build slave up and running so I've tried to make things as simple as possible. The results of all my work can be seen here (https://wiki.asterisk.org/wiki/display/TOP/Building+-+Solaris).
Several of my initial installations were all plagued by paths not being setup properly and by the fact that I'd installed all of these dependencies to support git and subversion. I certainly had the most grief with libiconv by a long way. While I'm sure time could have been spent making the system default and 3rd party libraries co-exist, I wanted to keep our documentation to a minimum.
Starting with a fresh Solaris installation and working my way down with Sun GCC properly, and compiling everything else from source has seemingly solved 98% of my problems.
I would suggest that the Solaris docs for Ice could be enhanced. Notes on an optimal system configuration would be most helpful (i.e. what system package works best on a fresh Solaris installation, paths, swap file size, etc.), so that someone fairly inexperienced with Solaris (or rusty in my case) can install Ice without referencing any other docs.
Many thanks again for all the help, and I'll certainly keep this thread updated with any other findings / hints I come up with.
- Darren0 -
Asterisk SCF - Master - ice - Solaris 10 - sparc 8: Build Log - Atlassian Bamboo (at the bottom)
I'm currently getting 'ld: fatal: file /dev/zero: mmap anon failed: Not enough space' on the automated builds. If I'm manually building Ice and simply re-run the gmake command, the build continues.
I've not googled this one extensively just yet, but will let you know what I come up with.
Thanks,
- Darren0 -
Hi Darren,
Hope you found a solution to this build problem.
We had to increase the swap space on our Solaris box to build Ice; you may need to do likewise on your system:
Swap Space and Virtual Memory
Cheers,
Bernard0