| Jeroen Demeyer on Wed, 03 Sep 2008 23:33:44 +0200 |
[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]
| Patch for error when cross-compiling |
Jeroen Demeyer wrote:
This might work with "fake" cross-compiling where you just change 32 or 64 bits, but it seems that PARI cannot support "real" cross-compiling like compiling a powerpc version on a i386 machine. That is because you execute programs in ./Configure. autoconf manages to configure (almost) everything without executing anything.
The current version of PARI does not detect when it is cross-compiling. In attachment I put a patch to make PARI give an error when this is happening.
Index: config/endian.c
===================================================================
--- config/endian.c (revision 10836)
+++ config/endian.c (working copy)
@@ -1,5 +1,5 @@
#include <stdio.h>
-main()
+int main(int argc, char **argv)
{
if (sizeof(long) == 4)
{
@@ -18,4 +18,5 @@
else
printf("NOT IEEE (64 bit)\n");
}
+ return 0;
}
Index: config/get_double_format
===================================================================
--- config/get_double_format (revision 10836)
+++ config/get_double_format (working copy)
@@ -1,6 +1,11 @@
exe=$osname-$arch-endian$$
if ($CC $CFLAGS $extraflag endian.c -o $exe 2>/dev/null); then
doubleformat=`$exe`;
+ if test $? != 0; then
+ echo "***************************************************************"
+ echo "Cannot execute $exe. Aborting. PLEASE REPORT!"
+ exit 1
+ fi
else
echo "***************************************************************"
echo "Cannot compile endian.c. Aborting. PLEASE REPORT!"