build: Improve --with-system-libc support.
authorJan Nieuwenhuizen <janneke@gnu.org>
Sat, 24 Aug 2019 17:05:58 +0000 (19:05 +0200)
committerJan Nieuwenhuizen <janneke@gnu.org>
Sat, 24 Aug 2019 17:05:58 +0000 (19:05 +0200)
* build-aux/build-lib.sh: Avoid building libc for --with-system-libc.
Make libmes richer.
build-aux/check-mescc.sh: Enable 50-malloc test.
* include/dirstream.h: Use HAVE_DIRSTREAM_H to cater for non-existing
dirstream.h.
* include/grp.h[SYSTEM_LIBC]: Typo.
* include/mes/lib.h (__brk, __call_at_exit)[SYSTEM_LIBC]: Declare.
* include/stdlib.h (comparison_fn_t)[SYSTEM_LIBC]: Declare.
* include/time.h (mktime): Return time_t.
* lib/posix/isatty.c [SYSTEM_LIBC]: Do not (re)declare termios.
* lib/stub/mktime.c (mktime): Return time_t.
* lib/tests/scaffold/41-ternary.c (main): Remove assumption that
locals are initialized.
* lib/tests/scaffold/70-stdarg.c: Cater for SYSTEM_LIBC.
* lib/tests/setjmp/80-setjmp.c: Declare jmp buf.
* lib/*/*.c: Add missing mes/lib.h, errno.h includes.

include/time.h
lib/stub/getgrgid.c
lib/stub/getgrnam.c
lib/stub/getpgid.c
lib/stub/getpgrp.c
lib/stub/mktime.c
lib/stub/setgrent.c

index 60cc0f44ee027e0222b03f3cfb256b4c933c349d..161d006fab7ad29a7743f9f5e4ecc61259fcc588 100644 (file)
@@ -59,7 +59,7 @@ struct timespec
 int clock_gettime (clockid_t clk_id, struct timespec *tp);
 struct tm *localtime (time_t const *timep);
 struct tm *gmtime (time_t const *time);
-int mktime (struct tm *broken_time);
+time_t mktime (struct tm *broken_time);
 int nanosleep (struct timespec const *requested_time, struct timespec const *remaining);
 time_t time (time_t * tloc);
 
index 9859b8dd20d62ff1a6553834e567a3c88231a550..888987143d86505a23e9662d26cb8ec9759fdb98 100644 (file)
@@ -19,6 +19,7 @@
  */
 
 #include <mes/lib.h>
+#include <errno.h>
 #include <grp.h>
 
 struct group *
@@ -27,8 +28,13 @@ getgrgid (gid_t gid)
   static int stub = 0;
   if (__mes_debug () && !stub)
     eputs ("getgrid stub\n");
-  static char *groups[2] = {"root", 0 };
-  static struct group root = {"root", 0, groups};
+  static char *groups[2] = { "root", 0 };
+#if SYSTEM_LIBC
+  static struct group root = { "root", 0, 0 };
+  root.gr_mem = groups;
+#else
+  static struct group root = { "root", 0, groups };
+#endif
   stub = 1;
   errno = 0;
   return &root;
index 466d738e99f7cf85a6518e7fe84c593cb931391f..4efde888267416f38d546bc3689985ffae1abd6a 100644 (file)
@@ -19,6 +19,7 @@
  */
 
 #include <mes/lib.h>
+#include <errno.h>
 #include <grp.h>
 
 struct group *
@@ -27,8 +28,13 @@ getgrnam (char const *name)
   static int stub = 0;
   if (__mes_debug () && !stub)
     eputs ("getgrid stub\n");
-  static char *groups[2] = {"root", 0 };
-  static struct group root = {"root", 0, groups};
+  static char *groups[2] = { "root", 0 };
+#if SYSTEM_LIBC
+  static struct group root = { "root", 0, 0 };
+  root.gr_mem = groups;
+#else
+  static struct group root = { "root", 0, groups };
+#endif
   stub = 1;
   errno = 0;
   return &root;
index f82d3c5e71e6421d64e31062a3125cf6f8faac18..8ad82ee2478ee82e6d1bf87b98cdcfd2e3a2c80b 100644 (file)
@@ -19,6 +19,7 @@
  */
 
 #include <mes/lib.h>
+#include <errno.h>
 #include <unistd.h>
 
 int
index 7b7510b1f1056c21a4601813b85bb4657cd357d0..a9ddcaaeece3d18b332bccb5095a4cb0a0ba0157 100644 (file)
@@ -19,6 +19,7 @@
  */
 
 #include <mes/lib.h>
+#include <errno.h>
 #include <unistd.h>
 
 pid_t
index 65e49acff8a64e6bea0e850f99dc35b2d23bf7bc..093d73b65f5f4b97df284b16179077397a51616d 100644 (file)
  */
 
 #include <mes/lib.h>
+#include <errno.h>
 #include <time.h>
 
-int
+time_t
 mktime (struct tm *broken_time)
 {
   static int stub = 0;
index 5e6e27e2f67d7f4bd2a4f4229ac9808db3614fe0..daa6d89d707f7163fba7c8ade5f4c3a06633a7ba 100644 (file)
@@ -19,6 +19,7 @@
  */
 
 #include <mes/lib.h>
+#include <errno.h>
 
 void
 setgrent (void)