[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Patch started for ST



Hi folks,

I started working on st which doesn't recognize GNU OS.

Somehow I have managed to jack up the md.h file.  If some brave soul feels like checking this out, I
would appreciate it.

Thanks,

Barry deFreese

diff -Nur -x '*.orig' -x '*~' st-1.9//Makefile st-1.9.new//Makefile
--- st-1.9//Makefile	2012-06-06 03:49:34.000000000 +0000
+++ st-1.9.new//Makefile	2012-06-06 03:52:24.000000000 +0000
@@ -96,6 +96,7 @@
               openbsd-debug openbsd-optimized       \
               osf1-debug osf1-optimized             \
               solaris-debug solaris-optimized       \
+              gnu-debug gnu-optimized               \
               solaris-64-debug solaris-64-optimized
 
 #
@@ -190,6 +191,16 @@
 endif
 endif
 
+ifeq ($(OS), GNU)
+EXTRA_OBJS  = $(TARGETDIR)/md.o
+SFLAGS      = -fPIC
+LDFLAGS     = -shared -soname=$(SONAME) -lc
+OTHER_FLAGS = -Wall
+ifeq ($(shell test -f /usr/include/sys/epoll.h && echo yes), yes)
+DEFINES     += -DMD_HAVE_EPOLL
+endif
+endif
+
 ifeq ($(OS), NETBSD)
 SFLAGS      = -fPIC
 LDFLAGS     = -shared -soname=$(SONAME) -lc
@@ -465,5 +476,10 @@
 solaris-64-optimized:
 	$(MAKE) OS="SOLARIS_64" BUILD="OPT"
 
+gnu-debug:
+	$(MAKE) OS="GNU" BUILD="DBG"
+gnu-optimized:
+	$(MAKE) OS="GNU" BUILD="OPT"
+
 ##########################
 
diff -Nur -x '*.orig' -x '*~' st-1.9//md.h st-1.9.new//md.h
--- st-1.9//md.h	2012-06-06 03:52:06.000000000 +0000
+++ st-1.9.new//md.h	2012-06-06 03:56:15.000000000 +0000
@@ -609,6 +609,47 @@
 #define MD_GET_UTIME() \
   return (gethrtime() / 1000)
 
+#elif defined (GNU)
+
+/*
+ * These are properties of the GNU kernel and are the same on every
+ * flavor and architecture.
+ */
+#define MD_USE_BSD_ANON_MMAP
+#define MD_ACCEPT_NB_NOT_INHERITED
+#define MD_ALWAYS_UNSERIALIZED_ACCEPT
+/*
+ * GNU syste is Posix.1g compliant.
+ */
+#define MD_HAVE_SOCKLEN_T
+
+/*
+ * All architectures have the gettimeofday
+ * function but if you know of a faster way, use it.
+ */
+#define MD_GET_UTIME()            \
+  struct timeval tv;              \
+  (void) gettimeofday(&tv, NULL); \
+  return (tv.tv_sec * 1000000LL + tv.tv_usec)
+
+#if defined(__i386__)
+#define MD_STACK_GROWS_DOWN
+#define MD_USE_BUILTIN_SETJMP
+
+#if defined(__GLIBC__) && __GLIBC__ >= 2
+#ifndef JB_SP
+#define JB_SP 4
+#endif
+#define MD_GET_SP(_t) (_t)->context[0].__jmpbuf[JB_SP]
+#else
+/* not an error but certainly cause for caution */
+#error "Untested use of old glibc on i386"
+#define MD_GET_SP(_t) (_t)->context[0].__jmpbuf[0].__sp
+#endif
+#else
+#error Unknown CPU architecture
+#endif
+
 #else
 #error Unknown OS
 #endif /* OS */
diff -Nur -x '*.orig' -x '*~' st-1.9//osguess.sh st-1.9.new//osguess.sh
--- st-1.9//osguess.sh	2012-06-06 03:52:05.000000000 +0000
+++ st-1.9.new//osguess.sh	2012-06-06 03:52:24.000000000 +0000
@@ -37,6 +37,7 @@
   *-dec-osf*      ) OS=OSF1       ;;
   *-solaris2*     ) OS=SOLARIS    ;;
   *-darwin*       ) OS=DARWIN     ;;
+  *-gnu*          ) OS=GNU        ;;
   *               ) OS=
                     echo "Sorry, unsupported OS"
                     exit 1        ;;

Reply to: