legacy junk compatibility grab-bag

- add the rest of the junk traditionally in sys/param.h
- add prototypes for some nonstandard functions
- add _GNU_SOURCE to their source files so the compiler can check proto
diff --git a/include/sys/param.h b/include/sys/param.h
index 30499cc..1650e77 100644
--- a/include/sys/param.h
+++ b/include/sys/param.h
@@ -1,20 +1,35 @@
-#undef MAXSYMLINKS
+#ifndef _SYS_PARAM_H
+#define _SYS_PARAM_H
+
 #define MAXSYMLINKS 20
-
-#undef MAXHOSTNAMELEN
 #define MAXHOSTNAMELEN 64
-
-#undef MAXNAMLEN
 #define MAXNAMLEN 255
-
-#undef MAXPATHLEN
 #define MAXPATHLEN 4096
+#define NBBY 8
+#define NGROUPS 32
+#define CANBSIZE 255
+#define NOFILE 256
+#define NCARGS 131072
+#define DEV_BSIZE 512
+#define NOGROUP (-1)
 
 #undef MIN
 #undef MAX
 #define MIN(a,b) (((a)<(b))?(a):(b))
 #define MAX(a,b) (((a)>(b))?(a):(b))
 
+#define ___bitop(x,i,o) ((a)[(i)/8] o 1<<(i)%8)
+#define setbit(x,i) __bitop(x,i,|=)
+#define clrbit(x,i) __bitop(x,i,&=~)
+#define isset(x,i) __bitop(x,i,&)
+#define isclr(x,i) !isset(x,i)
+
+#define howmany(n,d) (((n)+((d)-1))/(d))
+#define roundup(n,d) (howmany(n,d)*(d))
+#define powerof2(n) !(((n)-1) & (n))
+
 #include <sys/resource.h>
 #include <endian.h>
 #include <limits.h>
+
+#endif
diff --git a/include/termios.h b/include/termios.h
index 4c46562..3ae853d 100644
--- a/include/termios.h
+++ b/include/termios.h
@@ -32,6 +32,11 @@
 
 pid_t tcgetsid (int);
 
+#ifdef _GNUS_SOURCE
+void cfmakeraw(struct termios *);
+int cfsetspeed(struct termios *, speed_t);
+#endif
+
 #ifdef __cplusplus
 }
 #endif
diff --git a/include/time.h b/include/time.h
index ddfad58..98d0111 100644
--- a/include/time.h
+++ b/include/time.h
@@ -108,6 +108,11 @@
 #endif
 
 
+#if defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE)
+int stime(time_t *);
+#endif
+
+
 #ifdef __cplusplus
 }
 #endif
diff --git a/include/unistd.h b/include/unistd.h
index 7662e51..ee7ee6d 100644
--- a/include/unistd.h
+++ b/include/unistd.h
@@ -159,6 +159,8 @@
 int setresuid(uid_t, uid_t, uid_t);
 int setresgid(gid_t, gid_t, gid_t);
 char *get_current_dir_name(void);
+int daemon(int, int);
+int getdomainname(char *, size_t);
 #endif
 
 #define _XOPEN_VERSION          700
diff --git a/src/linux/daemon.c b/src/linux/daemon.c
index afb8019..1568b1d 100644
--- a/src/linux/daemon.c
+++ b/src/linux/daemon.c
@@ -1,3 +1,4 @@
+#define _GNU_SOURCE
 #include <fcntl.h>
 #include <unistd.h>
 
diff --git a/src/termios/cfmakeraw.c b/src/termios/cfmakeraw.c
index a3daa09..c9dddc1 100644
--- a/src/termios/cfmakeraw.c
+++ b/src/termios/cfmakeraw.c
@@ -1,3 +1,4 @@
+#define _GNU_SOURCE
 #include <termios.h>
 
 void cfmakeraw(struct termios *t)