Comment changer la version de GMP utilisee par Maple ? Ci-dessous un exemple avec Maple 10 sur Pentium M, et gmp-4.2.1. 1. Compiler GMP sur sa machine, l'installer (par exemple) dans /tmp/install : cd /tmp tar jxf gmp-4.2.1.tar.bz2 cd gmp-4.2.1 ./configure --prefix=/tmp/install make Deux solutions sont presentees ici. La premiere, due a Emmanuel Thome, est nettement plus simple, et ne necessite pas d'etre super-utilisateur (root) sur sa machine. 2. Ajouter simplement LD_PRELOAD=/tmp/install/lib/libgmp.so devant la commande "maple", ou /tmp/install/lib/libgmp.so est le chemin du fichier libgmp.so que vous avez compile : bash-3.00$ LD_PRELOAD=/tmp/install/lib/libgmp.so maple |\^/| Maple 10 (IBM INTEL LINUX) ._|\| |/|_. Copyright (c) Maplesoft, a division of Waterloo Maple Inc. 2005 \ MAPLE / All rights reserved. Maple is a trademark of <____ ____> Waterloo Maple Inc. | Type ? for help. > a:=3^1234567:b:=5^655432:st:=time():c:=a*b:time()-st; 0.240 ############################################################################## 2. Modifier GMP pour qu'il plante, par exemple mettre un abort() au debut des fonctions mpn_mul et mpn_mul_n dans gmp-4.2.1/mpn/generic/mul.c et gmp-4.2.1/mpn/generic/mul_n.c, puis : make; make install 3. Trouver ou sont les binaires Maple, en regardant le shell-script "maple", ou bien en faisant "locate librootfindingmp.so" par exemple : /usr/local/maple10/bin.IBM_INTEL_LINUX/librootfindingmp.so Trouver la version de GMP qui est utilisee : cd /usr/local/maple10/bin.IBM_INTEL_LINUX find . -name "libgmp.so" -print ./P4SSE2/libgmp.so ./PIIISSE1/libgmp.so ./ATHLON256/libgmp.so ./libgmp.so ./PIII/libgmp.so ./ATHLONXPSSE1/libgmp.so ./ATHLON512/libgmp.so Par exemple (il faut etre root pour cela) : # mv libgmp.so.3.3.3 libgmp.so.3.3.3.orig # ln -s /tmp/install/lib/libgmp.so.3.4.1 libgmp.so.3.3.3 puis essayer 3^1000 sous Maple. Si cela marche, ce n'etait pas celui qui est utilise ; remettre le fichier en place : # rm libgmp.so.3.3.3 # mv libgmp.so.3.3.3.orig libgmp.so.3.3.3 Sur mon portable (Pentium M), c'est le repertoire P4SSE2 qui est le bon : # cd P4SSE2 # mv libgmp.so.3.3.3 libgmp.so.3.3.3.orig # ln -s /tmp/install/lib/libgmp.so.3.4.1 libgmp.so.3.3.3 bash-3.00$ maple |\^/| Maple 10 (IBM INTEL LINUX) ._|\| |/|_. Copyright (c) Maplesoft, a division of Waterloo Maple Inc. 2005 \ MAPLE / All rights reserved. Maple is a trademark of <____ ____> Waterloo Maple Inc. | Type ? for help. > 3^1000; maple: fatal error, lost connection to kernel 4. Enlever les abort() mis a l'etape 2, recompiler et reinstaller GMP : make; make install 5. Essayer a nouveau. Sur mon portable (Pentium M) a 800Mhz, j'obtiens avec la version originale : |\^/| Maple 10 (IBM INTEL LINUX) ._|\| |/|_. Copyright (c) Maplesoft, a division of Waterloo Maple Inc. 2005 \ MAPLE / All rights reserved. Maple is a trademark of <____ ____> Waterloo Maple Inc. | Type ? for help. > a:=3^2095903: b:=7^1183294: st:=time(): a*b: time()-st; 0.400 et avec la version compilee moi-meme : |\^/| Maple 10 (IBM INTEL LINUX) ._|\| |/|_. Copyright (c) Maplesoft, a division of Waterloo Maple Inc. 2005 \ MAPLE / All rights reserved. Maple is a trademark of <____ ____> Waterloo Maple Inc. | Type ? for help. > a:=3^2095903: b:=7^1183294: st:=time(): a*b: time()-st; 0.216