
nhc-1.06 doesn't compile .c files
I presume the .c file you want to compile is real hand-written C, not a compiler-generated intermediate file? If so, then yes, this was inadvertently broken in 1.06. A full patch is attached.
Changing CSUFFIX from "hc" to "c" in the nhc98 driver seems to fix this.
Unfortunately, that is not a very safe fix - it will break a build via gcc. Better to undo that change and apply the patch below. (After applying, a ./configure is needed.) Regards, Malcolm diff -u -r1.26 nhc98.inst --- script/nhc98.inst 2001/06/04 15:10:29 1.26 +++ script/nhc98.inst 2001/06/11 10:11:57 @@ -304,19 +304,20 @@ while test $1 do + CSUF=$CSUFFIX case $1 in *.s ) UNLIT=""; HSRC=0; CSRC=0; SSRC=1; GR=0; BASENAME=`basename $1 .s` ;; *.hc ) UNLIT=""; HSRC=0; CSRC=1; SSRC=0; GR=0; - BASENAME=`basename $1 .hc` ;; + BASENAME=`basename $1 .hc` CSUF=hc ;; *.T.c ) UNLIT=""; HSRC=0; CSRC=1; SSRC=0; GR=0; - BASENAME=`basename $1 .T.c` ;; + BASENAME=`basename $1 .T.c` CSUF=T.c ;; *.p.c ) UNLIT=""; HSRC=0; CSRC=1; SSRC=0; GR=0; - BASENAME=`basename $1 .p.c` ;; + BASENAME=`basename $1 .p.c` CSUF=p.c ;; *.z.c ) UNLIT=""; HSRC=0; CSRC=1; SSRC=0; GR=0; - BASENAME=`basename $1 .z.c` ;; + BASENAME=`basename $1 .z.c` CSUF=z.c ;; *.c ) UNLIT=""; HSRC=0; CSRC=1; SSRC=0; GR=0; - BASENAME=`basename $1 .c` ;; + BASENAME=`basename $1 .c` CSUF=c ;; *.hs_ ) UNLIT=""; HSRC=1; CSRC=0; SSRC=0; GR=0; BASENAME=`basename $1 _.hs_` ;; *.gc ) UNLIT=""; HSRC=1; CSRC=0; SSRC=0; GR=1; @@ -342,10 +343,20 @@ TMPCPPPREFILE=$TMP/$BASENAME.$$.hs - CPPASFILE=$DIRNAME/$BASENAME.$CSUFFIX + if [ "$CSUF" != "$CSUFFIX" -a "$CSUF" != "c" ] + then + echo "Warning: compiling a .$CSUF file, but expected a .$CSUFFIX file" + echo " Ensure compiler options match the intended build type:" + echo " ordinary .hc" + echo " heap profiling -p .p.c" + echo " time profiling -t .z.c" + echo " tracing -T .T.c" + fi + + CPPASFILE=$DIRNAME/$BASENAME.$CSUF if test $CSRC -eq 0 then - TMPCPPASFILE=$TMP/$BASENAME.$$.$CSUFFIX + TMPCPPASFILE=$TMP/$BASENAME.$$.$CSUF else TMPCPPASFILE=$CPPASFILE fi
participants (1)
-
Malcolm Wallace