mirror of
				git://git.openwrt.org/openwrt/openwrt.git
				synced 2025-10-31 14:04:26 -04:00 
			
		
		
		
	Other changes: - Project moved to sourceware.org - musl patch where cleaned up and submitted upstream - TEMP_FAILURE_RETRY macro fixed and submitted upstream Signed-off-by: Luiz Angelo Daros de Luca <luizluca@gmail.com> [Jo-Philipp Wich: add missing .patch extension to 007-fix_TEMP_FAILURE_RETRY] Signed-off-by: Jo-Philipp Wich <jo@mein.io>
		
			
				
	
	
		
			588 lines
		
	
	
		
			12 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
			
		
		
	
	
			588 lines
		
	
	
		
			12 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
| https://sourceware.org/bugzilla/show_bug.cgi?id=21002
 | |
| 
 | |
| --- a/lib/system.h
 | |
| +++ b/lib/system.h
 | |
| @@ -140,6 +140,19 @@ pread_retry (int fd, void *buf, size_t l
 | |
|    return recvd;
 | |
|  }
 | |
|  
 | |
| +#ifdef HAVE_ERROR_H
 | |
| +#include "error.h"
 | |
| +#else
 | |
| +#include "err.h"
 | |
| +#define error(status, errno, ...) \
 | |
| +	fflush(stdout); \
 | |
| +	warn(__VA_ARGS__); \
 | |
| +	if (status) exit(status)
 | |
| +#endif
 | |
| +
 | |
| +#ifndef __GLIBC__
 | |
| +#define canonicalize_file_name(name) realpath(name,NULL)
 | |
| +#endif
 | |
|  
 | |
|  /* We need define two variables, argp_program_version_hook and
 | |
|     argp_program_bug_address, in all programs.  argp.h declares these
 | |
| --- a/lib/color.c
 | |
| +++ b/lib/color.c
 | |
| @@ -32,12 +32,12 @@
 | |
|  #endif
 | |
|  
 | |
|  #include <argp.h>
 | |
| -#include <error.h>
 | |
|  #include <libintl.h>
 | |
|  #include <stdlib.h>
 | |
|  #include <string.h>
 | |
|  #include <unistd.h>
 | |
|  #include "libeu.h"
 | |
| +#include "system.h"
 | |
|  
 | |
|  
 | |
|  /* Prototype for option handler.  */
 | |
| --- a/lib/xmalloc.c
 | |
| +++ b/lib/xmalloc.c
 | |
| @@ -30,7 +30,6 @@
 | |
|  # include <config.h>
 | |
|  #endif
 | |
|  
 | |
| -#include <error.h>
 | |
|  #include <libintl.h>
 | |
|  #include <stddef.h>
 | |
|  #include <stdlib.h>
 | |
| --- a/src/addr2line.c
 | |
| +++ b/src/addr2line.c
 | |
| @@ -23,7 +23,6 @@
 | |
|  #include <argp.h>
 | |
|  #include <assert.h>
 | |
|  #include <errno.h>
 | |
| -#include <error.h>
 | |
|  #include <fcntl.h>
 | |
|  #include <inttypes.h>
 | |
|  #include <libdwfl.h>
 | |
| --- a/src/ar.c
 | |
| +++ b/src/ar.c
 | |
| @@ -22,7 +22,6 @@
 | |
|  
 | |
|  #include <argp.h>
 | |
|  #include <assert.h>
 | |
| -#include <error.h>
 | |
|  #include <fcntl.h>
 | |
|  #include <gelf.h>
 | |
|  #include <libintl.h>
 | |
| --- a/src/arlib2.c
 | |
| +++ b/src/arlib2.c
 | |
| @@ -20,7 +20,6 @@
 | |
|  # include <config.h>
 | |
|  #endif
 | |
|  
 | |
| -#include <error.h>
 | |
|  #include <libintl.h>
 | |
|  #include <limits.h>
 | |
|  #include <string.h>
 | |
| --- a/src/arlib.c
 | |
| +++ b/src/arlib.c
 | |
| @@ -21,7 +21,6 @@
 | |
|  #endif
 | |
|  
 | |
|  #include <assert.h>
 | |
| -#include <error.h>
 | |
|  #include <gelf.h>
 | |
|  #include <inttypes.h>
 | |
|  #include <libintl.h>
 | |
| --- a/src/elfcmp.c
 | |
| +++ b/src/elfcmp.c
 | |
| @@ -23,7 +23,6 @@
 | |
|  #include <argp.h>
 | |
|  #include <assert.h>
 | |
|  #include <errno.h>
 | |
| -#include <error.h>
 | |
|  #include <fcntl.h>
 | |
|  #include <locale.h>
 | |
|  #include <libintl.h>
 | |
| --- a/src/elflint.c
 | |
| +++ b/src/elflint.c
 | |
| @@ -24,7 +24,6 @@
 | |
|  #include <assert.h>
 | |
|  #include <byteswap.h>
 | |
|  #include <endian.h>
 | |
| -#include <error.h>
 | |
|  #include <fcntl.h>
 | |
|  #include <gelf.h>
 | |
|  #include <inttypes.h>
 | |
| --- a/src/findtextrel.c
 | |
| +++ b/src/findtextrel.c
 | |
| @@ -23,7 +23,6 @@
 | |
|  #include <argp.h>
 | |
|  #include <assert.h>
 | |
|  #include <errno.h>
 | |
| -#include <error.h>
 | |
|  #include <fcntl.h>
 | |
|  #include <gelf.h>
 | |
|  #include <libdw.h>
 | |
| --- a/src/nm.c
 | |
| +++ b/src/nm.c
 | |
| @@ -26,7 +26,6 @@
 | |
|  #include <ctype.h>
 | |
|  #include <dwarf.h>
 | |
|  #include <errno.h>
 | |
| -#include <error.h>
 | |
|  #include <fcntl.h>
 | |
|  #include <gelf.h>
 | |
|  #include <inttypes.h>
 | |
| --- a/src/objdump.c
 | |
| +++ b/src/objdump.c
 | |
| @@ -21,7 +21,6 @@
 | |
|  #endif
 | |
|  
 | |
|  #include <argp.h>
 | |
| -#include <error.h>
 | |
|  #include <fcntl.h>
 | |
|  #include <inttypes.h>
 | |
|  #include <libintl.h>
 | |
| --- a/src/ranlib.c
 | |
| +++ b/src/ranlib.c
 | |
| @@ -24,7 +24,6 @@
 | |
|  #include <argp.h>
 | |
|  #include <assert.h>
 | |
|  #include <errno.h>
 | |
| -#include <error.h>
 | |
|  #include <fcntl.h>
 | |
|  #include <gelf.h>
 | |
|  #include <libintl.h>
 | |
| --- a/src/readelf.c
 | |
| +++ b/src/readelf.c
 | |
| @@ -25,7 +25,6 @@
 | |
|  #include <ctype.h>
 | |
|  #include <dwarf.h>
 | |
|  #include <errno.h>
 | |
| -#include <error.h>
 | |
|  #include <fcntl.h>
 | |
|  #include <gelf.h>
 | |
|  #include <inttypes.h>
 | |
| --- a/src/size.c
 | |
| +++ b/src/size.c
 | |
| @@ -21,7 +21,6 @@
 | |
|  #endif
 | |
|  
 | |
|  #include <argp.h>
 | |
| -#include <error.h>
 | |
|  #include <fcntl.h>
 | |
|  #include <gelf.h>
 | |
|  #include <inttypes.h>
 | |
| --- a/src/stack.c
 | |
| +++ b/src/stack.c
 | |
| @@ -18,7 +18,6 @@
 | |
|  #include <config.h>
 | |
|  #include <assert.h>
 | |
|  #include <argp.h>
 | |
| -#include <error.h>
 | |
|  #include <stdlib.h>
 | |
|  #include <inttypes.h>
 | |
|  #include <stdio.h>
 | |
| --- a/src/strings.c
 | |
| +++ b/src/strings.c
 | |
| @@ -25,7 +25,6 @@
 | |
|  #include <ctype.h>
 | |
|  #include <endian.h>
 | |
|  #include <errno.h>
 | |
| -#include <error.h>
 | |
|  #include <fcntl.h>
 | |
|  #include <gelf.h>
 | |
|  #include <inttypes.h>
 | |
| --- a/src/strip.c
 | |
| +++ b/src/strip.c
 | |
| @@ -24,7 +24,6 @@
 | |
|  #include <assert.h>
 | |
|  #include <byteswap.h>
 | |
|  #include <endian.h>
 | |
| -#include <error.h>
 | |
|  #include <fcntl.h>
 | |
|  #include <gelf.h>
 | |
|  #include <libelf.h>
 | |
| --- a/src/unstrip.c
 | |
| +++ b/src/unstrip.c
 | |
| @@ -31,7 +31,6 @@
 | |
|  #include <argp.h>
 | |
|  #include <assert.h>
 | |
|  #include <errno.h>
 | |
| -#include <error.h>
 | |
|  #include <fcntl.h>
 | |
|  #include <fnmatch.h>
 | |
|  #include <libintl.h>
 | |
| --- a/tests/addrscopes.c
 | |
| +++ b/tests/addrscopes.c
 | |
| @@ -25,7 +25,6 @@
 | |
|  #include <stdio_ext.h>
 | |
|  #include <locale.h>
 | |
|  #include <stdlib.h>
 | |
| -#include <error.h>
 | |
|  #include <string.h>
 | |
|  
 | |
|  
 | |
| --- a/tests/allregs.c
 | |
| +++ b/tests/allregs.c
 | |
| @@ -21,7 +21,6 @@
 | |
|  #include <stdio.h>
 | |
|  #include <stdlib.h>
 | |
|  #include <string.h>
 | |
| -#include <error.h>
 | |
|  #include <locale.h>
 | |
|  #include <argp.h>
 | |
|  #include <assert.h>
 | |
| --- a/tests/backtrace.c
 | |
| +++ b/tests/backtrace.c
 | |
| @@ -24,7 +24,6 @@
 | |
|  #include <dirent.h>
 | |
|  #include <stdlib.h>
 | |
|  #include <errno.h>
 | |
| -#include <error.h>
 | |
|  #include <unistd.h>
 | |
|  #include <dwarf.h>
 | |
|  #ifdef __linux__
 | |
| --- a/tests/backtrace-data.c
 | |
| +++ b/tests/backtrace-data.c
 | |
| @@ -27,7 +27,6 @@
 | |
|  #include <dirent.h>
 | |
|  #include <stdlib.h>
 | |
|  #include <errno.h>
 | |
| -#include <error.h>
 | |
|  #include <unistd.h>
 | |
|  #include <dwarf.h>
 | |
|  #if defined(__x86_64__) && defined(__linux__)
 | |
| --- a/tests/buildid.c
 | |
| +++ b/tests/buildid.c
 | |
| @@ -23,7 +23,6 @@
 | |
|  #include ELFUTILS_HEADER(elf)
 | |
|  #include ELFUTILS_HEADER(dwelf)
 | |
|  #include <stdio.h>
 | |
| -#include <error.h>
 | |
|  #include <string.h>
 | |
|  #include <stdlib.h>
 | |
|  #include <sys/types.h>
 | |
| --- a/tests/debugaltlink.c
 | |
| +++ b/tests/debugaltlink.c
 | |
| @@ -23,7 +23,6 @@
 | |
|  #include ELFUTILS_HEADER(dw)
 | |
|  #include ELFUTILS_HEADER(dwelf)
 | |
|  #include <stdio.h>
 | |
| -#include <error.h>
 | |
|  #include <string.h>
 | |
|  #include <stdlib.h>
 | |
|  #include <sys/types.h>
 | |
| --- a/tests/debuglink.c
 | |
| +++ b/tests/debuglink.c
 | |
| @@ -21,7 +21,6 @@
 | |
|  #include <errno.h>
 | |
|  #include ELFUTILS_HEADER(dwelf)
 | |
|  #include <stdio.h>
 | |
| -#include <error.h>
 | |
|  #include <string.h>
 | |
|  #include <stdlib.h>
 | |
|  #include <sys/types.h>
 | |
| --- a/tests/dwfl-addr-sect.c
 | |
| +++ b/tests/dwfl-addr-sect.c
 | |
| @@ -23,7 +23,6 @@
 | |
|  #include <stdio_ext.h>
 | |
|  #include <stdlib.h>
 | |
|  #include <string.h>
 | |
| -#include <error.h>
 | |
|  #include <locale.h>
 | |
|  #include <argp.h>
 | |
|  #include ELFUTILS_HEADER(dwfl)
 | |
| --- a/tests/dwfl-bug-addr-overflow.c
 | |
| +++ b/tests/dwfl-bug-addr-overflow.c
 | |
| @@ -20,7 +20,6 @@
 | |
|  #include <inttypes.h>
 | |
|  #include <stdio.h>
 | |
|  #include <stdio_ext.h>
 | |
| -#include <error.h>
 | |
|  #include <locale.h>
 | |
|  #include ELFUTILS_HEADER(dwfl)
 | |
|  
 | |
| --- a/tests/dwfl-bug-fd-leak.c
 | |
| +++ b/tests/dwfl-bug-fd-leak.c
 | |
| @@ -24,7 +24,6 @@
 | |
|  #include <dirent.h>
 | |
|  #include <stdlib.h>
 | |
|  #include <errno.h>
 | |
| -#include <error.h>
 | |
|  #include <unistd.h>
 | |
|  #include <dwarf.h>
 | |
|  
 | |
| --- a/tests/dwfl-bug-getmodules.c
 | |
| +++ b/tests/dwfl-bug-getmodules.c
 | |
| @@ -18,7 +18,6 @@
 | |
|  #include <config.h>
 | |
|  #include ELFUTILS_HEADER(dwfl)
 | |
|  
 | |
| -#include <error.h>
 | |
|  
 | |
|  static const Dwfl_Callbacks callbacks =
 | |
|    {
 | |
| --- a/tests/dwfllines.c
 | |
| +++ b/tests/dwfllines.c
 | |
| @@ -27,7 +27,6 @@
 | |
|  #include <stdio.h>
 | |
|  #include <stdlib.h>
 | |
|  #include <string.h>
 | |
| -#include <error.h>
 | |
|  
 | |
|  int
 | |
|  main (int argc, char *argv[])
 | |
| --- a/tests/dwflmodtest.c
 | |
| +++ b/tests/dwflmodtest.c
 | |
| @@ -23,7 +23,6 @@
 | |
|  #include <stdio_ext.h>
 | |
|  #include <stdlib.h>
 | |
|  #include <string.h>
 | |
| -#include <error.h>
 | |
|  #include <locale.h>
 | |
|  #include <argp.h>
 | |
|  #include ELFUTILS_HEADER(dwfl)
 | |
| --- a/tests/dwfl-report-elf-align.c
 | |
| +++ b/tests/dwfl-report-elf-align.c
 | |
| @@ -20,7 +20,6 @@
 | |
|  #include <inttypes.h>
 | |
|  #include <stdio.h>
 | |
|  #include <stdio_ext.h>
 | |
| -#include <error.h>
 | |
|  #include <locale.h>
 | |
|  #include <string.h>
 | |
|  #include <stdlib.h>
 | |
| --- a/tests/dwflsyms.c
 | |
| +++ b/tests/dwflsyms.c
 | |
| @@ -25,7 +25,6 @@
 | |
|  #include <stdio.h>
 | |
|  #include <stdio_ext.h>
 | |
|  #include <stdlib.h>
 | |
| -#include <error.h>
 | |
|  #include <string.h>
 | |
|  
 | |
|  static const char *
 | |
| --- a/tests/early-offscn.c
 | |
| +++ b/tests/early-offscn.c
 | |
| @@ -19,7 +19,6 @@
 | |
|  #endif
 | |
|  
 | |
|  #include <errno.h>
 | |
| -#include <error.h>
 | |
|  #include <fcntl.h>
 | |
|  #include <gelf.h>
 | |
|  #include <stdio.h>
 | |
| --- a/tests/ecp.c
 | |
| +++ b/tests/ecp.c
 | |
| @@ -20,7 +20,6 @@
 | |
|  #endif
 | |
|  
 | |
|  #include <errno.h>
 | |
| -#include <error.h>
 | |
|  #include <fcntl.h>
 | |
|  #include <gelf.h>
 | |
|  #include <stdlib.h>
 | |
| --- a/tests/find-prologues.c
 | |
| +++ b/tests/find-prologues.c
 | |
| @@ -25,7 +25,6 @@
 | |
|  #include <stdio_ext.h>
 | |
|  #include <locale.h>
 | |
|  #include <stdlib.h>
 | |
| -#include <error.h>
 | |
|  #include <string.h>
 | |
|  #include <fnmatch.h>
 | |
|  
 | |
| --- a/tests/funcretval.c
 | |
| +++ b/tests/funcretval.c
 | |
| @@ -25,7 +25,6 @@
 | |
|  #include <stdio_ext.h>
 | |
|  #include <locale.h>
 | |
|  #include <stdlib.h>
 | |
| -#include <error.h>
 | |
|  #include <string.h>
 | |
|  #include <fnmatch.h>
 | |
|  
 | |
| --- a/tests/funcscopes.c
 | |
| +++ b/tests/funcscopes.c
 | |
| @@ -25,7 +25,6 @@
 | |
|  #include <stdio_ext.h>
 | |
|  #include <locale.h>
 | |
|  #include <stdlib.h>
 | |
| -#include <error.h>
 | |
|  #include <string.h>
 | |
|  #include <fnmatch.h>
 | |
|  
 | |
| --- a/tests/line2addr.c
 | |
| +++ b/tests/line2addr.c
 | |
| @@ -26,7 +26,6 @@
 | |
|  #include <locale.h>
 | |
|  #include <stdlib.h>
 | |
|  #include <string.h>
 | |
| -#include <error.h>
 | |
|  
 | |
|  
 | |
|  static void
 | |
| --- a/tests/low_high_pc.c
 | |
| +++ b/tests/low_high_pc.c
 | |
| @@ -25,7 +25,6 @@
 | |
|  #include <stdio_ext.h>
 | |
|  #include <locale.h>
 | |
|  #include <stdlib.h>
 | |
| -#include <error.h>
 | |
|  #include <string.h>
 | |
|  #include <fnmatch.h>
 | |
|  
 | |
| --- a/tests/md5-sha1-test.c
 | |
| +++ b/tests/md5-sha1-test.c
 | |
| @@ -19,7 +19,6 @@
 | |
|  #endif
 | |
|  
 | |
|  #include <string.h>
 | |
| -#include <error.h>
 | |
|  
 | |
|  #include "md5.h"
 | |
|  #include "sha1.h"
 | |
| --- a/tests/rdwrmmap.c
 | |
| +++ b/tests/rdwrmmap.c
 | |
| @@ -19,7 +19,6 @@
 | |
|  #endif
 | |
|  
 | |
|  #include <errno.h>
 | |
| -#include <error.h>
 | |
|  #include <stdio.h>
 | |
|  #include <fcntl.h>
 | |
|  #include <unistd.h>
 | |
| --- a/tests/saridx.c
 | |
| +++ b/tests/saridx.c
 | |
| @@ -17,7 +17,6 @@
 | |
|  
 | |
|  #include <config.h>
 | |
|  
 | |
| -#include <error.h>
 | |
|  #include <fcntl.h>
 | |
|  #include <gelf.h>
 | |
|  #include <stdio.h>
 | |
| --- a/tests/sectiondump.c
 | |
| +++ b/tests/sectiondump.c
 | |
| @@ -18,7 +18,6 @@
 | |
|  #include <config.h>
 | |
|  
 | |
|  #include <errno.h>
 | |
| -#include <error.h>
 | |
|  #include <fcntl.h>
 | |
|  #include <gelf.h>
 | |
|  #include <inttypes.h>
 | |
| --- a/tests/varlocs.c
 | |
| +++ b/tests/varlocs.c
 | |
| @@ -25,7 +25,6 @@
 | |
|  #include <dwarf.h>
 | |
|  #include <stdio.h>
 | |
|  #include <stdlib.h>
 | |
| -#include <error.h>
 | |
|  #include <string.h>
 | |
|  #include <sys/types.h>
 | |
|  #include <sys/stat.h>
 | |
| --- a/libasm/asm_end.c
 | |
| +++ b/libasm/asm_end.c
 | |
| @@ -32,7 +32,6 @@
 | |
|  #endif
 | |
|  
 | |
|  #include <assert.h>
 | |
| -#include <error.h>
 | |
|  #include <libintl.h>
 | |
|  #include <stdio.h>
 | |
|  #include <stdlib.h>
 | |
| --- a/libasm/asm_newscn.c
 | |
| +++ b/libasm/asm_newscn.c
 | |
| @@ -32,7 +32,6 @@
 | |
|  #endif
 | |
|  
 | |
|  #include <assert.h>
 | |
| -#include <error.h>
 | |
|  #include <libintl.h>
 | |
|  #include <stdlib.h>
 | |
|  #include <string.h>
 | |
| --- a/libcpu/i386_gendis.c
 | |
| +++ b/libcpu/i386_gendis.c
 | |
| @@ -31,7 +31,6 @@
 | |
|  # include <config.h>
 | |
|  #endif
 | |
|  
 | |
| -#include <error.h>
 | |
|  #include <errno.h>
 | |
|  #include <stdio.h>
 | |
|  #include <stdlib.h>
 | |
| --- a/libcpu/i386_lex.c
 | |
| +++ b/libcpu/i386_lex.c
 | |
| @@ -592,7 +592,6 @@ char *i386_text;
 | |
|  #endif
 | |
|  
 | |
|  #include <ctype.h>
 | |
| -#include <error.h>
 | |
|  #include <libintl.h>
 | |
|  
 | |
|  #include <libeu.h>
 | |
| --- a/libcpu/i386_lex.l
 | |
| +++ b/libcpu/i386_lex.l
 | |
| @@ -31,7 +31,6 @@
 | |
|  #endif
 | |
|  
 | |
|  #include <ctype.h>
 | |
| -#include <error.h>
 | |
|  #include <libintl.h>
 | |
|  
 | |
|  #include <libeu.h>
 | |
| --- a/libcpu/i386_parse.c
 | |
| +++ b/libcpu/i386_parse.c
 | |
| @@ -107,7 +107,6 @@
 | |
|  #include <assert.h>
 | |
|  #include <ctype.h>
 | |
|  #include <errno.h>
 | |
| -#include <error.h>
 | |
|  #include <inttypes.h>
 | |
|  #include <libintl.h>
 | |
|  #include <math.h>
 | |
| --- a/libdw/libdw_alloc.c
 | |
| +++ b/libdw/libdw_alloc.c
 | |
| @@ -31,7 +31,6 @@
 | |
|  # include <config.h>
 | |
|  #endif
 | |
|  
 | |
| -#include <error.h>
 | |
|  #include <errno.h>
 | |
|  #include <stdlib.h>
 | |
|  #include "libdwP.h"
 | |
| @@ -74,5 +73,5 @@ __attribute ((noreturn, visibility ("hid
 | |
|  __libdw_oom (void)
 | |
|  {
 | |
|    while (1)
 | |
| -    error (EXIT_FAILURE, ENOMEM, "libdw");
 | |
| +    error (EXIT_FAILURE, errno, gettext ("cannot allocate memory"));
 | |
|  }
 | |
| --- a/libebl/eblopenbackend.c
 | |
| +++ b/libebl/eblopenbackend.c
 | |
| @@ -32,7 +32,6 @@
 | |
|  
 | |
|  #include <assert.h>
 | |
|  #include <dlfcn.h>
 | |
| -#include <error.h>
 | |
|  #include <libelfP.h>
 | |
|  #include <dwarf.h>
 | |
|  #include <stdlib.h>
 | |
| --- a/libdwfl/dwfl_error.c
 | |
| +++ b/libdwfl/dwfl_error.c
 | |
| @@ -140,6 +140,7 @@ __libdwfl_seterrno (Dwfl_Error error)
 | |
|  const char *
 | |
|  dwfl_errmsg (int error)
 | |
|  {
 | |
| +  static __thread char s[64] = "";
 | |
|    if (error == 0 || error == -1)
 | |
|      {
 | |
|        int last_error = global_error;
 | |
| @@ -154,7 +155,8 @@ dwfl_errmsg (int error)
 | |
|    switch (error &~ 0xffff)
 | |
|      {
 | |
|      case OTHER_ERROR (ERRNO):
 | |
| -      return strerror_r (error & 0xffff, "bad", 0);
 | |
| +      strerror_r (error & 0xffff, s, sizeof(s));
 | |
| +      return s;
 | |
|      case OTHER_ERROR (LIBELF):
 | |
|        return elf_errmsg (error & 0xffff);
 | |
|      case OTHER_ERROR (LIBDW):
 |