IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Changes between Version 1 and Version 2 of Installing_IPP_FAQ


Ignore:
Timestamp:
Apr 1, 2009, 9:18:07 AM (17 years ago)
Author:
Sebastian Jester
Comment:

Reformat snippets for trac

Legend:

Unmodified
Added
Removed
Modified
  • Installing_IPP_FAQ

    v1 v2  
    88# Unpack both in your IPP root directory, i.e. in the same directory where you unpacked the ipp-2.6.1.tgz (or whatever) tarball. In Heidelberg, it's called /IPP
    99# Then
     10{{{
    1011 cd /IPP/ipp-2.6.1/psconfig
    1112 pschecklibs -build
    1213 pscheckperl -build
     14}}}
    1315
    1416== The CFITSIO perl module doesn't build ==
     
    1618I found I needed to set an environment variable CFITSIO to the location of CFITSIO if it's non-standard, e.g.
    1719
     20{{{
    1821 # for bash:
    1922 export CFITSIO=/IPP/ipp-2.6.1.lin64/lib
    2023 # for csh:
    2124 setenv CFITSIO /IPP/ipp-2.6.1.lin64/lib
     25}}}
    2226
    2327== psbuild complains about fftw3, but it's installed on my system! ==
     
    2731To be sure you have the proper build of fftw3, and assuming the same directory structure as above, do this:
    2832
     33{{{
    2934 cd /IPP/extlibs/fftw-3.1.2/
    3035 ./configure --enable-float --prefix=/IPP/ipp-2.6.1.lin64/ CFLAGS=-fPIC
    3136 make && make install
     37}}}
    3238
    3339[http://pan-starrs.ifa.hawaii.edu/bugzilla/show_bug.cgi?id=993 Bug 993] asks for a fix inside the build system.
     
    3743This error message from libtool must be one of the most frequently unanswered, or inaccurately answered, questions on the internet. The error looks like
    3844
     45{{{
    3946 libtool: link: warning: library
    4047 `/kuiyun/ast/ipp-2.5/psconfig/default.lin64/lib/libpslib.la' was moved.
    4148 libtool: link: cannot find the library `/usr/local/lib/libpslib.la'
     49}}}
    4250
    4351I ran into it because I had an environment variable D defined, which was referenced inside libtool, leading to unintended consequences. Thus, make sure you avoid single-letter environment variables in the shell where you're building IPP. Also, variables like F2C and F77 can be set by things like IRAF, sometimes leading to unintended consequences. Hence, to be on the safe side, do
    4452
     53{{{
    4554 unset D U F2C F77
     55}}}
    4656
    4757etc. before you psbuild.
     
    5262You can find these occurrences by going to the root directory of your IPP installation, once each for both the source/build tree and for the install tree (the one with .lin64 at the end of the directory name), and saying:
    5363
     64{{{
    5465 egrep '/usr/local/lib' `find ./ -name \*.la`
     66}}}
    5567
    5668then changing the offending paths by hand (i.e. in this case, change /usr/local/lib to /kuiyun/ast/ipp-2.5/psconfig/default.lin64/lib/ ).
     
    5870I have had a similar error, and in my case, it found
    5971
     72{{{
    6073./lib/libpslib.la:libdir='/usr/local/lib'
    6174./lib/libpsmodules.la:dependency_libs=' -L/IPP/ipp-2.6.1.lin64/lib -lkapa -ldvo -lFITS -lohana -L/usr/lib64 /usr/lib64/libX11.la /usr/lib64/libXau.la /usr/lib64/libXdmcp.la -ldl /usr/lib64/libpng.la -L/usr/lib64/mysql /usr/local/lib/libpslib.la /usr/lib64/mysql/libmysqlclient.la -L/IPP/ipp-2.6.1.lin64//lib -lmysqlclient -lz -lcrypt -lnsl -lcfitsio /IPP/ipp-2.6.1.lin64/lib/libgsl.la /IPP/ipp-2.6.1.lin64/lib/libgslcblas.la -lm -ljpeg'
     75}}}
    6276
    6377in the install tree, and the dependency_libs was the problem.
     
    6579I have no ideas how where or when these get set wrongly by libtool, but it seems to be a common bug in libtool.
    6680
    67 ==DBD::mysql build error: "CPU you selected does not support x86-64 instruction set"==
     81== DBD::mysql build error: "CPU you selected does not support x86-64 instruction set" ==
    6882
    6983The specific error looks something like:
    70 <pre>
     84{{{
    7185Running Mkbootstrap for DBD::mysql ()
    7286dbdimp.c:1: error: CPU you selected does not support x86-64 instruction set
     
    7488/usr/bin/perl /usr/lib/perl5/5.8.5/ExtUtils/xsubpp  -typemap /usr/lib/perl5/5.8.5/ExtUtils/typemap  mysql.xs > mysql.xsc && mv mysql.xsc mysql.c
    7589make: *** [dbdimp.o] Error 1
    76 </pre>
     90}}}
    7791
    7892The problem is that the installed version of MySQL is 32-bit, but the CPU is 64-bit (yeah, the error doesn't reveal that, but see [http://objectmix.com/perl/318993-problem-installing-dbd-mysql.html this]).  You can see this by looking at the MySQL configuration:
    7993
    80 <pre>
     94{{{
    8195% mysql_config
    8296Usage: /usr/lib/mysql/mysql_config [OPTIONS]
     
    8498        --cflags         [-I/usr/include/mysql -g -pipe -m32 -march=i386 -mtune=pentium4 -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -fno-strict-aliasing]
    8599[...]
    86 </pre>
     100}}}
    87101
    88102The <code>-m32 -march=i386</code> indicate that MySQL was built for 32-bit machines.  Furthermore, the fact that the include files are being sucked in from <code>/usr/include/mysql</code> indicates that it's trying to use the system version, rather than one we've installed ourselves.
    89103
    90104The solution is to force MySQL to build:
    91 <pre>
     105{{{
    92106% pschecklibs -build -force libmysqlclient
    93 </pre>
     107}}}
    94108
    95109Then you should be able to return and build the Perl modules.
    96110
    97 ==libjpeg fails make==
     111== libjpeg fails make ==
    98112
    99113libjpeg fails the <code>configure</code> script, or <code>make</code>, and <code>pschecklibs</code> reports:
    100 <pre>
     114{{{
    101115problem building libjpeg : failure in make
    102 </pre>
     116}}}
     117
    103118
    104119libjpeg is an old library, and the bundled files for running the <code>configure</code> script pre-date several systems (e.g., Mac OS X, 64-bit Linux machines).  You can get around this by going into the directory containing libjpeg and doing:
    105 <pre>
     120{{{
    106121% cp /usr/share/libtool/config.guess .
    107122% cp /usr/share/libtool/config.sub .
     
    109124% make
    110125% make install
    111 </pre>
     126}}}
    112127
    113 ==Missing shared library when running a binary==
     128
     129== Missing shared library when running a binary ==
    114130
    115131For example:
    116 <pre>
     132{{{
    117133% psphot
    118134gcc: /usr/lib64/libjpeg.so: No such file or directory
    119 </pre>
     135}}}
     136
    120137
    121138If the IPP is built on one system, and the resultant binaries are used on a different system, then shared libraries that existed on the first system ''must'' be present on the second; if they are not, the above error will occur.  Since this isn't always the case, we recommend that when the IPP is built for a system of heterogeneous systems, ''all'' the external libraries are built:
    122 <pre>
     139{{{
    123140% pschecklibs -build -force all
    124141% pscheckperl -build -force all
    125142% psbuild -clean -rebuild
    126 </pre>
     143}}}
    127144
    128145The above commands force the building of all external libraries (not just those that aren't present), and re-run the IPP build from scratch.