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
  

Reply via email to