Charlie Zender - 2004-01-13

[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