Ceci est une ancienne révision du document !
- le configure cree le fichier Makefile.config depuis le template Makefile.config.in dans le répertoire config
- après exécution de configure, on modifie le fichier Makefile.config pour qu'il prenne en compte la sunperf
- et on modifie le script babel-runtime/libtool pour supprimer
-z textà l'édition de liens
détection architecture
- fait par le script src/tarch, mais ne donne pas le meme resultat sur sparc et amd64. On fait la modif suivante:
> diff -u src/tarch.ori src/tarch
--- src/tarch.ori 2006-09-23 00:05:44.000000000 +0200
+++ src/tarch 2009-07-16 09:07:01.407215193 +0200
@@ -45,6 +45,13 @@
IRIX64|IRIX) FARCH=$LARCH ; break ;;
Linux|LINUX) FARCH=LINUX ; break ;;
i586|i486|i86pc)
+ if [ $GARCH -eq solaris ] ; then
+ FARCH=solaris
+ else
+ GARCH=$LARCH
+ fi
+ break ;;
+ SunOS)
GARCH=$LARCH ;;
sun4*)
Version=`$UNAME -r`
ld: fatal: relocations remain against allocatable but non-writable sections
on peut reproduire cette erreur avec les 2 lignes suivantes:
> pwd
/local/apps/src/hypre-2.0.0/src/babel-runtime/sidl
mpcc -DHAVE_CONFIG_H -I. -I. -I. -I/usr/include/libxml2 -I/usr/java/include -I/usr/java/include/solaris -I./../sidlx -dalign -xlic_lib=sunperf -I/opt/SUNWhpc/HPC6.0/include -xmodel=medium -m64 -D_REENTRANT -c sidl_BaseClass_Impl.c -KPIC -DPIC -o .libs/sidl_BaseClass_Impl.o
/usr/ccs/bin/ld -G -z text -h libsidl-1.0.0.so -o .libs/libsidl-1.0.0.so .libs/sidl_BaseClass_Impl.o \
-R/opt/SUNWhpc/HPC6.0/lib/amd64 -R/usr/lib -L/opt/SUNWhpc/HPC6.0/lib/amd64 -ldl -L/usr/lib -lxml2 -lz -lm -lsocket -lnsl -lpthread -lc
Text relocation remains referenced
against symbol offset in file
sidl_BaseInterface_deleteRef 0x215 .libs/sidl_BaseClass_Impl.o
sidl_BaseInterface_deleteRef 0x651 .libs/sidl_BaseClass_Impl.o
sidl_BaseClass_deleteRef 0x558 .libs/sidl_BaseClass_Impl.o
sidl_BaseInterface_addRef 0x6e8 .libs/sidl_BaseClass_Impl.o
ld: fatal: relocations remain against allocatable but non-writable sections
et la faire disparaître si on supprime -z text, mais est ce normal? voir 3.4.182 –ztext
patch
<code>
> diff -u ../../../src/babel-runtime/m4/libtool.m4.ori ../../../src/babel-runtime/m4/libtool.m4
— ../../../src/babel-runtime/m4/libtool.m4.ori 2005-11-14 22:20:09.000000000 +0100
+++ ../../../src/babel-runtime/m4/libtool.m4 2009-07-16 13:43:50.839538559 +0200
@@ -5845,7 +5845,7 @@
;;
solaris*)
- _LT_AC_TAGVAR(no_undefined_flag, $1)=' -z text'
+ _LT_AC_TAGVAR(no_undefined_flag, $1)=' -z textoff'
if test “$GCC” = yes; then
_LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
_LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo “{ global:” > $lib.exp~cat $export_symbols | $SED -e “s/\(.*\)/\1;/” » $lib.exp~$echo “local: *; };” » $lib.exp~
</code>
checking for Fortran name-mangling scheme... unknown
cette erreur concerne l'interface C-Fortran. Le configure semble trouver que c'est correct 2 fois, et échoue 1 fois.
\
Il faut ajouter l'option: -ext_names=plain pour que le programme de test compile. Mais est ce que c'est à faire tout le temps?
voir 11.1.4 Underscores in Routine Names