example.com
Sign In Sign Up
Manage this list Sign In Sign Up

Keyboard Shortcuts

Thread View

  • j: Next unread message
  • k: Previous unread message
  • j a: Jump to all threads
  • j l: Jump to MailingList overview

devel

Thread Start a new thread
Download
Threads by month
  • ----- 2025 -----
  • September
  • August
  • July
  • June
  • May
  • April
  • March
  • February
  • January
  • ----- 2024 -----
  • December
  • November
  • October
  • September
  • August
  • July
  • June
  • May
  • April
  • March
  • February
  • January
  • ----- 2023 -----
  • December
  • November
  • October
  • September
  • August
  • July
  • June
  • May
  • April
  • March
  • February
  • January
  • ----- 2022 -----
  • December
  • November
  • October
  • September
  • August
  • July
  • June
  • May
  • April
  • March
  • February
  • January
  • ----- 2021 -----
  • December
  • November
  • October
  • September
  • August
  • July
  • June
  • May
  • April
  • March
  • February
  • January
  • ----- 2020 -----
  • December
  • November
  • October
  • September
  • August
  • July
  • June
  • May
  • April
  • March
  • February
  • January
  • ----- 2019 -----
  • December
  • November
  • October
  • September
  • August
  • July
  • June
  • May
  • April
  • March
  • February
  • January
  • ----- 2018 -----
  • December
  • November
  • October
  • September
  • August
  • July
  • June
  • May
  • April
  • March
  • February
  • January
  • ----- 2017 -----
  • December
  • November
  • October
  • September
  • August
  • July
  • June
  • May
  • April
  • March
  • February
  • January
  • ----- 2016 -----
  • December
  • November
  • October
  • September
  • August
  • July
  • June
  • May
  • April
  • March
  • February
  • January
  • ----- 2015 -----
  • December
  • November
  • October
  • September
  • August
  • July
  • June
  • May
  • April
  • March
  • February
  • January
  • ----- 2014 -----
  • December
  • November
  • October
  • September
  • August
devel@uclibc-ng.org

  • 1171 discussions
uClibc-ng - small C library for embedded systems branch master updated. 33b126af0e3036d554ef993acfe3f204066e2376
by wbx@helium.waldemar-brodkorb.de 28 Dec '14

28 Dec '14
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "uClibc-ng - small C library for embedded systems". The branch, master has been updated via 33b126af0e3036d554ef993acfe3f204066e2376 (commit) from cfc523ea8d207ebfd3cf683120d34527b6d08cb6 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit 33b126af0e3036d554ef993acfe3f204066e2376 Author: Waldemar Brodkorb <wbx(a)uclibc-ng.org> Date: Sun Dec 28 17:09:15 2014 +0100 relocation fixes From OpenWrt: https://dev.openwrt.org/browser/trunk/toolchain/uClibc/patches-0.9.33.2/613… ----------------------------------------------------------------------- Summary of changes: ldso/ldso/mips/elfinterp.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ldso/ldso/mips/elfinterp.c b/ldso/ldso/mips/elfinterp.c index dfe37c5..6310c77 100644 --- a/ldso/ldso/mips/elfinterp.c +++ b/ldso/ldso/mips/elfinterp.c @@ -239,12 +239,12 @@ int _dl_parse_relocation_information(struct dyn_elf *xpnt, case R_MIPS_TLS_DTPMOD64: case R_MIPS_TLS_DTPMOD32: if (tls_tpnt) - *(ElfW(Word) *)reloc_addr = tls_tpnt->l_tls_modid; + *(ElfW(Addr) *)reloc_addr = tls_tpnt->l_tls_modid; break; case R_MIPS_TLS_DTPREL64: case R_MIPS_TLS_DTPREL32: - *(ElfW(Word) *)reloc_addr += + *(ElfW(Addr) *)reloc_addr += TLS_DTPREL_VALUE (symbol_addr); break; hooks/post-receive -- uClibc-ng - small C library for embedded systems
1 0
0 0
uClibc-ng - small C library for embedded systems branch master updated. cfc523ea8d207ebfd3cf683120d34527b6d08cb6
by wbx@helium.waldemar-brodkorb.de 28 Dec '14

28 Dec '14
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "uClibc-ng - small C library for embedded systems". The branch, master has been updated via cfc523ea8d207ebfd3cf683120d34527b6d08cb6 (commit) from e6faae7a3082a7a09626ce579da16d7b12fab2bf (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit cfc523ea8d207ebfd3cf683120d34527b6d08cb6 Author: Waldemar Brodkorb <wbx(a)uclibc-ng.org> Date: Sun Dec 28 17:02:28 2014 +0100 sparc64 support was removed recently Remove leftover code. ----------------------------------------------------------------------- Summary of changes: ldso/include/dl-syscall.h | 4 ---- 1 file changed, 4 deletions(-) diff --git a/ldso/include/dl-syscall.h b/ldso/include/dl-syscall.h index 675b93a..6a89dff 100644 --- a/ldso/include/dl-syscall.h +++ b/ldso/include/dl-syscall.h @@ -25,11 +25,7 @@ extern int _dl_errno; /* Pull in whatever this particular arch's kernel thinks the kernel version of * struct stat should look like. It turns out that each arch has a different * opinion on the subject, and different kernel revs use different names... */ -#if defined(__sparc_v9__) && (__WORDSIZE == 64) -#define kernel_stat64 stat -#else #define kernel_stat stat -#endif #include <bits/kernel_stat.h> #include <bits/kernel_types.h> hooks/post-receive -- uClibc-ng - small C library for embedded systems
1 0
0 0
uClibc-ng - small C library for embedded systems branch master updated. e6faae7a3082a7a09626ce579da16d7b12fab2bf
by wbx@helium.waldemar-brodkorb.de 26 Dec '14

26 Dec '14
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "uClibc-ng - small C library for embedded systems". The branch, master has been updated via e6faae7a3082a7a09626ce579da16d7b12fab2bf (commit) from da932d59161a2d833596be5443c81ff244d2db58 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit e6faae7a3082a7a09626ce579da16d7b12fab2bf Author: Waldemar Brodkorb <wbx(a)uclibc-ng.org> Date: Fri Dec 26 18:43:07 2014 +0100 don't optimize for special mips cpu When building optimized code for Lemote Yeelong system, a conflict occurs. Better use optimized flags in your buildsystem, not in uClibc-ng. ----------------------------------------------------------------------- Summary of changes: Rules.mak | 8 -------- 1 file changed, 8 deletions(-) diff --git a/Rules.mak b/Rules.mak index 72e55f5..218eb1f 100644 --- a/Rules.mak +++ b/Rules.mak @@ -404,14 +404,6 @@ endif ifeq ($(TARGET_ARCH),mips) OPTIMIZATION+=-mno-split-addresses - CPU_CFLAGS-$(CONFIG_MIPS_ISA_1)+=-mips1 - CPU_CFLAGS-$(CONFIG_MIPS_ISA_2)+=-mips2 -mtune=mips2 - CPU_CFLAGS-$(CONFIG_MIPS_ISA_3)+=-mips3 -mtune=mips3 - CPU_CFLAGS-$(CONFIG_MIPS_ISA_4)+=-mips4 -mtune=mips4 - CPU_CFLAGS-$(CONFIG_MIPS_ISA_MIPS32)+=-mips32 -mtune=mips32 - CPU_CFLAGS-$(CONFIG_MIPS_ISA_MIPS32R2)+=-march=mips32r2 -mtune=mips32r2 - CPU_CFLAGS-$(CONFIG_MIPS_ISA_MIPS64)+=-mips64 -mtune=mips32 - CPU_CFLAGS-$(CONFIG_MIPS_ISA_MIPS64R2)+=-mips64r2 -mtune=mips64r2 ifeq ($(strip $(ARCH_BIG_ENDIAN)),y) CPU_LDFLAGS-$(CONFIG_MIPS_N64_ABI)+=-Wl,-melf64btsmip CPU_LDFLAGS-$(CONFIG_MIPS_O32_ABI)+=-Wl,-melf32btsmip hooks/post-receive -- uClibc-ng - small C library for embedded systems
1 0
0 0
uClibc-ng - small C library for embedded systems branch master updated. da932d59161a2d833596be5443c81ff244d2db58
by wbx@helium.waldemar-brodkorb.de 25 Dec '14

25 Dec '14
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "uClibc-ng - small C library for embedded systems". The branch, master has been updated via da932d59161a2d833596be5443c81ff244d2db58 (commit) via 638a23483b40c5b606ee323e6612e7e454e5154b (commit) via bff3a664e6a2a367bf159c3089df1fe6f093bfb1 (commit) via f8e05f3850e51673522216f23533bf7146359dcd (commit) via 067637375658047d70c296606ae17ef0bc86499d (commit) via d6da534cbf05dc4d09221881afd49b275ca7cd29 (commit) via 926a698c5ac69b599014ce147cc814343f0aaa4f (commit) from 88842f7126daccf205204be05d3143c73fa0624d (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit da932d59161a2d833596be5443c81ff244d2db58 Merge: 88842f7 638a234 Author: Waldemar Brodkorb <wbx(a)uclibc-ng.org> Date: Thu Dec 25 22:48:20 2014 +0100 merge upstream changes ----------------------------------------------------------------------- Summary of changes: Makefile.in | 2 +- extra/Configs/Config.in | 28 +++++++++---------- extra/config/conf.c | 5 ++-- include/getopt.h | 2 +- libc/stdio/_fpmaxtostr.c | 13 ++++----- libc/sysdeps/linux/common/bits/getopt.h | 2 +- libc/unistd/Makefile.in | 14 +++++++--- libc/unistd/getopt.c | 2 ++ test/Rules.mak | 3 +++ test/misc/Makefile.in | 8 ++++++ test/misc/bug-glob2.c | 1 - test/misc/tst-inotify.c | 7 +++-- test/misc/tst-utmp.c | 45 +++++++++++++++++-------------- test/nptl/tst-cancel7.c | 7 +++-- test/nptl/tst-mqueue7.c | 6 +++-- test/pwd_grp/getgroups.c | 11 ++++---- test/stdlib/Makefile.in | 5 ++-- test/stdlib/test-mkostemp-O_CLOEXEC.c | 5 ++++ test/test-skeleton.c | 17 +++++++++++- 19 files changed, 116 insertions(+), 67 deletions(-) diff --git a/Makefile.in b/Makefile.in index 3b8e043..5d60dda 100644 --- a/Makefile.in +++ b/Makefile.in @@ -276,7 +276,7 @@ HEADERS_RM-$(UCLIBC_HAS_GETTEXT_AWARENESS) += libintl.h HEADERS_RM-$(UCLIBC_HAS_GLIBC_CUSTOM_PRINTF) += printf.h HEADERS_RM-$(UCLIBC_HAS_GLOB) += glob.h HEADERS_RM-$(UCLIBC_HAS_GNU_ERROR) += error.h -HEADERS_RM-$(UCLIBC_HAS_GNU_GETOPT)$(UCLIBC_HAS_GETOPT_LONG) += getopt.h +HEADERS_RM-$(UCLIBC_HAS_GETOPT_LONG) += getopt.h HEADERS_RM-$(UCLIBC_HAS_IPV6) += netinet/ip6.h netinet/icmp6.h HEADERS_RM-$(UCLIBC_HAS_BACKTRACE) += execinfo.h HEADERS_RM-$(UCLIBC_HAS_LOCALE) += iconv.h bits/uClibc_ctype.h diff --git a/extra/Configs/Config.in b/extra/Configs/Config.in index 2dbd455..fab0ddc 100644 --- a/extra/Configs/Config.in +++ b/extra/Configs/Config.in @@ -1449,6 +1449,13 @@ config UCLIBC_HAS_STRING_ARCH_OPT These are small and fast, the only reason _not_ to say Y here is for debugging purposes. +config UCLIBC_HAS_STDIO_FUTEXES + bool "Use futexes for multithreaded I/O locking" + depends on UCLIBC_HAS_THREADS_NATIVE + help + If you want to compile uClibc to use futexes for low-level + I/O locking, answer Y. Otherwise, answer N. + config UCLIBC_HAS_CTYPE_TABLES bool "Use Table Versions Of 'ctype.h' Functions." default y @@ -1905,32 +1912,25 @@ config UCLIBC_HAS_GNU_GETOPT help Answer Y if you want to include full gnu getopt() instead of a (much smaller) SUSv3 compatible getopt(). + Note that getopt_long, getopt_long_only as well as getsubopt + are implemented on top of this choice. Most people will answer Y. -config UCLIBC_HAS_STDIO_FUTEXES - bool "Use futexes for multithreaded I/O locking" - depends on UCLIBC_HAS_THREADS_NATIVE - help - If you want to compile uClibc to use futexes for low-level - I/O locking, answer Y. Otherwise, answer N. - config UCLIBC_HAS_GETOPT_LONG - bool "Support getopt_long/getopt_long_only" - depends on !UCLIBC_HAS_GNU_GETOPT + bool "Support getopt_long/getopt_long_only (glibc-compat)" default y help - Answer Y if you want to include getopt_long[_only() used by many - apps, even busybox. + Answer Y if you want to include getopt_long[_only()] used by many + apps. Most people will answer Y. config UCLIBC_HAS_GNU_GETSUBOPT - bool "Support glibc getsubopt" + bool "Support getsubopt" default y help - Answer Y if you want to include glibc getsubopt() instead of a - smaller SUSv3 compatible getsubopt(). + Answer Y if you want to include getsubopt(). Most people will answer Y. endmenu diff --git a/extra/config/conf.c b/extra/config/conf.c index db09053..b24c1c3 100644 --- a/extra/config/conf.c +++ b/extra/config/conf.c @@ -10,7 +10,6 @@ #include <string.h> #include <time.h> #include <unistd.h> -#include <getopt.h> #include <sys/stat.h> #include <sys/time.h> #include <errno.h> @@ -447,7 +446,7 @@ static void check_conf(struct menu *menu) } #if 00 // || !defined __UCLIBC__ || \ - (defined UCLIBC_HAS_GETOPT_LONG || defined UCLIBC_HAS_GNU_GETOPT) + defined __UCLIBC_HAS_GETOPT_LONG__ static struct option long_opts[] = { {"oldaskconfig", no_argument, NULL, oldaskconfig}, {"oldconfig", no_argument, NULL, oldconfig}, @@ -526,7 +525,7 @@ int main(int ac, char **av) tty_stdio = isatty(0) && isatty(1) && isatty(2); #if 00// !defined __UCLIBC__ || \ - (defined UCLIBC_HAS_GETOPT_LONG || defined UCLIBC_HAS_GNU_GETOPT) + defined __UCLIBC_HAS_GETOPT_LONG__ while ((opt = getopt_long(ac, av, "", long_opts, NULL)) != -1) #else char *gch = "asonymArDSld"; diff --git a/include/getopt.h b/include/getopt.h index a682f9c..de9da26 100644 --- a/include/getopt.h +++ b/include/getopt.h @@ -1,4 +1,4 @@ -/* This file will not be installed if not using gnu getopt. */ +/* This file will not be installed if not using getopt_long. */ #include <bits/getopt.h> diff --git a/libc/stdio/_fpmaxtostr.c b/libc/stdio/_fpmaxtostr.c index f7ea792..3580584 100644 --- a/libc/stdio/_fpmaxtostr.c +++ b/libc/stdio/_fpmaxtostr.c @@ -45,11 +45,6 @@ */ #define isnan(x) ((x) != (x)) -/* Without seminumerical functions to examine the sign bit, this is - * about the best we can do to test for '-0'. - */ -#define zeroisnegative(x) ((1./(x)) < 0) - /*****************************************************************************/ /* Don't change anything that follows peroid!!! ;-) */ /*****************************************************************************/ @@ -262,7 +257,13 @@ ssize_t _fpmaxtostr(FILE * fp, __fpmax_t x, struct printf_info *info, if (x == 0) { /* Handle 0 now to avoid false positive. */ #ifdef __UCLIBC_HAVE_SIGNED_ZERO__ - if (zeroisnegative(x)) { /* Handle 'signed' zero. */ + union { + double x; + struct { + unsigned int l1, l2; + } i; + } u = {x}; + if (u.i.l1 ^ u.i.l2) { /* Handle 'signed' zero. */ *sign_str = '-'; } #endif /* __UCLIBC_HAVE_SIGNED_ZERO__ */ diff --git a/libc/sysdeps/linux/common/bits/getopt.h b/libc/sysdeps/linux/common/bits/getopt.h index a49f023..dababe0 100644 --- a/libc/sysdeps/linux/common/bits/getopt.h +++ b/libc/sysdeps/linux/common/bits/getopt.h @@ -126,7 +126,7 @@ extern int getopt (int ___argc, char *const *___argv, const char *__shortopts) __THROW; libc_hidden_proto(getopt) -#if defined __UCLIBC_HAS_GNU_GETOPT__ || defined __UCLIBC_HAS_GETOPT_LONG__ +#if defined __UCLIBC_HAS_GETOPT_LONG__ #ifndef __need_getopt extern int getopt_long (int ___argc, char *const *___argv, const char *__shortopts, diff --git a/libc/unistd/Makefile.in b/libc/unistd/Makefile.in index b15d60a..659008d 100644 --- a/libc/unistd/Makefile.in +++ b/libc/unistd/Makefile.in @@ -16,10 +16,16 @@ OMIT-$(ARCH_USE_MMU) += __exec_alloc.c OMIT-$(if $(UCLIBC_SUSV3_LEGACY),,y) += ualarm.c usleep.c #OMIT-$(UCLIBC_HAS_THREADS_NATIVE) += sleep.c -# XXX: GNU_GETOPT comes with getopt_long unconditionally, which is wrong -GO_LONG := $(if $(UCLIBC_HAS_GNU_GETOPT),getopt_long-simple.c) -OMIT-y += $(if $(UCLIBC_HAS_GNU_GETOPT),getopt-susv3.c $(GO_LONG),getopt.c) -OMIT-y += $(if $(UCLIBC_HAS_GNU_GETSUBOPT),getsubopt-susv3.c,getsubopt.c) +ifeq ($(UCLIBC_HAS_GNU_GETOPT),y) +# GNU getopt family +OMIT-y += getopt-susv3.c getopt_long-simple.c getsubopt-susv3.c +OMIT-y += $(if $(UCLIBC_HAS_GNU_GETSUBOPT),,getsubopt.c) +else +# SuS getopt family +OMIT-y += getopt.c getsubopt.c +OMIT-y += $(if $(UCLIBC_HAS_GETOPT_LONG),,getopt_long-simple.c) +OMIT-y += $(if $(UCLIBC_HAS_GNU_GETSUBOPT),,getsubopt-susv3.c) +endif CSRC-y := $(filter-out $(OMIT-y),$(CSRC-y)) diff --git a/libc/unistd/getopt.c b/libc/unistd/getopt.c index 3944c7c..f63482b 100644 --- a/libc/unistd/getopt.c +++ b/libc/unistd/getopt.c @@ -1162,6 +1162,7 @@ getopt (int argc, char *const *argv, const char *optstring) } libc_hidden_def(getopt) +#if defined __UCLIBC_HAS_GETOPT_LONG__ int getopt_long (int argc, char *const *argv, const char *options, const struct option *long_options, int *opt_index) @@ -1180,5 +1181,6 @@ getopt_long_only (int argc, char *const *argv, const char *options, { return _getopt_internal (argc, argv, options, long_options, opt_index, 1); } +#endif /* __UCLIBC_HAS_GETOPT_LONG__ */ #endif /* Not ELIDE_CODE. */ diff --git a/test/Rules.mak b/test/Rules.mak index ed72db2..805a349 100644 --- a/test/Rules.mak +++ b/test/Rules.mak @@ -78,6 +78,9 @@ CFLAGS := -nostdinc -I$(top_builddir)$(LOCAL_INSTALL_PATH)/usr/include CFLAGS += $(XCOMMON_CFLAGS) $(KERNEL_INCLUDES) $(CC_INC) CFLAGS += $(OPTIMIZATION) $(CPU_CFLAGS) $(XWARNINGS) +$(eval $(call check-gcc-var,-Wno-missing-field-initializers)) +CFLAGS += $(CFLAG_-Wno-missing-field-initializers) + # Can't add $(OPTIMIZATION) here, it may be target-specific. # Just adding -Os for now. HOST_CFLAGS += $(XCOMMON_CFLAGS) -Os $(XWARNINGS) -std=gnu99 diff --git a/test/misc/Makefile.in b/test/misc/Makefile.in index 3dfe617..04b677f 100644 --- a/test/misc/Makefile.in +++ b/test/misc/Makefile.in @@ -13,6 +13,14 @@ TESTS_DISABLED += tst-statfs # assuming host has LFS on endif CFLAGS_dirent64 := -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 +ifeq ($(UCLIBC_LINUX_SPECIFIC),) +TESTS_DISABLED += tst-inotify +endif + +ifeq ($(UCLIBC_HAS_GLOB),) +TESTS_DISABLED += bug-glob2 +endif + DODIFF_dirent := 1 DODIFF_dirent64 := 1 DODIFF_tst-statfs := 1 diff --git a/test/misc/bug-glob2.c b/test/misc/bug-glob2.c index 98e3bf7..069891b 100644 --- a/test/misc/bug-glob2.c +++ b/test/misc/bug-glob2.c @@ -18,7 +18,6 @@ <http://www.gnu.org/licenses/>. */ #include <errno.h> -#include <error.h> #include <dirent.h> #include <glob.h> #include <stdlib.h> diff --git a/test/misc/tst-inotify.c b/test/misc/tst-inotify.c index 9d940f7..f9f6830 100644 --- a/test/misc/tst-inotify.c +++ b/test/misc/tst-inotify.c @@ -11,7 +11,6 @@ #include <string.h> #include <unistd.h> #include <errno.h> -#include <error.h> #include <inttypes.h> #include <sys/inotify.h> #include <sys/fcntl.h> @@ -39,7 +38,7 @@ do_test(void) /* nonblocking inotify should return immediately with no events */ ret = read(ifd, &e, sizeof(e)); if (ret != -1 || errno != EAGAIN) { - error(0, 0, "first read() returned %d", ret); + fprintf(stderr, "first read() returned %d\n", ret); result = 1; } @@ -49,12 +48,12 @@ do_test(void) /* now check whether our event was seen */ ret = read(ifd, &e, sizeof(e)); if (ret != sizeof(e)) { - error(0, 0, "second read() returned %d", ret); + fprintf(stderr, "second read() returned %d\n", ret); result = 1; } if (!(e.mask & IN_DELETE_SELF)) { - error(0, 0, "incorrect event mask: %" PRIx32, e.mask); + fprintf(stderr, "incorrect event mask: %" PRIx32 "\n", e.mask); result = 1; } diff --git a/test/misc/tst-utmp.c b/test/misc/tst-utmp.c index ca92cf2..08a6f8e 100644 --- a/test/misc/tst-utmp.c +++ b/test/misc/tst-utmp.c @@ -18,7 +18,6 @@ <http://www.gnu.org/licenses/>. */ #include <errno.h> -#include <error.h> #include <stdlib.h> #include <string.h> #include <sys/types.h> @@ -69,8 +68,11 @@ do_prepare (int argc, char *argv[]) /* Open our test file. */ fd = mkstemp (name); - if (fd == -1) - error (EXIT_FAILURE, errno, "cannot open test file `%s'", name); + if (fd == -1) { + fprintf (stderr, "cannot open test file `%s': ", name); + perror (NULL); + exit (EXIT_FAILURE); + } } struct utmp entry[] = @@ -110,7 +112,7 @@ do_init (void) { if (pututline (&entry[n]) == NULL) { - error (0, errno, "cannot write UTMP entry"); + perror ("cannot write UTMP entry"); return 1; } } @@ -135,7 +137,7 @@ do_check (void) if (n < num_entries && memcmp (ut, &entry[n], sizeof (struct utmp))) { - error (0, 0, "UTMP entry does not match"); + fprintf (stderr, "UTMP entry does not match\n"); return 1; } @@ -144,7 +146,7 @@ do_check (void) if (n != num_entries) { - error (0, 0, "number of UTMP entries is incorrect"); + fprintf (stderr, "number of UTMP entries is incorrect\n"); return 1; } @@ -176,7 +178,7 @@ simulate_login (const char *line, const char *user) if (pututline (&entry[n]) == NULL) { - error (0, errno, "cannot write UTMP entry"); + perror ("cannot write UTMP entry"); return 1; } @@ -186,7 +188,7 @@ simulate_login (const char *line, const char *user) } } - error (0, 0, "no entries available"); + fprintf (stderr, "no entries available\n"); return 1; } @@ -210,7 +212,7 @@ simulate_logout (const char *line) if (pututline (&entry[n]) == NULL) { - error (0, errno, "cannot write UTMP entry"); + perror ("cannot write UTMP entry"); return 1; } @@ -220,7 +222,7 @@ simulate_logout (const char *line) } } - error (0, 0, "no entry found for `%s'", line); + fprintf (stderr, "no entry found for `%s'\n", line); return 1; } @@ -237,7 +239,8 @@ check_login (const char *line) up = getutline (&ut); if (up == NULL) { - error (0, errno, "cannot get entry for line `%s'", line); + fprintf (stderr, "cannot get entry for line `%s': ", line); + perror(NULL); return 1; } @@ -249,7 +252,7 @@ check_login (const char *line) { if (memcmp (up, &entry[n], sizeof (struct utmp))) { - error (0, 0, "UTMP entry does not match"); + fprintf (stderr, "UTMP entry does not match\n"); return 1; } @@ -257,7 +260,7 @@ check_login (const char *line) } } - error (0, 0, "bogus entry for line `%s'", line); + fprintf (stderr, "bogus entry for line `%s'\n", line); return 1; } @@ -271,7 +274,7 @@ check_logout (const char *line) strcpy (ut.ut_line, line); if (getutline (&ut) != NULL) { - error (0, 0, "bogus login entry for `%s'", line); + fprintf (stderr, "bogus login entry for `%s'\n", line); return 1; } @@ -294,7 +297,8 @@ check_id (const char *id) up = getutid (&ut); if (up == NULL) { - error (0, errno, "cannot get entry for ID `%s'", id); + fprintf (stderr, "cannot get entry for ID `%s': ", id); + perror (NULL); return 1; } @@ -306,7 +310,7 @@ check_id (const char *id) { if (memcmp (up, &entry[n], sizeof (struct utmp))) { - error (0, 0, "UTMP entry does not match"); + fprintf (stderr, "UTMP entry does not match\n"); return 1; } @@ -314,7 +318,7 @@ check_id (const char *id) } } - error (0, 0, "bogus entry for ID `%s'", id); + fprintf (stderr, "bogus entry for ID `%s'\n", id); return 1; } @@ -331,7 +335,8 @@ check_type (int type) up = getutid (&ut); if (up == NULL) { - error (0, errno, "cannot get entry for type `%d'", type); + fprintf (stderr, "cannot get entry for type `%d': ", type); + perror (NULL); return 1; } @@ -343,7 +348,7 @@ check_type (int type) { if (memcmp (up, &entry[n], sizeof (struct utmp))) { - error (0, 0, "UTMP entry does not match"); + fprintf (stderr, "UTMP entry does not match\n"); return 1; } @@ -351,7 +356,7 @@ check_type (int type) } } - error (0, 0, "bogus entry for type `%d'", type); + fprintf (stderr, "bogus entry for type `%d'\n", type); return 1; } diff --git a/test/nptl/tst-cancel7.c b/test/nptl/tst-cancel7.c index 3bdfa9f..fe543f7 100644 --- a/test/nptl/tst-cancel7.c +++ b/test/nptl/tst-cancel7.c @@ -196,13 +196,16 @@ do_cleanup (void) #define OPT_COMMAND 10000 #define OPT_PIDFILE 10001 #define CMDLINE_OPTIONS \ + "c:p:" +/* { "command", required_argument, NULL, OPT_COMMAND }, \ { "pidfile", required_argument, NULL, OPT_PIDFILE }, +*/ #define CMDLINE_PROCESS \ - case OPT_COMMAND: \ + case 'c': \ command = optarg; \ break; \ - case OPT_PIDFILE: \ + case 'p': \ pidfile = optarg; \ break; // #define CLEANUP_HANDLER do_cleanup () diff --git a/test/nptl/tst-mqueue7.c b/test/nptl/tst-mqueue7.c index e8d53ad..01d7cd7 100644 --- a/test/nptl/tst-mqueue7.c +++ b/test/nptl/tst-mqueue7.c @@ -32,10 +32,12 @@ static mqd_t after_exec = (mqd_t) -1; #define CMDLINE_OPTIONS \ + "a:" +/* { "after-exec", required_argument, NULL, OPT_AFTEREXEC }, - +*/ #define CMDLINE_PROCESS \ - case OPT_AFTEREXEC: \ + case 'a': \ after_exec = (mqd_t) strtoul (optarg, NULL, 0); \ break; diff --git a/test/pwd_grp/getgroups.c b/test/pwd_grp/getgroups.c index 5769b18..c343552 100644 --- a/test/pwd_grp/getgroups.c +++ b/test/pwd_grp/getgroups.c @@ -13,7 +13,6 @@ #include <sys/types.h> #include <pwd.h> #include <grp.h> -#include <err.h> /* The number of errors encountered so far. */ static int problems = 0; @@ -25,7 +24,7 @@ static void print_group(gid_t gid) grp = getgrgid(gid); if (grp == NULL) { - warn("cannot find name for group ID %u", gid); + fprintf(stderr, "cannot find name for group ID %u\n", gid); problems++; } @@ -46,12 +45,14 @@ static int xgetgroups(gid_t gid, int *n_groups, gid_t ** groups) /* Add 1 just in case max_n_groups is zero. */ g = (gid_t *) malloc(max_n_groups * sizeof(gid_t) + 1); - if (g == NULL) - err(EXIT_FAILURE, "out of memory"); + if (g == NULL) { + fprintf(stderr, "out of memory\n"); + exit(EXIT_FAILURE); + } ng = getgroups(max_n_groups, g); if (ng < 0) { - warn("cannot get supplemental group list"); + fprintf(stderr, "cannot get supplemental group list\n"); ++fail; free(g); } diff --git a/test/stdlib/Makefile.in b/test/stdlib/Makefile.in index b0c724a..135db6b 100644 --- a/test/stdlib/Makefile.in +++ b/test/stdlib/Makefile.in @@ -6,6 +6,7 @@ DODIFF_testatexit := 1 DODIFF_teston_exit := 1 DODIFF_teststrtol := 1 -ifeq ($(ARCH_USE_MMU),) -TESTS_DISABLED := test-mkostemp-O_CLOEXEC +TESTS_DISABLED := +ifeq ($(UCLIBC_HAS_PTY),) +TESTS_DISABLED += ptytest endif diff --git a/test/stdlib/test-mkostemp-O_CLOEXEC.c b/test/stdlib/test-mkostemp-O_CLOEXEC.c index 5652086..9ff229a 100644 --- a/test/stdlib/test-mkostemp-O_CLOEXEC.c +++ b/test/stdlib/test-mkostemp-O_CLOEXEC.c @@ -1,3 +1,4 @@ +#define _XOPEN_SOURCE_EXTENDED #include <stdio.h> #include <stdlib.h> #include <string.h> @@ -8,6 +9,10 @@ #include <sys/wait.h> #include <errno.h> +#if !defined __ARCH_USE_MMU__ +# define fork vfork +#endif + int main(int argc, char *argv[]) { int fd, status; char buff[5]; diff --git a/test/test-skeleton.c b/test/test-skeleton.c index 6d4a8b6..69ef99f 100644 --- a/test/test-skeleton.c +++ b/test/test-skeleton.c @@ -18,7 +18,6 @@ <http://www.gnu.org/licenses/>. */ #include <errno.h> -#include <getopt.h> #include <malloc.h> #include <search.h> #include <signal.h> @@ -46,6 +45,7 @@ #define OPT_DIRECT 1000 #define OPT_TESTDIR 1001 +#if 0 /* Not used in uClibc */ static struct option options[] = { #ifdef CMDLINE_OPTIONS @@ -55,6 +55,7 @@ static struct option options[] = { "test-dir", required_argument, NULL, OPT_TESTDIR }, { NULL, 0, NULL, 0 } }; +#endif /* PID of the test itself. */ static pid_t pid; @@ -144,7 +145,9 @@ signal_handler (int sig __attribute__ ((unused))) /* Wait for it to terminate. */ for (i = 0; i < 5; ++i) { +#ifdef __UCLIBC_HAS_REALTIME__ struct timespec ts; +#endif killed = waitpid (pid, &status, WNOHANG|WUNTRACED); if (killed != 0) break; @@ -153,9 +156,14 @@ signal_handler (int sig __attribute__ ((unused))) nanosleep() call return prematurely, all the better. We won't restart it since this probably means the child process finally died. */ +#ifdef __UCLIBC_HAS_REALTIME__ ts.tv_sec = 0; ts.tv_nsec = 100000000; nanosleep (&ts, NULL); +#else + /* No nanosleep, just sleep 1s instead of 0.1s */ + sleep(1); +#endif } if (killed != 0 && killed != pid) { @@ -234,7 +242,14 @@ main (int argc, char *argv[]) setbuf (stdout, NULL); #endif +#if 0 /* Not used in uClibc */ while ((opt = getopt_long (argc, argv, "+", options, NULL)) != -1) +#else +# ifndef CMDLINE_OPTIONS +# define CMDLINE_OPTIONS "" +# endif + while ((opt = getopt (argc, argv, "+" CMDLINE_OPTIONS)) >= 0) +#endif switch (opt) { case '?': hooks/post-receive -- uClibc-ng - small C library for embedded systems
1 0
0 0
uClibc-ng - small C library for embedded systems branch master updated. 88842f7126daccf205204be05d3143c73fa0624d
by wbx@helium.waldemar-brodkorb.de 25 Dec '14

25 Dec '14
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "uClibc-ng - small C library for embedded systems". The branch, master has been updated via 88842f7126daccf205204be05d3143c73fa0624d (commit) from 37515213e9c7070ffa048ad1abf76802373af496 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit 88842f7126daccf205204be05d3143c73fa0624d Author: Waldemar Brodkorb <wbx(a)uclibc-ng.org> Date: Thu Dec 25 07:28:36 2014 +0100 sync tcp header with glibc Nginx tries to find TCP_FASTOPEN, which is missing here. ----------------------------------------------------------------------- Summary of changes: include/netinet/tcp.h | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/include/netinet/tcp.h b/include/netinet/tcp.h index 06e8414..04032bb 100644 --- a/include/netinet/tcp.h +++ b/include/netinet/tcp.h @@ -51,6 +51,16 @@ #define TCP_QUICKACK 12 /* Bock/reenable quick ACKs. */ #define TCP_CONGESTION 13 /* Congestion control algorithm. */ #define TCP_MD5SIG 14 /* TCP MD5 Signature (RFC2385) */ +#define TCP_COOKIE_TRANSACTIONS 15 /* TCP Cookie Transactions */ +#define TCP_THIN_LINEAR_TIMEOUTS 16 /* Use linear timeouts for thin streams*/ +#define TCP_THIN_DUPACK 17 /* Fast retrans. after 1 dupack */ +#define TCP_USER_TIMEOUT 18 /* How long for loss retry before timeout */ +#define TCP_REPAIR 19 /* TCP sock is under repair right now */ +#define TCP_REPAIR_QUEUE 20 /* Set TCP queue to repair */ +#define TCP_QUEUE_SEQ 21 /* Set sequence number of repaired queue. */ +#define TCP_REPAIR_OPTIONS 22 /* Repair TCP connection options */ +#define TCP_FASTOPEN 23 /* Enable FastOpen on listeners */ +#define TCP_TIMESTAMP 24 /* TCP time stamp */ #ifdef __USE_MISC # include <sys/types.h> hooks/post-receive -- uClibc-ng - small C library for embedded systems
1 0
0 0
uClibc-ng - small C library for embedded systems branch upstream updated. 638a23483b40c5b606ee323e6612e7e454e5154b
by wbx@helium.waldemar-brodkorb.de 18 Dec '14

18 Dec '14
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "uClibc-ng - small C library for embedded systems". The branch, upstream has been updated via 638a23483b40c5b606ee323e6612e7e454e5154b (commit) via bff3a664e6a2a367bf159c3089df1fe6f093bfb1 (commit) via f8e05f3850e51673522216f23533bf7146359dcd (commit) via 067637375658047d70c296606ae17ef0bc86499d (commit) via d6da534cbf05dc4d09221881afd49b275ca7cd29 (commit) via 926a698c5ac69b599014ce147cc814343f0aaa4f (commit) from ffc0bd03c4c41725ed2eee2fdea296eb42d26496 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit 638a23483b40c5b606ee323e6612e7e454e5154b Author: Anthony G. Basile <blueness(a)gentoo.org> Date: Mon Oct 27 16:13:34 2014 -0400 mkostemp: fix implementation mkostemp(char *template, int flags) generates a unique temporary filename from a template. The flags parameter accepts three of the same flags as open(2): O_APPEND, O_CLOEXEC, and O_SYNC. The current implementation of mkostemp(3) does not respect the flags and in fact confuses the flags with the file mode which should always be S_IRUSR | S_IWUSR. This patch corrects this issue. Signed-off-by: Anthony G. Basile <blueness(a)gentoo.org> Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop(a)gmail.com> commit bff3a664e6a2a367bf159c3089df1fe6f093bfb1 Author: Bernhard Reutner-Fischer <rep.dot.nop(a)gmail.com> Date: Mon Dec 15 17:32:57 2014 +0100 test: Some more tests under conditionals Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop(a)gmail.com> commit f8e05f3850e51673522216f23533bf7146359dcd Author: Bernhard Reutner-Fischer <rep.dot.nop(a)gmail.com> Date: Mon Dec 15 16:13:01 2014 +0100 stdio: Fix printing 0.0 We were relying on FE_DIVBYZERO being turned off when printing "%f", +-.0 Avoid the whole issue by looking at the sign-bit (in a rough approximation). Note that we do not handle gracefully: printf ("\n%llf\n", -0.0); printf ("\n%llf\n", 0.0); nor %Lf for both when NOT cast to long double. Avoiding an FPE due to broken numbers like these does not make sense to me. Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop(a)gmail.com> commit 067637375658047d70c296606ae17ef0bc86499d Author: Bernhard Reutner-Fischer <rep.dot.nop(a)gmail.com> Date: Fri Dec 12 16:18:12 2014 +0100 unistd: allow to turn off getopt_long The GNU variant of getopt() previously had no way to turn off getopt_long() support. commit d6da534cbf05dc4d09221881afd49b275ca7cd29 Author: Bernhard Reutner-Fischer <rep.dot.nop(a)gmail.com> Date: Fri Dec 12 16:06:17 2014 +0100 test: disable ptytest unless HAS_PTY Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop(a)gmail.com> commit 926a698c5ac69b599014ce147cc814343f0aaa4f Author: Bernhard Reutner-Fischer <rep.dot.nop(a)gmail.com> Date: Fri Dec 12 14:43:55 2014 +0100 config: move STDIO_FUTEXES up a bit Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop(a)gmail.com> ----------------------------------------------------------------------- Summary of changes: Makefile.in | 2 +- extra/Configs/Config.in | 28 +++++++++---------- extra/config/conf.c | 5 ++-- include/getopt.h | 2 +- libc/inet/getaddrinfo.c | 2 +- libc/misc/internals/tempname.c | 6 ++--- libc/misc/internals/tempname.h | 2 +- libc/stdio/_fpmaxtostr.c | 13 ++++----- libc/stdio/tempnam.c | 2 +- libc/stdio/tmpfile.c | 2 +- libc/stdio/tmpnam.c | 2 +- libc/stdio/tmpnam_r.c | 2 +- libc/stdlib/mkdtemp.c | 2 +- libc/stdlib/mkostemp.c | 4 ++- libc/stdlib/mkostemp64.c | 2 +- libc/stdlib/mkstemp.c | 2 +- libc/stdlib/mkstemp64.c | 2 +- libc/stdlib/mktemp.c | 2 +- libc/sysdeps/linux/common/bits/getopt.h | 2 +- libc/unistd/Makefile.in | 14 +++++++--- libc/unistd/getopt.c | 2 ++ libpthread/nptl/sem_open.c | 2 +- test/.gitignore | 2 ++ test/Rules.mak | 3 +++ test/misc/Makefile.in | 8 ++++++ test/misc/bug-glob2.c | 1 - test/misc/tst-inotify.c | 7 +++-- test/misc/tst-utmp.c | 45 +++++++++++++++++-------------- test/nptl/tst-cancel7.c | 7 +++-- test/nptl/tst-mqueue7.c | 6 +++-- test/pwd_grp/getgroups.c | 11 ++++---- test/stdlib/Makefile.in | 6 +++++ test/stdlib/test-mkostemp-O_CLOEXEC.c | 45 +++++++++++++++++++++++++++++++ test/stdlib/test-mkostemp-child.c | 22 +++++++++++++++ test/test-skeleton.c | 17 +++++++++++- 35 files changed, 201 insertions(+), 81 deletions(-) create mode 100644 test/stdlib/test-mkostemp-O_CLOEXEC.c create mode 100644 test/stdlib/test-mkostemp-child.c diff --git a/Makefile.in b/Makefile.in index 3b8e043..5d60dda 100644 --- a/Makefile.in +++ b/Makefile.in @@ -276,7 +276,7 @@ HEADERS_RM-$(UCLIBC_HAS_GETTEXT_AWARENESS) += libintl.h HEADERS_RM-$(UCLIBC_HAS_GLIBC_CUSTOM_PRINTF) += printf.h HEADERS_RM-$(UCLIBC_HAS_GLOB) += glob.h HEADERS_RM-$(UCLIBC_HAS_GNU_ERROR) += error.h -HEADERS_RM-$(UCLIBC_HAS_GNU_GETOPT)$(UCLIBC_HAS_GETOPT_LONG) += getopt.h +HEADERS_RM-$(UCLIBC_HAS_GETOPT_LONG) += getopt.h HEADERS_RM-$(UCLIBC_HAS_IPV6) += netinet/ip6.h netinet/icmp6.h HEADERS_RM-$(UCLIBC_HAS_BACKTRACE) += execinfo.h HEADERS_RM-$(UCLIBC_HAS_LOCALE) += iconv.h bits/uClibc_ctype.h diff --git a/extra/Configs/Config.in b/extra/Configs/Config.in index 32180f7..8e603b2 100644 --- a/extra/Configs/Config.in +++ b/extra/Configs/Config.in @@ -1430,6 +1430,13 @@ config UCLIBC_HAS_STRING_ARCH_OPT These are small and fast, the only reason _not_ to say Y here is for debugging purposes. +config UCLIBC_HAS_STDIO_FUTEXES + bool "Use futexes for multithreaded I/O locking" + depends on UCLIBC_HAS_THREADS_NATIVE + help + If you want to compile uClibc to use futexes for low-level + I/O locking, answer Y. Otherwise, answer N. + config UCLIBC_HAS_CTYPE_TABLES bool "Use Table Versions Of 'ctype.h' Functions." default y @@ -1886,32 +1893,25 @@ config UCLIBC_HAS_GNU_GETOPT help Answer Y if you want to include full gnu getopt() instead of a (much smaller) SUSv3 compatible getopt(). + Note that getopt_long, getopt_long_only as well as getsubopt + are implemented on top of this choice. Most people will answer Y. -config UCLIBC_HAS_STDIO_FUTEXES - bool "Use futexes for multithreaded I/O locking" - depends on UCLIBC_HAS_THREADS_NATIVE - help - If you want to compile uClibc to use futexes for low-level - I/O locking, answer Y. Otherwise, answer N. - config UCLIBC_HAS_GETOPT_LONG - bool "Support getopt_long/getopt_long_only" - depends on !UCLIBC_HAS_GNU_GETOPT + bool "Support getopt_long/getopt_long_only (glibc-compat)" default y help - Answer Y if you want to include getopt_long[_only() used by many - apps, even busybox. + Answer Y if you want to include getopt_long[_only()] used by many + apps. Most people will answer Y. config UCLIBC_HAS_GNU_GETSUBOPT - bool "Support glibc getsubopt" + bool "Support getsubopt" default y help - Answer Y if you want to include glibc getsubopt() instead of a - smaller SUSv3 compatible getsubopt(). + Answer Y if you want to include getsubopt(). Most people will answer Y. endmenu diff --git a/extra/config/conf.c b/extra/config/conf.c index db09053..b24c1c3 100644 --- a/extra/config/conf.c +++ b/extra/config/conf.c @@ -10,7 +10,6 @@ #include <string.h> #include <time.h> #include <unistd.h> -#include <getopt.h> #include <sys/stat.h> #include <sys/time.h> #include <errno.h> @@ -447,7 +446,7 @@ static void check_conf(struct menu *menu) } #if 00 // || !defined __UCLIBC__ || \ - (defined UCLIBC_HAS_GETOPT_LONG || defined UCLIBC_HAS_GNU_GETOPT) + defined __UCLIBC_HAS_GETOPT_LONG__ static struct option long_opts[] = { {"oldaskconfig", no_argument, NULL, oldaskconfig}, {"oldconfig", no_argument, NULL, oldconfig}, @@ -526,7 +525,7 @@ int main(int ac, char **av) tty_stdio = isatty(0) && isatty(1) && isatty(2); #if 00// !defined __UCLIBC__ || \ - (defined UCLIBC_HAS_GETOPT_LONG || defined UCLIBC_HAS_GNU_GETOPT) + defined __UCLIBC_HAS_GETOPT_LONG__ while ((opt = getopt_long(ac, av, "", long_opts, NULL)) != -1) #else char *gch = "asonymArDSld"; diff --git a/include/getopt.h b/include/getopt.h index a682f9c..de9da26 100644 --- a/include/getopt.h +++ b/include/getopt.h @@ -1,4 +1,4 @@ -/* This file will not be installed if not using gnu getopt. */ +/* This file will not be installed if not using getopt_long. */ #include <bits/getopt.h> diff --git a/libc/inet/getaddrinfo.c b/libc/inet/getaddrinfo.c index b61d69c..168adb1 100644 --- a/libc/inet/getaddrinfo.c +++ b/libc/inet/getaddrinfo.c @@ -308,7 +308,7 @@ gaih_local(const char *name, const struct gaih_service *service, char *buf = ((struct sockaddr_un *)ai->ai_addr)->sun_path; if (__path_search(buf, L_tmpnam, NULL, NULL, 0) != 0 - || __gen_tempname(buf, __GT_NOCREATE, 0) != 0 + || __gen_tempname(buf, __GT_NOCREATE, 0, 0) != 0 ) { return -EAI_SYSTEM; } diff --git a/libc/misc/internals/tempname.c b/libc/misc/internals/tempname.c index 18fd823..edcc31c 100644 --- a/libc/misc/internals/tempname.c +++ b/libc/misc/internals/tempname.c @@ -177,7 +177,7 @@ static void brain_damaged_fillrand(unsigned char *buf, unsigned int len) __GT_DIR: create a directory with given mode. */ -int attribute_hidden __gen_tempname (char *tmpl, int kind, mode_t mode) +int attribute_hidden __gen_tempname (char *tmpl, int kind, int flags, mode_t mode) { char *XXXXXX; unsigned int i; @@ -219,11 +219,11 @@ int attribute_hidden __gen_tempname (char *tmpl, int kind, mode_t mode) fd = 0; } case __GT_FILE: - fd = open (tmpl, O_RDWR | O_CREAT | O_EXCL, mode); + fd = open (tmpl, O_RDWR | O_CREAT | O_EXCL | flags, mode); break; #if defined __UCLIBC_HAS_LFS__ case __GT_BIGFILE: - fd = open64 (tmpl, O_RDWR | O_CREAT | O_EXCL, mode); + fd = open64 (tmpl, O_RDWR | O_CREAT | O_EXCL | flags, mode); break; #endif case __GT_DIR: diff --git a/libc/misc/internals/tempname.h b/libc/misc/internals/tempname.h index e75b632..edfe26d 100644 --- a/libc/misc/internals/tempname.h +++ b/libc/misc/internals/tempname.h @@ -10,7 +10,7 @@ extern int ___path_search (char *tmpl, size_t tmpl_len, const char *dir, const char *pfx /*, int try_tmpdir */) attribute_hidden; #define __path_search(tmpl, tmpl_len, dir, pfx, try_tmpdir) ___path_search(tmpl, tmpl_len, dir, pfx) -extern int __gen_tempname (char *__tmpl, int __kind, mode_t mode) attribute_hidden; +extern int __gen_tempname (char *__tmpl, int __kind, int flags, mode_t mode) attribute_hidden; /* The __kind argument to __gen_tempname may be one of: */ #define __GT_FILE 0 /* create a file */ diff --git a/libc/stdio/_fpmaxtostr.c b/libc/stdio/_fpmaxtostr.c index f7ea792..3580584 100644 --- a/libc/stdio/_fpmaxtostr.c +++ b/libc/stdio/_fpmaxtostr.c @@ -45,11 +45,6 @@ */ #define isnan(x) ((x) != (x)) -/* Without seminumerical functions to examine the sign bit, this is - * about the best we can do to test for '-0'. - */ -#define zeroisnegative(x) ((1./(x)) < 0) - /*****************************************************************************/ /* Don't change anything that follows peroid!!! ;-) */ /*****************************************************************************/ @@ -262,7 +257,13 @@ ssize_t _fpmaxtostr(FILE * fp, __fpmax_t x, struct printf_info *info, if (x == 0) { /* Handle 0 now to avoid false positive. */ #ifdef __UCLIBC_HAVE_SIGNED_ZERO__ - if (zeroisnegative(x)) { /* Handle 'signed' zero. */ + union { + double x; + struct { + unsigned int l1, l2; + } i; + } u = {x}; + if (u.i.l1 ^ u.i.l2) { /* Handle 'signed' zero. */ *sign_str = '-'; } #endif /* __UCLIBC_HAVE_SIGNED_ZERO__ */ diff --git a/libc/stdio/tempnam.c b/libc/stdio/tempnam.c index 232ed02..74bb26e 100644 --- a/libc/stdio/tempnam.c +++ b/libc/stdio/tempnam.c @@ -35,7 +35,7 @@ tempnam (const char *dir, const char *pfx) if (__path_search (buf, FILENAME_MAX, dir, pfx, 1)) return NULL; - if (__gen_tempname (buf, __GT_NOCREATE, 0)) + if (__gen_tempname (buf, __GT_NOCREATE, 0, 0)) return NULL; return strdup (buf); diff --git a/libc/stdio/tmpfile.c b/libc/stdio/tmpfile.c index a9bf474..83c85b5 100644 --- a/libc/stdio/tmpfile.c +++ b/libc/stdio/tmpfile.c @@ -35,7 +35,7 @@ FILE * tmpfile (void) if (__path_search (buf, FILENAME_MAX, NULL, "tmpf", 0)) return NULL; - fd = __gen_tempname (buf, __GT_FILE, S_IRUSR | S_IWUSR); + fd = __gen_tempname (buf, __GT_FILE, 0, S_IRUSR | S_IWUSR); if (fd < 0) return NULL; diff --git a/libc/stdio/tmpnam.c b/libc/stdio/tmpnam.c index 88b9bff..ffed862 100644 --- a/libc/stdio/tmpnam.c +++ b/libc/stdio/tmpnam.c @@ -40,7 +40,7 @@ tmpnam (char *s) 0)) return NULL; - if (__builtin_expect (__gen_tempname (tmpbuf, __GT_NOCREATE, 0), 0)) + if (__builtin_expect (__gen_tempname (tmpbuf, __GT_NOCREATE, 0, 0), 0)) return NULL; if (s == NULL) diff --git a/libc/stdio/tmpnam_r.c b/libc/stdio/tmpnam_r.c index 8cde84d..bfd60a4 100644 --- a/libc/stdio/tmpnam_r.c +++ b/libc/stdio/tmpnam_r.c @@ -27,7 +27,7 @@ char * tmpnam_r (char *s) if (__path_search (s, L_tmpnam, NULL, NULL, 0)) return NULL; - if (__gen_tempname (s, __GT_NOCREATE, 0)) + if (__gen_tempname (s, __GT_NOCREATE, 0, 0)) return NULL; return s; diff --git a/libc/stdlib/mkdtemp.c b/libc/stdlib/mkdtemp.c index da7598a..e6d4a36 100644 --- a/libc/stdlib/mkdtemp.c +++ b/libc/stdlib/mkdtemp.c @@ -29,7 +29,7 @@ (This function comes from OpenBSD.) */ char * mkdtemp (char *template) { - if (__gen_tempname (template, __GT_DIR, S_IRUSR | S_IWUSR | S_IXUSR)) + if (__gen_tempname (template, __GT_DIR, 0, S_IRUSR | S_IWUSR | S_IXUSR)) return NULL; else return template; diff --git a/libc/stdlib/mkostemp.c b/libc/stdlib/mkostemp.c index 0369235..912be30 100644 --- a/libc/stdlib/mkostemp.c +++ b/libc/stdlib/mkostemp.c @@ -17,6 +17,7 @@ #include <stdio.h> #include <stdlib.h> +#include <fcntl.h> #include "../misc/internals/tempname.h" /* Generate a unique temporary file name from TEMPLATE. @@ -26,5 +27,6 @@ int mkostemp (char *template, int flags) { - return __gen_tempname (template, __GT_FILE, flags); + flags -= flags & O_ACCMODE; /* Remove O_RDONLY, O_WRONLY, and O_RDWR. */ + return __gen_tempname (template, __GT_FILE, flags, S_IRUSR | S_IWUSR); } diff --git a/libc/stdlib/mkostemp64.c b/libc/stdlib/mkostemp64.c index d21def5..c6d6d84 100644 --- a/libc/stdlib/mkostemp64.c +++ b/libc/stdlib/mkostemp64.c @@ -27,5 +27,5 @@ int mkostemp64 (char *template, int flags) { - return __gen_tempname (template, __GT_BIGFILE, flags | O_LARGEFILE); + return __gen_tempname (template, __GT_BIGFILE, flags | O_LARGEFILE, S_IRUSR | S_IWUSR | S_IXUSR); } diff --git a/libc/stdlib/mkstemp.c b/libc/stdlib/mkstemp.c index 61c7175..a3a1595 100644 --- a/libc/stdlib/mkstemp.c +++ b/libc/stdlib/mkstemp.c @@ -26,5 +26,5 @@ Then open the file and return a fd. */ int mkstemp (char *template) { - return __gen_tempname (template, __GT_FILE, S_IRUSR | S_IWUSR); + return __gen_tempname (template, __GT_FILE, 0, S_IRUSR | S_IWUSR); } diff --git a/libc/stdlib/mkstemp64.c b/libc/stdlib/mkstemp64.c index e29be2d..6f2ee3e 100644 --- a/libc/stdlib/mkstemp64.c +++ b/libc/stdlib/mkstemp64.c @@ -26,5 +26,5 @@ Then open the file and return a fd. */ int mkstemp64 (char *template) { - return __gen_tempname (template, __GT_BIGFILE, S_IRUSR | S_IWUSR); + return __gen_tempname (template, __GT_BIGFILE, 0, S_IRUSR | S_IWUSR); } diff --git a/libc/stdlib/mktemp.c b/libc/stdlib/mktemp.c index edd001d..1ff93da 100644 --- a/libc/stdlib/mktemp.c +++ b/libc/stdlib/mktemp.c @@ -24,7 +24,7 @@ * they are replaced with a string that makes the filename unique. */ char *mktemp(char *template) { - if (__gen_tempname (template, __GT_NOCREATE, 0) < 0) + if (__gen_tempname (template, __GT_NOCREATE, 0, 0) < 0) /* We return the null string if we can't find a unique file name. */ template[0] = '\0'; diff --git a/libc/sysdeps/linux/common/bits/getopt.h b/libc/sysdeps/linux/common/bits/getopt.h index a49f023..dababe0 100644 --- a/libc/sysdeps/linux/common/bits/getopt.h +++ b/libc/sysdeps/linux/common/bits/getopt.h @@ -126,7 +126,7 @@ extern int getopt (int ___argc, char *const *___argv, const char *__shortopts) __THROW; libc_hidden_proto(getopt) -#if defined __UCLIBC_HAS_GNU_GETOPT__ || defined __UCLIBC_HAS_GETOPT_LONG__ +#if defined __UCLIBC_HAS_GETOPT_LONG__ #ifndef __need_getopt extern int getopt_long (int ___argc, char *const *___argv, const char *__shortopts, diff --git a/libc/unistd/Makefile.in b/libc/unistd/Makefile.in index b15d60a..659008d 100644 --- a/libc/unistd/Makefile.in +++ b/libc/unistd/Makefile.in @@ -16,10 +16,16 @@ OMIT-$(ARCH_USE_MMU) += __exec_alloc.c OMIT-$(if $(UCLIBC_SUSV3_LEGACY),,y) += ualarm.c usleep.c #OMIT-$(UCLIBC_HAS_THREADS_NATIVE) += sleep.c -# XXX: GNU_GETOPT comes with getopt_long unconditionally, which is wrong -GO_LONG := $(if $(UCLIBC_HAS_GNU_GETOPT),getopt_long-simple.c) -OMIT-y += $(if $(UCLIBC_HAS_GNU_GETOPT),getopt-susv3.c $(GO_LONG),getopt.c) -OMIT-y += $(if $(UCLIBC_HAS_GNU_GETSUBOPT),getsubopt-susv3.c,getsubopt.c) +ifeq ($(UCLIBC_HAS_GNU_GETOPT),y) +# GNU getopt family +OMIT-y += getopt-susv3.c getopt_long-simple.c getsubopt-susv3.c +OMIT-y += $(if $(UCLIBC_HAS_GNU_GETSUBOPT),,getsubopt.c) +else +# SuS getopt family +OMIT-y += getopt.c getsubopt.c +OMIT-y += $(if $(UCLIBC_HAS_GETOPT_LONG),,getopt_long-simple.c) +OMIT-y += $(if $(UCLIBC_HAS_GNU_GETSUBOPT),,getsubopt-susv3.c) +endif CSRC-y := $(filter-out $(OMIT-y),$(CSRC-y)) diff --git a/libc/unistd/getopt.c b/libc/unistd/getopt.c index 3944c7c..f63482b 100644 --- a/libc/unistd/getopt.c +++ b/libc/unistd/getopt.c @@ -1162,6 +1162,7 @@ getopt (int argc, char *const *argv, const char *optstring) } libc_hidden_def(getopt) +#if defined __UCLIBC_HAS_GETOPT_LONG__ int getopt_long (int argc, char *const *argv, const char *options, const struct option *long_options, int *opt_index) @@ -1180,5 +1181,6 @@ getopt_long_only (int argc, char *const *argv, const char *options, { return _getopt_internal (argc, argv, options, long_options, opt_index, 1); } +#endif /* __UCLIBC_HAS_GETOPT_LONG__ */ #endif /* Not ELIDE_CODE. */ diff --git a/libpthread/nptl/sem_open.c b/libpthread/nptl/sem_open.c index 1b36164..3a72079 100644 --- a/libpthread/nptl/sem_open.c +++ b/libpthread/nptl/sem_open.c @@ -336,7 +336,7 @@ sem_open (const char *name, int oflag, ...) mempcpy (mempcpy (tmpfname, mountpoint.dir, mountpoint.dirlen), "XXXXXX", 7); - fd = __gen_tempname (tmpfname, __GT_FILE, mode); + fd = __gen_tempname (tmpfname, __GT_FILE, 0, mode); if (fd == -1) return SEM_FAILED; diff --git a/test/.gitignore b/test/.gitignore index 8f32031..5944f0a 100644 --- a/test/.gitignore +++ b/test/.gitignore @@ -274,6 +274,8 @@ stdlib/testarc4random stdlib/testatexit stdlib/test-canon stdlib/test-canon2 +stdlib/test-mkostemp-O_CLOEXEC +stdlib/test-mkostemp-child stdlib/teston_exit stdlib/teststrtol stdlib/teststrtoq diff --git a/test/Rules.mak b/test/Rules.mak index ed72db2..805a349 100644 --- a/test/Rules.mak +++ b/test/Rules.mak @@ -78,6 +78,9 @@ CFLAGS := -nostdinc -I$(top_builddir)$(LOCAL_INSTALL_PATH)/usr/include CFLAGS += $(XCOMMON_CFLAGS) $(KERNEL_INCLUDES) $(CC_INC) CFLAGS += $(OPTIMIZATION) $(CPU_CFLAGS) $(XWARNINGS) +$(eval $(call check-gcc-var,-Wno-missing-field-initializers)) +CFLAGS += $(CFLAG_-Wno-missing-field-initializers) + # Can't add $(OPTIMIZATION) here, it may be target-specific. # Just adding -Os for now. HOST_CFLAGS += $(XCOMMON_CFLAGS) -Os $(XWARNINGS) -std=gnu99 diff --git a/test/misc/Makefile.in b/test/misc/Makefile.in index 52a3e71..1e0da6f 100644 --- a/test/misc/Makefile.in +++ b/test/misc/Makefile.in @@ -8,6 +8,14 @@ TESTS_DISABLED += tst-statfs # assuming host has LFS on endif CFLAGS_dirent64 := -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 +ifeq ($(UCLIBC_LINUX_SPECIFIC),) +TESTS_DISABLED += tst-inotify +endif + +ifeq ($(UCLIBC_HAS_GLOB),) +TESTS_DISABLED += bug-glob2 +endif + DODIFF_dirent := 1 DODIFF_dirent64 := 1 DODIFF_tst-statfs := 1 diff --git a/test/misc/bug-glob2.c b/test/misc/bug-glob2.c index 98e3bf7..069891b 100644 --- a/test/misc/bug-glob2.c +++ b/test/misc/bug-glob2.c @@ -18,7 +18,6 @@ <http://www.gnu.org/licenses/>. */ #include <errno.h> -#include <error.h> #include <dirent.h> #include <glob.h> #include <stdlib.h> diff --git a/test/misc/tst-inotify.c b/test/misc/tst-inotify.c index 9d940f7..f9f6830 100644 --- a/test/misc/tst-inotify.c +++ b/test/misc/tst-inotify.c @@ -11,7 +11,6 @@ #include <string.h> #include <unistd.h> #include <errno.h> -#include <error.h> #include <inttypes.h> #include <sys/inotify.h> #include <sys/fcntl.h> @@ -39,7 +38,7 @@ do_test(void) /* nonblocking inotify should return immediately with no events */ ret = read(ifd, &e, sizeof(e)); if (ret != -1 || errno != EAGAIN) { - error(0, 0, "first read() returned %d", ret); + fprintf(stderr, "first read() returned %d\n", ret); result = 1; } @@ -49,12 +48,12 @@ do_test(void) /* now check whether our event was seen */ ret = read(ifd, &e, sizeof(e)); if (ret != sizeof(e)) { - error(0, 0, "second read() returned %d", ret); + fprintf(stderr, "second read() returned %d\n", ret); result = 1; } if (!(e.mask & IN_DELETE_SELF)) { - error(0, 0, "incorrect event mask: %" PRIx32, e.mask); + fprintf(stderr, "incorrect event mask: %" PRIx32 "\n", e.mask); result = 1; } diff --git a/test/misc/tst-utmp.c b/test/misc/tst-utmp.c index ca92cf2..08a6f8e 100644 --- a/test/misc/tst-utmp.c +++ b/test/misc/tst-utmp.c @@ -18,7 +18,6 @@ <http://www.gnu.org/licenses/>. */ #include <errno.h> -#include <error.h> #include <stdlib.h> #include <string.h> #include <sys/types.h> @@ -69,8 +68,11 @@ do_prepare (int argc, char *argv[]) /* Open our test file. */ fd = mkstemp (name); - if (fd == -1) - error (EXIT_FAILURE, errno, "cannot open test file `%s'", name); + if (fd == -1) { + fprintf (stderr, "cannot open test file `%s': ", name); + perror (NULL); + exit (EXIT_FAILURE); + } } struct utmp entry[] = @@ -110,7 +112,7 @@ do_init (void) { if (pututline (&entry[n]) == NULL) { - error (0, errno, "cannot write UTMP entry"); + perror ("cannot write UTMP entry"); return 1; } } @@ -135,7 +137,7 @@ do_check (void) if (n < num_entries && memcmp (ut, &entry[n], sizeof (struct utmp))) { - error (0, 0, "UTMP entry does not match"); + fprintf (stderr, "UTMP entry does not match\n"); return 1; } @@ -144,7 +146,7 @@ do_check (void) if (n != num_entries) { - error (0, 0, "number of UTMP entries is incorrect"); + fprintf (stderr, "number of UTMP entries is incorrect\n"); return 1; } @@ -176,7 +178,7 @@ simulate_login (const char *line, const char *user) if (pututline (&entry[n]) == NULL) { - error (0, errno, "cannot write UTMP entry"); + perror ("cannot write UTMP entry"); return 1; } @@ -186,7 +188,7 @@ simulate_login (const char *line, const char *user) } } - error (0, 0, "no entries available"); + fprintf (stderr, "no entries available\n"); return 1; } @@ -210,7 +212,7 @@ simulate_logout (const char *line) if (pututline (&entry[n]) == NULL) { - error (0, errno, "cannot write UTMP entry"); + perror ("cannot write UTMP entry"); return 1; } @@ -220,7 +222,7 @@ simulate_logout (const char *line) } } - error (0, 0, "no entry found for `%s'", line); + fprintf (stderr, "no entry found for `%s'\n", line); return 1; } @@ -237,7 +239,8 @@ check_login (const char *line) up = getutline (&ut); if (up == NULL) { - error (0, errno, "cannot get entry for line `%s'", line); + fprintf (stderr, "cannot get entry for line `%s': ", line); + perror(NULL); return 1; } @@ -249,7 +252,7 @@ check_login (const char *line) { if (memcmp (up, &entry[n], sizeof (struct utmp))) { - error (0, 0, "UTMP entry does not match"); + fprintf (stderr, "UTMP entry does not match\n"); return 1; } @@ -257,7 +260,7 @@ check_login (const char *line) } } - error (0, 0, "bogus entry for line `%s'", line); + fprintf (stderr, "bogus entry for line `%s'\n", line); return 1; } @@ -271,7 +274,7 @@ check_logout (const char *line) strcpy (ut.ut_line, line); if (getutline (&ut) != NULL) { - error (0, 0, "bogus login entry for `%s'", line); + fprintf (stderr, "bogus login entry for `%s'\n", line); return 1; } @@ -294,7 +297,8 @@ check_id (const char *id) up = getutid (&ut); if (up == NULL) { - error (0, errno, "cannot get entry for ID `%s'", id); + fprintf (stderr, "cannot get entry for ID `%s': ", id); + perror (NULL); return 1; } @@ -306,7 +310,7 @@ check_id (const char *id) { if (memcmp (up, &entry[n], sizeof (struct utmp))) { - error (0, 0, "UTMP entry does not match"); + fprintf (stderr, "UTMP entry does not match\n"); return 1; } @@ -314,7 +318,7 @@ check_id (const char *id) } } - error (0, 0, "bogus entry for ID `%s'", id); + fprintf (stderr, "bogus entry for ID `%s'\n", id); return 1; } @@ -331,7 +335,8 @@ check_type (int type) up = getutid (&ut); if (up == NULL) { - error (0, errno, "cannot get entry for type `%d'", type); + fprintf (stderr, "cannot get entry for type `%d': ", type); + perror (NULL); return 1; } @@ -343,7 +348,7 @@ check_type (int type) { if (memcmp (up, &entry[n], sizeof (struct utmp))) { - error (0, 0, "UTMP entry does not match"); + fprintf (stderr, "UTMP entry does not match\n"); return 1; } @@ -351,7 +356,7 @@ check_type (int type) } } - error (0, 0, "bogus entry for type `%d'", type); + fprintf (stderr, "bogus entry for type `%d'\n", type); return 1; } diff --git a/test/nptl/tst-cancel7.c b/test/nptl/tst-cancel7.c index 3bdfa9f..fe543f7 100644 --- a/test/nptl/tst-cancel7.c +++ b/test/nptl/tst-cancel7.c @@ -196,13 +196,16 @@ do_cleanup (void) #define OPT_COMMAND 10000 #define OPT_PIDFILE 10001 #define CMDLINE_OPTIONS \ + "c:p:" +/* { "command", required_argument, NULL, OPT_COMMAND }, \ { "pidfile", required_argument, NULL, OPT_PIDFILE }, +*/ #define CMDLINE_PROCESS \ - case OPT_COMMAND: \ + case 'c': \ command = optarg; \ break; \ - case OPT_PIDFILE: \ + case 'p': \ pidfile = optarg; \ break; // #define CLEANUP_HANDLER do_cleanup () diff --git a/test/nptl/tst-mqueue7.c b/test/nptl/tst-mqueue7.c index e8d53ad..01d7cd7 100644 --- a/test/nptl/tst-mqueue7.c +++ b/test/nptl/tst-mqueue7.c @@ -32,10 +32,12 @@ static mqd_t after_exec = (mqd_t) -1; #define CMDLINE_OPTIONS \ + "a:" +/* { "after-exec", required_argument, NULL, OPT_AFTEREXEC }, - +*/ #define CMDLINE_PROCESS \ - case OPT_AFTEREXEC: \ + case 'a': \ after_exec = (mqd_t) strtoul (optarg, NULL, 0); \ break; diff --git a/test/pwd_grp/getgroups.c b/test/pwd_grp/getgroups.c index 5769b18..c343552 100644 --- a/test/pwd_grp/getgroups.c +++ b/test/pwd_grp/getgroups.c @@ -13,7 +13,6 @@ #include <sys/types.h> #include <pwd.h> #include <grp.h> -#include <err.h> /* The number of errors encountered so far. */ static int problems = 0; @@ -25,7 +24,7 @@ static void print_group(gid_t gid) grp = getgrgid(gid); if (grp == NULL) { - warn("cannot find name for group ID %u", gid); + fprintf(stderr, "cannot find name for group ID %u\n", gid); problems++; } @@ -46,12 +45,14 @@ static int xgetgroups(gid_t gid, int *n_groups, gid_t ** groups) /* Add 1 just in case max_n_groups is zero. */ g = (gid_t *) malloc(max_n_groups * sizeof(gid_t) + 1); - if (g == NULL) - err(EXIT_FAILURE, "out of memory"); + if (g == NULL) { + fprintf(stderr, "out of memory\n"); + exit(EXIT_FAILURE); + } ng = getgroups(max_n_groups, g); if (ng < 0) { - warn("cannot get supplemental group list"); + fprintf(stderr, "cannot get supplemental group list\n"); ++fail; free(g); } diff --git a/test/stdlib/Makefile.in b/test/stdlib/Makefile.in index 0bb0697..53e5a72 100644 --- a/test/stdlib/Makefile.in +++ b/test/stdlib/Makefile.in @@ -5,3 +5,9 @@ DODIFF_qsort := 1 DODIFF_testatexit := 1 DODIFF_teston_exit := 1 DODIFF_teststrtol := 1 + +TESTS_DISABLED := +ifeq ($(UCLIBC_HAS_PTY),) +TESTS_DISABLED += ptytest +endif + diff --git a/test/stdlib/test-mkostemp-O_CLOEXEC.c b/test/stdlib/test-mkostemp-O_CLOEXEC.c new file mode 100644 index 0000000..9ff229a --- /dev/null +++ b/test/stdlib/test-mkostemp-O_CLOEXEC.c @@ -0,0 +1,45 @@ +#define _XOPEN_SOURCE_EXTENDED +#include <stdio.h> +#include <stdlib.h> +#include <string.h> +#include <unistd.h> +#include <sys/types.h> +#include <sys/stat.h> +#include <fcntl.h> +#include <sys/wait.h> +#include <errno.h> + +#if !defined __ARCH_USE_MMU__ +# define fork vfork +#endif + +int main(int argc, char *argv[]) { + int fd, status; + char buff[5]; + char template[] = "/tmp/test-mkostemp.XXXXXX"; + + fd = mkostemp(template, O_CLOEXEC); + unlink(template); + + snprintf(buff, 5, "%d", fd); + + if(!fork()) + if(execl("./test-mkostemp-child", "test-mkostemp-child", buff, NULL) == -1) + exit(EXIT_FAILURE); + + wait(&status); + + memset(buff, 0, 5); + lseek(fd, 0, SEEK_SET); + errno = 0; + if(read(fd, buff, 5) == -1) + exit(EXIT_FAILURE); + + if(!strncmp(buff, "test", 5)) + exit(EXIT_FAILURE); + else + exit(EXIT_SUCCESS); + + close(fd); + exit(EXIT_SUCCESS); +} diff --git a/test/stdlib/test-mkostemp-child.c b/test/stdlib/test-mkostemp-child.c new file mode 100644 index 0000000..708bd80 --- /dev/null +++ b/test/stdlib/test-mkostemp-child.c @@ -0,0 +1,22 @@ +#include <stdio.h> +#include <stdlib.h> +#include <unistd.h> + +int main(int argc, char *argv[]) { + int fd; + + /* This file gets built and run as a test, but its + * really just a helper for test-mkostemp-O_CLOEXEC.c. + * So, we'll always return succcess. + */ + if(argc != 2) + exit(EXIT_SUCCESS); + + sscanf(argv[1], "%d", &fd); + + if(write(fd, "test\0", 5) == -1) + ; /* Don't Panic! Failure is okay here. */ + + close(fd); + exit(EXIT_SUCCESS); +} diff --git a/test/test-skeleton.c b/test/test-skeleton.c index 6d4a8b6..69ef99f 100644 --- a/test/test-skeleton.c +++ b/test/test-skeleton.c @@ -18,7 +18,6 @@ <http://www.gnu.org/licenses/>. */ #include <errno.h> -#include <getopt.h> #include <malloc.h> #include <search.h> #include <signal.h> @@ -46,6 +45,7 @@ #define OPT_DIRECT 1000 #define OPT_TESTDIR 1001 +#if 0 /* Not used in uClibc */ static struct option options[] = { #ifdef CMDLINE_OPTIONS @@ -55,6 +55,7 @@ static struct option options[] = { "test-dir", required_argument, NULL, OPT_TESTDIR }, { NULL, 0, NULL, 0 } }; +#endif /* PID of the test itself. */ static pid_t pid; @@ -144,7 +145,9 @@ signal_handler (int sig __attribute__ ((unused))) /* Wait for it to terminate. */ for (i = 0; i < 5; ++i) { +#ifdef __UCLIBC_HAS_REALTIME__ struct timespec ts; +#endif killed = waitpid (pid, &status, WNOHANG|WUNTRACED); if (killed != 0) break; @@ -153,9 +156,14 @@ signal_handler (int sig __attribute__ ((unused))) nanosleep() call return prematurely, all the better. We won't restart it since this probably means the child process finally died. */ +#ifdef __UCLIBC_HAS_REALTIME__ ts.tv_sec = 0; ts.tv_nsec = 100000000; nanosleep (&ts, NULL); +#else + /* No nanosleep, just sleep 1s instead of 0.1s */ + sleep(1); +#endif } if (killed != 0 && killed != pid) { @@ -234,7 +242,14 @@ main (int argc, char *argv[]) setbuf (stdout, NULL); #endif +#if 0 /* Not used in uClibc */ while ((opt = getopt_long (argc, argv, "+", options, NULL)) != -1) +#else +# ifndef CMDLINE_OPTIONS +# define CMDLINE_OPTIONS "" +# endif + while ((opt = getopt (argc, argv, "+" CMDLINE_OPTIONS)) >= 0) +#endif switch (opt) { case '?': hooks/post-receive -- uClibc-ng - small C library for embedded systems
1 0
0 0
uClibc-ng - small C library for embedded systems branch master updated. 37515213e9c7070ffa048ad1abf76802373af496
by wbx@helium.waldemar-brodkorb.de 10 Dec '14

10 Dec '14
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "uClibc-ng - small C library for embedded systems". The branch, master has been updated via 37515213e9c7070ffa048ad1abf76802373af496 (commit) via 9649721950565d8a21a89017ac712257da644b75 (commit) via 0cda37ffaf3cb7aec2c1c8b49e2a5b8f82255c3e (commit) from 86087816201d61f1b72d8bd7d91cfc7eb26422e9 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit 37515213e9c7070ffa048ad1abf76802373af496 Author: Waldemar Brodkorb <wbx(a)openadk.org> Date: Wed Dec 10 13:05:43 2014 -0600 disable test for noMMU commit 9649721950565d8a21a89017ac712257da644b75 Author: Anthony G. Basile <blueness(a)gentoo.org> Date: Mon Oct 27 16:13:34 2014 -0400 mkostemp: fix implementation mkostemp(char *template, int flags) generates a unique temporary filename from a template. The flags parameter accepts three of the same flags as open(2): O_APPEND, O_CLOEXEC, and O_SYNC. The current implementation of mkostemp(3) does not respect the flags and in fact confuses the flags with the file mode which should always be S_IRUSR | S_IWUSR. This patch corrects this issue. Signed-off-by: Anthony G. Basile <blueness(a)gentoo.org> commit 0cda37ffaf3cb7aec2c1c8b49e2a5b8f82255c3e Author: wangyufen <wangyufen(a)huawei.com> Date: Tue Nov 11 15:59:11 2014 +0800 add argument check in mknod mknod() in glibc/eglibc will check the argument, like this, ... if (k_dev != dev) { __set_errno (EINVAL); return -1; } ... So add argument check in uclibc's mknod() too. Signed-off-by: Wang Yufen <wangyufen(a)huawei.com> ----------------------------------------------------------------------- Summary of changes: libc/inet/getaddrinfo.c | 2 +- libc/misc/internals/tempname.c | 6 ++--- libc/misc/internals/tempname.h | 2 +- libc/stdio/tempnam.c | 2 +- libc/stdio/tmpfile.c | 2 +- libc/stdio/tmpnam.c | 2 +- libc/stdio/tmpnam_r.c | 2 +- libc/stdlib/mkdtemp.c | 2 +- libc/stdlib/mkostemp.c | 4 +++- libc/stdlib/mkostemp64.c | 2 +- libc/stdlib/mkstemp.c | 2 +- libc/stdlib/mkstemp64.c | 2 +- libc/stdlib/mktemp.c | 2 +- libc/sysdeps/linux/common/mknod.c | 4 ++++ libpthread/nptl/sem_open.c | 2 +- test/.gitignore | 2 ++ test/stdlib/Makefile.in | 4 ++++ test/stdlib/test-mkostemp-O_CLOEXEC.c | 40 +++++++++++++++++++++++++++++++++ test/stdlib/test-mkostemp-child.c | 22 ++++++++++++++++++ 19 files changed, 90 insertions(+), 16 deletions(-) create mode 100644 test/stdlib/test-mkostemp-O_CLOEXEC.c create mode 100644 test/stdlib/test-mkostemp-child.c diff --git a/libc/inet/getaddrinfo.c b/libc/inet/getaddrinfo.c index b61d69c..168adb1 100644 --- a/libc/inet/getaddrinfo.c +++ b/libc/inet/getaddrinfo.c @@ -308,7 +308,7 @@ gaih_local(const char *name, const struct gaih_service *service, char *buf = ((struct sockaddr_un *)ai->ai_addr)->sun_path; if (__path_search(buf, L_tmpnam, NULL, NULL, 0) != 0 - || __gen_tempname(buf, __GT_NOCREATE, 0) != 0 + || __gen_tempname(buf, __GT_NOCREATE, 0, 0) != 0 ) { return -EAI_SYSTEM; } diff --git a/libc/misc/internals/tempname.c b/libc/misc/internals/tempname.c index 18fd823..edcc31c 100644 --- a/libc/misc/internals/tempname.c +++ b/libc/misc/internals/tempname.c @@ -177,7 +177,7 @@ static void brain_damaged_fillrand(unsigned char *buf, unsigned int len) __GT_DIR: create a directory with given mode. */ -int attribute_hidden __gen_tempname (char *tmpl, int kind, mode_t mode) +int attribute_hidden __gen_tempname (char *tmpl, int kind, int flags, mode_t mode) { char *XXXXXX; unsigned int i; @@ -219,11 +219,11 @@ int attribute_hidden __gen_tempname (char *tmpl, int kind, mode_t mode) fd = 0; } case __GT_FILE: - fd = open (tmpl, O_RDWR | O_CREAT | O_EXCL, mode); + fd = open (tmpl, O_RDWR | O_CREAT | O_EXCL | flags, mode); break; #if defined __UCLIBC_HAS_LFS__ case __GT_BIGFILE: - fd = open64 (tmpl, O_RDWR | O_CREAT | O_EXCL, mode); + fd = open64 (tmpl, O_RDWR | O_CREAT | O_EXCL | flags, mode); break; #endif case __GT_DIR: diff --git a/libc/misc/internals/tempname.h b/libc/misc/internals/tempname.h index e75b632..edfe26d 100644 --- a/libc/misc/internals/tempname.h +++ b/libc/misc/internals/tempname.h @@ -10,7 +10,7 @@ extern int ___path_search (char *tmpl, size_t tmpl_len, const char *dir, const char *pfx /*, int try_tmpdir */) attribute_hidden; #define __path_search(tmpl, tmpl_len, dir, pfx, try_tmpdir) ___path_search(tmpl, tmpl_len, dir, pfx) -extern int __gen_tempname (char *__tmpl, int __kind, mode_t mode) attribute_hidden; +extern int __gen_tempname (char *__tmpl, int __kind, int flags, mode_t mode) attribute_hidden; /* The __kind argument to __gen_tempname may be one of: */ #define __GT_FILE 0 /* create a file */ diff --git a/libc/stdio/tempnam.c b/libc/stdio/tempnam.c index 232ed02..74bb26e 100644 --- a/libc/stdio/tempnam.c +++ b/libc/stdio/tempnam.c @@ -35,7 +35,7 @@ tempnam (const char *dir, const char *pfx) if (__path_search (buf, FILENAME_MAX, dir, pfx, 1)) return NULL; - if (__gen_tempname (buf, __GT_NOCREATE, 0)) + if (__gen_tempname (buf, __GT_NOCREATE, 0, 0)) return NULL; return strdup (buf); diff --git a/libc/stdio/tmpfile.c b/libc/stdio/tmpfile.c index a9bf474..83c85b5 100644 --- a/libc/stdio/tmpfile.c +++ b/libc/stdio/tmpfile.c @@ -35,7 +35,7 @@ FILE * tmpfile (void) if (__path_search (buf, FILENAME_MAX, NULL, "tmpf", 0)) return NULL; - fd = __gen_tempname (buf, __GT_FILE, S_IRUSR | S_IWUSR); + fd = __gen_tempname (buf, __GT_FILE, 0, S_IRUSR | S_IWUSR); if (fd < 0) return NULL; diff --git a/libc/stdio/tmpnam.c b/libc/stdio/tmpnam.c index 88b9bff..ffed862 100644 --- a/libc/stdio/tmpnam.c +++ b/libc/stdio/tmpnam.c @@ -40,7 +40,7 @@ tmpnam (char *s) 0)) return NULL; - if (__builtin_expect (__gen_tempname (tmpbuf, __GT_NOCREATE, 0), 0)) + if (__builtin_expect (__gen_tempname (tmpbuf, __GT_NOCREATE, 0, 0), 0)) return NULL; if (s == NULL) diff --git a/libc/stdio/tmpnam_r.c b/libc/stdio/tmpnam_r.c index 8cde84d..bfd60a4 100644 --- a/libc/stdio/tmpnam_r.c +++ b/libc/stdio/tmpnam_r.c @@ -27,7 +27,7 @@ char * tmpnam_r (char *s) if (__path_search (s, L_tmpnam, NULL, NULL, 0)) return NULL; - if (__gen_tempname (s, __GT_NOCREATE, 0)) + if (__gen_tempname (s, __GT_NOCREATE, 0, 0)) return NULL; return s; diff --git a/libc/stdlib/mkdtemp.c b/libc/stdlib/mkdtemp.c index da7598a..e6d4a36 100644 --- a/libc/stdlib/mkdtemp.c +++ b/libc/stdlib/mkdtemp.c @@ -29,7 +29,7 @@ (This function comes from OpenBSD.) */ char * mkdtemp (char *template) { - if (__gen_tempname (template, __GT_DIR, S_IRUSR | S_IWUSR | S_IXUSR)) + if (__gen_tempname (template, __GT_DIR, 0, S_IRUSR | S_IWUSR | S_IXUSR)) return NULL; else return template; diff --git a/libc/stdlib/mkostemp.c b/libc/stdlib/mkostemp.c index 0369235..912be30 100644 --- a/libc/stdlib/mkostemp.c +++ b/libc/stdlib/mkostemp.c @@ -17,6 +17,7 @@ #include <stdio.h> #include <stdlib.h> +#include <fcntl.h> #include "../misc/internals/tempname.h" /* Generate a unique temporary file name from TEMPLATE. @@ -26,5 +27,6 @@ int mkostemp (char *template, int flags) { - return __gen_tempname (template, __GT_FILE, flags); + flags -= flags & O_ACCMODE; /* Remove O_RDONLY, O_WRONLY, and O_RDWR. */ + return __gen_tempname (template, __GT_FILE, flags, S_IRUSR | S_IWUSR); } diff --git a/libc/stdlib/mkostemp64.c b/libc/stdlib/mkostemp64.c index d21def5..c6d6d84 100644 --- a/libc/stdlib/mkostemp64.c +++ b/libc/stdlib/mkostemp64.c @@ -27,5 +27,5 @@ int mkostemp64 (char *template, int flags) { - return __gen_tempname (template, __GT_BIGFILE, flags | O_LARGEFILE); + return __gen_tempname (template, __GT_BIGFILE, flags | O_LARGEFILE, S_IRUSR | S_IWUSR | S_IXUSR); } diff --git a/libc/stdlib/mkstemp.c b/libc/stdlib/mkstemp.c index 61c7175..a3a1595 100644 --- a/libc/stdlib/mkstemp.c +++ b/libc/stdlib/mkstemp.c @@ -26,5 +26,5 @@ Then open the file and return a fd. */ int mkstemp (char *template) { - return __gen_tempname (template, __GT_FILE, S_IRUSR | S_IWUSR); + return __gen_tempname (template, __GT_FILE, 0, S_IRUSR | S_IWUSR); } diff --git a/libc/stdlib/mkstemp64.c b/libc/stdlib/mkstemp64.c index e29be2d..6f2ee3e 100644 --- a/libc/stdlib/mkstemp64.c +++ b/libc/stdlib/mkstemp64.c @@ -26,5 +26,5 @@ Then open the file and return a fd. */ int mkstemp64 (char *template) { - return __gen_tempname (template, __GT_BIGFILE, S_IRUSR | S_IWUSR); + return __gen_tempname (template, __GT_BIGFILE, 0, S_IRUSR | S_IWUSR); } diff --git a/libc/stdlib/mktemp.c b/libc/stdlib/mktemp.c index edd001d..1ff93da 100644 --- a/libc/stdlib/mktemp.c +++ b/libc/stdlib/mktemp.c @@ -24,7 +24,7 @@ * they are replaced with a string that makes the filename unique. */ char *mktemp(char *template) { - if (__gen_tempname (template, __GT_NOCREATE, 0) < 0) + if (__gen_tempname (template, __GT_NOCREATE, 0, 0) < 0) /* We return the null string if we can't find a unique file name. */ template[0] = '\0'; diff --git a/libc/sysdeps/linux/common/mknod.c b/libc/sysdeps/linux/common/mknod.c index 416cab6..794e19f 100644 --- a/libc/sysdeps/linux/common/mknod.c +++ b/libc/sysdeps/linux/common/mknod.c @@ -24,6 +24,10 @@ int mknod(const char *path, mode_t mode, dev_t dev) /* We must convert the value to dev_t type used by the kernel. */ k_dev = (dev) & ((1ULL << 32) - 1); + if (k_dev != dev) { + __set_errno (EINVAL); + return -1; + } return INLINE_SYSCALL(mknod, 3, path, mode, (unsigned int)k_dev); } #endif diff --git a/libpthread/nptl/sem_open.c b/libpthread/nptl/sem_open.c index 1b36164..3a72079 100644 --- a/libpthread/nptl/sem_open.c +++ b/libpthread/nptl/sem_open.c @@ -336,7 +336,7 @@ sem_open (const char *name, int oflag, ...) mempcpy (mempcpy (tmpfname, mountpoint.dir, mountpoint.dirlen), "XXXXXX", 7); - fd = __gen_tempname (tmpfname, __GT_FILE, mode); + fd = __gen_tempname (tmpfname, __GT_FILE, 0, mode); if (fd == -1) return SEM_FAILED; diff --git a/test/.gitignore b/test/.gitignore index 8f32031..5944f0a 100644 --- a/test/.gitignore +++ b/test/.gitignore @@ -274,6 +274,8 @@ stdlib/testarc4random stdlib/testatexit stdlib/test-canon stdlib/test-canon2 +stdlib/test-mkostemp-O_CLOEXEC +stdlib/test-mkostemp-child stdlib/teston_exit stdlib/teststrtol stdlib/teststrtoq diff --git a/test/stdlib/Makefile.in b/test/stdlib/Makefile.in index 0bb0697..b0c724a 100644 --- a/test/stdlib/Makefile.in +++ b/test/stdlib/Makefile.in @@ -5,3 +5,7 @@ DODIFF_qsort := 1 DODIFF_testatexit := 1 DODIFF_teston_exit := 1 DODIFF_teststrtol := 1 + +ifeq ($(ARCH_USE_MMU),) +TESTS_DISABLED := test-mkostemp-O_CLOEXEC +endif diff --git a/test/stdlib/test-mkostemp-O_CLOEXEC.c b/test/stdlib/test-mkostemp-O_CLOEXEC.c new file mode 100644 index 0000000..5652086 --- /dev/null +++ b/test/stdlib/test-mkostemp-O_CLOEXEC.c @@ -0,0 +1,40 @@ +#include <stdio.h> +#include <stdlib.h> +#include <string.h> +#include <unistd.h> +#include <sys/types.h> +#include <sys/stat.h> +#include <fcntl.h> +#include <sys/wait.h> +#include <errno.h> + +int main(int argc, char *argv[]) { + int fd, status; + char buff[5]; + char template[] = "/tmp/test-mkostemp.XXXXXX"; + + fd = mkostemp(template, O_CLOEXEC); + unlink(template); + + snprintf(buff, 5, "%d", fd); + + if(!fork()) + if(execl("./test-mkostemp-child", "test-mkostemp-child", buff, NULL) == -1) + exit(EXIT_FAILURE); + + wait(&status); + + memset(buff, 0, 5); + lseek(fd, 0, SEEK_SET); + errno = 0; + if(read(fd, buff, 5) == -1) + exit(EXIT_FAILURE); + + if(!strncmp(buff, "test", 5)) + exit(EXIT_FAILURE); + else + exit(EXIT_SUCCESS); + + close(fd); + exit(EXIT_SUCCESS); +} diff --git a/test/stdlib/test-mkostemp-child.c b/test/stdlib/test-mkostemp-child.c new file mode 100644 index 0000000..708bd80 --- /dev/null +++ b/test/stdlib/test-mkostemp-child.c @@ -0,0 +1,22 @@ +#include <stdio.h> +#include <stdlib.h> +#include <unistd.h> + +int main(int argc, char *argv[]) { + int fd; + + /* This file gets built and run as a test, but its + * really just a helper for test-mkostemp-O_CLOEXEC.c. + * So, we'll always return succcess. + */ + if(argc != 2) + exit(EXIT_SUCCESS); + + sscanf(argv[1], "%d", &fd); + + if(write(fd, "test\0", 5) == -1) + ; /* Don't Panic! Failure is okay here. */ + + close(fd); + exit(EXIT_SUCCESS); +} hooks/post-receive -- uClibc-ng - small C library for embedded systems
1 0
0 0
uClibc-ng - small C library for embedded systems branch master updated. 86087816201d61f1b72d8bd7d91cfc7eb26422e9
by wbx@helium.waldemar-brodkorb.de 09 Dec '14

09 Dec '14
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "uClibc-ng - small C library for embedded systems". The branch, master has been updated via 86087816201d61f1b72d8bd7d91cfc7eb26422e9 (commit) via ffc0bd03c4c41725ed2eee2fdea296eb42d26496 (commit) from ef0e534fda812f90815b945a9dde79f318e24e14 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit 86087816201d61f1b72d8bd7d91cfc7eb26422e9 Merge: ef0e534 ffc0bd0 Author: Waldemar Brodkorb <wbx(a)uclibc-ng.org> Date: Tue Dec 9 15:06:31 2014 +0100 Merge remote-tracking branch 'origin/upstream' ----------------------------------------------------------------------- Summary of changes: include/signal.h | 2 ++ 1 file changed, 2 insertions(+) diff --git a/include/signal.h b/include/signal.h index edd7a97..be24cf3 100644 --- a/include/signal.h +++ b/include/signal.h @@ -98,7 +98,9 @@ typedef __uid_t uid_t; /* We need `struct timespec' later on. */ # define __need_timespec # include <time.h> +#endif +#if defined __USE_POSIX199309 || defined __USE_XOPEN_EXTENDED /* Get the `siginfo_t' type plus the needed symbols. */ # include <bits/siginfo.h> #endif hooks/post-receive -- uClibc-ng - small C library for embedded systems
1 0
0 0
uClibc-ng - small C library for embedded systems branch upstream updated. ffc0bd03c4c41725ed2eee2fdea296eb42d26496
by wbx@helium.waldemar-brodkorb.de 09 Dec '14

09 Dec '14
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "uClibc-ng - small C library for embedded systems". The branch, upstream has been updated via ffc0bd03c4c41725ed2eee2fdea296eb42d26496 (commit) from a1b88fe87a9d2be5696247d266f5c4fd20f000bb (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit ffc0bd03c4c41725ed2eee2fdea296eb42d26496 Author: Bernhard Reutner-Fischer <rep.dot.nop(a)gmail.com> Date: Tue Dec 9 14:30:39 2014 +0100 sigaction: Fix !HAS_REALTIME compilation In file included from ./include/signal.h:279:0, from libc/sysdeps/linux/x86_64/sigaction.c:22: ./include/bits/sigaction.h:32:29: error: unknown type name 'siginfo_t' void (*sa_sigaction)(int, siginfo_t *, void *); Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop(a)gmail.com> ----------------------------------------------------------------------- Summary of changes: include/signal.h | 2 ++ 1 file changed, 2 insertions(+) diff --git a/include/signal.h b/include/signal.h index edd7a97..be24cf3 100644 --- a/include/signal.h +++ b/include/signal.h @@ -98,7 +98,9 @@ typedef __uid_t uid_t; /* We need `struct timespec' later on. */ # define __need_timespec # include <time.h> +#endif +#if defined __USE_POSIX199309 || defined __USE_XOPEN_EXTENDED /* Get the `siginfo_t' type plus the needed symbols. */ # include <bits/siginfo.h> #endif hooks/post-receive -- uClibc-ng - small C library for embedded systems
1 0
0 0
uClibc-ng - small C library for embedded systems branch master updated. ef0e534fda812f90815b945a9dde79f318e24e14
by wbx@helium.waldemar-brodkorb.de 08 Dec '14

08 Dec '14
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "uClibc-ng - small C library for embedded systems". The branch, master has been updated via ef0e534fda812f90815b945a9dde79f318e24e14 (commit) from a85df93f5542c04c884b69fcc1febcff6c2e7a39 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit ef0e534fda812f90815b945a9dde79f318e24e14 Author: Waldemar Brodkorb <wbx(a)uclibc-ng.org> Date: Mon Dec 8 06:56:29 2014 +0100 remove text files not useful for uClibc-ng ----------------------------------------------------------------------- Summary of changes: Changelog-2010 | 804 ------------------------------------------------------- DEDICATION.mjn3 | 22 -- MAINTAINERS | 152 ----------- TODO | 188 ------------- 4 files changed, 1166 deletions(-) delete mode 100644 Changelog-2010 delete mode 100644 DEDICATION.mjn3 delete mode 100644 MAINTAINERS delete mode 100644 TODO diff --git a/Changelog-2010 b/Changelog-2010 deleted file mode 100644 index e70ec68..0000000 --- a/Changelog-2010 +++ /dev/null @@ -1,804 +0,0 @@ -0.9.31 2 April 2010 - - Upgrade notices from previous versions. - o On x86_64 the format of /var/run/utmp changed compared to previous - versions. To retain compatibility with glibc we now define - __WORDSIZE_COMPAT32. If you are certain that you will never use - glibc nor run in i386 mode on your x86_64 installation, you can - remove this definition from wordsize.h. - Otherwise you have to delete /var/run/utmp on x86_64 hosts when - upgrading to 0.9.31 - o The SHARED_LIB_LOADER_PREFIX was renamed to a single path - component called MULTILIB_DIR and defaults to 'lib'. - -0.9.27 12 January 2005 - - This has been a long time in the making... Release highlights: - o New stdio implementation - o New optimized string functions - o Major improvements to the shared lib loader - o Shared libraries work properly on powerpc - o Debugging works on mips - o New architectures: frv, nios, nios2, bfin - o Linux 2.6.x kernel support - o Lots and lots of bug fixes - - This release is NOT binary compatible with uClibc 0.9.26 or any earlier - release, so be prepared to recompile your software if you are still using - an old version of uClibc. - - -Erik - - - -0.9.26 3 January 2004 - - This simply adds a fix for a pthread bug that was noticed a few hours - after the previous release. Otherwise identical to 0.9.25. - - This release remains binary compatible with uClibc 0.9.21-25 as long as - you take care to avoid any configuraton changes that will break things. - We _were_ planning to break binary compatibilty in this release, but - decided to hold those changes so we could push out a bugfix release. - - We _will_ break binary compatibilty in the upcoming 0.9.27 release to - implement a few things we have been postponing. That should hopefully be - the last ABI change before we freeze the ABI for the upcoming 1.0.x - stable uClibc series. - -Release highlights: - o A trivial fix for a pthread bug - o Nothing else - - -Erik - - - -0.9.25 3 January 2004 - -See Changelog.full for the complete list of who did what. - -Note: - This release remains binary compatible with uClibc 0.9.21-24 as long as - you take care to avoid any configuraton changes that will break things. - We _were_ planning to break binary compatibilty in this release, but - decided to hold those changes so we could push out a bugfix release. - - We _will_ break binary compatibilty in the upcoming 0.9.26 release to - implement a few things we have been postponing. That should hopefully be - the last ABI change before we freeze the ABI for the upcoming 1.0.x - stable uClibc series. - -Release highlights: - o Fixed a ton of problems found using the LTP and NIST test suites. - The few remaining test failures are obscure corner cases, such as - a few functions that fail (correctly) with incorrect errno values. - o Fixed a longstanding pthreads bug -- amoung other things, you no - longer need to explicitly add -lpthread for perl to work. - o Added some sh optimized string functions - o Added sh64 shared library support - o The default malloc implementation has been replaced, and will - now actually free memory when told to do so. - o Both popen() and exec*() now behave themselves per SuSv3 - o Better 2.6.x kernel header support - o Added support for Position Independent Executables (PIE) on x86 - o Lots of other minor cleanups - - -Erik - - - -0.9.24 15 December 2003 - -See Changelog.full for the complete list of who did what. - -Note: - This release remains binary compatible with uClibc 0.9.21-23 as - long as you take care to avoid any configuraton changes that will - break things. - - We currently plan to break binary compatibilty in the upcoming 0.9.25 to - implement a few things we have been postponing, which will hopefully be - the last change.... - -Release highlights: - o Fixed several silly configuration problems - o Added arm optimized string functions - o Lots of minor cleanups - - -Erik - - - - - -0.9.23 13 November 2003 - -See Changelog.full for the complete list of who did what. - -Note: - This release is binary compatible with uClibc 0.9.21 and 0.9.22 as - long as you take care to avoid any configuraton changes that will - break things. Enabling or disabling things like soft-float, - locale, wide wchar support, or changing cpu type are all good - examples of things that will break binary compatibility. - -Release highlights: - o Fixed several silly configuration problems that were - present in the 0.9.22 release. - o Fixed compilation problem with soft-float support on - several architectures. - o Lots of cleanup work on the powepc shared lib loader - thanks to Joakim Tjernlund. - o Updated the debian packaging for use in a standalone uClibc - system, rather than being a subordinate library under a - glibc based system. - - -Erik - - - - - -0.9.22 8 November 2003 - -See Changelog.full for the complete list of who did what. - -Note: - This release is binary compatible with the 0.9.21 release - if you take care to avoid any configuraton changes that - might break things for you (i.e. enabling or disabling things - like soft-float, locale, wide wchar support, or changing cpu - type are all good examples of binary incompatible config options). - -Release highlights: - o Added e1, microblaze, and sh64 architectures. - o Much improved soft-float support - o Rewrote the passwd and group handing functions - and implemented all SuSv3 required reentrant - versions. - o Reworked and updated the Config system. You now - get to select your target architecture with the - config system. - o Fixed pthreads for mmuless m68k systems - o Added some x86 optimized string functions. - o Lots and lots of bugs fixed. - - -Erik - - - - - -0.9.21 9 September 2003 - -See Changelog.full for the complete list of who did what. - -Note: - This release is not binary compatible with earlier releases. - Sorry about that. We have never promised to provide binary - compatibility until we hit version 1.0, and even then, if - you change your configuration. - -Release highlights: - o uClibc now has full ANSI/ISO C99 locale support (except - for wcsftime() and collating items in regex). - o Added support for using pre-generated locale data, making - it easy for mere mortals to use uClibc w/locale support. - o Lots of new tuning options added to trade size - for features, allowing for smaller static binaries. - o The "dlopen()'ing libraries that depend on libraries" - problem was fixed. - o A new scanf implementation. Well tested, but - brand new so watch for obscure bugs... - o Reworked and updated the Config system, adding several - nice new features which we now use. - o Lots and lots of sundry bug fixes and cleanups. - - -Erik - - - - - -0.9.20 30 June 2003 - -See Changelog.full for the complete list of who did what. - -Note: - This release remains binary compatible with 0.9.18 and 0.9.19. - - -Release highlights: - o Some ldd, profiling, and gcc wrapper updates - o Updated to support and compile with gcc 3.3 - o Several needed mips updates - o Building under cygwin should now work... - o Prevent non-PIC code getting into PIC libs - o Added mmap64 support - o mmu-less systems now get a 16k default thread stack size - which is much more sane than the old 2 MB default... - o Implemented syscall() for powerpc - o Optionally struct tm extension support - o Lots of other sundry little fixes and cleanups. - o Prevent buffer overflows in the passwd and group functions. - - -Erik - - - - - -0.9.19 3 March 2003 - -See Changelog.full for the complete list of who did what. - -Note: - This release remains binary compatible with 0.9.18 (except - for mips, but then mips was unusable in stock 0.9.18 anyways). - - -Release highlights: - Stefan Allius - o Some Makefile and warning fixes - David Airlie - o Fixed gcc wrapper handling of ctor/dtor stuff when used in - with and w/o the nostdinc and nostdlib options - Erik Andersen - o Fixed a number of system call kernel type/user type translation - problems that scrambled a handful of system calls. - o Fixup powerpc syscalls to eliminate warnings with gcc-3.2 - o Fixed several ioctl special cases for powerpc - o Checked in forgotten mips kernel_types.h changes - o Fixed mips shared library loader bug that caused segfaults - o Major update to the pthreads library. Should improve performance. - o Fixed uClibc's shared library loader so we can properly debug - applications using pthreads (must use gdb 5.3 or newer which - was compiled using uClibc). - o Made uClibc's ldd act just the glibc provided one (i.e. relying - on the shared lib loader to do the work) when it is possible to - doi so, and only rummage about the ELF headers when we have no - other choice (such as when using 'ldd' on cross compiled stuff). - Miles Bader - o header file updates for v850 architecture - o Fixed v850 crt0.S __uClibc_main argument stack space - Jeffrey Damick - o Fixed res_init() so it properly reloads /etc/resolv.conf - Vadim Lebedev - o Fixed ARM setjmp when floating point was disabled - David McCullough - o Removed debug (-g) when building crti.o and crtn.o, as - debug would mess up the build for SH4 and probably others. - o Fixed SH setjmp when floating point was enabled - - - -Erik - - - - - -0.9.18 12 February 2003 - -See Changelog.full for the complete list of who did what. - -Note: - - Once again, this release is _NOT_ binary compatible with earlier - releases. I _think this will be the last time (with the possible - exception of some future changes to our locale support...) - - -Release highlights: - Stefan Allius - o fixed a compile problem when large file support was disabled - o fixed dlib_pic.o to compile with proper flags - o fixed a shared lib loader compile warning - o Made adding libgcc functions to uClibc optional - Erik Andersen - o Fixed scandir64 to not free the wrong pieces of memory - which caused segfaults - o Fixed mismatches between kernel and libc dirent structures - o Fixed mismatches between the size of uClibc's struct dirent - and struct dirent64 so that when _FILE_OFFSET_BITS=64 we - do not lose part of the filename - o Fixed getdents64.c so the build will not break when compiling - vs a 2.0.x Linux kernel when UCLIBC_HAS_LFS is enabled - o Create stub crti.o and crtn.o files when UCLIBC_CTOR_DTOR is disabled - o Fixed licenses for a few files that erroneously were listed as GPL - but were really LGPL after discussing with authors - o sigaction for x86 had an extra and unwanted sigaction syscall - o Fixed debugging of arm binaries by adding a .note.ABI-tag section - Miles Bader - o header file updates for v850 architecture - o Fixed v850 clone syscall - Christian Krause - o Fixed pthread_cond_timedwait to properly uses rt singals - when available - Christophe Massiot - o Added mips _flush_cache syscall - David McCullough - o Added m68k brk syscall - Marshall M. Midden - o Fixed pipe implementation for mips - - - -Erik - - - - - -0.9.17 25 January 2003 - -See Changelog.full for the complete list of who did what. - -Note: - - I have always reserved the right to make binary incompatible changes as - needed prior to the "1.0" release. This release is a good example of - that. A few bugs turned up that needed to be fixed and the only good way - to fix them was to change some fundamental data structure sizes. So I did - just that. As a result, this release is _NOT_ binary compatible with - earlier releases -- you will need to recompile your applications. - - -Release highlights: - Stefan Allius - o fixed a number of shared library loader bugs - o setjmp, longjmp, clone, and vfork cleanups for the SH architecture - o Don't build the config system with ncurses unless asked to - Tobias Anderberg - o cris architecture updates - Erik Andersen - o Changed 'struct stat' and 'struct stat64' so they use types that - are consistant with use elsewhere in the library. Without this, - subtle bugs would occur due to comparing signed and unsigned - types (for example, GNU tar wouldn't work) - o Fixed dlopen so it works with staticly linked apps - o Fixed sigaction on arm architecture so sa_restorer works properly - o Fixed sigaction on x86 architecture for (fixed debugging threads) - o Fixed a wide char related segfault in the regular expression code - o Powerpc pread and pwrite are now implemented correctly - o Powerpc syscall mechanism re-implemented - o Sparc architecture and syscall mechanism fixed up so things compile - o usershell reimplemented - o Fixed global destructors for staticly linked applications - o Added dynamic atexit support (needed for full C++ ctor/dtor support) - o The ldd utility now acts more like the GNU utility - o Added a stub libnsl library to make stupid configure scripts bahave - o Always build crt1.o as well as crt0.o to minimize the need to mess - with the compiler - o Rewrote powerpc crt0.S to properly handle ctors/dtors - o Removed unimplemented and legacy stuff from our header files to - make configure behave better - o Made the lib loader also support libs in /usr/X11R6/lib by default - o Config system updates - o networking function updates - o Large file support updates - o Lots of other little bug fixes and cleanups - Nick Fedchik - o Support ether_aton - Nathan Field - o Fixed pthread_mutex_lock and pthread_mutex_unlock so they - actually work as advertised on mips - o Fixed several nasty pthread bugs fixing debugging - Brett Hunt - o Fixed potential segfaults during 'make menuconfig' - Jay Kulpinski - o Fixed a subtle problem in the DNS resolver that prevented - uncompressed DNS lookup responses from working - David McCullough - o Fixed pclose error handling - David Meggy - o fixed the problem where arm binaries would crash on start - that Erik stupidly caused right before the last release. - Manuel Novoa III - o Major locale support update! - o Allow people to use pregenerated locale data instead of generating - approx 40Mb of glibc locales to get the 300+ locales currently - supported. - o locale dependent collation support - o Fixed locale support tools to work when cross-compiling - o Added the *wprintf functions - o Added the wcsto{inttype} functions - o Added iconv() and a mini iconv utility - o Added hsearch and hsearch_r - o Fixed a silly bug allowing wprintf %s to work correctly. - o Fixed fdopen when used with "a" (append). - o Fixed stdio file position handing to be sure fell() always - gives correct results - Luc Van Oostenryck - o Fixed a buffer overflow in getlogin_r - Yoshinori Sato - o Hitachi h8300 architecture update - Ronald Wahl - o Powerpc shared library relocation fixes - - -Erik - - - -0.9.16 8 November 2002 - -See Changelog.full for the complete list of who did what. - -Release highlights: - o CRIS architecture and shared library support from Tobias Anderberg - o New uClibc configuration system - o shared library global constructors and destructors initialization - ordering fixed by Stefan Allius - o More SuperH architecture fixes from Stefan Allius - o uClibc now compiles with newer versions of gcc (i.e. RedHat 8.0) - o uClibc no longer requires perl to compile - o mips dlopen was fixed by Steven J. Hill - o pty and tty handling fixes - o Manuel Novoa added support for a new /etc/TZ file for globally - setting the system timezone. - o Manuel also fixed up a number of remaining wide char issues. - o Lots of other little bug fixes and cleanups - - -Erik - - - -0.9.15 27 August 2002 - -This is a minor bugfix release. - -See Changelog.full for the complete list of who did what. -Release highlights: - o Eliminated the HAS_LONG_LONG option. gcc always supports - long long, and the option never excluded all long long anyways. - o ctype.h no longer allows multiple argument evaluation in - compliance with ANSI/ISO C99 - o Obscure printf fixes -- one involving %o and one involving %f. - o Bugfixes for locking and reentrance in password/group functions - o Directly use kernel types for most items, eliminating needless - translation and fixing several bugs. - o Directly use kernel struct stat -- no more translating - o More superH (sh) architecture merging from Stefan Allius - o Errno values and strerror are now correct on alpha, sparc, and mips - o Fixed an obscure bug with fclose when custom streams are enabled. - o Lots of other little bug fixes and cleanups - - -Erik - - - -0.9.14 12 August 2002 - -This is a minor bugfix release. - -See Changelog.full for the complete list of who did what. -Release highlights: - o Fix a compile error when RPC and Pthread support - were both enabled. - o Eliminate duplicate define warnings in wstring.c. - o Fix potentially broken preprocessor comparisons. - o Erik was an idiot and broke thread locking in exit(), - atexit() and friends. Fix that. - o Fix the gcc wrapper to use crtbeginS.o and crtendS.o when - compiling PIC code (crtbegin.o and crtend.o) otherwise. - - -Erik - - - - -0.9.13 9 August 2002 - -Security Fixes - o There was an off-by-one buffer overflow in the group - handling code, fix thanks to Joseph Chiu. - o There was an integer overflow bug in calloc, per - http://online.securityfocus.com/bid/5398 - o There was an integer overflow bug in the xdr_array - RPC code, per http://online.securityfocus.com/bid/5356 - -See Changelog.full for the complete list of who did what. -Release highlights: - o Add full shared library support for Hitachi SuperH (sh) - thanks to Stefan Allius and Edie C. Dost - o Lots of reentrance cleanups (we should now be fully - reentrant when compiled with pthread support). - o Miles Bader implemented a new mmap based malloc which is much - smarter than the old "malloc-simple", and actually works, unlike - the old "malloc". This is now the default for mmu-less systems - and should greatly help reduce memory fragmentation and wastage. - o Reworked syscall handling for i386 and ARM, smaller and cleaner. - o Support for the syscall() function on i386 and ARM - o The uClibc g++ wrapper now automagically adds the proper include - search path and and libraries. - o Lots of shared library loader updates - o dlopen'd shred libraries not properly run destructors - when ctor/dtor support is enabled - o pread/pwrite/pread64/pwrite64 now all work as expected - o Lots and lots of other bug fixes and cleanups. - - -Erik - - - - -0.9.12 20 June 2002 - -See Changelog.full for the complete list of who did what. -Release highlights: - o Add full shared library support for mips (big and little - endian), thanks to a lot of hard work from Steven J. Hill - o i960 architecture support, thanks to Martin Proulx - o An initial alpha port (works, but needs some cleanup) - o Fixes shared library support for powerpc - o Fixes for mmu-less systems - o Much improved thread locking and reentrance. - o More gcc wrapper updates. XFree86 really does link - this time around. It still didn't last time. - o Libcrypt now passes conformance tests - o Nearly complete locale supporti thanks to a lot - of hard work by Manuel Novoa III. This stuff is - _way_ smaller than glibc's - o Completely new time handling functions also by Manuel - o Lots of other bug fixes and cleanups. - - -Erik - - - - -Erik Andersen: -0.9.11 10 April 2002 - -Release highlights: - o Lots of bug fixes - o Much better large file support - o Several gcc wrapper bug fixes, so things like iproute2 and - XFree86 should now link properly. - o Fixes a stdio thread locking bug that could cause random - deadlocks on s*printf calls when threading was enabled. - -Erik Andersen: - o Added a generic implementation of truncate64.c and ftruncate64.c - o Added missing creat64, glob64, mkstemp64, getrlimit64, setrlimit64 - o Removed internal erroneous use of __USE_FILE_OFFSET64 - o Made libpthread compile on sparc and powerpc - o Made libpthread soname and symlinks match the other libraries. - o Added finite() to the C89 math lib, since some math functions use it. - o Added missing function pointer to error.c (some apps wanted it) - o Fixed initfini build for arches where gcc tries to be sneaky - o Fixed m68k/bits/setjmp.h which I has broken in the last release. - o Fixed a buffer overflow in the dynamic library loader - o Fixed a stdio thread locking bug that could cause random - deadlocks on s*printf calls when threading was enabled. - o Implemented sqrtf(), needed for libstdc++ on arm -Miles Bader: - o Make clean fixes to not blindly wipe all symlinks - o Re-enabled clnt_perror() - o Re-implemented swab() -Dwayne Fontenot: - o Many updates to the uClibc Working Application List -Steven J. Hill: - o Many updates to the mips dynamic loader. Not yet working but - getting very close now. - o Fixed locking bug in getttyent() - o Support libpthread on mips -Richard June: - o Fixed several bugs in utmp code (pututline was only writing the - first sizeof-a-pointer bytes to the utmpfile). - o setutent() was only opening utmp readonly. -m4(a)brecis.COM: - o Fixed a silly typing problem with the getuid syscall. -Manuel Novoa III: - o Fixed stdio FILE read/write auto-transition bugs. - o Better stdio errno handling - o Changed setvbuf() to more closely match glibc's behavior - o Fixed getpass() to not echo passwords to the console - o Fixed locale ISblank flag. - o Fixed an arg promotion handling bug in _do_one_spec for %c reported - by Ilguiz Latypov. -Kensuke Otake: - o Implemented swab() -Yoshinori Sato: - o Fixed h8300 architecture support for pthreads and changes to - the include files -David Schleef: - o Made powerpc assembly code PIC-compatible - o Removed powerpc R_PPC_REL24 handling, since it was deceptively useless. -John Traill: - o Several types on powerpc, such as dev_t, are different than on other - architectures. John spotted this, which fixed a _ton_ of problems since - anything calling stat() was previously broken. -Jim Treadway: - o Eliminated use of alarm() from the DNS resolver by converting - it to use select instead (much cleaner). - - - - - - - - -0.9.10 21 March 2002 - -Major new features: - o pthreads support (derived from glibc 2.1.3's linuxthreads library) - by Stefan Soucek and Erik Andersen - o pthreads support for MMU-less systems, by Stefan Soucek - o Complete rewrite of all stdio functions for standards compliance, - small size, pthreads support, wide/narrow stream support, large - file support, unbuffered support, etc, etc by Manuel Novoa III - o gcc wrapper reworked by Erik Andersen. Now operated correctly in - all known cases, and now wraps g++ as well for C++ support. - o constructor/destructor support, for C++ by Erik Andersen. - o Eliminated duplicate include/bits header files, by Erik Andersen. - Now all common include/bits headers are grouped together. - - -Erik Andersen: - o Lots of changes and improvements to the shared library loader - o Cleaned up a piles of bugs - o Fixed a segfault when scandir was called on empty directories. - o Several syscalls added: pread/pwrite - o Makefile/build system cleanups - o Sighandling fixes - o pthreads support (with Stefan Soucek) - o Added ldexp to the C89 math library, per POSIX - o fclose() EINTR handling is now correct per IEEE Std 1003.1-2001 - o Support isblank() - o Reworked libcrypt to avoid leaking private symbols into the namespace - o Added strtof(), strtold(), updwtmp(), strptime() - o Fix ldso build for older arm cross compilers -Miles Bader: - o atexit cleanups - o fixed gcc wrapper handling of -M* options - o Fixed truncate64/ftruncate64 to restrict them to 64-bit systems, - since we can't be sure that the _syscall macros can cope with 64 - bit args on 32 bit arches. - o Large File support on the v850 - o Fixed v850 headers after Erik messed them up - o Eliminate include/features.h namespace pollution -M. R. Brown: - o Fixed pthread support for SH, and fixed SH vfork as well - o Fixed SH headers after Erik messed them up -Geoffrey Espin: - o Mips architecture cleanups. Now works perfectly - with busybox, vi, ash, etc... - o Merged in the random number support (rand, srand, etc) from glibc. -Thomas Fritzsche: - o Fixes DNS resolver bug from 0.9.9 -Steven J. Hill: - o Fixed build to support both mips and mipsel - o Beginnings of a mips ldso port -Andrew Ip: - o Support for gnu error() functions -David McCullough: - o Coldfire platform updates: clone, setjmp - o Fixed simple malloc to work on systems with an MMU -Manuel Novoa III: - o Rewrote all stdio functions for standards compliance, small size, - pthreads support, wide/narrow stream support, large file support, - unbuffered support, etc, etc, etc. - o Rewrote the various string to int functions to be smaller, more - standards compilant, and reduce dependance on libgcc.a. -Yoshinori Sato: - o ptrace for the Hitachi h8300 fix -David Schleef: - o Debian packaging updates - o Check for proper 16-byte aliged stack pointer on powerpc -Stefan Soucek: - o pthreads support for MMU-less systems - o pthreads support (with Erik Andersen) -Brian Stafford: - o Rewrote strcasecmp() per SUSv2. -Bart Visscher: - o Added missing IPV6 support and reentrant networking function - additions so iptables now runs with IPV6 support. - - - - - - -0.9.9 February 4, 2002 - -Erik Andersen: - o A bunch of doc updates. Major update to the working - apps list. - o Added a configurator script (extra/Configs/uClibc_config_fix.pl) - which can simplify configuring uClibc. - o Fixed setjmp/longjmp on x86,arm,powerpc,mips,and sparc. - Hitting ^C in ash kills client apps now, not ash. - o Reworked signal handling code so it now passes POSIX - conformance tests. - o Fixed sleep and usleep to work correctly when - interrupted by signals. - o Made getopt behave the same when staticly linking - as when dynamicly linking. It was using different - implementations depending on how apps were linked. - o Added missing inttypes.h header file - o Eliminate all C++ style comments from header files - o Support statvfs and statfs - o Support getmntent_r - o Scandir and scandir64 were calling malloc without - checking for ENOMEM - o Fixed stpcpy function declaration - o Many large file support improvements. - o Fixed fcntl to work when DOLFS is enabled - o Fixed termios code to do the Right Thing(tm) - o Allow regex to be excluded at compile time - o Implemented mempcpy - o Build ldd and readelf for the target system and for the - host system - o Fix several cases where get-needed-libgcc-objects.sh - could fail, breaking the shared uClibc library. - o Include all shared library loader objects into a - single C file, thereby reducing its size further. - o Reworked the shared library linking process to be more - flexible so that gcc and ld can more easily be built to - target uClibc library. - o Better error checking in the Makefiles. Be more pedantic - about tar, chmod, etc to avoid system dependent failures. - o We can now autodetect the target architecture - o Hide references to wchar_t so GNU autoconf - configure scripts won't get confused and try to - enable wide char support. - o Fixed stdio.h so apps can use varargs.h if they want to. - o Added brk/sbrk support for ARM, powerpc, mips, and sparc - and set them to default to the much faster brk using malloc - o Added missing syscalls: get_kernel_syms, fcntl64, - fdatasync, sched_setparam, sched_getparam, - sched_setscheduler, sched_getscheduler, - sched_get_priority_max, sched_get_priority_min, - sched_rr_get_interval, sigaltstack, sendfile, - pivot_root, sigsuspend, setfsuid, and setfsgid - o Force DOPIC be true when HAVE_SHARED is true. - o Fixed hstrerror() - o Implemented gethostent(), sethostent(), and endhostent() - o Added arch specific support so that sparc and mips actually - compile and work -Miles Bader: - o Fixes for the v850 architecture: crt0, setjmp, - arch autodetection, etc. - o Fixed `make install' to not build ldso stuff on - non-shared-library systems. -Michael E Brown: - o Allow the gcc wrapper to support setting DEVEL_PREFIX - and BUILD_DIR at runtime (no more need to recompile). -M. R. Brown and Erik Andersen: - o Fixed the SH port so it now works. Tested and shown - working on an SH4 Dreamcast system. -Kim Heino: - o Made 'make clean' remove generated bits/syscall.h -David McCullough: - o SH architecture updates. Added brk, sbrk, - o Fixed simple malloc to work on systems with an MMU - o Taught getutent to return NULL if utmp doesn't exist. - o Added insque/remque support - o Fixed DNS resolver version number so apps won't get - confused and use the wrong API. - o Added Config selectable shadow password support -Yoshinori Sato - o Contributed support for the Hitach H8/300H architecture -C�dric Schieli: - o Add support for inet_netof, inet_lnaof, inet_makeaddr - and hstrerror. -David Schleef: - o Added libstrip, a nifty script to automagically - strip unneeded content from the uClibc shared - libraries. -Martin Sieper - o Added getw() and putw() - o Added missing header files -- lastlog.h, sgtty.h, - netipx/ipx.h, sys/perm.h -Stefan Soucek: - o Add rcmd support, i.e. rsh, rlogin, etc. - o Fix rcmd to avoid alloca, which is dangerous - on mmu-less systems -spudmonkey(a)racsa.co.cr: - o Eliminate a buffer overflow in the shared library loader -Brian Stafford: - o Enable support for Unix98 PTYs, and add option - to disable old style PTYs. - - diff --git a/DEDICATION.mjn3 b/DEDICATION.mjn3 deleted file mode 100644 index bc26bc8..0000000 --- a/DEDICATION.mjn3 +++ /dev/null @@ -1,22 +0,0 @@ - -All of my uClibc and busybox work is dedicated to Toni, my love who -passed away on Feb. 12, 2003. - -I would ask that anyone benefiting from this work, especially those -using it in commercial products, consider making a donation in her -memory to our local non-profit hospice organization that did so much -for us in her last few months. - - In memory of Toni W. Hagan - - Hospice of Acadiana, Inc. - 2600 Johnston St., Suite 200 - Lafayette, LA 70503-3240 - - Phone (337) 232-1234 or 1-800-738-2226 - Fax (337) 232-1297 - - http://www.hospiceacadiana.com/ - - -Manuel Novoa III diff --git a/MAINTAINERS b/MAINTAINERS deleted file mode 100644 index d7c0ff9..0000000 --- a/MAINTAINERS +++ /dev/null @@ -1,152 +0,0 @@ -Arch Maintainers List - -Note: For the hard of thinking, this list is meant to remain in alphabetical -order. If you could add yourselves to it in alphabetical order that would be -so much easier [Ed]. - -P: Person -E: Person's email address -W: Web-page with status/info -S: Status, one of the following: - - Supported: Someone is actually paid to look after this. - Maintained: Someone actually looks after it. - Patches: It has a maintainer but they don't have time to do - much other than throw the odd patch in. See below ... - Unmaintained: No current maintainer [but maybe you could take the - role as you write your new code]. - Obsolete: Old code. Something tagged obsolete generally means - it has been replaced by a better system and you - should be using that. - ----------------------------------------------------------------------- - -ALPHA -S: Unmaintained - - -ARM -N: Erik Andersen -E: andersen(a)codepoet.org -W: http://www.arm.linux.org.uk/ -S: Maintained - - -AVR32 -N: Hans-Christian Egtvedt -E: hans-christian.egtvedt(a)atmel.com -N: Haavard Skinnemoen -E: haavard.skinnemoen(a)atmel.com -W: http://avr32linux.org/ -S: Maintained - - -BFIN -N: Mike Frysinger -E: vapier.adi(a)gmail.com -W: http://blackfin.uclinux.org/ -S: Maintained - - -CRIS -P: Ricard Wanderlof -M: ricard.wanderlof(a)axis.com -W: http://developer.axis.com -S: Maintained - - -E1 -S: Unmaintained - - -FRV -S: Unmaintained - - -H8300 -S: Unmaintained - - -HPPA -S: Unmaintained - - -IA64 -S: Unmaintained - - -I386 -N: Erik Andersen -E: andersen(a)codepoet.org -S: Maintained - - -I960 -S: Unmaintained - - -M68K -S: Unmaintained - - -MICROBLAZE -S: Unmaintained - - -MIPS -N: Erik Andersen -E: andersen(a)codepoet.org -W: http://www.linux-mips.org -S: Maintained - - -NIOS and NIOS2 -S: Unmaintained - - -POWERPC -N: Joakim Tjernlund -E: joakim.tjernlund(a)lumentis.se -W: http://penguinppc.org/ -S: Maintained - - -SH and SH64 -P: Paul Mundt -E: lethal(a)linux-sh.org -W: http://www.linux-sh.org -S: Maintained - - -SH4 (NPTL/TLS) -P: Carmelo Amoroso -E: carmelo.amoroso(a)st.com -W: http://www.stlinux.com -S: Supported - - -SPARC -P: Austin Foxley -E: austinf(a)cetoncorp.com -S: Maintained - -VAX -P: Jan-Benedict Glaw -E: jbglaw(a)lug-owl.de (personal), linux-vax(a)pergamentum.com (mailing list) -W: http://linux-vax.sourceforge.net/ -S: Maintained - -V850 -S: Unmaintained - - -X86_64 -S: Unmaintained - - -XTENSA -P: Chris Zankel -E: chris(a)zankel.net -W: http://linux-xtensa.org/ -S: Maintained - diff --git a/TODO b/TODO deleted file mode 100644 index c6ad7bf..0000000 --- a/TODO +++ /dev/null @@ -1,188 +0,0 @@ -TODO list for every uClibc release: -------------------------------------------------- - *) Test cris, i386, mips, mipsel, sh, x86_64, arm, armeb, and powerpc - with the latest LTP testsuite. Fix any regressions and post LTP - testsuite results for each architecture on uclibc.org. - *) Audit header files. Remove prototypes for all functions that - are not supported -- especially needed for the libm headers. - *) Audit header files. When options are disabled, also disable - them in the include files as well by checking for the proper - define from include/bits/uClibc_config.h (pulled in from features.h) - -TODO list for the uClibc 1.0.0 release: -------------------------------------------------- - *) NPTL - support arches: (o todo; + done) - o alpha - + arm - o avr32 - o bfin - o cris - o e1 - o frv - o h8300 - o hppa - + i386 - o i960 - o ia64 - o m68k - o microblaze - + mips - o nios - o nios2 - + powerpc - + sh - + sh64 - o sparc - o v850 - o vax - o x86_64 - o xtensa - o ... - *) Go through SUSv4 - TOC: http://www.opengroup.org/onlinepubs/9699919799/xrat/contents.html - shell (busybox): http://www.opengroup.org/onlinepubs/9699919799/xrat/V4_xcu_chap01.html#tag_… - interface: - http://www.opengroup.org/onlinepubs/9699919799/xrat/V4_xbd_chap13.html#tag_… - http://www.opengroup.org/onlinepubs/9699919799/xrat/V4_xsh_chap01.html#tag_… - *) glob / fnmatch tests fail - *) regex should pass AT&T conformance tests - *) Finish hiding uClibc internal symbols from our exported namespace - *) Add system for generating minimal system call asm wrappers that abuse - the C ABI to minimize amount of register/stack manipulation - *) Explicity add some sortof CONFIG_LINUX_2_2_ABI, CONFIG_LINUX_2_4_ABI - and CONFIG_LINUX_2_6_ABI type options, rather than having the abi - depend on the selected set of kernel headers. This will likely also - require that we provide a set of kernel headers (probably a derivitive - of Mazur's linux-libc-headers) that can supplies the 2.2, 2.4, and 2.6 - kernel abi. - *) Documentation updates: - *) Write a uClibc HOWTO document - *) Update README document - *) Update INSTALL document - *) Update docs/Glibc_vs_uClibc_Differences.txt document - and fully document all differences between the feature - set of uClibc and glibc. - *) Update docs/uClibc_vs_SuSv3.txt document - *) Update docs/threads.txt document - *) Write man pages for ldd and ldconfig utility binaries - *) Implement some mechanism (perhaps encoded in the .so name, - perhaps using an abi tag magically embedded into each object) - for flagging config options that break the ABI. Options - such as UCLIBC_HAS_SOFT_FLOAT, UCLIBC_HAS_THREADS, UCLIBC_HAS_LOCALE, - and perhaps others (finalize list) produce a lib with a differing - ABI. Make it so apps cannot use an ABI mis-matched uClibc. - This is most easily done using symbol versioning... - *) Implement the long double versions of math funcs on interrested - arches using wrappers on top of the double versions (size / precision - trade off where size clearly wins). - *) Make all small objects (>~50 bytes) into either inlines or - into a static library - *) Cleanup / rewrite sysconf.c. It should get some information - from ldso (such as HZ). Other stuff it currently just makes - up, which is obviously wrong. Also bits/uClibc_clk_tck.h - needs to be updated at the same time to get proper HZ values. - *) poll emulation using select() for old 2.0.x uClinux kernels - in libc/sysdeps/linux/common/poll.c fails some python self-tests. - Of course, modern systems using the actuall poll() syscall work fine. - *) Cleanup/scrub all the Makefile copyright junk - *) Fix dlopen, for both static and dynamic cases, and make it - fully comply with SuSv3 - *) check if sched_getcpu is only pulled in where it should be - *) remove HANDLE_OLDER_RLIMIT, NEW_GETRLIMIT (conditionalize on - ugetrlimit, it seems, else use the modern variant) - *) simplify exec*() in the light of execvpe (perhaps single internal - impl); USE_GNU for execvpe (and other GNU extensions, see psm). - - -TODO list for AFTER the uClibc 1.0.0 release: -------------------------------------------------- - *) Add support for 64bit time (to deal withhttp://2038bug.com/) - date -s 011903142038 sets epoch to roll over in a few seconds (2^31) - *) Add support for Linux 2.6.x fast vsyscalls - *) Enable pristine source tree builds - *) Fix regex so it isn't so stinking big - *) Fix glob so it isn't so stinking big - *) run 'nm -D --size-sort -t d libuClibc-0.9.26.so' and work on the - biggest things (i.e. stuff at the end of the list) to make - them smaller. - *) Fix dlopen/dlsym/dlclose locking to more fine grained or use RCU - <more wishlist items here> - - -Arch specific TODO: -------------------------------------------------- - alpha: - ldso is not implemented - arm: - update crt1 code again for nommu (http://bugs.uclibc.org/view.php?id=538) - recruit jbowler and integrate thumb support - frv: - needs to be updated for the new ldso changes and unification of the - uClibc_main funcs (__uClibc_start_main doesnt exist anymore) - hppa: - errno.c test segfaults causes segfault in clone.S (seems to be in glibc too) - i386: - add support for fast system calls - ia64: - ldso is not implemented - m68k: - ldso lazy relocation doesnt work - sh64: - ldso is reasonably broken, presently requiring additional - coaxing/threatening. - sparc: - need a sigaction.c since common one doesnt work (signal tests) - ldso needs to be updated since it's totally broken atm - vax: - pthread support, linktime warning support (implies GAS patches), - general touchups, testing, ldso. - - ------------------------------------------------------------------------------ -Manuel's todo: - - 1) Little things that need fixing: - ---------------------------------- - a) Fix bug in *printf: outdigit precison bug - b) Check that gnu/bsd extension members tm_gmtoff and tm_zone in struct tm - are respected where they should be. - c) Implement the obstack printf funcs for glibc compat. - d) Implement glibc 'a' flag for scanf string conversions. - e) Allow use of the older non-table-based ctype functions when using - stub locale support. (smaller) - f) __drand48_iterate should be void - g) alphasort vs. versionsort. The former seems to be SVID, the latter GNU - i.e. reverse to what we currently do. The latter is unimplemented. - h) ponder removal/configs to turn off: __xpg_*, bsd_signal, dysize, - getw/putw, utimes, - - 2) Additional str{f|p}time issues. - ---------------------------------- - a) Spacing issue wrt strptime. - b) Support locale specific alternate digits. (data is in place) - c) Support locale era in year designations. (data is in place) - d) Deal with mb format string issues in strftime. - e) Implement wcsftime. - - 3) Other locale issues (my implementation): - ------------------------------------------- - a) Do a little more clean up of ctype and wctype. - b) Rework of the locale data organization to make using locales reasonable - when staticly linking. (mmap) - c) Rewrite the locale data generation tools to process the text specifications - rather than relying on glibc. - d) Adapt regex lib to use my collation data and add the necessary collating - item tables to support SUSv3 required features. - e) transliteration of unsupported wchars in 8-bit locales (like glibc). - f) Support ISO/IEC 14652 draft locale extensions (LC_PAPER, etc). - g) Implement strfrom. - h) Shift-state codeset locale support? - - 4) Misc: - -------- - a) Port uClibc to other OSs (including elks), or even bare metal (libgloss). - b) Write a space-efficient gettext substitute, to avoid storing large amounts - of redundant data. - - hooks/post-receive -- uClibc-ng - small C library for embedded systems
1 0
0 0
  • ← Newer
  • 1
  • ...
  • 110
  • 111
  • 112
  • 113
  • 114
  • 115
  • 116
  • 117
  • 118
  • Older →

HyperKitty Powered by HyperKitty version 1.3.12.