Initial commit
Some checks failed
Build Kernel / Build all affected Kernels (push) Has been cancelled
Build all core packages / Build all core packages for selected target (push) Has been cancelled
Build and Push prebuilt tools container / Build and Push all prebuilt containers (push) Has been cancelled
Build Toolchains / Build Toolchains for each target (push) Has been cancelled
Build host tools / Build host tools for linux and macos based systems (push) Has been cancelled
Coverity scan build / Coverity x86/64 build (push) Has been cancelled
Some checks failed
Build Kernel / Build all affected Kernels (push) Has been cancelled
Build all core packages / Build all core packages for selected target (push) Has been cancelled
Build and Push prebuilt tools container / Build and Push all prebuilt containers (push) Has been cancelled
Build Toolchains / Build Toolchains for each target (push) Has been cancelled
Build host tools / Build host tools for linux and macos based systems (push) Has been cancelled
Coverity scan build / Coverity x86/64 build (push) Has been cancelled
This commit is contained in:
28
toolchain/musl/patches/110-read_timezone_from_fs.patch
Normal file
28
toolchain/musl/patches/110-read_timezone_from_fs.patch
Normal file
@@ -0,0 +1,28 @@
|
||||
--- a/src/time/__tz.c
|
||||
+++ b/src/time/__tz.c
|
||||
@@ -32,6 +32,9 @@ static int r0[5], r1[5];
|
||||
static const unsigned char *zi, *trans, *index, *types, *abbrevs, *abbrevs_end;
|
||||
static size_t map_size;
|
||||
|
||||
+static const char *tzfile;
|
||||
+static size_t tzfile_size;
|
||||
+
|
||||
static char old_tz_buf[32];
|
||||
static char *old_tz = old_tz_buf;
|
||||
static size_t old_tz_size = sizeof old_tz_buf;
|
||||
@@ -133,6 +136,15 @@ static void do_tzset()
|
||||
"/usr/share/zoneinfo/\0/share/zoneinfo/\0/etc/zoneinfo/\0";
|
||||
|
||||
s = getenv("TZ");
|
||||
+
|
||||
+ /* if TZ is empty try to read it from /etc/TZ */
|
||||
+ if (!s || !*s) {
|
||||
+ if (tzfile)
|
||||
+ __munmap((void*)tzfile, tzfile_size);
|
||||
+
|
||||
+ s = tzfile = (void *)__map_file("/etc/TZ", &tzfile_size);
|
||||
+ }
|
||||
+
|
||||
if (!s) s = "/etc/localtime";
|
||||
if (!*s) s = __utc;
|
||||
|
||||
53
toolchain/musl/patches/200-add_libssp_nonshared.patch
Normal file
53
toolchain/musl/patches/200-add_libssp_nonshared.patch
Normal file
@@ -0,0 +1,53 @@
|
||||
From 7ec87fbbc3cac99b4173d082dd6195f47c9a32e7 Mon Sep 17 00:00:00 2001
|
||||
From: Steven Barth <steven@midlink.org>
|
||||
Date: Mon, 22 Jun 2015 11:01:56 +0200
|
||||
Subject: [PATCH] Add libssp_nonshared.a so GCC's is not needed
|
||||
|
||||
Signed-off-by: Steven Barth <steven@midlink.org>
|
||||
|
||||
--- a/Makefile
|
||||
+++ b/Makefile
|
||||
@@ -67,7 +67,7 @@ CRT_LIBS = $(addprefix lib/,$(notdir $(C
|
||||
STATIC_LIBS = lib/libc.a
|
||||
SHARED_LIBS = lib/libc.so
|
||||
TOOL_LIBS = lib/musl-gcc.specs
|
||||
-ALL_LIBS = $(CRT_LIBS) $(STATIC_LIBS) $(SHARED_LIBS) $(EMPTY_LIBS) $(TOOL_LIBS)
|
||||
+ALL_LIBS = $(CRT_LIBS) $(STATIC_LIBS) $(SHARED_LIBS) $(EMPTY_LIBS) $(TOOL_LIBS) lib/libssp_nonshared.a
|
||||
ALL_TOOLS = obj/musl-gcc
|
||||
|
||||
WRAPCC_GCC = gcc
|
||||
@@ -88,7 +88,7 @@ else
|
||||
|
||||
all: $(ALL_LIBS) $(ALL_TOOLS)
|
||||
|
||||
-OBJ_DIRS = $(sort $(patsubst %/,%,$(dir $(ALL_LIBS) $(ALL_TOOLS) $(ALL_OBJS) $(GENH) $(GENH_INT))) obj/include)
|
||||
+OBJ_DIRS = $(sort $(patsubst %/,%,$(dir $(ALL_LIBS) $(ALL_TOOLS) $(ALL_OBJS) $(GENH) $(GENH_INT))) obj/include obj/libssp_nonshared)
|
||||
|
||||
$(ALL_LIBS) $(ALL_TOOLS) $(ALL_OBJS) $(ALL_OBJS:%.o=%.lo) $(GENH) $(GENH_INT): | $(OBJ_DIRS)
|
||||
|
||||
@@ -115,6 +115,8 @@ obj/crt/rcrt1.o: $(srcdir)/ldso/dlstart.
|
||||
|
||||
obj/crt/Scrt1.o obj/crt/rcrt1.o: CFLAGS_ALL += -fPIC
|
||||
|
||||
+obj/libssp_nonshared/__stack_chk_fail_local.o: CFLAGS_ALL += $(CFLAGS_NOSSP)
|
||||
+
|
||||
OPTIMIZE_SRCS = $(wildcard $(OPTIMIZE_GLOBS:%=$(srcdir)/src/%))
|
||||
$(OPTIMIZE_SRCS:$(srcdir)/%.c=obj/%.o) $(OPTIMIZE_SRCS:$(srcdir)/%.c=obj/%.lo): CFLAGS += -O3
|
||||
|
||||
@@ -167,6 +169,11 @@ lib/libc.a: $(AOBJS)
|
||||
$(AR) rc $@ $(AOBJS)
|
||||
$(RANLIB) $@
|
||||
|
||||
+lib/libssp_nonshared.a: obj/libssp_nonshared/__stack_chk_fail_local.o
|
||||
+ rm -f $@
|
||||
+ $(AR) rc $@ $<
|
||||
+ $(RANLIB) $@
|
||||
+
|
||||
$(EMPTY_LIBS):
|
||||
rm -f $@
|
||||
$(AR) rc $@
|
||||
--- /dev/null
|
||||
+++ b/libssp_nonshared/__stack_chk_fail_local.c
|
||||
@@ -0,0 +1,2 @@
|
||||
+#include "atomic.h"
|
||||
+void __attribute__((visibility ("hidden"))) __stack_chk_fail_local(void) { a_crash(); }
|
||||
11
toolchain/musl/patches/300-relative.patch
Normal file
11
toolchain/musl/patches/300-relative.patch
Normal file
@@ -0,0 +1,11 @@
|
||||
--- a/Makefile
|
||||
+++ b/Makefile
|
||||
@@ -217,7 +217,7 @@ $(DESTDIR)$(includedir)/%: $(srcdir)/inc
|
||||
$(INSTALL) -D -m 644 $< $@
|
||||
|
||||
$(DESTDIR)$(LDSO_PATHNAME): $(DESTDIR)$(libdir)/libc.so
|
||||
- $(INSTALL) -D -l $(libdir)/libc.so $@ || true
|
||||
+ $(INSTALL) -D -l libc.so $@ || true
|
||||
|
||||
install-libs: $(ALL_LIBS:lib/%=$(DESTDIR)$(libdir)/%) $(if $(SHARED_LIBS),$(DESTDIR)$(LDSO_PATHNAME),)
|
||||
|
||||
@@ -0,0 +1,10 @@
|
||||
--- a/Makefile
|
||||
+++ b/Makefile
|
||||
@@ -218,6 +218,7 @@ $(DESTDIR)$(includedir)/%: $(srcdir)/inc
|
||||
|
||||
$(DESTDIR)$(LDSO_PATHNAME): $(DESTDIR)$(libdir)/libc.so
|
||||
$(INSTALL) -D -l libc.so $@ || true
|
||||
+ $(if $(filter loongarch64,$(ARCH)$(SUBARCH)),$(INSTALL) -D -l libc.so $(subst $(ARCH)$(SUBARCH).so.1,loongarch-lp64d.so.1,$@) || true)
|
||||
|
||||
install-libs: $(ALL_LIBS:lib/%=$(DESTDIR)$(libdir)/%) $(if $(SHARED_LIBS),$(DESTDIR)$(LDSO_PATHNAME),)
|
||||
|
||||
@@ -0,0 +1,95 @@
|
||||
From 6f1143425a3afc4eb5086e9c90e7efb3affd7cb7 Mon Sep 17 00:00:00 2001
|
||||
From: Tony Ambardar <Tony.Ambardar@gmail.com>
|
||||
Date: Sat, 11 Jul 2020 06:35:46 -0700
|
||||
Subject: [PATCH 2/2] nftw: support common gnu extension
|
||||
|
||||
Signed-off-by: Tony Ambardar <Tony.Ambardar@gmail.com>
|
||||
---
|
||||
include/ftw.h | 8 ++++++++
|
||||
src/misc/nftw.c | 35 ++++++++++++++++++++++++++++++-----
|
||||
2 files changed, 38 insertions(+), 5 deletions(-)
|
||||
|
||||
--- a/include/ftw.h
|
||||
+++ b/include/ftw.h
|
||||
@@ -21,6 +21,14 @@ extern "C" {
|
||||
#define FTW_CHDIR 4
|
||||
#define FTW_DEPTH 8
|
||||
|
||||
+#ifdef _GNU_SOURCE
|
||||
+#define FTW_ACTIONRETVAL 16
|
||||
+#define FTW_CONTINUE 0
|
||||
+#define FTW_STOP 1
|
||||
+#define FTW_SKIP_SUBTREE 2
|
||||
+#define FTW_SKIP_SIBLINGS 3
|
||||
+#endif
|
||||
+
|
||||
struct FTW {
|
||||
int base;
|
||||
int level;
|
||||
--- a/src/misc/nftw.c
|
||||
+++ b/src/misc/nftw.c
|
||||
@@ -1,3 +1,4 @@
|
||||
+#define _GNU_SOURCE
|
||||
#include <ftw.h>
|
||||
#include <dirent.h>
|
||||
#include <fcntl.h>
|
||||
@@ -74,8 +75,20 @@ static int do_nftw(char *path, int (*fn)
|
||||
if (!fd_limit) close(dfd);
|
||||
}
|
||||
|
||||
- if (!(flags & FTW_DEPTH) && (r=fn(path, &st, type, &lev)))
|
||||
- return r;
|
||||
+ if (!(flags & FTW_DEPTH) && (r=fn(path, &st, type, &lev))) {
|
||||
+ if (flags & FTW_ACTIONRETVAL)
|
||||
+ switch (r) {
|
||||
+ case FTW_SKIP_SUBTREE:
|
||||
+ h = NULL;
|
||||
+ case FTW_CONTINUE:
|
||||
+ break;
|
||||
+ case FTW_SKIP_SIBLINGS:
|
||||
+ case FTW_STOP:
|
||||
+ return r;
|
||||
+ }
|
||||
+ else
|
||||
+ return r;
|
||||
+ }
|
||||
|
||||
for (; h; h = h->chain)
|
||||
if (h->dev == st.st_dev && h->ino == st.st_ino)
|
||||
@@ -103,7 +116,10 @@ static int do_nftw(char *path, int (*fn)
|
||||
strcpy(path+j+1, de->d_name);
|
||||
if ((r=do_nftw(path, fn, fd_limit-1, flags, &new))) {
|
||||
closedir(d);
|
||||
- return r;
|
||||
+ if ((flags & FTW_ACTIONRETVAL) && r == FTW_SKIP_SIBLINGS)
|
||||
+ break;
|
||||
+ else
|
||||
+ return r;
|
||||
}
|
||||
}
|
||||
closedir(d);
|
||||
@@ -114,8 +130,16 @@ static int do_nftw(char *path, int (*fn)
|
||||
}
|
||||
|
||||
path[l] = 0;
|
||||
- if ((flags & FTW_DEPTH) && (r=fn(path, &st, type, &lev)))
|
||||
- return r;
|
||||
+ if ((flags & FTW_DEPTH) && (r=fn(path, &st, type, &lev))) {
|
||||
+ if (flags & FTW_ACTIONRETVAL)
|
||||
+ switch (r) {
|
||||
+ case FTW_SKIP_SIBLINGS:
|
||||
+ case FTW_STOP:
|
||||
+ return r;
|
||||
+ }
|
||||
+ else
|
||||
+ return r;
|
||||
+ }
|
||||
|
||||
return 0;
|
||||
}
|
||||
@@ -140,3 +164,5 @@ int nftw(const char *path, int (*fn)(con
|
||||
pthread_setcancelstate(cs, 0);
|
||||
return r;
|
||||
}
|
||||
+
|
||||
+#undef nftw64
|
||||
@@ -0,0 +1,61 @@
|
||||
From dc651fe2e6b16087c519c0bd0bf943cb7c53c807 Mon Sep 17 00:00:00 2001
|
||||
In-Reply-To: <20240423234355.2414567-1-Tony.Ambardar@gmail.com>
|
||||
References: <20240423234355.2414567-1-Tony.Ambardar@gmail.com>
|
||||
From: Tony Ambardar <Tony.Ambardar@gmail.com>
|
||||
Date: Sat, 20 Apr 2024 21:30:13 -0700
|
||||
Subject: [PATCH v3] add renameat2 linux syscall wrapper
|
||||
To: musl@lists.openwall.com
|
||||
Cc: Rich Felker <dalias@libc.org>
|
||||
|
||||
This syscall is available since Linux 3.15 and also implemented in glibc
|
||||
from version 2.28. It is commonly used in filesystem or security contexts.
|
||||
|
||||
Constants RENAME_NOREPLACE, RENAME_EXCHANGE, RENAME_WHITEOUT are guarded by
|
||||
_GNU_SOURCE as with glibc.
|
||||
|
||||
Signed-off-by: Tony Ambardar <Tony.Ambardar@gmail.com>
|
||||
---
|
||||
v2 -> v3:
|
||||
* call SYS_renameat first if applicable
|
||||
* drop unneeded error code handling
|
||||
|
||||
v1 -> v2:
|
||||
* align related constants
|
||||
* drop 'int' from 'unsigned int'
|
||||
* add fallback to SYS_renameat where applicable
|
||||
---
|
||||
include/stdio.h | 7 +++++++
|
||||
src/linux/renameat2.c | 11 +++++++++++
|
||||
2 files changed, 18 insertions(+)
|
||||
create mode 100644 src/linux/renameat2.c
|
||||
|
||||
--- a/include/stdio.h
|
||||
+++ b/include/stdio.h
|
||||
@@ -158,6 +158,13 @@ char *ctermid(char *);
|
||||
#define L_ctermid 20
|
||||
#endif
|
||||
|
||||
+#if defined(_GNU_SOURCE)
|
||||
+#define RENAME_NOREPLACE (1 << 0)
|
||||
+#define RENAME_EXCHANGE (1 << 1)
|
||||
+#define RENAME_WHITEOUT (1 << 2)
|
||||
+
|
||||
+int renameat2(int, const char *, int, const char *, unsigned);
|
||||
+#endif
|
||||
|
||||
#if defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE) \
|
||||
|| defined(_BSD_SOURCE)
|
||||
--- /dev/null
|
||||
+++ b/src/linux/renameat2.c
|
||||
@@ -0,0 +1,11 @@
|
||||
+#define _GNU_SOURCE
|
||||
+#include <stdio.h>
|
||||
+#include "syscall.h"
|
||||
+
|
||||
+int renameat2(int oldfd, const char *old, int newfd, const char *new, unsigned flags)
|
||||
+{
|
||||
+#ifdef SYS_renameat
|
||||
+ if (!flags) return syscall(SYS_renameat, oldfd, old, newfd, new);
|
||||
+#endif
|
||||
+ return syscall(SYS_renameat2, oldfd, old, newfd, new, flags);
|
||||
+}
|
||||
100
toolchain/musl/patches/900-iconv_size_hack.patch
Normal file
100
toolchain/musl/patches/900-iconv_size_hack.patch
Normal file
@@ -0,0 +1,100 @@
|
||||
--- a/src/locale/iconv.c
|
||||
+++ b/src/locale/iconv.c
|
||||
@@ -48,6 +48,7 @@ static const unsigned char charmaps[] =
|
||||
"utf16\0\0\312"
|
||||
"ucs4\0utf32\0\0\313"
|
||||
"ucs2\0\0\314"
|
||||
+#ifdef FULL_ICONV
|
||||
"eucjp\0\0\320"
|
||||
"shiftjis\0sjis\0cp932\0\0\321"
|
||||
"iso2022jp\0\0\322"
|
||||
@@ -56,6 +57,7 @@ static const unsigned char charmaps[] =
|
||||
"gb2312\0\0\332"
|
||||
"big5\0bigfive\0cp950\0big5hkscs\0\0\340"
|
||||
"euckr\0ksc5601\0ksx1001\0cp949\0\0\350"
|
||||
+#endif
|
||||
#include "codepages.h"
|
||||
;
|
||||
|
||||
@@ -66,6 +68,7 @@ static const unsigned short legacy_chars
|
||||
#include "legacychars.h"
|
||||
};
|
||||
|
||||
+#ifdef FULL_ICONV
|
||||
static const unsigned short jis0208[84][94] = {
|
||||
#include "jis0208.h"
|
||||
};
|
||||
@@ -85,6 +88,7 @@ static const unsigned short hkscs[] = {
|
||||
static const unsigned short ksc[93][94] = {
|
||||
#include "ksc.h"
|
||||
};
|
||||
+#endif
|
||||
|
||||
static const unsigned short rev_jis[] = {
|
||||
#include "revjis.h"
|
||||
@@ -205,6 +209,7 @@ static unsigned legacy_map(const unsigne
|
||||
return x < 256 ? x : legacy_chars[x-256];
|
||||
}
|
||||
|
||||
+#ifdef FULL_ICONV
|
||||
static unsigned uni_to_jis(unsigned c)
|
||||
{
|
||||
unsigned nel = sizeof rev_jis / sizeof *rev_jis;
|
||||
@@ -223,6 +228,7 @@ static unsigned uni_to_jis(unsigned c)
|
||||
}
|
||||
}
|
||||
}
|
||||
+#endif
|
||||
|
||||
size_t iconv(iconv_t cd, char **restrict in, size_t *restrict inb, char **restrict out, size_t *restrict outb)
|
||||
{
|
||||
@@ -319,6 +325,7 @@ size_t iconv(iconv_t cd, char **restrict
|
||||
}
|
||||
type = scd->state;
|
||||
continue;
|
||||
+#ifdef FULL_ICONV
|
||||
case SHIFT_JIS:
|
||||
if (c < 128) break;
|
||||
if (c-0xa1 <= 0xdf-0xa1) {
|
||||
@@ -518,6 +525,7 @@ size_t iconv(iconv_t cd, char **restrict
|
||||
c = ksc[c][d];
|
||||
if (!c) goto ilseq;
|
||||
break;
|
||||
+#endif
|
||||
default:
|
||||
if (!c) break;
|
||||
c = legacy_map(map, c);
|
||||
@@ -559,6 +567,7 @@ size_t iconv(iconv_t cd, char **restrict
|
||||
}
|
||||
}
|
||||
goto subst;
|
||||
+#ifdef FULL_ICONV
|
||||
case SHIFT_JIS:
|
||||
if (c < 128) goto revout;
|
||||
if (c == 0xa5) {
|
||||
@@ -632,6 +641,7 @@ size_t iconv(iconv_t cd, char **restrict
|
||||
*(*out)++ = 'B';
|
||||
*outb -= 8;
|
||||
break;
|
||||
+#endif
|
||||
case UCS2:
|
||||
totype = UCS2BE;
|
||||
case UCS2BE:
|
||||
--- a/src/locale/codepages.h
|
||||
+++ b/src/locale/codepages.h
|
||||
@@ -129,6 +129,7 @@
|
||||
"\340\204\43\316\100\344\34\144\316\71\350\244\243\316\72\354\264\343\316\73"
|
||||
"\21\361\44\317\74\364\30\145\17\124\146\345\243\317\76\374\134\304\327\77"
|
||||
|
||||
+#ifdef FULL_ICONV
|
||||
"cp1250\0"
|
||||
"windows1250\0"
|
||||
"\0\40"
|
||||
@@ -239,6 +240,7 @@
|
||||
"\20\105\163\330\64\324\324\145\315\65\330\144\243\315\66\334\334\145\330\67"
|
||||
"\340\204\43\316\100\344\224\143\316\71\350\244\243\316\72\205\265\343\316\73"
|
||||
"\21\305\203\330\74\364\330\145\317\75\370\344\243\317\76\374\340\65\362\77"
|
||||
+#endif
|
||||
|
||||
"koi8r\0"
|
||||
"\0\40"
|
||||
75
toolchain/musl/patches/901-crypt_size_hack.patch
Normal file
75
toolchain/musl/patches/901-crypt_size_hack.patch
Normal file
@@ -0,0 +1,75 @@
|
||||
--- a/src/crypt/crypt_sha512.c
|
||||
+++ b/src/crypt/crypt_sha512.c
|
||||
@@ -13,6 +13,17 @@
|
||||
#include <string.h>
|
||||
#include <stdint.h>
|
||||
|
||||
+#ifdef CRYPT_SIZE_HACK
|
||||
+#include <errno.h>
|
||||
+
|
||||
+char *__crypt_sha512(const char *key, const char *setting, char *output)
|
||||
+{
|
||||
+ errno = ENOSYS;
|
||||
+ return NULL;
|
||||
+}
|
||||
+
|
||||
+#else
|
||||
+
|
||||
/* public domain sha512 implementation based on fips180-3 */
|
||||
/* >=2^64 bits messages are not supported (about 2000 peta bytes) */
|
||||
|
||||
@@ -369,3 +380,4 @@ char *__crypt_sha512(const char *key, co
|
||||
return "*";
|
||||
return p;
|
||||
}
|
||||
+#endif
|
||||
--- a/src/crypt/crypt_blowfish.c
|
||||
+++ b/src/crypt/crypt_blowfish.c
|
||||
@@ -50,6 +50,17 @@
|
||||
#include <string.h>
|
||||
#include <stdint.h>
|
||||
|
||||
+#ifdef CRYPT_SIZE_HACK
|
||||
+#include <errno.h>
|
||||
+
|
||||
+char *__crypt_blowfish(const char *key, const char *setting, char *output)
|
||||
+{
|
||||
+ errno = ENOSYS;
|
||||
+ return NULL;
|
||||
+}
|
||||
+
|
||||
+#else
|
||||
+
|
||||
typedef uint32_t BF_word;
|
||||
typedef int32_t BF_word_signed;
|
||||
|
||||
@@ -804,3 +815,4 @@ char *__crypt_blowfish(const char *key,
|
||||
|
||||
return "*";
|
||||
}
|
||||
+#endif
|
||||
--- a/src/crypt/crypt_sha256.c
|
||||
+++ b/src/crypt/crypt_sha256.c
|
||||
@@ -13,6 +13,17 @@
|
||||
#include <string.h>
|
||||
#include <stdint.h>
|
||||
|
||||
+#ifdef CRYPT_SIZE_HACK
|
||||
+#include <errno.h>
|
||||
+
|
||||
+char *__crypt_sha256(const char *key, const char *setting, char *output)
|
||||
+{
|
||||
+ errno = ENOSYS;
|
||||
+ return NULL;
|
||||
+}
|
||||
+
|
||||
+#else
|
||||
+
|
||||
/* public domain sha256 implementation based on fips180-3 */
|
||||
|
||||
struct sha256 {
|
||||
@@ -320,3 +331,4 @@ char *__crypt_sha256(const char *key, co
|
||||
return "*";
|
||||
return p;
|
||||
}
|
||||
+#endif
|
||||
Reference in New Issue
Block a user