After quite a few cups of coffee "make binary-dist" finally works for
ghc-2.08 on Linux and HP-UX. The following bugs have been fixed
(diff output simply pasted at the end of the mail as Glasgow's mailer
doesn't speak MIME):

   * lit-deatify forgets to allocate a buffer for a file name, so
     building the documentation failed from time to time. This is
     a bug from the "how-did-this-ever-work?"-category. You need
     flex to rebuild lit-deatify.c from lit-deatify (or simply add
     the two lines by hand :-)

   * Some \index{...} commands in the documentations were split over
     two lines, resulting in some warnings. Nothing serious, but anyway...

   * A \item[foo] was \item{foo}, resulting in an error while building
     the documentation.

   * Some $$ have to be protected from expansion in newer Bashs. This
     has to be done in mk/target.mk *and* distrib/Makefile-bin.in.
     The former bug has been reported before.

   * Two patches sent by Sigbjorn (mangler and PackedString stuff)

Because it is very likely that the TABs in the following diffs get lost
(i.e. are converted to spaces), it's available in its full glory at:

   http://www.pms.informatik.uni-muenchen.de/mitarbeiter/panne/diff-2.08

-----------------------------------------------------------------------
diff -c -r fptools.orig/literate/lit-deatify/lit-deatify.flex 
fptools/literate/lit-deatify/lit-deatify.flex
*** fptools.orig/literate/lit-deatify/lit-deatify.flex  Fri Jun 20 11:05:45 1997
--- fptools/literate/lit-deatify/lit-deatify.flex       Thu Oct 16 14:17:24 1997
***************
*** 153,158 ****
--- 153,160 ----
                        }
  
  <Norm>^"srcfile!_!"(.+)"!_!"([0-9]+)"!_!"\n {
+                 if (srcfile_name != NULL) free(srcfile_name);
+                 srcfile_name = (char *)malloc(yyleng);  /* a little too big, but who 
+cares? :-) */
                  sscanf(yytext+10,"%[^!]!_!%d", srcfile_name, &lineno);
                  if (lineno > 0) {
                     ECHO;
diff -c -r fptools.orig/docs/installing.lit fptools/docs/installing.lit
*** fptools.orig/docs/installing.lit    Fri Oct  3 17:22:20 1997
--- fptools/docs/installing.lit Thu Oct 16 14:34:35 1997
***************
*** 283,291 ****
  
  %-------------------------------------------------------------------
  \item[\tr{i386-*-freebsd} (PCs running FreeBSD 2.2 or higher, and
! NetBSD/OpenBSD using FreeBSD emulation):] \index{i386-*-freebsd:
! registerised port} GHC~2.08 works registerised. Supports same set of
! bundles as the above.
  
  \index{i386-*-freebsd: profiling---yes}
  \index{i386-*-freebsd: concurrent---yes}
--- 283,291 ----
  
  %-------------------------------------------------------------------
  \item[\tr{i386-*-freebsd} (PCs running FreeBSD 2.2 or higher, and
! NetBSD/OpenBSD using FreeBSD emulation):]
! \index{i386-*-freebsd: registerised port} GHC~2.08 works registerised.
! Supports same set of bundles as the above.
  
  \index{i386-*-freebsd: profiling---yes}
  \index{i386-*-freebsd: concurrent---yes}
***************
*** 1460,1466 ****
  to happen that you can read and understand any wierd special cases yourself.
  
  \begin{description}
! \item{@HS_PROG@.}  If @HS_PROG@ is defined, you get rules with the
  following targets:
  \begin{description}
  \item[@HS_PROG@] itself.  This rule links @$(OBJS)@ with the Haskell
--- 1460,1466 ----
  to happen that you can read and understand any wierd special cases yourself.
  
  \begin{description}
! \item[@HS_PROG@.]  If @HS_PROG@ is defined, you get rules with the
  following targets:
  \begin{description}
  \item[@HS_PROG@] itself.  This rule links @$(OBJS)@ with the Haskell
diff -c -r fptools.orig/ghc/docs/users_guide/prof-output.lit 
fptools/ghc/docs/users_guide/prof-output.lit
*** fptools.orig/ghc/docs/users_guide/prof-output.lit   Thu Jun 27 17:57:48 1996
--- fptools/ghc/docs/users_guide/prof-output.lit        Thu Oct 16 14:27:03 1997
***************
*** 40,47 ****
  How many dictionaries this cost centre evaluated.
  \end{description}
  
! In addition you can use the \tr{-P} RTS option \index{\tr{-P<sort> RTS
!     option (profiling)}} to get the following additional information: 
  \begin{description}
  %-------------------------------------------------------------
  \item[\tr{ticks}:]  The raw number of time ``ticks'' which were
--- 40,48 ----
  How many dictionaries this cost centre evaluated.
  \end{description}
  
! In addition you can use the \tr{-P} RTS option
! \index{\tr{-P<sort> RTS option (profiling)}} to get the following
! additional information: 
  \begin{description}
  %-------------------------------------------------------------
  \item[\tr{ticks}:]  The raw number of time ``ticks'' which were
diff -c -r fptools.orig/distrib/Makefile-bin.in fptools/distrib/Makefile-bin.in
*** fptools.orig/distrib/Makefile-bin.in        Thu Oct  9 17:22:58 1997
--- fptools/distrib/Makefile-bin.in     Thu Oct 16 16:35:21 1997
***************
*** 139,148 ****
           $(RM) bin/$(platform)/$(package)-$(version)/$$i.bak; \
           test -f bin/$(platform)/$(package)-$(version)/$$i && $(MV) 
bin/$(platform)/$(package)-$(version)/$$i 
bin/$(platform)/$(package)-$(version)/$$i.bak; \
           echo "#! $(PERL)"                                    > 
bin/$(platform)/$(package)-$(version)/$$i ; \
!          echo $$"bindir='$(bindir)';"                        >> 
bin/$(platform)/$(package)-$(version)/$$i ; \
!          echo $$"libdir='$(real_libdir)';"                   >> 
bin/$(platform)/$(package)-$(version)/$$i ; \
!          echo $$"libexecdir='$(real_libdir)';"               >> 
bin/$(platform)/$(package)-$(version)/$$i ; \
!          echo $$"datadir='$(real_datadir)';"                 >> 
bin/$(platform)/$(package)-$(version)/$$i ; \
           cat bin/$(platform)/$(package)-$(version)/$$i.prl   >> 
bin/$(platform)/$(package)-$(version)/$$i ; \
           $(CHMOD) $(BIN_PERMS) bin/$(platform)/$(package)-$(version)/$$i; \
           echo "Done."; \
--- 139,148 ----
           $(RM) bin/$(platform)/$(package)-$(version)/$$i.bak; \
           test -f bin/$(platform)/$(package)-$(version)/$$i && $(MV) 
bin/$(platform)/$(package)-$(version)/$$i 
bin/$(platform)/$(package)-$(version)/$$i.bak; \
           echo "#! $(PERL)"                                    > 
bin/$(platform)/$(package)-$(version)/$$i ; \
!          echo '$$'"bindir='$(bindir)';"                        >> 
bin/$(platform)/$(package)-$(version)/$$i ; \
!          echo '$$'"libdir='$(real_libdir)';"                   >> 
bin/$(platform)/$(package)-$(version)/$$i ; \
!          echo '$$'"libexecdir='$(real_libdir)';"               >> 
bin/$(platform)/$(package)-$(version)/$$i ; \
!          echo '$$'"datadir='$(real_datadir)';"                 >> 
bin/$(platform)/$(package)-$(version)/$$i ; \
           cat bin/$(platform)/$(package)-$(version)/$$i.prl   >> 
bin/$(platform)/$(package)-$(version)/$$i ; \
           $(CHMOD) $(BIN_PERMS) bin/$(platform)/$(package)-$(version)/$$i; \
           echo "Done."; \
***************
*** 152,163 ****
           $(RM) lib/$(platform)/$(package)-$(version)/$$i.bak; \
           test -f lib/$(platform)/$(package)-$(version)/$$i && $(MV) 
lib/$(platform)/$(package)-$(version)/$$i 
lib/$(platform)/$(package)-$(version)/$$i.bak; \
           echo "#! $(PERL)"                      > 
lib/$(platform)/$(package)-$(version)/$$i ; \
!          echo $$"bindir='$(bindir)';"          >> 
lib/$(platform)/$(package)-$(version)/$$i ; \
!          echo $$"libdir='$(real_libdir)';"     >> 
lib/$(platform)/$(package)-$(version)/$$i ; \
!          echo $$"libexecdir='$(real_libdir)';" >> 
lib/$(platform)/$(package)-$(version)/$$i ; \
!          echo $$"datadir='$(real_datadir)';"   >> 
lib/$(platform)/$(package)-$(version)/$$i ; \
!          echo $$"SED='$(SED)';"                >> 
lib/$(platform)/$(package)-$(version)/$$i ; \
!          echo $$"RAWCPP='$(RAWCPP)';"          >> 
lib/$(platform)/$(package)-$(version)/$$i ; \
           cat lib/$(platform)/$(package)-$(version)/$$i.prl >> 
lib/$(platform)/$(package)-$(version)/$$i; \
           $(CHMOD) $(BIN_PERMS) lib/$(platform)/$(package)-$(version)/$$i; \
           echo "Done."; \
--- 152,163 ----
           $(RM) lib/$(platform)/$(package)-$(version)/$$i.bak; \
           test -f lib/$(platform)/$(package)-$(version)/$$i && $(MV) 
lib/$(platform)/$(package)-$(version)/$$i 
lib/$(platform)/$(package)-$(version)/$$i.bak; \
           echo "#! $(PERL)"                      > 
lib/$(platform)/$(package)-$(version)/$$i ; \
!          echo '$$'"bindir='$(bindir)';"          >> 
lib/$(platform)/$(package)-$(version)/$$i ; \
!          echo '$$'"libdir='$(real_libdir)';"     >> 
lib/$(platform)/$(package)-$(version)/$$i ; \
!          echo '$$'"libexecdir='$(real_libdir)';" >> 
lib/$(platform)/$(package)-$(version)/$$i ; \
!          echo '$$'"datadir='$(real_datadir)';"   >> 
lib/$(platform)/$(package)-$(version)/$$i ; \
!          echo '$$'"SED='$(SED)';"              >> 
lib/$(platform)/$(package)-$(version)/$$i ; \
!          echo '$$'"RAWCPP='$(RAWCPP)';"                >> 
lib/$(platform)/$(package)-$(version)/$$i ; \
           cat lib/$(platform)/$(package)-$(version)/$$i.prl >> 
lib/$(platform)/$(package)-$(version)/$$i; \
           $(CHMOD) $(BIN_PERMS) lib/$(platform)/$(package)-$(version)/$$i; \
           echo "Done."; \
diff -c -r fptools.orig/mk/target.mk fptools/mk/target.mk
*** fptools.orig/mk/target.mk   Tue Oct  7 17:14:04 1997
--- fptools/mk/target.mk        Thu Oct 16 14:18:14 1997
***************
*** 479,488 ****
        @for i in $(INSTALL_SCRIPTS); do \
           $(RM) $$i.tmp; \
           echo "#! $(PERL)" > $$i.tmp ; \
!          echo $$"bindir='$(bindir)';"                            >> $$i.tmp ; \
!          echo $$"libdir='$(libdir)';"                            >> $$i.tmp ; \
!          echo $$"libexecdir='$(libexecdir)';"                    >> $$i.tmp ; \
!          echo $$"datadir='$(datadir)';"                          >> $$i.tmp ; \
           cat  $$i                                                >> $$i.tmp ; \
           echo $(INSTALL_PROGRAM) $(filter-out -s,$(INSTALL_OPTS)) $$i.tmp 
$(bindir)/$$i ;    \
           $(INSTALL_PROGRAM) $(filter-out -s,$(INSTALL_BIN_OPTS)) $$i.tmp 
$(bindir)/$$i ; \
--- 479,488 ----
        @for i in $(INSTALL_SCRIPTS); do \
           $(RM) $$i.tmp; \
           echo "#! $(PERL)" > $$i.tmp ; \
!          echo '$$'"bindir='$(bindir)';"                            >> $$i.tmp ; \
!          echo '$$'"libdir='$(libdir)';"                            >> $$i.tmp ; \
!          echo '$$'"libexecdir='$(libexecdir)';"                    >> $$i.tmp ; \
!          echo '$$'"datadir='$(datadir)';"                          >> $$i.tmp ; \
           cat  $$i                                                >> $$i.tmp ; \
           echo $(INSTALL_PROGRAM) $(filter-out -s,$(INSTALL_OPTS)) $$i.tmp 
$(bindir)/$$i ;    \
           $(INSTALL_PROGRAM) $(filter-out -s,$(INSTALL_BIN_OPTS)) $$i.tmp 
$(bindir)/$$i ; \
***************
*** 508,517 ****
        @for i in $(INSTALL_LIB_SCRIPTS); do \
           $(RM) $$i.tmp; \
           echo "#! $(PERL)" > $$i.tmp ; \
!          echo $$"bindir='$(bindir)';"                            >> $$i.tmp ; \
!          echo $$"libdir='$(libdir)';"                            >> $$i.tmp ; \
!          echo $$"libexecdir='$(libexecdir)';"                    >> $$i.tmp ; \
!          echo $$"datadir='$(datadir)';"                          >> $$i.tmp ; \
           cat  $$i                                                >> $$i.tmp ; \
           echo $(INSTALL_PROGRAM) $(INSTALL_OPTS) $$i $(libdir) ;    \
           $(INSTALL_PROGRAM) $(INSTALL_OPTS) $$i.tmp $(libdir)/$$i ; \
--- 508,517 ----
        @for i in $(INSTALL_LIB_SCRIPTS); do \
           $(RM) $$i.tmp; \
           echo "#! $(PERL)" > $$i.tmp ; \
!          echo '$$'"bindir='$(bindir)';"                            >> $$i.tmp ; \
!          echo '$$'"libdir='$(libdir)';"                            >> $$i.tmp ; \
!          echo '$$'"libexecdir='$(libexecdir)';"                    >> $$i.tmp ; \
!          echo '$$'"datadir='$(datadir)';"                          >> $$i.tmp ; \
           cat  $$i                                                >> $$i.tmp ; \
           echo $(INSTALL_PROGRAM) $(INSTALL_OPTS) $$i $(libdir) ;    \
           $(INSTALL_PROGRAM) $(INSTALL_OPTS) $$i.tmp $(libdir)/$$i ; \
***************
*** 537,546 ****
        @for i in $(INSTALL_LIBEXEC_SCRIPTS); do \
           $(RM) $$i.tmp; \
           echo "#! $(PERL)" > $$i.tmp ; \
!          echo $$"bindir='$(bindir)';"                            >> $$i.tmp ; \
!          echo $$"libdir='$(libdir)';"                            >> $$i.tmp ; \
!          echo $$"libexecdir='$(libexecdir)';"                    >> $$i.tmp ; \
!          echo $$"datadir='$(datadir)';"                          >> $$i.tmp ; \
           cat  $$i                                                >> $$i.tmp ; \
           echo $(INSTALL_PROGRAM) $(INSTALL_OPTS) $$i $(libexecdir) ;    \
           $(INSTALL_PROGRAM) $(INSTALL_OPTS) $$i.tmp $(libexecdir)/$$i ; \
--- 537,546 ----
        @for i in $(INSTALL_LIBEXEC_SCRIPTS); do \
           $(RM) $$i.tmp; \
           echo "#! $(PERL)" > $$i.tmp ; \
!          echo '$$'"bindir='$(bindir)';"                            >> $$i.tmp ; \
!          echo '$$'"libdir='$(libdir)';"                            >> $$i.tmp ; \
!          echo '$$'"libexecdir='$(libexecdir)';"                    >> $$i.tmp ; \
!          echo '$$'"datadir='$(datadir)';"                          >> $$i.tmp ; \
           cat  $$i                                                >> $$i.tmp ; \
           echo $(INSTALL_PROGRAM) $(INSTALL_OPTS) $$i $(libexecdir) ;    \
           $(INSTALL_PROGRAM) $(INSTALL_OPTS) $$i.tmp $(libexecdir)/$$i ; \
diff -c -r fptools.orig/ghc/driver/ghc-asm.lprl fptools/ghc/driver/ghc-asm.lprl
*** fptools.orig/ghc/driver/ghc-asm.lprl        Thu Sep  4 01:49:16 1997
--- fptools/ghc/driver/ghc-asm.lprl     Thu Oct 16 14:23:44 1997
***************
*** 976,981 ****
--- 976,982 ----
                        $c =~ 
s/^\s+ldil.*\n\s+ldo.*\n\s+bv.*\n(.*\n)?\s+\.EXIT/$1\t.EXIT/;
                    } elsif ( $TargetPlatform =~ /^i386-/ ) {
                        $c =~ s/^\tmovl \$${T_US}${symb}_fast\d+,\%edx\n\tjmp 
\*\%edx\n//;
+                       $c =~ s/^\tmovl \$${T_US}${symb}_fast\d+,\%ecx\n\tjmp 
+\*\%ecx\n//;
                        $c =~ s/^\tmovl \$${T_US}${symb}_fast\d+,\%eax\n\tjmp 
\*\%eax\n//;
                    } elsif ( $TargetPlatform =~ /^mips-/ ) {
                        $c =~ s/^\tjmp \$31,\(\$27\),0\n\t\.align 4\n\t\.end/\t.align 
4\n\t.end/;
diff -c -r fptools.orig/hslibs/ghc/src/PackedString.lhs 
fptools/hslibs/ghc/src/PackedString.lhs
*** fptools.orig/hslibs/ghc/src/PackedString.lhs        Tue Aug 26 00:45:49 1997
--- fptools/hslibs/ghc/src/PackedString.lhs     Thu Oct 16 14:23:42 1997
***************
*** 609,615 ****
       -}
       runST (
         let
!         (rle,len_filtered) = filter_ps len# 0# 0# []
        len_filtered#      = case len_filtered of { I# x# -> x#}
         in
         if len# ==# len_filtered# then 
--- 609,615 ----
       -}
       runST (
         let
!         (rle,len_filtered) = filter_ps (len# -# 1#) 0# 0# []
        len_filtered#      = case len_filtered of { I# x# -> x#}
         in
         if len# ==# len_filtered# then 
-----------------------------------------------------------------------

-- 
Sven Panne                                        Tel.: +49/89/2178-2235
LMU, Institut fuer Informatik                     FAX : +49/89/2178-2211
LFE Programmier- und Modellierungssprachen              Oettingenstr. 67
mailto:[EMAIL PROTECTED]            D-80538 Muenchen
http://www.pms.informatik.uni-muenchen.de/mitarbeiter/panne

Reply via email to