Buildroot Archive on lore.kernel.org
 help / color / mirror / Atom feed
* [Buildroot] [PATCH next 1/3] ed: add host package
@ 2017-05-12 14:28 Vicente Olivert Riera
  2017-05-12 14:28 ` [Buildroot] [PATCH next 2/3] bc: " Vicente Olivert Riera
                   ` (2 more replies)
  0 siblings, 3 replies; 5+ messages in thread
From: Vicente Olivert Riera @ 2017-05-12 14:28 UTC (permalink / raw)
  To: buildroot

This will be necessary for updating bc's version in a subsequent patch.

Signed-off-by: Vicente Olivert Riera <Vincent.Riera@imgtec.com>
---
 package/ed/ed.mk | 17 +++++++++++++++++
 1 file changed, 17 insertions(+)

diff --git a/package/ed/ed.mk b/package/ed/ed.mk
index ada0316..7f69480 100644
--- a/package/ed/ed.mk
+++ b/package/ed/ed.mk
@@ -21,12 +21,29 @@ define ED_CONFIGURE_CMDS
 	)
 endef
 
+define HOST_ED_CONFIGURE_CMDS
+	(cd $(@D); \
+		$(HOST_MAKE_ENV) ./configure \
+		--prefix=/usr \
+		$(HOST_CONFIGURE_OPTS) \
+	)
+endef
+
 define ED_BUILD_CMDS
 	$(TARGET_MAKE_ENV) $(MAKE) -C $(@D)
 endef
 
+define HOST_ED_BUILD_CMDS
+	$(HOST_MAKE_ENV) $(MAKE) -C $(@D)
+endef
+
 define ED_INSTALL_TARGET_CMDS
 	$(TARGET_MAKE_ENV) $(MAKE) -C $(@D) DESTDIR="$(TARGET_DIR)" install
 endef
 
+define HOST_ED_INSTALL_CMDS
+	$(HOST_MAKE_ENV) $(MAKE) -C $(@D) DESTDIR="$(HOST_DIR)" install
+endef
+
 $(eval $(generic-package))
+$(eval $(host-generic-package))
-- 
2.10.2

^ permalink raw reply related	[flat|nested] 5+ messages in thread

* [Buildroot] [PATCH next 2/3] bc: add host package
  2017-05-12 14:28 [Buildroot] [PATCH next 1/3] ed: add host package Vicente Olivert Riera
@ 2017-05-12 14:28 ` Vicente Olivert Riera
  2017-05-12 14:28 ` [Buildroot] [PATCH next 3/3] bc: bump version to 1.07.1 Vicente Olivert Riera
  2017-07-16 14:05 ` [Buildroot] [PATCH next 1/3] ed: add host package Thomas Petazzoni
  2 siblings, 0 replies; 5+ messages in thread
From: Vicente Olivert Riera @ 2017-05-12 14:28 UTC (permalink / raw)
  To: buildroot

This will be necessary for updating bc's version in a subsequent patch.

Signed-off-by: Vicente Olivert Riera <Vincent.Riera@imgtec.com>
---
 package/bc/bc.mk | 1 +
 1 file changed, 1 insertion(+)

diff --git a/package/bc/bc.mk b/package/bc/bc.mk
index a6446ce..4596192 100644
--- a/package/bc/bc.mk
+++ b/package/bc/bc.mk
@@ -17,3 +17,4 @@ BC_DEPENDENCIES += busybox
 endif
 
 $(eval $(autotools-package))
+$(eval $(host-autotools-package))
-- 
2.10.2

^ permalink raw reply related	[flat|nested] 5+ messages in thread

* [Buildroot] [PATCH next 3/3] bc: bump version to 1.07.1
  2017-05-12 14:28 [Buildroot] [PATCH next 1/3] ed: add host package Vicente Olivert Riera
  2017-05-12 14:28 ` [Buildroot] [PATCH next 2/3] bc: " Vicente Olivert Riera
@ 2017-05-12 14:28 ` Vicente Olivert Riera
  2017-07-03 16:47   ` Romain Naour
  2017-07-16 14:05 ` [Buildroot] [PATCH next 1/3] ed: add host package Thomas Petazzoni
  2 siblings, 1 reply; 5+ messages in thread
From: Vicente Olivert Riera @ 2017-05-12 14:28 UTC (permalink / raw)
  To: buildroot

- Remove 01 and 02 patches as they are not needed anymore.
- Tweak 03 patch for the new version and rename it to 0001.
- host-flex dependency is not needed anymore.
- Added host-bc dependency: needed to bootstrap libmath.h at build time.
- Added host-ed dependency: used by fix-libmath_h script at build time.
- Swith site to GNU mirror.

Signed-off-by: Vicente Olivert Riera <Vincent.Riera@imgtec.com>
---
 ...fo.patch => 0001-use_appropiate_makeinfo.patch} |  13 +-
 package/bc/01_array_initialize.patch               |  20 -
 package/bc/02_notice_read_write_errors.patch       | 708 ---------------------
 package/bc/bc.hash                                 |   2 +-
 package/bc/bc.mk                                   |  25 +-
 5 files changed, 30 insertions(+), 738 deletions(-)
 rename package/bc/{03_use_appropiate_makeinfo.patch => 0001-use_appropiate_makeinfo.patch} (53%)
 delete mode 100644 package/bc/01_array_initialize.patch
 delete mode 100644 package/bc/02_notice_read_write_errors.patch

diff --git a/package/bc/03_use_appropiate_makeinfo.patch b/package/bc/0001-use_appropiate_makeinfo.patch
similarity index 53%
rename from package/bc/03_use_appropiate_makeinfo.patch
rename to package/bc/0001-use_appropiate_makeinfo.patch
index e6f9262..f6d89a3 100644
--- a/package/bc/03_use_appropiate_makeinfo.patch
+++ b/package/bc/0001-use_appropiate_makeinfo.patch
@@ -1,17 +1,20 @@
 Use the appropiate MAKEINFO variable rather than the hardcoded makeinfo
 command directly, otherwise missing logic never works.
 
+[Vincent: tweak the patch for 1.07.1]
+
 Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
+Signed-off-by: Vicente Olivert Riera <Vincent.Riera@imgtec.com>
 
-diff -Nura bc-1.06.95.orig/doc/Makefile.in bc-1.06.95/doc/Makefile.in
---- bc-1.06.95.orig/doc/Makefile.in	2015-06-13 09:39:46.946620294 -0300
-+++ bc-1.06.95/doc/Makefile.in	2015-06-13 09:40:10.019407630 -0300
-@@ -96,7 +96,7 @@
+diff -Nura a/doc/Makefile.in b/doc/Makefile.in
+--- a/doc/Makefile.in	2017-04-07 23:20:02.000000000 +0100
++++ b/doc/Makefile.in	2017-05-10 17:29:19.126687266 +0100
+@@ -214,7 +214,7 @@
  LIBOBJS = @LIBOBJS@
  LIBS = @LIBS@
  LTLIBOBJS = @LTLIBOBJS@
 -MAKEINFO = makeinfo --no-split
 +MAKEINFO = @MAKEINFO@ --no-split
+ MKDIR_P = @MKDIR_P@
  OBJEXT = @OBJEXT@
  PACKAGE = @PACKAGE@
- PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
diff --git a/package/bc/01_array_initialize.patch b/package/bc/01_array_initialize.patch
deleted file mode 100644
index 9520d82..0000000
--- a/package/bc/01_array_initialize.patch
+++ /dev/null
@@ -1,20 +0,0 @@
-Description: Fix array initialization bug
-Author: Phil Nelson
-Origin: upstream
-Bug-Debian: http://bugs.debian.org/586969
-Bug-Debian: http://bugs.debian.org/671513
----
-This patch header follows DEP-3: http://dep.debian.net/deps/dep3/
-Index: bc/bc/storage.c
-===================================================================
---- bc.orig/bc/storage.c	2013-06-02 20:34:09.401273864 -0400
-+++ bc/bc/storage.c	2013-06-02 20:34:11.000000000 -0400
-@@ -179,7 +179,7 @@
- 
- 
-   /* Initialize the new elements. */
--  for (; indx < v_count; indx++)
-+  for (; indx < a_count; indx++)
-     arrays[indx] = NULL;
- 
-   /* Free the old elements. */
diff --git a/package/bc/02_notice_read_write_errors.patch b/package/bc/02_notice_read_write_errors.patch
deleted file mode 100644
index 73e6ec9..0000000
--- a/package/bc/02_notice_read_write_errors.patch
+++ /dev/null
@@ -1,708 +0,0 @@
-Description: notice read and write errors on input and output
- Quoting from the bug report:
-    +bc (1.06-19ubuntu1) dapper; urgency=low
-    +
-    +  * Make dc notice read and write errors on its input and output.
-    +    I grepped for mentions of the strings `putc', `print', `getc', `FILE',
-    +    `stdin', `stdout' and `stderr' and added calls to new error-checking
-    +    functions unless it was clear from the immediately-surrounding code
-    +    that the program was exiting nonzero, or would exit nonzero if the
-    +    call failed.  I ignored hits in lib/getopt*, which seems to
-    +    pervasively ignore write errors when printing usage messages, in the
-    +    hope that these were correct.  I _think_ I got them all.  -iwj.
-    +
-    + -- Ian Jackson <iwj@ubuntu.com>  Tue,  4 Apr 2006 17:21:02 +0100
-Author: Ian Jackson <iwj@ubuntu.com>
-Origin: other
-Bug-Debian: http://bugs.debian.org/488735
----
-This patch header follows DEP-3: http://dep.debian.net/deps/dep3/
-diff --git a/bc/execute.c b/bc/execute.c
-index e4e8ef7..8787048 100644
---- a/bc/execute.c
-+++ b/bc/execute.c
-@@ -108,6 +108,7 @@ execute ()
- 	      }
- 	    out_char ('\n');
- 	  }
-+	checkferror_output(stdout);
-       }
- #endif
- 
-@@ -222,6 +223,7 @@ execute ()
- 		}
- 	    }
- 	fflush (stdout);
-+	checkferror_output(stdout);
- 	break;
- 
-       case 'R' : /* Return from function */
-@@ -257,6 +259,7 @@ execute ()
- 	if (inst == 'W') out_char ('\n');
- 	store_var (4);  /* Special variable "last". */
- 	fflush (stdout);
-+	checkferror_output(stdout);
- 	pop ();
- 	break;
- 
-@@ -338,6 +341,7 @@ execute ()
-       case 'w' : /* Write a string to the output. */
- 	while ((ch = byte(&pc)) != '"') out_schar (ch);
- 	fflush (stdout);
-+	checkferror_output(stdout);
- 	break;
- 		   
-       case 'x' : /* Exchange Top of Stack with the one under the tos. */
-@@ -545,7 +549,10 @@ execute ()
-     {
-       signal (SIGINT, use_quit);
-       if (had_sigint)
--	printf ("\ninterrupted execution.\n");
-+	{
-+	  printf ("\ninterrupted execution.\n");
-+	  checkferror_output(stdout);
-+	}
-     }
- }
- 
-@@ -580,6 +587,7 @@ input_char ()
- 	  out_col = 0;  /* Saw a new line */
- 	}
-     }
-+  checkferror_input(stdin);
- 
-   /* Classify and preprocess the input character. */
-   if (isdigit(in_ch))
-diff --git a/bc/load.c b/bc/load.c
-index 1035198..4039e86 100644
---- a/bc/load.c
-+++ b/bc/load.c
-@@ -217,6 +217,7 @@ load_code (code)
- 		if (label_no > 65535L)
- 		  {  /* Better message? */
- 		    fprintf (stderr,"Program too big.\n");
-+		    checkferror_output(stderr);
- 		    exit(1);
- 		  }
- 		addbyte ( (char) (label_no & 0xFF));
-diff --git a/bc/main.c b/bc/main.c
-index 9a2461e..3ae427d 100644
---- a/bc/main.c
-+++ b/bc/main.c
-@@ -358,6 +358,9 @@ use_quit (sig)
-   errno = save;
- #else
-   write (1, "\n(interrupt) Exiting bc.\n", 26);
-+#ifdef READLINE
-+  rl_initialize (); /* Clear readline buffer */
-+#endif
- #if defined(LIBEDIT)
-   if (edit != NULL)
-     el_end(edit);
-diff --git a/bc/sbc.y b/bc/sbc.y
-index 0ded29e..6fcc1fa 100644
---- a/bc/sbc.y
-+++ b/bc/sbc.y
-@@ -86,7 +86,9 @@ program			: /* empty */
- 			      if (interactive && !quiet)
- 				{
- 				  show_bc_version ();
-+				  checkferror_output(stdout);
- 				  welcome ();
-+				  checkferror_output(stdout);
- 				}
- 			    }
- 			| program input_item
-diff --git a/bc/scan.c b/bc/scan.c
-index 1f78ec2..2b5eeb4 100644
---- a/bc/scan.c
-+++ b/bc/scan.c
-@@ -799,6 +799,7 @@ bcel_input (buf, result, max)
-       if (bcel_len != 0)
- 	history (hist, &histev, H_ENTER, bcel_line); 
-       fflush (stdout);
-+      checkferror_output(stdout);
-     }
- 
-   if (bcel_len <= max)
-@@ -874,6 +875,7 @@ rl_input (buf, result, max)
- 	add_history (rl_line); 
-       rl_line[rl_len-1] = '\n';
-       fflush (stdout);
-+      checkferror_output(stdout);
-     }
- 
-   if (rl_len <= max)
-diff --git a/bc/scan.l b/bc/scan.l
-index 841c3df..16cd62e 100644
---- a/bc/scan.l
-+++ b/bc/scan.l
-@@ -111,6 +111,7 @@ bcel_input (buf, result, max)
-       if (bcel_len != 0)
- 	history (hist, &histev, H_ENTER, bcel_line); 
-       fflush (stdout);
-+      checkferror_output(stdout);
-     }
- 
-   if (bcel_len <= max)
-@@ -186,6 +187,7 @@ rl_input (buf, result, max)
- 	add_history (rl_line); 
-       rl_line[rl_len-1] = '\n';
-       fflush (stdout);
-+      checkferror_output(stdout);
-     }
- 
-   if (rl_len <= max)
-@@ -310,6 +312,7 @@ limits return(Limits);
- 	    if (c == EOF)
- 	      {
- 		fprintf (stderr,"EOF encountered in a comment.\n");
-+                checkferror_output(stderr);
- 		break;
- 	      }
- 	  }
-diff --git a/bc/storage.c b/bc/storage.c
-index 699729a..37b4c6c 100644
---- a/bc/storage.c
-+++ b/bc/storage.c
-@@ -99,6 +99,7 @@ more_functions (VOID)
-     {
-       f = &functions[indx];
-       f->f_defined = FALSE;
-+      f->f_void = FALSE;
-       f->f_body = (char *) bc_malloc (BC_START_SIZE);
-       f->f_body_size = BC_START_SIZE;
-       f->f_code_size = 0;
-diff --git a/bc/util.c b/bc/util.c
-index 30beaf9..669235f 100644
---- a/bc/util.c
-+++ b/bc/util.c
-@@ -260,9 +260,10 @@ init_gen ()
-   continue_label = 0;
-   next_label  = 1;
-   out_count = 2;
--  if (compile_only) 
-+  if (compile_only) {
-     printf ("@i");
--  else
-+    checkferror_output(stdout);
-+  } else
-     init_load ();
-   had_error = FALSE;
-   did_gen = FALSE;
-@@ -286,6 +287,7 @@ generate (str)
- 	  printf ("\n");
- 	  out_count = 0;
- 	}
-+      checkferror_output(stdout);
-     }
-   else
-     load_code (str);
-@@ -303,6 +305,7 @@ run_code()
-       if (compile_only)
- 	{
- 	  printf ("@r\n"); 
-+	  checkferror_output(stdout);
- 	  out_count = 0;
- 	}
-       else
-@@ -341,6 +344,7 @@ out_char (ch)
- 	}
-       putchar (ch);
-     }
-+  checkferror_output(stdout);
- }
- 
- /* Output routines: Write a character CH to the standard output.
-@@ -371,6 +375,7 @@ out_schar (ch)
- 	}
-       putchar (ch);
-     }
-+  checkferror_output(stdout);
- }
- 
- 
-@@ -657,6 +662,7 @@ limits()
- #ifdef OLD_EQ_OP
-   printf ("Old assignment operatiors are valid. (=-, =+, ...)\n");
- #endif 
-+  checkferror_output(stdout);
- }
- 
- /* bc_malloc will check the return value so all other places do not
-@@ -721,6 +727,7 @@ yyerror (str, va_alist)
-   fprintf (stderr,"%s %d: ",name,line_no);
-   vfprintf (stderr, str, args);
-   fprintf (stderr, "\n");
-+  checkferror_output(stderr);
-   had_error = TRUE;
-   va_end (args);
- }
-@@ -761,6 +768,7 @@ warn (mesg, va_alist)
-       fprintf (stderr,"%s %d: Error: ",name,line_no);
-       vfprintf (stderr, mesg, args);
-       fprintf (stderr, "\n");
-+      checkferror_output(stderr);
-       had_error = TRUE;
-     }
-   else
-@@ -773,6 +781,7 @@ warn (mesg, va_alist)
- 	fprintf (stderr,"%s %d: (Warning) ",name,line_no);
- 	vfprintf (stderr, mesg, args);
- 	fprintf (stderr, "\n");
-+	checkferror_output(stderr);
-       }
-   va_end (args);
- }
-@@ -807,6 +816,7 @@ rt_error (mesg, va_alist)
-   va_end (args);
-   
-   fprintf (stderr, "\n");
-+  checkferror_output(stderr);
-   runtime_error = TRUE;
- }
- 
-@@ -843,4 +853,5 @@ rt_warn (mesg, va_alist)
-   va_end (args);
- 
-   fprintf (stderr, "\n");
-+  checkferror_output(stderr);
- }
-diff --git a/dc/dc.c b/dc/dc.c
-index e03f094..0faf03a 100644
---- a/dc/dc.c
-+++ b/dc/dc.c
-@@ -61,6 +61,7 @@ static void
- bug_report_info DC_DECLVOID()
- {
- 	printf("Email bug reports to:  bug-dc at gnu.org .\n");
-+	checkferror_output(stdout);
- }
- 
- static void
-@@ -71,6 +72,7 @@ show_version DC_DECLVOID()
- This is free software; see the source for copying conditions.  There is NO\n\
- warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE,\n\
- to the extent permitted by law.\n", DC_COPYRIGHT);
-+	checkferror_output(stdout);
- }
- 
- /* your generic usage function */
-@@ -87,6 +89,7 @@ Usage: %s [OPTION] [file ...]\n\
- \n\
- ", progname);
- 	bug_report_info();
-+	checkferror_output(f);
- }
- 
- /* returns a pointer to one past the last occurance of c in s,
-diff --git a/dc/eval.c b/dc/eval.c
-index 4af7200..153d331 100644
---- a/dc/eval.c
-+++ b/dc/eval.c
-@@ -94,12 +94,15 @@ static int input_pushback;
- static int
- input_fil DC_DECLVOID()
- {
-+        int c;
- 	if (input_pushback != EOF){
--		int c = input_pushback;
-+		c = input_pushback;
- 		input_pushback = EOF;
- 		return c;
- 	}
--	return getc(input_fil_fp);
-+	c = getc(input_fil_fp);
-+	checkferror_input(input_fil_fp);
-+	return c;
- }
- 
- /* passed as an argument to dc_getnum */
-@@ -298,11 +301,13 @@ dc_func DC_DECLARG((c, peekc, negcmp))
- 				tmpint = dc_num2int(datum.v.number, DC_TOSS);
- 			if (2 <= tmpint  &&  tmpint <= DC_IBASE_MAX)
- 				dc_ibase = tmpint;
--			else
-+			else {
- 				fprintf(stderr,
- 						"%s: input base must be a number \
- between 2 and %d (inclusive)\n",
- 						progname, DC_IBASE_MAX);
-+				checkferror_output(stderr);
-+			}
- 		}
- 		break;
- 	case 'k':	/* set scale to value on top of stack */
-@@ -310,11 +315,12 @@ between 2 and %d (inclusive)\n",
- 			tmpint = -1;
- 			if (datum.dc_type == DC_NUMBER)
- 				tmpint = dc_num2int(datum.v.number, DC_TOSS);
--			if ( ! (tmpint >= 0) )
-+			if ( ! (tmpint >= 0) ) {
- 				fprintf(stderr,
- 						"%s: scale must be a nonnegative number\n",
- 						progname);
--			else
-+				checkferror_output(stderr);
-+			} else
- 				dc_scale = tmpint;
- 		}
- 		break;
-@@ -338,11 +344,12 @@ between 2 and %d (inclusive)\n",
- 			tmpint = 0;
- 			if (datum.dc_type == DC_NUMBER)
- 				tmpint = dc_num2int(datum.v.number, DC_TOSS);
--			if ( ! (tmpint > 1) )
-+			if ( ! (tmpint > 1) ) {
- 				fprintf(stderr,
- 						"%s: output base must be a number greater than 1\n",
- 						progname);
--			else
-+				checkferror_output(stderr);
-+			} else
- 				dc_obase = tmpint;
- 		}
- 		break;
-@@ -383,6 +390,7 @@ between 2 and %d (inclusive)\n",
- 				fprintf(stderr,
- 						"%s: square root of nonnumeric attempted\n",
- 						progname);
-+				checkferror_output(stderr);
- 			}else if (dc_sqrt(datum.v.number, dc_scale, &tmpnum) == DC_SUCCESS){
- 				dc_free_num(&datum.v.number);
- 				datum.v.number = tmpnum;
-@@ -444,6 +452,7 @@ between 2 and %d (inclusive)\n",
- 			fprintf(stderr,
- 					"%s: Q command requires a number >= 1\n",
- 					progname);
-+			checkferror_output(stderr);
- 		}
- 		break;
- #if 0
-@@ -489,11 +498,12 @@ between 2 and %d (inclusive)\n",
- 			if (datum.dc_type == DC_NUMBER)
- 				tmpint = dc_num2int(datum.v.number, DC_TOSS);
- 			if (dc_pop(&datum) == DC_SUCCESS){
--				if (tmpint < 0)
-+				if (tmpint < 0) {
- 					fprintf(stderr,
- 							"%s: array index must be a nonnegative integer\n",
- 							progname);
--				else
-+					checkferror_output(stderr);
-+				} else
- 					dc_array_set(peekc, tmpint, datum);
- 			}
- 		}
-@@ -505,17 +515,19 @@ between 2 and %d (inclusive)\n",
- 			tmpint = -1;
- 			if (datum.dc_type == DC_NUMBER)
- 				tmpint = dc_num2int(datum.v.number, DC_TOSS);
--			if (tmpint < 0)
-+			if (tmpint < 0) {
- 				fprintf(stderr,
- 						"%s: array index must be a nonnegative integer\n",
- 						progname);
--			else
-+				checkferror_output(stderr);
-+			} else
- 				dc_push(dc_array_get(peekc, tmpint));
- 		}
- 		return DC_EATONE;
- 
- 	default:	/* What did that user mean? */
- 		fprintf(stderr, "%s: ", progname);
-+		checkferror_output(stderr);
- 		dc_show_id(stdout, c, " unimplemented\n");
- 		break;
- 	}
-@@ -544,6 +556,7 @@ dc_evalstr DC_DECLARG((string))
- 		fprintf(stderr,
- 				"%s: eval called with non-string argument\n",
- 				progname);
-+		checkferror_output(stderr);
- 		return DC_OKAY;
- 	}
- 	interrupt_seen = 0;
-@@ -640,6 +653,7 @@ dc_evalstr DC_DECLARG((string))
- 				return DC_FAIL;
- 			}
- 			fprintf(stderr, "%s: unexpected EOS\n", progname);
-+			checkferror_output(stderr);
- 			return DC_OKAY;
- 		}
- 	}
-@@ -665,6 +679,7 @@ dc_evalfile DC_DECLARG((fp))
- 	stdin_lookahead = EOF;
- 	for (c=getc(fp); c!=EOF; c=peekc){
- 		peekc = getc(fp);
-+		checkferror_input(stdin);
- 		/*
- 		 * The following if() is the only place where ``stdin_lookahead''
- 		 * might be set to other than EOF:
-@@ -716,6 +731,7 @@ dc_evalfile DC_DECLARG((fp))
- 							return DC_SUCCESS;
- 						fprintf(stderr, "%s: Q command argument exceeded \
- string execution depth\n", progname);
-+						checkferror_output(stderr);
- 					}
- 				}else{
- 					dc_garbage("at top of stack", -1);
-@@ -728,8 +744,11 @@ string execution depth\n", progname);
- 			fprintf(stderr,
- 					"%s: Q command argument exceeded string execution depth\n",
- 					progname);
--			if (stdin_lookahead != peekc  &&  fp == stdin)
-+			checkferror_output(stderr);
-+			if (stdin_lookahead != peekc  &&  fp == stdin) {
- 				peekc = getc(fp);
-+				checkferror_input(stdin);
-+			}
- 			break;
- 
- 		case DC_INT:
-@@ -771,6 +790,7 @@ string execution depth\n", progname);
- 			if (ferror(fp))
- 				goto error_fail;
- 			fprintf(stderr, "%s: unexpected EOF\n", progname);
-+			checkferror_output(stderr);
- 			return DC_FAIL;
- 		}
- 	}
-diff --git a/dc/misc.c b/dc/misc.c
-index f2388b0..1be56fe 100644
---- a/dc/misc.c
-+++ b/dc/misc.c
-@@ -91,6 +91,7 @@ dc_show_id DC_DECLARG((fp, id, suffix))
- 		fprintf(fp, "'%c' (%#o)%s", (unsigned int) id, id, suffix);
- 	else
- 		fprintf(fp, "%#o%s", (unsigned int) id, suffix);
-+	checkferror_output(fp);
- }
- 
- \f
-diff --git a/dc/numeric.c b/dc/numeric.c
-index 8e5e70f..c875eba 100644
---- a/dc/numeric.c
-+++ b/dc/numeric.c
-@@ -134,6 +134,7 @@ dc_div DC_DECLARG((a, b, kscale, result))
- 	bc_init_num(CastNumPtr(result));
- 	if (bc_divide(CastNum(a), CastNum(b), CastNumPtr(result), kscale)){
- 		fprintf(stderr, "%s: divide by zero\n", progname);
-+		checkferror_output(stderr);
- 		return DC_DOMAIN_ERROR;
- 	}
- 	return DC_SUCCESS;
-@@ -156,6 +157,7 @@ dc_divrem DC_DECLARG((a, b, kscale, quotient, remainder))
- 	if (bc_divmod(CastNum(a), CastNum(b),
- 						CastNumPtr(quotient), CastNumPtr(remainder), kscale)){
- 		fprintf(stderr, "%s: divide by zero\n", progname);
-+		checkferror_output(stderr);
- 		return DC_DOMAIN_ERROR;
- 	}
- 	return DC_SUCCESS;
-@@ -174,6 +176,7 @@ dc_rem DC_DECLARG((a, b, kscale, result))
- 	bc_init_num(CastNumPtr(result));
- 	if (bc_modulo(CastNum(a), CastNum(b), CastNumPtr(result), kscale)){
- 		fprintf(stderr, "%s: remainder by zero\n", progname);
-+		checkferror_output(stderr);
- 		return DC_DOMAIN_ERROR;
- 	}
- 	return DC_SUCCESS;
-@@ -226,6 +229,7 @@ dc_sqrt DC_DECLARG((value, kscale, result))
- 	tmp = bc_copy_num(CastNum(value));
- 	if (!bc_sqrt(&tmp, kscale)){
- 		fprintf(stderr, "%s: square root of negative number\n", progname);
-+		checkferror_output(stderr);
- 		bc_free_num(&tmp);
- 		return DC_DOMAIN_ERROR;
- 	}
-@@ -429,8 +433,10 @@ dc_out_num DC_DECLARG((value, obase, newline_p, discard_p))
- {
- 	out_char('\0'); /* clear the column counter */
- 	bc_out_num(CastNum(value), obase, out_char, 0);
--	if (newline_p == DC_WITHNL)
-+	if (newline_p == DC_WITHNL) {
- 		putchar ('\n');
-+		checkferror_output(stdout);
-+	}
- 	if (discard_p == DC_TOSS)
- 		dc_free_num(&value);
- }
-@@ -475,6 +481,7 @@ dc_dump_num DC_DECLARG((dcvalue, discard_p))
- 
- 	for (cur=top_of_stack; cur; cur=next) {
- 		putchar(cur->digit);
-+		checkferror_output(stdout);
- 		next = cur->link;
- 		free(cur);
- 	}
-@@ -592,6 +599,7 @@ out_char (ch)
- 			out_col = 1;
- 		}
- 		putchar(ch);
-+		checkferror_output(stderr);
- 	}
- }
- 
-@@ -631,6 +639,7 @@ rt_error (mesg, va_alist)
- 	vfprintf (stderr, mesg, args);
- 	va_end (args);
- 	fprintf (stderr, "\n");
-+	checkferror_output(stderr);
- }
- 
- 
-@@ -664,6 +673,7 @@ rt_warn (mesg, va_alist)
- 	vfprintf (stderr, mesg, args);
- 	va_end (args);
- 	fprintf (stderr, "\n");
-+	checkferror_output(stderr);
- }
- 
- \f
-diff --git a/dc/stack.c b/dc/stack.c
-index 0730e9c..5db3975 100644
---- a/dc/stack.c
-+++ b/dc/stack.c
-@@ -38,7 +38,10 @@
- #include "dc-regdef.h"
- 
- /* an oft-used error message: */
--#define Empty_Stack	fprintf(stderr, "%s: stack empty\n", progname)
-+#define Empty_Stack do{					\
-+    fprintf(stderr, "%s: stack empty\n", progname);	\
-+    checkferror_output(stderr);				\
-+  }while(0)
- 
- 
- /* simple linked-list implementation suffices: */
-@@ -94,6 +97,7 @@ dc_binop DC_DECLARG((op, kscale))
- 	if (dc_stack->value.dc_type!=DC_NUMBER
- 			|| dc_stack->link->value.dc_type!=DC_NUMBER){
- 		fprintf(stderr, "%s: non-numeric value\n", progname);
-+		checkferror_output(stderr);
- 		return;
- 	}
- 	(void)dc_pop(&b);
-@@ -134,6 +138,7 @@ dc_binop2 DC_DECLARG((op, kscale))
- 	if (dc_stack->value.dc_type!=DC_NUMBER
- 			|| dc_stack->link->value.dc_type!=DC_NUMBER){
- 		fprintf(stderr, "%s: non-numeric value\n", progname);
-+		checkferror_output(stderr);
- 		return;
- 	}
- 	(void)dc_pop(&b);
-@@ -172,6 +177,7 @@ dc_cmpop DC_DECLVOID()
- 	if (dc_stack->value.dc_type!=DC_NUMBER
- 			|| dc_stack->link->value.dc_type!=DC_NUMBER){
- 		fprintf(stderr, "%s: non-numeric value\n", progname);
-+		checkferror_output(stderr);
- 		return 0;
- 	}
- 	(void)dc_pop(&b);
-@@ -209,6 +215,7 @@ dc_triop DC_DECLARG((op, kscale))
- 			|| dc_stack->link->value.dc_type!=DC_NUMBER
- 			|| dc_stack->link->link->value.dc_type!=DC_NUMBER){
- 		fprintf(stderr, "%s: non-numeric value\n", progname);
-+		checkferror_output(stderr);
- 		return;
- 	}
- 	(void)dc_pop(&c);
-@@ -327,6 +334,7 @@ dc_register_get DC_DECLARG((regid, result))
- 	r = dc_register[regid];
- 	if (r==NULL || r->value.dc_type==DC_UNINITIALIZED){
- 		fprintf(stderr, "%s: register ", progname);
-+		checkferror_output(stderr);
- 		dc_show_id(stderr, regid, " is empty\n");
- 		return DC_FAIL;
- 	}
-@@ -401,6 +409,7 @@ dc_register_pop DC_DECLARG((stackid, result))
- 	r = dc_register[stackid];
- 	if (r == NULL){
- 		fprintf(stderr, "%s: stack register ", progname);
-+		checkferror_output(stderr);
- 		dc_show_id(stderr, stackid, " is empty\n");
- 		return DC_FAIL;
- 	}
-diff --git a/dc/string.c b/dc/string.c
-index ff1e7f1..e24092d 100644
---- a/dc/string.c
-+++ b/dc/string.c
-@@ -101,6 +101,7 @@ dc_out_str DC_DECLARG((value, newline, discard_flag))
- 	fwrite(value->s_ptr, value->s_len, sizeof *value->s_ptr, stdout);
- 	if (newline == DC_WITHNL)
- 		putchar('\n');
-+	checkferror_output(stdout);
- 	if (discard_flag == DC_TOSS)
- 		dc_free_str(&value);
- }
-@@ -176,6 +177,7 @@ dc_readstring DC_DECLARG((fp, ldelim, rdelim))
- 		}
- 		*p++ = c;
- 	}
-+	checkferror_input(fp);
- 	return dc_makestring(line_buf, (size_t)(p-line_buf));
- }
- 
-diff --git a/h/number.h b/h/number.h
-index 9b034b6..3a00a92 100644
---- a/h/number.h
-+++ b/h/number.h
-@@ -150,4 +150,7 @@ _PROTOTYPE(int bc_sqrt, (bc_num *num, int scale));
- _PROTOTYPE(void bc_out_num, (bc_num num, int o_base, void (* out_char)(int),
- 			     int leading_zero));
- 
-+_PROTOTYPE(void checkferror_input, (FILE*));
-+_PROTOTYPE(void checkferror_output, (FILE*));
-+
- #endif
-diff --git a/lib/number.c b/lib/number.c
-index e211840..4d3ce46 100644
---- a/lib/number.c
-+++ b/lib/number.c
-@@ -1776,6 +1776,7 @@ static void
- out_char (int c)
- {
-   putchar(c);
-+  checkferror_output(stdout);
- }
- 
- 
-@@ -1785,6 +1786,7 @@ pn (num)
- {
-   bc_out_num (num, 10, out_char, 0);
-   out_char ('\n');
-+  checkferror_output(stdout);
- }
- 
- 
-@@ -1799,6 +1801,28 @@ pv (name, num, len)
-   printf ("%s=", name);
-   for (i=0; i<len; i++) printf ("%c",BCD_CHAR(num[i]));
-   printf ("\n");
-+  checkferror_output(stdout);
- }
- 
- #endif
-+\f
-+/* check ferror() status and if so die */
-+void
-+checkferror_input (fp)
-+	FILE *fp;
-+{
-+	if (ferror(fp)) {
-+		perror("dc: could not read input file");
-+		exit(EXIT_FAILURE);
-+	}
-+}
-+
-+void
-+checkferror_output (fp)
-+	FILE *fp;
-+{
-+	if (ferror(fp)) {
-+		perror("dc: could not write output file");
-+		exit(EXIT_FAILURE);
-+	}
-+}
diff --git a/package/bc/bc.hash b/package/bc/bc.hash
index 5f1ed63..61beb49 100644
--- a/package/bc/bc.hash
+++ b/package/bc/bc.hash
@@ -1,2 +1,2 @@
 # Locally calculated
-sha256 7ee4abbcfac03d8a6e1a8a3440558a3d239d6b858585063e745c760957725ecc  bc-1.06.95.tar.bz2
+sha256 62adfca89b0a1c0164c2cdca59ca210c1d44c3ffc46daf9931cf4942664cb02a  bc-1.07.1.tar.gz
diff --git a/package/bc/bc.mk b/package/bc/bc.mk
index 4596192..b5853b1 100644
--- a/package/bc/bc.mk
+++ b/package/bc/bc.mk
@@ -4,17 +4,34 @@
 #
 ################################################################################
 
-BC_VERSION = 1.06.95
-BC_SOURCE = bc-$(BC_VERSION).tar.bz2
-BC_SITE = http://alpha.gnu.org/gnu/bc
-BC_DEPENDENCIES = host-flex
+BC_VERSION = 1.07.1
+BC_SITE = $(BR2_GNU_MIRROR)/bc
+# host-bc needed to bootstrap libmath.h at build time
+# host-ed needed by the fix-libmath_h script at build time
+BC_DEPENDENCIES = host-bc host-ed
 BC_LICENSE = GPL-2.0+, LGPL-2.1+
 BC_LICENSE_FILES = COPYING COPYING.LIB
+# host-ed needed by the fix-libmath_h script@build time
+HOST_BC_DEPENDENCIES = host-ed
 
 # Build after busybox so target ends up with bc's "dc" version
 ifeq ($(BR2_PACKAGE_BUSYBOX),y)
 BC_DEPENDENCIES += busybox
 endif
 
+# A stripped-down version of bc (fbc) is built for bootstrapping purposes. Then
+# the bc build system tries to run it in order to generate some header files,
+# but that breaks cross-compilation because we cannot run in the host machine an
+# fbc that has been built for the target architecture. We tweak the Makefiles in
+# order to run the bc that was built for the host. As long as the host bc and
+# the target one have the same version the result should be fine. And also, note
+# we don't need to run the host fbc (which doesn't exist by the way, because
+# it was deleted after its use by the host-bc Makefile) and we can just run the
+# full bc program (remember the fbc was just a tripped-down version of bc).
+define BC_USE_HOST_FBC
+	$(SED) "s:\./fbc -c:$(HOST_DIR)/usr/bin/bc -c:" $(@D)/bc/Makefile.in
+endef
+BC_POST_PATCH_HOOKS += BC_USE_HOST_FBC
+
 $(eval $(autotools-package))
 $(eval $(host-autotools-package))
-- 
2.10.2

^ permalink raw reply related	[flat|nested] 5+ messages in thread

* [Buildroot] [PATCH next 3/3] bc: bump version to 1.07.1
  2017-05-12 14:28 ` [Buildroot] [PATCH next 3/3] bc: bump version to 1.07.1 Vicente Olivert Riera
@ 2017-07-03 16:47   ` Romain Naour
  0 siblings, 0 replies; 5+ messages in thread
From: Romain Naour @ 2017-07-03 16:47 UTC (permalink / raw)
  To: buildroot

Hi Vincente,

Le 12/05/2017 ? 16:28, Vicente Olivert Riera a ?crit :
> - Remove 01 and 02 patches as they are not needed anymore.

Patch 01 is upstream but not patch 02.
Why it's not needed anymore ?
Maybe add a previous patch to remove it before bumping bc ?

> - Tweak 03 patch for the new version and rename it to 0001.
> - host-flex dependency is not needed anymore.
> - Added host-bc dependency: needed to bootstrap libmath.h at build time.
> - Added host-ed dependency: used by fix-libmath_h script at build time.

bc is in Buildroot mandatory dependency, so why not using bc from the host ?
Have you tried that ?
With that you can remove the dependency on host-ed and host-bc.

> - Swith site to GNU mirror.
> 
> Signed-off-by: Vicente Olivert Riera <Vincent.Riera@imgtec.com>
> ---
>  ...fo.patch => 0001-use_appropiate_makeinfo.patch} |  13 +-
>  package/bc/01_array_initialize.patch               |  20 -
>  package/bc/02_notice_read_write_errors.patch       | 708 ---------------------
>  package/bc/bc.hash                                 |   2 +-
>  package/bc/bc.mk                                   |  25 +-
>  5 files changed, 30 insertions(+), 738 deletions(-)
>  rename package/bc/{03_use_appropiate_makeinfo.patch => 0001-use_appropiate_makeinfo.patch} (53%)
>  delete mode 100644 package/bc/01_array_initialize.patch
>  delete mode 100644 package/bc/02_notice_read_write_errors.patch
> 

[...]

> diff --git a/package/bc/bc.mk b/package/bc/bc.mk
> index 4596192..b5853b1 100644
> --- a/package/bc/bc.mk
> +++ b/package/bc/bc.mk
> @@ -4,17 +4,34 @@
>  #
>  ################################################################################
>  
> -BC_VERSION = 1.06.95
> -BC_SOURCE = bc-$(BC_VERSION).tar.bz2
> -BC_SITE = http://alpha.gnu.org/gnu/bc
> -BC_DEPENDENCIES = host-flex
> +BC_VERSION = 1.07.1
> +BC_SITE = $(BR2_GNU_MIRROR)/bc
> +# host-bc needed to bootstrap libmath.h at build time
> +# host-ed needed by the fix-libmath_h script at build time
> +BC_DEPENDENCIES = host-bc host-ed
>  BC_LICENSE = GPL-2.0+, LGPL-2.1+
>  BC_LICENSE_FILES = COPYING COPYING.LIB
> +# host-ed needed by the fix-libmath_h script at build time
> +HOST_BC_DEPENDENCIES = host-ed
>  
>  # Build after busybox so target ends up with bc's "dc" version
>  ifeq ($(BR2_PACKAGE_BUSYBOX),y)
>  BC_DEPENDENCIES += busybox
>  endif
>  
> +# A stripped-down version of bc (fbc) is built for bootstrapping purposes. Then
> +# the bc build system tries to run it in order to generate some header files,
> +# but that breaks cross-compilation because we cannot run in the host machine an
> +# fbc that has been built for the target architecture. We tweak the Makefiles in
> +# order to run the bc that was built for the host. As long as the host bc and
> +# the target one have the same version the result should be fine.

Is there any output format changes between bc version ?

Best regards,
Romain

 And also, note
> +# we don't need to run the host fbc (which doesn't exist by the way, because
> +# it was deleted after its use by the host-bc Makefile) and we can just run the
> +# full bc program (remember the fbc was just a tripped-down version of bc).
> +define BC_USE_HOST_FBC
> +	$(SED) "s:\./fbc -c:$(HOST_DIR)/usr/bin/bc -c:" $(@D)/bc/Makefile.in
> +endef
> +BC_POST_PATCH_HOOKS += BC_USE_HOST_FBC
> +
>  $(eval $(autotools-package))
>  $(eval $(host-autotools-package))
> 

^ permalink raw reply	[flat|nested] 5+ messages in thread

* [Buildroot] [PATCH next 1/3] ed: add host package
  2017-05-12 14:28 [Buildroot] [PATCH next 1/3] ed: add host package Vicente Olivert Riera
  2017-05-12 14:28 ` [Buildroot] [PATCH next 2/3] bc: " Vicente Olivert Riera
  2017-05-12 14:28 ` [Buildroot] [PATCH next 3/3] bc: bump version to 1.07.1 Vicente Olivert Riera
@ 2017-07-16 14:05 ` Thomas Petazzoni
  2 siblings, 0 replies; 5+ messages in thread
From: Thomas Petazzoni @ 2017-07-16 14:05 UTC (permalink / raw)
  To: buildroot

Hello,

On Fri, 12 May 2017 15:28:46 +0100, Vicente Olivert Riera wrote:
> This will be necessary for updating bc's version in a subsequent patch.
> 
> Signed-off-by: Vicente Olivert Riera <Vincent.Riera@imgtec.com>
> ---
>  package/ed/ed.mk | 17 +++++++++++++++++
>  1 file changed, 17 insertions(+)

I had a look at all of this, and my feeling is the same as the
OpenEmbedded folks: this really sucks. Why on earth do they need "ed"?
Why don't they fix their build system to build fbc for the host?

See https://patchwork.openembedded.org/patch/140001/ for the feedback
from OpenEmbedded people. I really don't think there's a compelling
reason to upgrade to 1.07.1 for now, so let's keep 1.06 and avoid this
mess.

I've mailed the submitter of the OE patch, who said he would contact
the upstream GNU bc maintainer, in order to see if he got some
feedback. You are in Cc of this e-mail.

In addition, there was an issue in your patch: GNU bc has moved to GNU
GPLv3+ since this 1.07.1 release, so the licensing details should be
fixed as well.

Best regards,

Thomas
-- 
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2017-07-16 14:05 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2017-05-12 14:28 [Buildroot] [PATCH next 1/3] ed: add host package Vicente Olivert Riera
2017-05-12 14:28 ` [Buildroot] [PATCH next 2/3] bc: " Vicente Olivert Riera
2017-05-12 14:28 ` [Buildroot] [PATCH next 3/3] bc: bump version to 1.07.1 Vicente Olivert Riera
2017-07-03 16:47   ` Romain Naour
2017-07-16 14:05 ` [Buildroot] [PATCH next 1/3] ed: add host package Thomas Petazzoni

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox