Installation FAQ (for SCIRun v. 1.24.2)


1) I'm building ITK on Mac OSX and the compilation fails with errors like the following: ld: Undefined symbols: std::basic_ostream<char, std::char_traits<char> >& operator<< <double>(std::basic_ostream<char, std::char_traits<char> >&, vnl_matrix<double> const&) I'm using gcc 3.3. What's wrong?

2) Is SCIRun compatible with GCC 3.4?

3) I am installing SCIRun on Mac OS X. What special procedures should I follow?

4) How does one install the thirdparty software on an SGI Octane. When running the install script provided in the tar ball from the SCIRun website, the following error message appears. It seems to be trying to copy a xerces file that does not exist.

5) SCIRun and its required thirdparty software is successfully installed (by hand) onto an SGI target install machine, but SCIRun is runs, it immediately signals an abort (SIGABRT).

6) When building SCIRun on an SGI target machine, an error message regarding the SGI Image Format Library (IFL) appeared.

7) The thirdparty software was successfully installed onto an SGI target install machine, but when tring to build SCIRun, it fails during the compile phase.

8) SCIRun sometimes hangs when running the example nets on a dual processor linux machine.

9) Installing SCIRun or the thirdparty software into my home directory fails when building.

10) How does one make a 64 bit build of SCIRun?

11) SCIRun is successfully installed onto a linux target install machine with XFree86 version 4.1.0 installed, but when it runs, it immediately signals a segmentation violation (SIGSEGV): Thread "main"(pid 2063) caught signal SIGSEGV at address 0xdccc10 (segmentation violation) 0: main (state=running) 1026: TCL main event loop (detached, state=blocking on semaphore, TCLTask startup continue semaphore) 2051: Scheduler (daemon, detached, state=blocking, NetworkEditor request FIFO, Mailbox empty condition) Abort signalled by pid: 2063 Occured for thread: "main"resume(r)/dbx(d)/cvd(c)/kill thread(k)/exit(e)?

12) SCIRun configure fails with an error about not finding the mdsplus library. What is this all about?


1)

I'm building ITK on Mac OSX and the compilation fails with errors like the following:

ld: Undefined symbols:
std::basic_ostream<char, std::char_traits<char> >& operator<< 
<double>(std::basic_ostream<char, std::char_traits<char> >&, 
vnl_matrix<double> const&)
	  

I'm using gcc 3.3. What's wrong?

 
 Answer:
 

The initial version of gcc 3.3 distributed with Xcode 1.5 is buggy. Be sure the command gcc -v yields build number 1671. If the build number is 1666 then gcc must be updated with Apple's November2004GCCUpdater package, available from Apple's Developer Connection page.

 

Revision 001 on 03/17/05 

 
2)

Is SCIRun compatible with GCC 3.4?

 
 Answer:
 

Yes. Note, however, that when building ITK, for use with SCIRun's ITK package, ITK version 1.10 must be used because earlier versions are not compatible with GCC 3.4.

 

Revision 001 on 01/26/05 

 
3)

I am installing SCIRun on Mac OS X. What special procedures should I follow?

 
 Answer:
 

SCIRun is fully supported on Mac OS X. Refer to SCIRun's OSX specific installation guide for instructions.

 

Revision 002 on 01/26/05 

 
4)

How does one install the thirdparty software on an SGI Octane. When running the install script provided in the tar ball from the SCIRun website, the following error message appears. It seems to be trying to copy a xerces file that does not exist.

cc-32bit/src/xerces-c-src1_5_2/src/validators/schema'
gmake[1]: Leaving directory
`/u/wk/ccheung/scirun/SCIRun_Thirdparty/1.4.2/IRIX/gcc-32bit/src/
xerces-c-src1_5_2/src/validators'

cd
/u/wk/ccheung/scirun/SCIRun_Thirdparty/1.4.2/IRIX/gcc-32bit/src/
xerces-c-src1_5_2/obj
&& /usr/local/bin/gmake install && cd ..
gmake[1]: Entering directory
`/u/wk/ccheung/scirun/SCIRun_Thirdparty/1.4.2/IRIX/gcc-32bit/src/
xerces-c-src1_5_2/obj'

mkdir -p /u/wk/ccheung/scirun/SCIRun_Thirdparty/1.4.2/IRIX/gcc-32bit/lib

cp -fp
/u/wk/ccheung/scirun/SCIRun_Thirdparty/1.4.2/IRIX/gcc-32bit/src/
xerces-c-src1_5_2/lib/libxerces-c1_5_2.so
/u/wk/ccheung/scirun/SCIRun_Thirdparty/1.4.2/IRIX/gcc-32bit/lib
/u/wk/ccheung/scirun/SCIRun_Thirdparty/1.4.2/IRIX/gcc-32bit/src/
xerces-c-src1_5_2/lib/libxerces-c1_5_2.so
- No such file or directory
gmake[1]: [install] Error 2 (ignored)
gmake[1]: Leaving directory
`/u/wk/ccheung/scirun/SCIRun_Thirdparty/1.4.2/IRIX/gcc-32bit/src/
xerces-c-src1_5_2/obj'

-------------------------------------------------------
-- FATAL ERROR :
--
-- The build or installation of the required software:
--
--   Xerces-C++
--
-- failed.  Check the above output
-- for errors and clues as to how to solve the problem.

-------------------------------------------------------
	
 
 Answer:
 

Xerces creates long commands for a shell. Perhaps the value of the system's 'ncargs' variable is too small.

Run the command 'systune ncargs'. It will report ncargs' value. Use the systune command to set ncargs to a large value: systune ncargs 262144. Root privilages are needed to do this. Try the thirdparty install again.

 

Revision 1.0 on 7/29/01 

 
5)

SCIRun and its required thirdparty software is successfully installed (by hand) onto an SGI target install machine, but SCIRun is runs, it immediately signals an abort (SIGABRT).

The output of SCIRun after it signals the abort looks like this:

Thread "main"(pid 251775) caught signal SIGABRT (Abort)
Backtrace:
0x5ff69224: SCIRun::Thread::niceAbort(void)
0x5ff7106c: handle_abort_signals
0xc37f7c0: sig_fixup_mask
0xfb11100: prctl
0xc37ee00: pthread_kill
0xc37fef8: _SGIPT_libc_raise
0xc378068: ptctl
0xfaf3e20: raise
0xfa668a4: abort
0xae40958: terminate(void)
0xae40788: __call_terminate
0xae42ba8: __throw
0x5ff72ad0: SCIRun::Thread::os_start(bool)
0x5ff68c7c: SCIRun::Thread::Thread(SCIRun::Runnable*,const
char*,SCIRun::ThreadGroup*,SCIRun::Thread::ActiveState)
0x100057c4: main
251775: main (state=running)

Abort signalled by pid: 251775
Occured for thread:
"main"resume(r)/dbx(d)/cvd(c)/kill thread(k)/exit(e)?
	  

 
 Answer:
 

One or more of the thirdparty libraries is configured and built to use (i.e. link against) pthreads. On SGI machines, SCIRun uses sproc threads instead of pthreads. It is illegal to use both sproc and pthreads in a single process. When two binaries are linked together into a single process at runtime (e.g. scirun and libxerces-c1_4.so), an abort is signalled and the process is shutdown.

The solution is to rebuild the offending libraries, configuring them to _not_ use threads. Xerces is typically the offending library, although Tcl and others may also be incorrectly configured to use threads. See the Installation Guide for recommended configure arguments for thirdparty software. Note that when the automatic install script is used, all software is automatically configured and built correctly.

 

Revision 1.0 on 7/29/01 

 
6)

When building SCIRun on an SGI target machine, an error message regarding the SGI Image Format Library (IFL) appeared.

The error text looks similar to this:

	    ld64: FATAL   9  : I/O error (-lifl): No such file or directory
	  

 
 Answer:
 

The problem is a bug within the SCIRun build system that requires the SGI Image Format Library (IFL) in order to make SCIRun. The long term solution is to make the IFL optional instead of required.

For now, work around the problem by having the system administrator install the IFL onto the target install machine. Be sure to install the type (32 or 64 bit) needed for SCIRun configuration(s).

 

Revision 1.0 on 7/29/01 

 
7)

The thirdparty software was successfully installed onto an SGI target install machine, but when tring to build SCIRun, it fails during the compile phase.

The error message displayed contains the following warning:

Warning: Option 'std' not in group 'LANG' (LANG:std)
	  

 
 Answer:
 

The MIPSpro compiler on the target install machine is old. SCIRun requires version 7.3.1.1m at a minimum.

 

Revision 1.0 on 7/29/01 

 
8)

SCIRun sometimes hangs when running the example nets on a dual processor linux machine.

 
 Answer:
 

This is a known bug with no known solution. There is, however, a workaround:

Re-configure SCIRun adding the --disable-sci-malloc option to the configure command, then rebuild SCIRun. If SCIRun still hangs while running example nets, change directories to on-the-fly-libs and issue a make command by hand. Run the example again once the make of the on-the-fly-libs finishes.

 

Revision 1.0 on 7/29/01 

 
9)

Installing SCIRun or the thirdparty software into my home directory fails when building.

 
 Answer:
 

When installing any of the software into your home directory be sure to use complete and absolute paths when providing configure argumenst. Do not use tilde expansion or any other short cuts. They will not properly expand by the install scripts and makefiles.

For example, instead of configuring with --prefix=~bob, configure with --prefix=/home/bob.

 

Revision 1.0 on 7/29/01 

 
10)

How does one make a 64 bit build of SCIRun?

 
 Answer:
 

64 bit is only available on the SGI platform. To build a 64 bit version of SCIRun, 64 bit versions of the thirdparty software are needed. Use the SCI thirdparty install script using the 64 option. If building by hand, see advice below.

Once the thirdparty software is available in 64 bits, configure SCIRun with the --enable-64bit option and rebuild.

Unfortunately, most of the required third party software do not take 64 bit SGI platforms into account when writing configure scripts and makefiles. However, it is possible to build all software in 64 bit. In general, to get 64 bit versions of the third party software, it is necessary to edit Makefiles so that CFLAGS and LFLAGS macros have “-64” listed instead of “-n32”. In the case of tcl distributions, edit makefiles (after configuring) by hand and replace all instances of “-n32” with “-64”. For Xerces, change the environment variables listed above, replacing all instances of “-n32” with “-64” before configuring.

 

Revision 1.0 on 7/29/01 

 
11)

SCIRun is successfully installed onto a linux target install machine with XFree86 version 4.1.0 installed, but when it runs, it immediately signals a segmentation violation (SIGSEGV):

	    Thread "main"(pid 2063) caught signal SIGSEGV at address 0xdccc10 
	    (segmentation violation)
	    0: main (state=running)
	    1026: TCL main event loop (detached, state=blocking on semaphore, 
	    TCLTask startup continue semaphore)
	    2051: Scheduler (daemon, detached, state=blocking, NetworkEditor 
	    request FIFO,
	    Mailbox empty condition)
	    
	    Abort signalled by pid: 2063
	    Occured for thread:
	    "main"resume(r)/dbx(d)/cvd(c)/kill thread(k)/exit(e)?
	  

 
 Answer:
 

The XFree86 version 4.1.0 binary distributions for linux ship with a version of GLU (libGLU.so.1.3) conflicts with the xerces library. Replace the GLU library with a different version (e.g. libMesaGLU.so, or some other GLU already on the machine).

 
12)

SCIRun configure fails with an error about not finding the mdsplus library. What is this all about?

 
 Answer:
 

You don't have the mdsplus libraries installed on your machine. You need them if you plan to use the Fusion package. However, if you do not want to, or do not think that you are using Fusion, then it is most likely because your configure line either explicitly states to use Fusion or does not explicitly list the SCIRun packages to use (and thus SCIRun is trying to use all packages in your SCIRun/src/Packages directory.) To fix this, use something like this: --enable-package="BioPSE Teem" to get only the packages you want.

 

Revision 1.20 on 2/09/04