Date: Thu, 21 Nov 1996 15:37:51 -0600 (CST) From: Dave Bodenstab <imdave@synet.net> To: freebsd-questions@freebsd.org, steve@edmweb.com Subject: Re: Gnu dc 1.03 compile problems Message-ID: <199611212137.PAA08190@base486.synet.net>
next in thread | raw e-mail | index | archive | help
> Has anyone been able to get GNU dc v1.03 to compile on a 2.1.0-RELEASE > system? I've tried, but it produces a bunch of warnings and errors (see > below). Here are the changes I made... there's more here than you need to fix your problem, but it's been a while and I don't remember all the particulars. I'm still running 2.0.5, but I don't think that makes any real difference wrt the problem. Your problem is caused by the -D_POSIX_SOURCE in the Makefile, so if you don't want to blindly apply these patches, you can start by just removing that. Beware; watch out for the mailer possiblly mangling the tabs in the following patch. I also use a modified autoconf to generate the configure script, so you might need a few more tweeks here and there. Now, whether or not this just skirts an actual problem with the headers... I don't know. This is just a brute force way to get it to compile. Good luck. Dave Bodenstab imdave@synet.net =================================================================== diff -u -r1.3 -r1.3.1.1 --- Makefile.in 1996/07/29 03:50:46 1.3 +++ Makefile.in 1996/07/29 03:50:47 1.3.1.1 @@ -66,7 +66,7 @@ # stuff for cflags -STDDEFS = -D_POSIX_SOURCE -DDOT_IS_LAST +STDDEFS = -DDOT_IS_LAST INCDIR = -I. -I$(srcdir) # @@ -76,7 +76,7 @@ # README file for more details. # O=o -CFLAGS = -O $(INCDIR) $(STDDEFS) @CFLAGS@ +CFLAGS = $(INCDIR) $(STDDEFS) @CFLAGS@ LDFLAGS = # # For the PC version of MINIX (K&R compiler), use the following lines. @@ -146,7 +146,7 @@ rm -f ./fbc fbc: $(BCOFILES) bc.$O - echo \"\" > libmath.h + echo > libmath.h $(CC) -c $(CFLAGS) global.c $(CC) -o fbc $(LDFLAGS) bc.$O $(BCOFILES) global.$O $(LEXLIB) @@ -154,7 +154,6 @@ rm -f $(bindir)/bc $(bindir)/dc $(INSTALL_PROGRAM) bc $(bindir) $(INSTALL_PROGRAM) dc $(bindir) - chmod 555 $(bindir)/bc $(bindir)/dc if grep -s "define BC_MATH_FILE" config.h; \ then rm -f $(libdir)/libmath.b; \ $(INSTALL_DATA) $(srcdir)/libmath.b $(libdir); \ @@ -162,14 +161,16 @@ else true; \ fi $(INSTALL_DATA) $(srcdir)/bc.1 $(mandir) + gzip -9nf ${mandir}/bc.1 $(INSTALL_DATA) $(srcdir)/dc.1 $(mandir) + gzip -9nf ${mandir}/dc.1 $(INSTALL_DATA) $(srcdir)/dc.info $(infodir) installdirs: -mkdir $(prefix) -mkdir $(bindir) -if grep -s "define BC_MATH_FILE" config.h; \ - then mkdir $(libdir) + then mkdir $(libdir); \ else true; \ fi -mkdir $(mandir) @@ -178,7 +179,7 @@ uninstall: rm -f $(bindir)/bc $(bindir)/dc if grep -s "define BC_MATH_FILE" config.h; \ - then rm -f $(libdir)/libmath.b; + then rm -f $(libdir)/libmath.b; \ else true; \ fi rm -f $(mandir)/bc1 $(mandir)/dc.1 @@ -248,7 +249,9 @@ cp $(srcdir)/y.tab.h.dist y.tab.h clean: - rm -f *.$O core ERRS *~ *.bak *.Z + rm -f *.$O core ERRS *~ *.bak *.Z + rm -f bc.c scan.c y.tab.h bc dc + rm -f Makefile config.h config.log config.cache libmath.h dc.info distclean: clean rm -f scan.c y.tab.h bc.c sbc.c bc sbc bc-dist* config.h bc-*.* \ =================================================================== diff -u -r1.3 -r1.3.1.1 --- bc.y 1996/07/29 03:50:49 1.3 +++ bc.y 1996/07/29 03:50:50 1.3.1.1 @@ -64,7 +64,7 @@ %token <i_value> NEWLINE AND OR NOT %token <s_value> STRING NAME NUMBER /* '-', '+' are tokens themselves */ -%token <c_value> MUL_OP +%token <c_value> MUL_OP '+' '-' /* '*', '/', '%' */ %token <c_value> ASSIGN_OP /* '=', '+=', '-=', '*=', '/=', '%=', '^=' */ @@ -83,7 +83,6 @@ /* Types of all other things. */ %type <i_value> expression return_expression named_expression opt_expression -%type <c_value> '+' '-' %type <a_value> opt_parameter_list opt_auto_define_list define_list %type <a_value> opt_argument_list argument_list %type <i_value> program input_item semicolon_list statement_list @@ -105,11 +104,6 @@ program : /* empty */ { $$ = 0; - if (interactive) - { - printf ("%s\n", BC_VERSION); - welcome (); - } } | program input_item ; =================================================================== diff -u -r1.3 -r1.3.1.1 --- const.h 1996/07/29 03:51:02 1.3 +++ const.h 1996/07/29 03:51:02 1.3.1.1 @@ -38,13 +38,25 @@ /* Define constants in some reasonable size. The next 4 constants are POSIX constants. */ +#ifdef BC_BASE_MAX +#undef BC_BASE_MAX +#endif #define BC_BASE_MAX INT_MAX +#ifdef BC_SCALE_MAX +#undef BC_SCALE_MAX +#endif #define BC_SCALE_MAX INT_MAX +#ifdef BC_STRING_MAX +#undef BC_STRING_MAX +#endif #define BC_STRING_MAX INT_MAX /* Definitions for arrays. */ +#ifdef BC_DIM_MAX +#undef BC_DIM_MAX +#endif #define BC_DIM_MAX 65535 /* this should be NODE_SIZE^NODE_DEPTH-1 */ #define NODE_SIZE 16 /* Must be a power of 2. */ =================================================================== diff -u -r1.3 -r1.3.1.1 --- fix_libmath.h 1996/07/29 03:51:00 1.3 +++ fix_libmath.h 1996/07/29 03:51:00 1.3.1.1 @@ -1,8 +1,5 @@ ed libmath.h <<EOS-EOS -1,1s/^/"/ -1,\$s/\$/\\\\/ -\$,\$d -\$,\$s/\\\\\$/"/ +,s/./'&',/g w q EOS-EOS =================================================================== diff -u -r1.3 -r1.3.1.1 --- global.c 1996/07/29 03:50:52 1.3 +++ global.c 1996/07/29 03:50:53 1.3.1.1 @@ -36,7 +36,7 @@ #include "global.h" #ifndef BC_MATH_FILE -CONST char libmath[] = +CONST char libmath[] = { #include "libmath.h" -; +0 }; #endif =================================================================== diff -u -r1.3 -r1.3.1.1 --- main.c 1996/07/29 03:50:55 1.3 +++ main.c 1996/07/29 03:50:55 1.3.1.1 @@ -77,6 +77,7 @@ break; case 'v': /* Print the version. */ printf ("%s\n", BC_VERSION); + welcome (); break; } ch = getopt (argc, argv, "lcisvw"); =================================================================== diff -u -r1.3 -r1.3.1.1 --- proto.h 1996/07/29 03:51:04 1.3 +++ proto.h 1996/07/29 03:51:05 1.3.1.1 @@ -161,6 +161,3 @@ _PROTOTYPE(int yyparse, (void)); _PROTOTYPE(int yylex, (void)); -/* Other things... */ -_PROTOTYPE (int getopt, (int, char *[], CONST char *)); - =================================================================== diff -u -r1.3 -r1.3.1.1 --- scan.l 1996/07/29 03:50:57 1.3 +++ scan.l 1996/07/29 03:50:58 1.3.1.1 @@ -69,7 +69,9 @@ sqrt return(Sqrt); scale return(Scale); ibase return(Ibase); +ib return(Ibase); obase return(Obase); +ob return(Obase); auto return(Auto); else return(Else); read return(Read); @@ -178,9 +180,9 @@ yyerror ("illegal character: ^%c",yytext[0] + '@'); else if (yytext[0] > '~') - yyerror ("illegal character: \\%3d", (int) yytext[0]); + yyerror ("illegal character: 0x%2x", (int) yytext[0]); else - yyerror ("illegal character: %s",yytext); + yyerror ("illegal character: '%s'",yytext); } %% =============== end of patch ======================================
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199611212137.PAA08190>