HMMER 2.3.2 Porting Notes to IBM pSeries – 18March04
Background
Hmmer
WebSite: http://hmmer.wustl.edu
Version: 2.3.2
System: eServer pSeries
Model 630, 1.2 GHz, 4Way, 8 GB Memory
O/S: SuSE Linux Enterprise Server 8
Compilers: GNU gcc 3.2-32 & IBM VisualAge 6.0.0-1
Libgcc: 3.2-32
Out of the Box Experience
The code failed
identify the platform to configure out of the box. It seem the original config.guess script is old, timestamp='2001-07-12'.
To get this version of ./configure the following options needs to
be specified: --build=powerpc64-unknown-linux-gnu.
Downloaded a newer version from ftp://ftp.gnu.org/pub/gnu/config/ , timestamp='2003-07-02' (for some unknown
reason this ftp site now longer has this version of configure posted). This
version corrected the problem and the ./configure script created/generated Makefile(s) which successfully identified the platform
and built the application without need for the --build option.
Additionally, the config.sub script was
updated to the same timestamp as config.guess
so that these two scripts were at the same level.
Configure Script Incorrectly Identifies libpthreads.so Instead of libpthread.so Using VAC
When using the IBM VisualAge Compiler (VAC), with the following inputs to the ./configure script:
export CC=xlc_r
export CFLAGS="-qipa"
./configure --enable-threads
The script fails to identify the correct threads library, libpthread.so. Here is the output from config.log:
configure:2984: checking for
the pthreads library -lpthreads
configure:3023: xlc_r -o conftest -qipa
conftest.c -lpthreads
>&5
1586-404 (E) Archive library file "libpthreads.so"
not found.
configure:3026: $? = 0
configure:3029: test -s conftest
configure:3032: $? = 0
configure:3045: result: yes <<< Note: Strictly speaking this should have
failed.
After further investigation, while the ./configure script incorrectly identifies the threads library it is not an issue since the compiler invocation xlc_r does correctly link with the correct threads library libthread.so. In the end the compilations work but a few misleading error messages get generated.
Tested in threaded mode several sets of compiler flags with GCC 3.2 and VAC 6.0 no problems found. No testing was performed using PVM.
Recommendations
Update source distribution
to the latest version of the config.sub
and config.guess scripts.
Or if the config.guess with timestamp='2001-07-12' is retained, the
need to use the --build=powerpc64-unknown-linux-gnu option in the
./configure needs to be documented in a README or similar file.
Prebuilt 64-bit thread enabled binaries are supplied. They were compilers with the IBM VisualAge compiler Version 6.0.0-1. Options used :
Configure options = --enable-threads --enable-lfs
CC = xlc_r
CCFLAGS = -O -q64 -qtune=pwr4 -qcache=auto
Question?
Questions should be directed to: arenburg@us.ibm.com.