However, executables fail (same results on babyblue or blackforest),
with an error message that the shared library cannot be found:
ender@bb0001en:~/lib/AIX$ which ncks
/home/babyblue/zender/bin/AIX/ncks
zender@bb0001en:~/nco$ ncks -r
exec(): 0509-036 Cannot load program ncks because of the following errors:
0509-150 Dependent module libnco.so could not be loaded.
0509-022 Cannot load module libnco.so.
0509-026 System error: A file or directory in the path name does not exist.
I think I've tracked the problem down to the use of the
--enable-optimize-custom configure switch. This activates xlC_r
compiler options "-O5 -qstrict -Q", which apparently causes the shared
library to fail. You can see the build output in
babyblue.ucar.edu:~zender/nco.
Please tell me if you can reproduce the problem and, if so,
what are the best xlC_r optimization switches are that will work
with shared libraries? Jim, you're welcome to modify configure.in
as appropriate for any AIX compiler switches.
Thanks,
Charlie
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
[courtesy copy of message sent through email)
Hi Jim and Mike,
I recently started having trouble running NCO 2.8.5+ on NCAR IBMs.
The build and install seems to proceed and exit normally with my
default script:
export GNU_TRP=`~/nco/autobld/config.guess`
export OBJECT_MODE='64' # AIX-specific hack
cd ~/nco;/bin/rm -f *.${GNU_TRP}.foo;make distclean
CC='xlc_r' CPPFLAGS='-I/usr/vacpp/include' CXX='xlC_r' LDFLAGS='-brtl' NETCDF_INC='/usr/local/include' NETCDF_LIB='/usr/local/lib64/r4i4' ./configure --enable-optimize-custom --prefix=${HOME} --bindir=${MY_BIN_DIR} --datadir=${HOME}/nco/data --libdir=${MY_LIB_DIR} --mandir=${HOME}/nco/man > configure.${GNU_TRP}.foo 2>&1
/bin/cp -f config.log config.log.${GNU_TRP}.foo
make clean;make > make.${GNU_TRP}.foo 2>&1
make check >> make.${GNU_TRP}.foo 2>&1
make install >> make.${GNU_TRP}.foo 2>&1
scp configure.${GNU_TRP}.foo config.log.${GNU_TRP}.foo make.${GNU_TRP}.foo dust.ess.uci.edu:/var/www/html/nco/rgr
However, executables fail (same results on babyblue or blackforest),
with an error message that the shared library cannot be found:
ender@bb0001en:~/lib/AIX$ which ncks
/home/babyblue/zender/bin/AIX/ncks
zender@bb0001en:~/nco$ ncks -r
exec(): 0509-036 Cannot load program ncks because of the following errors:
0509-150 Dependent module libnco.so could not be loaded.
0509-022 Cannot load module libnco.so.
0509-026 System error: A file or directory in the path name does not exist.
The shared library seems to be in the right place:
-rwxr-xr-x 1 zender ncar 1138546 2004-01-12 12:26 /home/babyblue/zender/lib/AIX/libnco-2.8.5.so*
-rwxr-xr-x 1 zender ncar 1138546 2004-01-12 13:52 /home/babyblue/zender/lib/AIX/libnco-2.8.6.so*
-rw-r--r-- 1 zender ncar 1431841 2004-01-12 13:52 /home/babyblue/zender/lib/AIX/libnco.a
-rwxr-xr-x 1 zender ncar 861 2004-01-12 13:52 /home/babyblue/zender/lib/AIX/libnco.la*
lrwxrwxrwx 1 zender ncar 15 2004-01-12 13:52 /home/babyblue/zender/lib/AIX/libnco.so -> libnco-2.8.6.so*
-rw-r--r-- 1 zender ncar 2720369 2004-01-12 13:52 /home/babyblue/zender/lib/AIX/libnco_c++.a
-rwxr-xr-x 1 zender ncar 885 2004-01-12 13:52 /home/babyblue/zender/lib/AIX/libnco_c++.la*
lrwxrwxrwx 1 zender ncar 19 2004-01-12 13:52 /home/babyblue/zender/lib/AIX/libnco_c++.so -> libnco_c++.so.0.0.0*
lrwxrwxrwx 1 zender ncar 19 2004-01-12 13:52 /home/babyblue/zender/lib/AIX/libnco_c++.so.0 -> libnco_c++.so.0.0.0*
-rwxr-xr-x 1 zender ncar 1724423 2004-01-12 13:52 /home/babyblue/zender/lib/AIX/libnco_c++.so.0.0.0*
z
Pointing LD_LIBRARY_PATH to it does not help.
I think I've tracked the problem down to the use of the
--enable-optimize-custom configure switch. This activates xlC_r
compiler options "-O5 -qstrict -Q", which apparently causes the shared
library to fail. You can see the build output in
babyblue.ucar.edu:~zender/nco.
Please tell me if you can reproduce the problem and, if so,
what are the best xlC_r optimization switches are that will work
with shared libraries? Jim, you're welcome to modify configure.in
as appropriate for any AIX compiler switches.
Thanks,
Charlie