[Developers] Library-specific linker flags
Erik Schnetter
schnetter at cct.lsu.edu
Wed Feb 13 00:57:13 CST 2008
On Feb 12, 2008, at 04:10:45, Thomas Radke wrote:
> Erik Schnetter wrote:
>> On Queen Bee and probably on related systems, it is necessary to link
>> certain libraries statically, but others dynamically. The
>> configuration mechanism in Cactus can currently not handle this.
>>
>> In Cactus, external libraries have three configuration variables
>> associated with them, one defining the include path, one defining the
>> library path, and one listing the library names. It is not
>> possible to
>> add linker flags before or after the library names, since library
>> names
>> unconditionally have a "-l" prefix attached. For example, the
>> configuration settings
>>
>> BLAS_DIR = /usr/local/compilers/Intel/mkl-10.0/lib/em64t
>> BLAS_LIBS = mkl_em64t guide pthread
>>
>> are translated to
>>
>> GENERAL_LIBRARIES = -L/usr/local/compilers/Intel/mkl-10.0/lib/em64t -
>> lmkl_em64t -lguide -lpthread
>>
>>
>>
>> I would like to add the flags -Bstatic and -Bdynamic before and after
>> the library name, respectively. I suggest to update the prefix-
>> attaching mechanism so that it add prefixes to library names, but
>> leaves flags alone. This allows me to write
>>
>> BLAS_DIR = /usr/local/compilers/Intel/mkl-10.0/lib/em64t
>> BLAS_LIBS = -Bstatic mkl_em64t guide -Bdynamic pthread
>>
>> which would be translated to
>>
>> GENERAL_LIBRARIES = -L/usr/local/compilers/Intel/mkl-10.0/lib/em64t -
>> Bstatic -lmkl_em64t -lguide -Bdynamic -lpthread
>>
>> which is the correct list of options for Queen Bee.
>>
>>
>>
>> The patch below to lib/make/configure.in achieves the above:
>>
>> +# How to link in the non-Cactus libraries:
>> +# Add -L and -l prefixes, but only for file names;
>> +# allow arbitrary options in between
>> AC_SUBST(GENERAL_LIBRARIES)
>> -: ${GENERAL_LIBRARIES='$(LIBDIRS:%=-L%) $(LIBS:%=-l%)'}
>> +: ${GENERAL_LIBRARIES='$(patsubst -L-%,-%,$(LIBDIRS:%=-L%)) $
>> (patsubst
>> -l-%,-%,$(LIBS:%=-l%))'}
>
> Looks good to me. The feature should also be document somewhere in the
> users' guide chapter A2.
I committed the change and updated the documentation.
-erik
--
Erik Schnetter <schnetter at cct.lsu.edu> http://www.cct.lsu.edu/~eschnett/
My email is as private as my paper mail. I therefore support encrypting
and signing email messages. Get my PGP key from www.keyserver.net.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: PGP.sig
Type: application/pgp-signature
Size: 194 bytes
Desc: This is a digitally signed message part
Url : http://www.cactuscode.org/pipermail/developers/attachments/20080213/1f9411c2/attachment.bin
More information about the Developers
mailing list