Hi,
trying to compile tcl-8.5.8 failed on vax, first in compilation state,
which is fixed by the updated patch-generic_tclStrToD_c
(fis is submitted to upstream where it is already applied)
afterwards linking failed with undefined refererence to __DYNAMIC.
The update of the port Makefile fixes this linking problem.
I also added this for the m88k architecture, I guess it would suffer
from the same problem, but I am unable to test it since I don't have
such hardware.
comments, OK?
cheers,
Sebastian
? tcl-vax.patch
Index: Makefile
===================================================================
RCS file: /cvs/ports/lang/tcl/8.5/Makefile,v
retrieving revision 1.9
diff -u -r1.9 Makefile
--- Makefile 6 Feb 2010 10:27:21 -0000 1.9
+++ Makefile 22 May 2010 08:21:33 -0000
@@ -41,6 +41,10 @@
--enable-man-symlinks \
--disable-rpath
+.if ${MACHINE_ARCH} == "vax" || ${MACHINE_ARCH} == "m88k"
+CONFIGURE_ARGS += --disable-load
+.endif
+
CONFIGURE_ENV += SHLIB_VERSION="${LIBtcl85_VERSION}"
.if ${MACHINE_ARCH} == "sh"
Index: patches/patch-generic_tclStrToD_c
===================================================================
RCS file: /cvs/ports/lang/tcl/8.5/patches/patch-generic_tclStrToD_c,v
retrieving revision 1.1
diff -u -r1.1 patch-generic_tclStrToD_c
--- patches/patch-generic_tclStrToD_c 22 Nov 2009 22:58:30 -0000 1.1
+++ patches/patch-generic_tclStrToD_c 22 May 2010 08:21:33 -0000
@@ -1,6 +1,6 @@
$OpenBSD: patch-generic_tclStrToD_c,v 1.1 2009/11/22 22:58:30 jasper Exp $
---- generic/tclStrToD.c.orig Sun Nov 22 13:37:00 2009
-+++ generic/tclStrToD.c Sun Nov 22 13:39:08 2009
+--- generic/tclStrToD.c.orig Thu Jul 16 14:50:54 2009
++++ generic/tclStrToD.c Fri May 21 02:56:10 2010
@@ -73,7 +73,7 @@ typedef unsigned int fpu_control_t __attribute__ ((__m
* MIPS floating-point units need special settings in control registers
* to use gradual underflow as we expect.
@@ -10,7 +10,38 @@
#include <sys/fpu.h>
#endif
/*
-@@ -2166,7 +2166,7 @@ TclInitDoubleConversion(void)
+@@ -947,13 +947,14 @@ TclParseNumber(
+ case sINFIN:
+ case sINFINI:
+ case sINFINIT:
++#ifdef IEEE_FLOATING_POINT
+ case sN:
+ case sNA:
+ case sNANPAREN:
+ case sNANHEX:
+ Tcl_Panic("TclParseNumber: bad acceptState %d parsing '%s'",
+ acceptState, bytes);
+-
++#endif
+ case BINARY:
+ shift = numTrailZeros;
+ if (!significandOverflow && significandWide != 0 &&
+@@ -1133,12 +1134,13 @@ TclParseNumber(
+ }
+ objPtr->typePtr = &tclDoubleType;
+ break;
+-
++#ifdef IEEE_FLOATING_POINT
+ case sNAN:
+ case sNANFINISH:
+ objPtr->internalRep.doubleValue = MakeNaN(signum, significandWide);
+ objPtr->typePtr = &tclDoubleType;
+ break;
++#endif
+
+ case INITIAL:
+ /* This case only to silence compiler warning */
+@@ -2166,7 +2168,7 @@ TclInitDoubleConversion(void)
} bitwhack;
#endif