lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <20220419004219.GA3952301@paulmck-ThinkPad-P17-Gen-1>
Date:   Mon, 18 Apr 2022 17:42:19 -0700
From:   "Paul E. McKenney" <paulmck@...nel.org>
To:     linux-kernel@...r.kernel.org
Cc:     gwml@...r.gnuweeb.org, kernel-team@...com, w@....eu
Subject: [PATCH nolibc 0/61] nolibc updates for v5.19

Hello!

This series adds a number of library functions and splits this library
into multiple files.

1.	use pselect6 on RISCV, courtesy of Willy Tarreau.

2.	guard the main file against multiple inclusion, courtesy of
	Willy Tarreau.

3.	move the standard type definitions to std.h, courtesy of Willy
	Tarreau.

4.	split syscall-specific definitions into their own files, courtesy
	of Willy Tarreau.

5.	split arch-specific code into individual files, courtesy of
	Willy Tarreau.

6.	split the syscall definitions into their own file, courtesy of
	Willy Tarreau.

7.	extract the stdlib-specific functions to their own file, courtesy
	of Willy Tarreau.

8.	split the string functions into string.h, courtesy of Willy
	Tarreau.

9.	split the is* functions to ctype.h, courtesy of Willy Tarreau.

10.	add the missing is* functions, courtesy of Willy Tarreau.

11.	move the FD_* functions to macros in types.h, courtesy of Willy
	Tarreau.

12.	make FD_SETSIZE configurable, courtesy of Willy Tarreau.

13.	move makedev to types.h and make it a macro, courtesy of Willy
	Tarreau.

14.	move ltoa() to stdlib.h, courtesy of Willy Tarreau.

15.	replace the ltoa() function with more efficient ones, courtesy
	of Willy Tarreau.

16.	add i64toa() and u64toa(), courtesy of Willy Tarreau.

17.	add utoh() and u64toh(), courtesy of Willy Tarreau.

18.	add a minimal set of stdio functions, courtesy of Willy Tarreau.

19.	add stdin/stdout/stderr and fget*/fput* functions, courtesy of
	Willy Tarreau.

20.	add fwrite() to stdio, courtesy of Willy Tarreau.

21.	add a minimal [vf]printf() implementation, courtesy of Willy
	Tarreau.

22.	define EXIT_SUCCESS and EXIT_FAILURE, courtesy of Willy Tarreau.

23.	add perror() to report the errno value, courtesy of Willy Tarreau.

24.	make open() take a vararg on the 3rd argument, courtesy of
	Willy Tarreau.

25.	avoid a 64-bit shift in u64toh_r(), courtesy of Willy Tarreau.

26.	make raise() use the lower level syscalls only, courtesy of
	Willy Tarreau.

27.	make getpgrp(), getpid(), gettid() not set errno, courtesy of
	Willy Tarreau.

28.	use unidirectional variants for memcpy(), courtesy of Willy
	Tarreau.

29.	slightly simplify memmove(), courtesy of Willy Tarreau.

30.	add strncpy() and strlcpy(), courtesy of Willy Tarreau.

31.	add tiny versions of strncat() and strlcat(), courtesy of Willy
	Tarreau.

32.	move exported functions to their own section, courtesy of Willy
	Tarreau.

33.	mark the _start symbol as weak, courtesy of Willy Tarreau.

34.	define PATH_MAX and MAXPATHLEN, courtesy of Willy Tarreau.

35.	export memset() and memmove(), courtesy of Willy Tarreau.

36.	extract errno.h from sys.h, courtesy of Willy Tarreau.

37.	extract msleep(), sleep(), tcsetpgrp() to unistd.h, courtesy of
	Willy Tarreau.

38.	add usleep(), courtesy of Willy Tarreau.

39.	move raise() to signal.h, courtesy of Willy Tarreau.

40.	create time.h with time(), courtesy of Willy Tarreau.

41.	also mention how to build by just setting the include path,
	courtesy of Willy Tarreau.

42.	implement abort(), courtesy of Willy Tarreau.

43.	make printf(%s) accept NULL, courtesy of Willy Tarreau.

44.	add a simple getenv() implementation, courtesy of Willy Tarreau.

45.	add support for '%p' to vfprintf(), courtesy of Willy Tarreau.

46.	add strcmp() and strncmp(), courtesy of Willy Tarreau.

47.	add syscall definition for getppid(), courtesy of Willy Tarreau.

48.	add poll() and waitpid() flag definitions, courtesy of Willy
	Tarreau.

49.	add a makefile to install headers, courtesy of Willy Tarreau.

50.	add the nolibc subdir to the common Makefile, courtesy of Willy
	Tarreau.

51.	do not use __builtin_strlen() at -O0, courtesy of Willy Tarreau.

52.	only reference the external environ when inlined, courtesy of
	Willy Tarreau.

53.	x86-64: Update System V ABI document link, courtesy of Ammar
	Faizi.

54.	Replace `asm` with `__asm__`, courtesy of Ammar Faizi.

55.	Remove .global _start from the entry point code, courtesy of
	Ammar Faizi.

56.	i386: Implement syscall with 6 arguments, courtesy of Ammar Faizi.

57.	Implement `mmap()` and `munmap()`, courtesy of Ammar Faizi.

58.	Implement `offsetof()` and `container_of()` macro, courtesy of
	Ammar Faizi.

59.	Implement `malloc()`, `calloc()`, `realloc()` and `free()`,
	courtesy of Ammar Faizi.

60.	Implement `strnlen()`, courtesy of Ammar Faizi.

61.	Implement `strdup()` and `strndup()`, courtesy of Ammar Faizi.

						Thanx, Paul

------------------------------------------------------------------------

 b/tools/Makefile                      |    4 
 b/tools/include/nolibc/Makefile       |   42 
 b/tools/include/nolibc/arch-aarch64.h |  199 ++
 b/tools/include/nolibc/arch-arm.h     |  204 ++
 b/tools/include/nolibc/arch-i386.h    |  196 ++
 b/tools/include/nolibc/arch-mips.h    |  215 ++
 b/tools/include/nolibc/arch-riscv.h   |  204 ++
 b/tools/include/nolibc/arch-x86_64.h  |  215 ++
 b/tools/include/nolibc/arch.h         |   32 
 b/tools/include/nolibc/ctype.h        |   22 
 b/tools/include/nolibc/errno.h        |   27 
 b/tools/include/nolibc/nolibc.h       |    3 
 b/tools/include/nolibc/signal.h       |   22 
 b/tools/include/nolibc/std.h          |   49 
 b/tools/include/nolibc/stdio.h        |   57 
 b/tools/include/nolibc/stdlib.h       |   85 +
 b/tools/include/nolibc/string.h       |  107 +
 b/tools/include/nolibc/sys.h          | 1189 +++++++++++++++
 b/tools/include/nolibc/time.h         |   28 
 b/tools/include/nolibc/types.h        |  133 +
 b/tools/include/nolibc/unistd.h       |   46 
 tools/include/nolibc/arch-aarch64.h   |   76 -
 tools/include/nolibc/arch-arm.h       |   60 
 tools/include/nolibc/arch-i386.h      |   81 -
 tools/include/nolibc/arch-mips.h      |   64 
 tools/include/nolibc/arch-riscv.h     |   76 -
 tools/include/nolibc/arch-x86_64.h    |   76 -
 tools/include/nolibc/ctype.h          |   79 +
 tools/include/nolibc/nolibc.h         | 2557 ----------------------------------
 tools/include/nolibc/stdio.h          |  297 +++
 tools/include/nolibc/stdlib.h         |  484 +++++-
 tools/include/nolibc/string.h         |  200 ++
 tools/include/nolibc/sys.h            |  138 +
 tools/include/nolibc/types.h          |   76 -
 tools/include/nolibc/unistd.h         |    8 
 35 files changed, 4480 insertions(+), 2871 deletions(-)

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ