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