Browse Source

fix musl compile, patch from sabotage linux

Waldemar Brodkorb 10 years ago
parent
commit
014f5aac68

+ 2 - 1
package/lvm/Makefile

@@ -5,7 +5,7 @@ include ${TOPDIR}/rules.mk
 
 PKG_NAME:=		lvm
 PKG_VERSION:=		2.02.106
-PKG_RELEASE:=		2
+PKG_RELEASE:=		3
 PKG_MD5SUM:=		77f84279fb649b3dc4edad1c6d1a1b0e
 PKG_DESCR:=		logical volume management
 PKG_SECTION:=		fs
@@ -39,6 +39,7 @@ CONFIGURE_ARGS+=	--with-user="" --with-group="" \
 			--with-optimisation="" \
 			--disable-testing \
 			--with-lvm1=none
+CONFIGURE_ENV+=		ac_cv_flag_HAVE_PIE=no
 
 lvm-install:
 	${INSTALL_DIR} ${IDIR_LVM}/usr/sbin

+ 74 - 0
package/lvm/patches/patch-lib_commands_toolcontext_c

@@ -0,0 +1,74 @@
+--- LVM2.2.02.106.orig/lib/commands/toolcontext.c	2014-04-10 17:38:44.000000000 +0200
++++ LVM2.2.02.106/lib/commands/toolcontext.c	2014-05-29 17:55:05.101305501 +0200
+@@ -1334,6 +1334,8 @@ struct cmd_context *create_toolcontext(u
+ {
+ 	struct cmd_context *cmd;
+ 	FILE *new_stream;
++	FILE *stdin_stream = stdin;
++	FILE *stdout_stream = stdout;
+ 	int flags;
+ 
+ #ifdef M_MMAP_MAX
+@@ -1383,10 +1385,10 @@ struct cmd_context *create_toolcontext(u
+ 		if (is_valid_fd(STDIN_FILENO) &&
+ 		    ((flags = fcntl(STDIN_FILENO, F_GETFL)) > 0) &&
+ 		    (flags & O_ACCMODE) != O_WRONLY) {
+-			if (!_reopen_stream(stdin, STDIN_FILENO, "r", "stdin", &new_stream))
++			if (!_reopen_stream(stdin_stream, STDIN_FILENO, "r", "stdin", &new_stream))
+ 				goto_out;
+-			stdin = new_stream;
+-			if (setvbuf(stdin, cmd->linebuffer, _IOLBF, linebuffer_size)) {
++			stdin_stream = new_stream;
++			if (setvbuf(stdin_stream, cmd->linebuffer, _IOLBF, linebuffer_size)) {
+ 				log_sys_error("setvbuf", "");
+ 				goto out;
+ 			}
+@@ -1395,10 +1397,10 @@ struct cmd_context *create_toolcontext(u
+ 		if (is_valid_fd(STDOUT_FILENO) &&
+ 		    ((flags = fcntl(STDOUT_FILENO, F_GETFL)) > 0) &&
+ 		    (flags & O_ACCMODE) != O_RDONLY) {
+-			if (!_reopen_stream(stdout, STDOUT_FILENO, "w", "stdout", &new_stream))
++			if (!_reopen_stream(stdout_stream, STDOUT_FILENO, "w", "stdout", &new_stream))
+ 				goto_out;
+-			stdout = new_stream;
+-			if (setvbuf(stdout, cmd->linebuffer + linebuffer_size,
++			stdout_stream = new_stream;
++			if (setvbuf(stdout_stream, cmd->linebuffer + linebuffer_size,
+ 				     _IOLBF, linebuffer_size)) {
+ 				log_sys_error("setvbuf", "");
+ 				goto out;
+@@ -1681,6 +1683,8 @@ void destroy_toolcontext(struct cmd_cont
+ {
+ 	struct dm_config_tree *cft_cmdline;
+ 	FILE *new_stream;
++	FILE *stdin_stream = stdin;
++	FILE *stdout_stream = stdout;
+ 	int flags;
+ 
+ 	if (cmd->dump_filter && cmd->filter && cmd->filter->dump &&
+@@ -1717,9 +1721,9 @@ void destroy_toolcontext(struct cmd_cont
+ 		if (is_valid_fd(STDIN_FILENO) &&
+ 		    ((flags = fcntl(STDIN_FILENO, F_GETFL)) > 0) &&
+ 		    (flags & O_ACCMODE) != O_WRONLY) {
+-			if (_reopen_stream(stdin, STDIN_FILENO, "r", "stdin", &new_stream)) {
+-				stdin = new_stream;
+-				setlinebuf(stdin);
++			if (_reopen_stream(stdin_stream, STDIN_FILENO, "r", "stdin", &new_stream)) {
++				stdin_stream = new_stream;
++				setlinebuf(stdin_stream);
+ 			} else
+ 				cmd->linebuffer = NULL;	/* Leave buffer in place (deliberate leak) */
+ 		}
+@@ -1727,9 +1731,9 @@ void destroy_toolcontext(struct cmd_cont
+ 		if (is_valid_fd(STDOUT_FILENO) &&
+ 		    ((flags = fcntl(STDOUT_FILENO, F_GETFL)) > 0) &&
+ 		    (flags & O_ACCMODE) != O_RDONLY) {
+-			if (_reopen_stream(stdout, STDOUT_FILENO, "w", "stdout", &new_stream)) {
+-				stdout = new_stream;
+-				setlinebuf(stdout);
++			if (_reopen_stream(stdout_stream, STDOUT_FILENO, "w", "stdout", &new_stream)) {
++				stdout_stream = new_stream;
++				setlinebuf(stdout_stream);
+ 			} else
+ 				cmd->linebuffer = NULL;	/* Leave buffer in place (deliberate leak) */
+ 		}

+ 34 - 0
package/lvm/patches/patch-tools_lvmcmdline_c

@@ -0,0 +1,34 @@
+--- LVM2.2.02.106.orig/tools/lvmcmdline.c	2014-04-10 17:38:46.000000000 +0200
++++ LVM2.2.02.106/tools/lvmcmdline.c	2014-05-29 16:57:14.221581766 +0200
+@@ -1252,9 +1252,12 @@ int lvm_split(char *str, int *argc, char
+ static int _check_standard_fds(void)
+ {
+ 	int err = is_valid_fd(STDERR_FILENO);
++	FILE *stdin_stream = stdin;
++	FILE *stdout_stream = stdout;
++	FILE *stderr_stream = stderr;
+ 
+ 	if (!is_valid_fd(STDIN_FILENO) &&
+-	    !(stdin = fopen(_PATH_DEVNULL, "r"))) {
++	    !(stdin_stream = fopen(_PATH_DEVNULL, "r"))) {
+ 		if (err)
+ 			perror("stdin stream open");
+ 		else
+@@ -1264,7 +1267,7 @@ static int _check_standard_fds(void)
+ 	}
+ 
+ 	if (!is_valid_fd(STDOUT_FILENO) &&
+-	    !(stdout = fopen(_PATH_DEVNULL, "w"))) {
++	    !(stdout_stream = fopen(_PATH_DEVNULL, "w"))) {
+ 		if (err)
+ 			perror("stdout stream open");
+ 		/* else no stdout */
+@@ -1272,7 +1275,7 @@ static int _check_standard_fds(void)
+ 	}
+ 
+ 	if (!is_valid_fd(STDERR_FILENO) &&
+-	    !(stderr = fopen(_PATH_DEVNULL, "w"))) {
++	    !(stderr_stream = fopen(_PATH_DEVNULL, "w"))) {
+ 		printf("stderr stream open: %s\n",
+ 		       strerror(errno));
+ 		return 0;