[nhc-bugs] Error when building nhc with cygwin and win2000

Malcolm Wallace Malcolm.Wallace@cs.york.ac.uk
Thu, 13 Feb 2003 10:02:16 +0000


Magnus Lindberg <f98mali@dd.chalmers.se> writes:

> Hello! I've tried to install nhc98 on win2000 using Cygwin. However, I
> get an error message (see the last rows in the first text extract
> below).
>
> script/nhc98 > -cpp -c ... DErrNo.hs
> Signal 11

I would guess that Cygwin now includes version 3.x of the gcc compiler.
You need to apply patch-1.14-gcc3 from the download page (also copied
below), before building nhc98.

Regards,
    Malcolm


Index: script/nhc98.inst
===================================================================
RCS file: /usr/src/master/nhc/script/nhc98.inst,v
retrieving revision 1.40
diff -u -r1.40 nhc98.inst
--- script/nhc98.inst	2002/12/22 22:22:44	1.40
+++ script/nhc98.inst	2003/02/05 15:17:48
@@ -539,7 +539,8 @@
         then
           echo $CPPAS $ENDIAN $CPPASFLAGS $CINCDIRS $TMPCPPASFILE -o $TMPASFILE
 	fi
-	$CPPAS $ENDIAN $CPPASFLAGS $CINCDIRS $TMPCPPASFILE -o $TMPASFILE
+	$CPPAS $ENDIAN $CPPASFLAGS $CINCDIRS $TMPCPPASFILE -o - | \
+		sed -e '/.align 32/s/32/4/' >$TMPASFILE		# evil mangler!
 	if test $CSRC -eq 0
         then
           if test $VFLAG -eq 1
Index: src/runtime/Kernel/Makefile
===================================================================
RCS file: /usr/src/master/nhc/src/runtime/Kernel/Makefile,v
retrieving revision 1.12
diff -u -r1.12 Makefile
--- src/runtime/Kernel/Makefile	2002/10/07 13:42:11	1.12
+++ src/runtime/Kernel/Makefile	2003/02/05 15:17:48
@@ -5,7 +5,8 @@
 OBJDIR=${BUILDDIR}/${OBJ}/runtime/Kernel
 
 OSRCS = mutator.c mutlib.c main.c
-ASRCS = haskellInit.c newtables.c dump.c inscount.c newbuiltin.c collector.c mark.c \
+SSRCS = newtables.c newbuiltin.c
+ASRCS = haskellInit.c dump.c inscount.c collector.c mark.c \
 	 cdata.c timeUnix.c xlib_debug.c stableptr.c closureval.c ffiexport.c
 
 ifneq "${PROFILING}" ""
@@ -17,6 +18,7 @@
 endif
 
 OOBJS = $(patsubst %.c,${OBJDIR}/%.o,${OSRCS})
+SOBJS = $(patsubst %.c,${OBJDIR}/%.o,${SSRCS})
 AOBJS = $(patsubst %.c,${OBJDIR}/%.o,${ASRCS})
 
 ifeq "$(CFG)" ""
@@ -25,7 +27,7 @@
   ARCHIVE=${OBJDIR}/Runtime.${CFG}.a 
 endif
 
-OBJS = ${AOBJS} ${OOBJS}
+OBJS = ${AOBJS} ${SOBJS} ${OOBJS}
 
 CFLAGS = ${DCFG} ${BUGFIX} ${ENDIAN} ${OPT} -I${INCDIR} \
          -DVERSION="\"$(VERSION)\""  #-DBYTECODE_PROF
@@ -35,6 +37,9 @@
 
 ${AOBJS} ${OOBJS}: ${OBJDIR}/%.o: %.c
 	${CC} -c ${CFLAGS} -o $@ $<
+${SOBJS}: ${OBJDIR}/%.o: %.c
+	${CC} -S ${CFLAGS} -o - $< | sed '/.align 32/s/32/4/' |\
+		 ${CC} -c -x assembler ${CFLAGS} -o $@ -
 
 LINKS = bytecode.h cinterface.h mutlib.h newmacros.h \
 	node.h runtime.h stableptr.h newbytecode.h bytecode_o.h
@@ -51,13 +56,14 @@
 
 ifeq "${TPROF}" ""
 
-${ARCHIVE}: ${AOBJS}
-	cd ${OBJDIR}; $(AR) $(ARFLAGS) $@ $(patsubst ${OBJDIR}/%,%,${AOBJS})
+${ARCHIVE}: ${AOBJS} ${SOBJS}
+	cd ${OBJDIR}; \
+		$(AR) $(ARFLAGS) $@ $(patsubst ${OBJDIR}/%,%,${AOBJS} ${SOBJS})
 else
 
-${ARCHIVE}: ${AOBJS} ${TPLOBJS}
+${ARCHIVE}: ${AOBJS} ${SOBJS} ${TPLOBJS}
 	cd ${OBJDIR}; $(AR) $(ARFLAGS) $@ \
-	$(patsubst ${OBJDIR}/%,%,${TPLOBJS} ${AOBJS})
+		$(patsubst ${OBJDIR}/%,%,${TPLOBJS} ${AOBJS} ${SOBJS})
 	rm -f ${TPLOBJS}
 
 ${TPLOBJS}: