toolchain/musl: add version 0.9.10
Signed-off-by: Felix Fietkau <nbd@openwrt.org> SVN-Revision: 36591
This commit is contained in:
		| @@ -15,6 +15,10 @@ choice | |||||||
| 		select MUSL_VERSION_0_9_9 | 		select MUSL_VERSION_0_9_9 | ||||||
| 		bool "musl 0.9.9" | 		bool "musl 0.9.9" | ||||||
|  |  | ||||||
|  | 	config MUSL_USE_VERSION_0_9_10 | ||||||
|  | 		select MUSL_VERSION_0_9_10 | ||||||
|  | 		bool "musl 0.9.10" | ||||||
|  |  | ||||||
| endchoice | endchoice | ||||||
|  |  | ||||||
|  |  | ||||||
|   | |||||||
| @@ -5,6 +5,7 @@ config MUSL_VERSION | |||||||
| 	depends on USE_MUSL | 	depends on USE_MUSL | ||||||
| 	default "0.9.8"       if MUSL_VERSION_0_9_8 | 	default "0.9.8"       if MUSL_VERSION_0_9_8 | ||||||
| 	default "0.9.9"       if MUSL_VERSION_0_9_9 | 	default "0.9.9"       if MUSL_VERSION_0_9_9 | ||||||
|  | 	default "0.9.10"       if MUSL_VERSION_0_9_10 | ||||||
|  |  | ||||||
| config MUSL_VERSION_0_9_8 | config MUSL_VERSION_0_9_8 | ||||||
| 	default y if !TOOLCHAINOPTS | 	default y if !TOOLCHAINOPTS | ||||||
| @@ -13,4 +14,7 @@ config MUSL_VERSION_0_9_8 | |||||||
| config MUSL_VERSION_0_9_9 | config MUSL_VERSION_0_9_9 | ||||||
| 	bool | 	bool | ||||||
|  |  | ||||||
|  | config MUSL_VERSION_0_9_10 | ||||||
|  | 	bool | ||||||
|  |  | ||||||
| endif | endif | ||||||
|   | |||||||
| @@ -13,6 +13,7 @@ PKG_RELEASE=$(PKG_SOURCE_VERSION) | |||||||
|  |  | ||||||
| PKG_SOURCE_VERSION_0.9.8:=e6dcebd5efa2d390f0a24dc11444024e9fd1990c | PKG_SOURCE_VERSION_0.9.8:=e6dcebd5efa2d390f0a24dc11444024e9fd1990c | ||||||
| PKG_SOURCE_VERSION_0.9.9:=a57ac9bf64ba202bd94d1b81bddd93b850c7b9d6 | PKG_SOURCE_VERSION_0.9.9:=a57ac9bf64ba202bd94d1b81bddd93b850c7b9d6 | ||||||
|  | PKG_SOURCE_VERSION_0.9.10:=7bec92e793d4b8a349796848cf43c7329b0f2ed0 | ||||||
|  |  | ||||||
| PKG_SOURCE_PROTO:=git | PKG_SOURCE_PROTO:=git | ||||||
| PKG_SOURCE_URL:=git://git.musl-libc.org/musl | PKG_SOURCE_URL:=git://git.musl-libc.org/musl | ||||||
|   | |||||||
							
								
								
									
										27
									
								
								toolchain/musl/patches-0.9.10/000-install_portability.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										27
									
								
								toolchain/musl/patches-0.9.10/000-install_portability.patch
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,27 @@ | |||||||
|  | --- a/Makefile | ||||||
|  | +++ b/Makefile | ||||||
|  | @@ -116,16 +116,20 @@ tools/musl-gcc: config.mak | ||||||
|  |  	chmod +x $@ | ||||||
|  |   | ||||||
|  |  $(DESTDIR)$(bindir)/%: tools/% | ||||||
|  | -	install -D $< $@ | ||||||
|  | +	mkdir -p $(dir $@) | ||||||
|  | +	install $< $@ | ||||||
|  |   | ||||||
|  |  $(DESTDIR)$(libdir)/%.so: lib/%.so | ||||||
|  | -	install -D -m 755 $< $@ | ||||||
|  | +	mkdir -p $(dir $@) | ||||||
|  | +	install -m 755 $< $@ | ||||||
|  |   | ||||||
|  |  $(DESTDIR)$(libdir)/%: lib/% | ||||||
|  | -	install -D -m 644 $< $@ | ||||||
|  | +	mkdir -p $(dir $@) | ||||||
|  | +	install -m 644 $< $@ | ||||||
|  |   | ||||||
|  |  $(DESTDIR)$(includedir)/%: include/% | ||||||
|  | -	install -D -m 644 $< $@ | ||||||
|  | +	mkdir -p $(dir $@) | ||||||
|  | +	install -m 644 $< $@ | ||||||
|  |   | ||||||
|  |  $(DESTDIR)$(LDSO_PATHNAME): $(DESTDIR)$(syslibdir) | ||||||
|  |  	ln -sf $(libdir)/libc.so $@ || true | ||||||
							
								
								
									
										60
									
								
								toolchain/musl/patches-0.9.10/100-wchar_include.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										60
									
								
								toolchain/musl/patches-0.9.10/100-wchar_include.patch
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,60 @@ | |||||||
|  | --- a/arch/arm/bits/alltypes.h.sh | ||||||
|  | +++ b/arch/arm/bits/alltypes.h.sh | ||||||
|  | @@ -21,6 +21,7 @@ TYPEDEF int ssize_t; | ||||||
|  |  TYPEDEF int ptrdiff_t; | ||||||
|  |   | ||||||
|  |  TYPEDEF __builtin_va_list va_list; | ||||||
|  | +#define __gnuc_va_list va_list | ||||||
|  |   | ||||||
|  |  #ifndef __cplusplus | ||||||
|  |  TYPEDEF unsigned wchar_t; | ||||||
|  | --- a/arch/i386/bits/alltypes.h.sh | ||||||
|  | +++ b/arch/i386/bits/alltypes.h.sh | ||||||
|  | @@ -25,6 +25,7 @@ TYPEDEF __builtin_va_list va_list; | ||||||
|  |  #else | ||||||
|  |  TYPEDEF struct __va_list * va_list; | ||||||
|  |  #endif | ||||||
|  | +#define __gnuc_va_list va_list | ||||||
|  |   | ||||||
|  |  #ifndef __cplusplus | ||||||
|  |  #ifdef __WCHAR_TYPE__ | ||||||
|  | --- a/arch/microblaze/bits/alltypes.h.sh | ||||||
|  | +++ b/arch/microblaze/bits/alltypes.h.sh | ||||||
|  | @@ -21,6 +21,7 @@ TYPEDEF int ssize_t; | ||||||
|  |  TYPEDEF int ptrdiff_t; | ||||||
|  |   | ||||||
|  |  TYPEDEF __builtin_va_list va_list; | ||||||
|  | +#define __gnuc_va_list va_list | ||||||
|  |   | ||||||
|  |  #ifndef __cplusplus | ||||||
|  |  TYPEDEF int wchar_t; | ||||||
|  | --- a/arch/mips/bits/alltypes.h.sh | ||||||
|  | +++ b/arch/mips/bits/alltypes.h.sh | ||||||
|  | @@ -21,6 +21,7 @@ TYPEDEF int ssize_t; | ||||||
|  |  TYPEDEF int ptrdiff_t; | ||||||
|  |   | ||||||
|  |  TYPEDEF __builtin_va_list va_list; | ||||||
|  | +#define __gnuc_va_list va_list | ||||||
|  |   | ||||||
|  |  #ifndef __cplusplus | ||||||
|  |  TYPEDEF int wchar_t; | ||||||
|  | --- a/arch/powerpc/bits/alltypes.h.sh | ||||||
|  | +++ b/arch/powerpc/bits/alltypes.h.sh | ||||||
|  | @@ -21,6 +21,7 @@ TYPEDEF int ssize_t; | ||||||
|  |  TYPEDEF int ptrdiff_t; | ||||||
|  |   | ||||||
|  |  TYPEDEF __builtin_va_list va_list; | ||||||
|  | +#define __gnuc_va_list va_list | ||||||
|  |   | ||||||
|  |  #ifndef __cplusplus | ||||||
|  |  TYPEDEF long wchar_t; | ||||||
|  | --- a/arch/x86_64/bits/alltypes.h.sh | ||||||
|  | +++ b/arch/x86_64/bits/alltypes.h.sh | ||||||
|  | @@ -20,6 +20,7 @@ TYPEDEF unsigned long size_t; | ||||||
|  |  TYPEDEF long ssize_t; | ||||||
|  |  TYPEDEF long ptrdiff_t; | ||||||
|  |  TYPEDEF __builtin_va_list va_list; | ||||||
|  | +#define __gnuc_va_list va_list | ||||||
|  |   | ||||||
|  |  #ifndef __cplusplus | ||||||
|  |  TYPEDEF int wchar_t; | ||||||
							
								
								
									
										196
									
								
								toolchain/musl/patches-0.9.10/110-bsd_ether_h.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										196
									
								
								toolchain/musl/patches-0.9.10/110-bsd_ether_h.patch
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,196 @@ | |||||||
|  | --- /dev/null | ||||||
|  | +++ b/include/netinet/ether.h | ||||||
|  | @@ -0,0 +1,10 @@ | ||||||
|  | +#ifndef _NETINET_ETHER_H | ||||||
|  | +#define _NETINET_ETHER_H | ||||||
|  | + | ||||||
|  | +char	*ether_ntoa(const struct ether_addr *); | ||||||
|  | +struct 	ether_addr *ether_aton(const char *); | ||||||
|  | +int	ether_ntohost(char *, const struct ether_addr *); | ||||||
|  | +int	ether_hostton(const char *, struct ether_addr *); | ||||||
|  | +int	ether_line(const char *, struct ether_addr *, char *); | ||||||
|  | + | ||||||
|  | +#endif /* !_NETINET_ETHER_H */ | ||||||
|  | --- /dev/null | ||||||
|  | +++ b/src/network/ethers.c | ||||||
|  | @@ -0,0 +1,180 @@ | ||||||
|  | +/* Origin NetBSD: src/lib/libc/net/ethers.c */ | ||||||
|  | + | ||||||
|  | +/* | ||||||
|  | + * ethers(3N) a la Sun. | ||||||
|  | + * | ||||||
|  | + * Written by Roland McGrath <roland@...b.com> 10/14/93. | ||||||
|  | + * Public domain. | ||||||
|  | + * | ||||||
|  | + * port for musl by Abdoulaye Walsimou GAYE <awg@...toolkit.org> 2012/10/15 | ||||||
|  | + */ | ||||||
|  | + | ||||||
|  | +#define _BSD_SOURCE | ||||||
|  | +#include <net/ethernet.h> | ||||||
|  | +#include <netinet/ether.h> | ||||||
|  | + | ||||||
|  | +#include <sys/param.h> | ||||||
|  | +#include <assert.h> | ||||||
|  | +#include <errno.h> | ||||||
|  | +#include <paths.h> | ||||||
|  | +#include <stdio.h> | ||||||
|  | +#include <stdlib.h> | ||||||
|  | +#include <string.h> | ||||||
|  | + | ||||||
|  | +#ifndef _PATH_ETHERS | ||||||
|  | +#define _PATH_ETHERS "/etc/ethers" | ||||||
|  | +#endif | ||||||
|  | + | ||||||
|  | +/* | ||||||
|  | + * ether_ntoa(): | ||||||
|  | + * This function converts this structure into an ASCII string of the form | ||||||
|  | + * ``xx:xx:xx:xx:xx:xx'', consisting of 6 hexadecimal numbers separated | ||||||
|  | + * by colons.  It returns a pointer to a static buffer that is reused for | ||||||
|  | + * each call. | ||||||
|  | + */ | ||||||
|  | +char *ether_ntoa(const struct ether_addr *e) | ||||||
|  | +{ | ||||||
|  | +	static char a[18]; | ||||||
|  | + | ||||||
|  | +	assert(e != NULL); | ||||||
|  | + | ||||||
|  | +	(void) snprintf(a, sizeof a, "%02x:%02x:%02x:%02x:%02x:%02x", | ||||||
|  | +	    e->ether_addr_octet[0], e->ether_addr_octet[1], | ||||||
|  | +	    e->ether_addr_octet[2], e->ether_addr_octet[3], | ||||||
|  | +	    e->ether_addr_octet[4], e->ether_addr_octet[5]); | ||||||
|  | +	return a; | ||||||
|  | +} | ||||||
|  | + | ||||||
|  | +/* | ||||||
|  | + * ether_aton(): | ||||||
|  | + * This function converts an ASCII string of the same form and to a structure | ||||||
|  | + * containing the 6 octets of the address.  It returns a pointer to a | ||||||
|  | + * static structure that is reused for each call. | ||||||
|  | + */ | ||||||
|  | +struct ether_addr *ether_aton(const char *s) | ||||||
|  | +{ | ||||||
|  | +	static struct ether_addr n; | ||||||
|  | +	unsigned int i[6]; | ||||||
|  | + | ||||||
|  | +	assert(s != NULL); | ||||||
|  | + | ||||||
|  | +	if (sscanf(s, " %x:%x:%x:%x:%x:%x ", &i[0], &i[1], | ||||||
|  | +	    &i[2], &i[3], &i[4], &i[5]) == 6) { | ||||||
|  | +		n.ether_addr_octet[0] = (unsigned char)i[0]; | ||||||
|  | +		n.ether_addr_octet[1] = (unsigned char)i[1]; | ||||||
|  | +		n.ether_addr_octet[2] = (unsigned char)i[2]; | ||||||
|  | +		n.ether_addr_octet[3] = (unsigned char)i[3]; | ||||||
|  | +		n.ether_addr_octet[4] = (unsigned char)i[4]; | ||||||
|  | +		n.ether_addr_octet[5] = (unsigned char)i[5]; | ||||||
|  | +		return &n; | ||||||
|  | +	} | ||||||
|  | +	return NULL; | ||||||
|  | +} | ||||||
|  | + | ||||||
|  | +/* | ||||||
|  | + * ether_ntohost(): | ||||||
|  | + * This function interrogates the data base mapping host names to Ethernet | ||||||
|  | + * addresses, /etc/ethers. | ||||||
|  | + * It looks up the given Ethernet address and writes the associated host name | ||||||
|  | + * into the character buffer passed. | ||||||
|  | + * It returns zero if it finds the requested host name and -1 if not. | ||||||
|  | + */ | ||||||
|  | +int ether_ntohost(char *hostname, const struct ether_addr *e) | ||||||
|  | +{ | ||||||
|  | +	FILE *f; | ||||||
|  | +	char *p; | ||||||
|  | +	size_t len; | ||||||
|  | +	struct ether_addr try; | ||||||
|  | + | ||||||
|  | +	assert(hostname != NULL); | ||||||
|  | +	assert(e != NULL); | ||||||
|  | + | ||||||
|  | +	f = fopen(_PATH_ETHERS, "r"); | ||||||
|  | +	if (f == NULL) | ||||||
|  | +		return -1; | ||||||
|  | +	while ((p = fgetln(f, &len)) != NULL) { | ||||||
|  | +		if (p[len - 1] != '\n') | ||||||
|  | +			continue;		/* skip lines w/o \n */ | ||||||
|  | +		p[--len] = '\0'; | ||||||
|  | +		if (ether_line(p, &try, hostname) == 0 && | ||||||
|  | +		    memcmp(&try, e, sizeof try) == 0) { | ||||||
|  | +			(void)fclose(f); | ||||||
|  | +			return 0; | ||||||
|  | +		} | ||||||
|  | +	} | ||||||
|  | +	(void)fclose(f); | ||||||
|  | +	errno = ENOENT; | ||||||
|  | +	return -1; | ||||||
|  | +} | ||||||
|  | + | ||||||
|  | +/* | ||||||
|  | + * ether_hostton(): | ||||||
|  | + * This function interrogates the data base mapping host names to Ethernet | ||||||
|  | + * addresses, /etc/ethers. | ||||||
|  | + * It looks up the given host name and writes the associated Ethernet address | ||||||
|  | + * into the structure passed. | ||||||
|  | + * It returns zero if it finds the requested address and -1 if not. | ||||||
|  | + */ | ||||||
|  | +int ether_hostton(const char *hostname, struct ether_addr *e) | ||||||
|  | +{ | ||||||
|  | +	FILE *f; | ||||||
|  | +	char *p; | ||||||
|  | +	size_t len; | ||||||
|  | +	char try[MAXHOSTNAMELEN + 1]; | ||||||
|  | + | ||||||
|  | +	assert(hostname != NULL); | ||||||
|  | +	assert(e != NULL); | ||||||
|  | + | ||||||
|  | +	f = fopen(_PATH_ETHERS, "r"); | ||||||
|  | +	if (f==NULL) | ||||||
|  | +		return -1; | ||||||
|  | + | ||||||
|  | +	while ((p = fgetln(f, &len)) != NULL) { | ||||||
|  | +		if (p[len - 1] != '\n') | ||||||
|  | +			continue;		/* skip lines w/o \n */ | ||||||
|  | +		p[--len] = '\0'; | ||||||
|  | +		if (ether_line(p, e, try) == 0 && strcmp(hostname, try) == 0) { | ||||||
|  | +			(void)fclose(f); | ||||||
|  | +			return 0; | ||||||
|  | +		} | ||||||
|  | +	} | ||||||
|  | +	(void)fclose(f); | ||||||
|  | +	errno = ENOENT; | ||||||
|  | +	return -1; | ||||||
|  | +} | ||||||
|  | + | ||||||
|  | +/* | ||||||
|  | + * ether_line(): | ||||||
|  | + * This function parses a line from the /etc/ethers file and fills in the passed | ||||||
|  | + * ``struct ether_addr'' and character buffer with the Ethernet address and host | ||||||
|  | + * name on the line. | ||||||
|  | + * It returns zero if the line was successfully parsed and -1 if not. | ||||||
|  | + */ | ||||||
|  | +int ether_line(const char *l, struct ether_addr *e, char *hostname) | ||||||
|  | +{ | ||||||
|  | +	unsigned int i[6]; | ||||||
|  | + | ||||||
|  | +#define S2(arg) #arg | ||||||
|  | +#define S1(arg) S2(arg) | ||||||
|  | +	static const char fmt[] = " %x:%x:%x:%x:%x:%x" | ||||||
|  | +	    " %" S1(MAXHOSTNAMELEN) "s\n"; | ||||||
|  | +#undef S2 | ||||||
|  | +#undef S1 | ||||||
|  | + | ||||||
|  | +	assert(l != NULL); | ||||||
|  | +	assert(e != NULL); | ||||||
|  | +	assert(hostname != NULL); | ||||||
|  | + | ||||||
|  | +	if (sscanf(l, fmt, | ||||||
|  | +	    &i[0], &i[1], &i[2], &i[3], &i[4], &i[5], hostname) == 7) { | ||||||
|  | +		e->ether_addr_octet[0] = (unsigned char)i[0]; | ||||||
|  | +		e->ether_addr_octet[1] = (unsigned char)i[1]; | ||||||
|  | +		e->ether_addr_octet[2] = (unsigned char)i[2]; | ||||||
|  | +		e->ether_addr_octet[3] = (unsigned char)i[3]; | ||||||
|  | +		e->ether_addr_octet[4] = (unsigned char)i[4]; | ||||||
|  | +		e->ether_addr_octet[5] = (unsigned char)i[5]; | ||||||
|  | +		return 0; | ||||||
|  | +	} | ||||||
|  | +	errno = EINVAL; | ||||||
|  | +	return -1; | ||||||
|  | +} | ||||||
| @@ -0,0 +1,11 @@ | |||||||
|  | --- a/include/netinet/in.h | ||||||
|  | +++ b/include/netinet/in.h | ||||||
|  | @@ -146,7 +146,7 @@ uint16_t ntohs(uint16_t); | ||||||
|  |          (IN6_IS_ADDR_MULTICAST(a) && ((((uint8_t *) (a))[1] & 0xf) == 0xe)) | ||||||
|  |   | ||||||
|  |  #define __ARE_4_EQUAL(a,b) \ | ||||||
|  | -	(!( 0[a]-0[b] | 1[a]-1[b] | 2[a]-2[b] | 3[a]-3[b] )) | ||||||
|  | +	(!( (0[a]-0[b]) | (1[a]-1[b]) | (2[a]-2[b]) | (3[a]-3[b]) )) | ||||||
|  |  #define IN6_ARE_ADDR_EQUAL(a,b) \ | ||||||
|  |  	__ARE_4_EQUAL((const uint32_t *)(a), (const uint32_t *)(b)) | ||||||
|  |   | ||||||
| @@ -0,0 +1,11 @@ | |||||||
|  | --- a/include/syslog.h | ||||||
|  | +++ b/include/syslog.h | ||||||
|  | @@ -21,7 +21,7 @@ extern "C" { | ||||||
|  |  #define	LOG_MAKEPRI(f, p) (((f)<<3)|(p)) | ||||||
|  |   | ||||||
|  |  #define LOG_MASK(p) (1<<(p)) | ||||||
|  | -#define LOG_UPTO(p) ((1<<(p)+1)-1) | ||||||
|  | +#define LOG_UPTO(p) ((1<<((p)+1))-1) | ||||||
|  |   | ||||||
|  |  #define LOG_KERN     (0<<3) | ||||||
|  |  #define LOG_USER     (1<<3) | ||||||
		Reference in New Issue
	
	Block a user
	 Felix Fietkau
					Felix Fietkau