ソースを参照

fix uclibc compile,patch from alpinelinux

Waldemar Brodkorb 10 年 前
コミット
02ee9966d6
2 ファイル変更109 行追加1 行削除
  1. 1 1
      package/git/Makefile
  2. 108 0
      package/git/patches/git-uclibc.patch

+ 1 - 1
package/git/Makefile

@@ -5,7 +5,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=		git
 PKG_VERSION:=		1.8.4
-PKG_RELEASE:=		1
+PKG_RELEASE:=		2
 PKG_MD5SUM:=		355768a1c70d0cb4fedf4b598ac1375b
 PKG_DESCR:=		fast version control system
 PKG_SECTION:=		scm

+ 108 - 0
package/git/patches/git-uclibc.patch

@@ -0,0 +1,108 @@
+From 59c678a754227ca1fb44541cdfe39bbe052be195 Mon Sep 17 00:00:00 2001
+From: Natanael Copa <ncopa@alpinelinux.org>
+Date: Tue, 27 Aug 2013 07:57:12 +0000
+Subject: [PATCH] config: add _cb suffix to callback functions
+
+Commit 4d8dd1494e9f3af2e9738edaca40ada096f7bf10 introduced a build
+regression on uClibc which defines fgetc as macro. To work around that
+we add a _cb suffix to the callback functions.
+
+Signed-off-by: Natanael Copa <ncopa@alpinelinux.org>
+---
+ config.c | 32 ++++++++++++++++----------------
+ 1 file changed, 16 insertions(+), 16 deletions(-)
+
+diff --git a/config.c b/config.c
+index e13a7b6..aa80078 100644
+--- a/config.c
++++ b/config.c
+@@ -27,9 +27,9 @@ struct config_source {
+ 	struct strbuf value;
+ 	struct strbuf var;
+ 
+-	int (*fgetc)(struct config_source *c);
+-	int (*ungetc)(int c, struct config_source *conf);
+-	long (*ftell)(struct config_source *c);
++	int (*fgetc_cb)(struct config_source *c);
++	int (*ungetc_cb)(int c, struct config_source *conf);
++	long (*ftell_cb)(struct config_source *c);
+ };
+ 
+ static struct config_source *cf;
+@@ -217,13 +217,13 @@ int git_config_from_parameters(config_fn_t fn, void *data)
+ 
+ static int get_next_char(void)
+ {
+-	int c = cf->fgetc(cf);
++	int c = cf->fgetc_cb(cf);
+ 
+ 	if (c == '\r') {
+ 		/* DOS like systems */
+-		c = cf->fgetc(cf);
++		c = cf->fgetc_cb(cf);
+ 		if (c != '\n') {
+-			cf->ungetc(c, cf);
++			cf->ungetc_cb(c, cf);
+ 			c = '\r';
+ 		}
+ 	}
+@@ -992,9 +992,9 @@ int git_config_from_file(config_fn_t fn, const char *filename, void *data)
+ 		top.u.file = f;
+ 		top.name = filename;
+ 		top.die_on_error = 1;
+-		top.fgetc = config_file_fgetc;
+-		top.ungetc = config_file_ungetc;
+-		top.ftell = config_file_ftell;
++		top.fgetc_cb = config_file_fgetc;
++		top.ungetc_cb = config_file_ungetc;
++		top.ftell_cb = config_file_ftell;
+ 
+ 		ret = do_config_from(&top, fn, data);
+ 
+@@ -1013,9 +1013,9 @@ int git_config_from_buf(config_fn_t fn, const char *name, const char *buf,
+ 	top.u.buf.pos = 0;
+ 	top.name = name;
+ 	top.die_on_error = 0;
+-	top.fgetc = config_buf_fgetc;
+-	top.ungetc = config_buf_ungetc;
+-	top.ftell = config_buf_ftell;
++	top.fgetc_cb = config_buf_fgetc;
++	top.ungetc_cb = config_buf_ungetc;
++	top.ftell_cb = config_buf_ftell;
+ 
+ 	return do_config_from(&top, fn, data);
+ }
+@@ -1196,7 +1196,7 @@ static int store_aux(const char *key, const char *value, void *cb)
+ 				return 1;
+ 			}
+ 
+-			store.offset[store.seen] = cf->ftell(cf);
++			store.offset[store.seen] = cf->ftell_cb(cf);
+ 			store.seen++;
+ 		}
+ 		break;
+@@ -1223,19 +1223,19 @@ static int store_aux(const char *key, const char *value, void *cb)
+ 		 * Do not increment matches: this is no match, but we
+ 		 * just made sure we are in the desired section.
+ 		 */
+-		store.offset[store.seen] = cf->ftell(cf);
++		store.offset[store.seen] = cf->ftell_cb(cf);
+ 		/* fallthru */
+ 	case SECTION_END_SEEN:
+ 	case START:
+ 		if (matches(key, value)) {
+-			store.offset[store.seen] = cf->ftell(cf);
++			store.offset[store.seen] = cf->ftell_cb(cf);
+ 			store.state = KEY_SEEN;
+ 			store.seen++;
+ 		} else {
+ 			if (strrchr(key, '.') - key == store.baselen &&
+ 			      !strncmp(key, store.key, store.baselen)) {
+ 					store.state = SECTION_SEEN;
+-					store.offset[store.seen] = cf->ftell(cf);
++					store.offset[store.seen] = cf->ftell_cb(cf);
+ 			}
+ 		}
+ 	}
+-- 
+1.8.3.4