delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp/2010/12/22/16:17:45

X-Authentication-Warning: delorie.com: mail set sender to djgpp-bounces using -f
X-Recipient: djgpp AT delorie DOT com
X-Authenticated: #27081556
X-Provags-ID: V01U2FsdGVkX1/YEdkUfaTY3Y1KippXzVdRBzh3gsGSF955KikeOB
QslUWyXaLZGCL7
From: Juan Manuel Guerrero <juan DOT guerrero AT gmx DOT de>
To: djgpp AT delorie DOT com
Subject: Re: error compiling bc 1.06 with readline 6.1 and flex 2.54
Date: Wed, 22 Dec 2010 22:17:53 +0100
User-Agent: KMail/1.9.10
MIME-Version: 1.0
Message-Id: <201012222217.54054.juan.guerrero@gmx.de>
X-Y-GMX-Trusted: 0

On  Wed, 22 Dec 2010 01:12:43 -0600, Allan wrote:
[snip]
> I applied the patch to freshly unpacked sources and it worked except
> that when I type `make timetest' the test program builds but does not
> run for some reason. I simply type the command manually to produce the
> required header file as you can see from this output:
[snip]

The compiler warnings indicate that there are again missing headers.

[snip]
> gcc -g -O2 -Wall -funsigned-char -o testmul testmul.o number.o
> The following may take up to 10 minutes.
> testmul > muldigits.h
> C:\DOCUME~1\SAdmin\LOCALS~1\Temp/dj300000: line 1: testmul: command not found
> make.exe[1]: *** [muldigits.h] Error 127
> make.exe[1]: Leaving directory `d:/djgpp/gnu/bc-1.06/lib'
> make.exe: *** [timetest] Error 2
>
> D:\djgpp\gnu\bc-1.06>lib\testmul.exe > muldigits.h
[snip]

Here testmul is not found because the cwd is not in the search path.  I have
changed the Makefile line from "testmul > muldigits.h" to
"./testmul > muldigits.h" and then the test passes flawlessly.  I took around
10 minutes on my virtual machine with WinXP.


Last but not least pay attention when you configure the sources.
As all sources that I distribute, they are configure for DJGPP 2.03
but you are using DJGPP 2.04.  Please remove the config.cache file in
the top srcdir before you configure the sources or the produced config.h
and Makefiles may be wrong.


The patch below will fix all issues.


Regards,
Juan M. Guerrero





diff -aprNU3 bc-1.06.orig/bc/scan.l bc-1.06/bc/scan.l
--- bc-1.06.orig/bc/scan.l	2000-09-13 18:25:46 +0000
+++ bc-1.06/bc/scan.l	2010-12-20 18:47:54 +0000
@@ -143,7 +143,7 @@ static int   rl_len = 0;
 
 /* Definitions for readline access. */
 extern FILE *rl_instream;
-_PROTOTYPE(char *readline, (char *));
+_PROTOTYPE(char *readline, (const char *));
 
 /* rl_input puts upto MAX characters into BUF with the number put in
    BUF placed in *RESULT.  If the yy input file is the same as
@@ -313,7 +313,7 @@ limits return(Limits);
       }
 [a-z][a-z0-9_]* { yylval.s_value = strcopyof(yytext); return(NAME); }
 \"[^\"]*\"  {
- 	      unsigned char *look;
+ 	      char *look;
 	      int count = 0;
 	      yylval.s_value = strcopyof(yytext);
 	      for (look = yytext; *look != 0; look++)
@@ -325,7 +325,7 @@ limits return(Limits);
 	      return(STRING);
 	    }
 {DIGIT}({DIGIT}|\\\n)*("."({DIGIT}|\\\n)*)?|"."(\\\n)*{DIGIT}({DIGIT}|\\\n)* {
-	      unsigned char *src, *dst;
+	      char *src, *dst;
 	      int len;
 	      /* remove a trailing decimal point. */
 	      len = strlen(yytext);
diff -aprNU3 bc-1.06.orig/djgpp/config.bat bc-1.06/djgpp/config.bat
--- bc-1.06.orig/djgpp/config.bat	2000-12-23 01:40:26 +0000
+++ bc-1.06/djgpp/config.bat	2010-12-20 18:20:30 +0000
@@ -147,14 +147,14 @@ if errorlevel 1 goto WithoutNLS
 Rem We prefer without-included-gettext because libintl.a from gettext package
 Rem is the only one that is garanteed to have been ported to DJGPP.
 echo Running the ./configure script...
-sh ./configure --src=%XSRC% --enable-nls --without-included-gettext
+sh ./configure --src=%XSRC% --enable-nls --without-included-gettext  --with-readline
 if errorlevel 1 goto CfgError
 echo Done.
 goto End
 
 :WithoutNLS
 echo Running the ./configure script...
-sh ./configure --src=%XSRC% --disable-nls
+sh ./configure --src=%XSRC% --disable-nls  --with-readline
 if errorlevel 1 goto CfgError
 echo Done.
 goto End
diff -aprNU3 bc-1.06.orig/lib/Makefile.in bc-1.06/lib/Makefile.in
--- bc-1.06.orig/lib/Makefile.in	2000-11-15 20:19:12 +0000
+++ bc-1.06/lib/Makefile.in	2010-12-22 21:20:54 +0000
@@ -270,7 +270,7 @@ newnumber.o: number.c muldigits.h
 
 muldigits.h: testmul
 	@echo "The following may take up to 10 minutes."
-	testmul > muldigits.h
+	./testmul > muldigits.h
 
 testmul: testmul.o number.o
 	$(CC) $(CFLAGS) -o testmul testmul.o number.o
diff -aprNU3 bc-1.06.orig/lib/number.c bc-1.06/lib/number.c
--- bc-1.06.orig/lib/number.c	2000-10-03 18:34:24 +0000
+++ bc-1.06/lib/number.c	2010-12-22 20:56:24 +0000
@@ -35,6 +35,7 @@
 #include <assert.h>
 #include <stdlib.h>
 #include <ctype.h>/* Prototypes needed for external utility routines. */
+#include <string.h>  /* Prototypes of memset, memcpy and strlen. */
 
 #define bc_rt_warn rt_warn
 #define bc_rt_error rt_error
diff -aprNU3 bc-1.06.orig/lib/testmul.c bc-1.06/lib/testmul.c
--- bc-1.06.orig/lib/testmul.c	2000-08-31 15:57:42 +0000
+++ bc-1.06/lib/testmul.c	2010-12-22 20:56:22 +0000
@@ -1,6 +1,8 @@
 /* compute the crossover for recursive and simple multiplication */
 
 #include <stdio.h>
+#include <stdlib.h>  /* Prototype of exit. */
+#include <string.h>  /* Prototype of strcmp. */
 #include <time.h>
 #include "number.h"
 #ifndef VARARGS

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019