diff --git a/src/include/port/ultrix4.h b/src/include/port/ultrix4.h
index 55aa074f3ad094bdd5f8d6819c464953202076dd..c050965d5b008e1da171d36280b9f2056b1c4213 100644
--- a/src/include/port/ultrix4.h
+++ b/src/include/port/ultrix4.h
@@ -1,6 +1,10 @@
 #  define USE_POSIX_TIME
 #  define NEED_STRDUP
 
+#ifndef		BYTE_ORDER
+#define		BYTE_ORDER	LITTLE_ENDIAN
+#endif
+
 /*
  * Except for those system calls and library functions that are either
  * - covered by the C standard library and Posix.1
@@ -54,5 +58,6 @@ extern int gettimeofday(struct timeval *, struct timezone *);
 extern int fsync(int);
 extern int ftruncate(int, off_t);
 
-/* End of ultrix4.h */
+extern char *crypt(char *, char *);
 
+/* End of ultrix4.h */
diff --git a/src/makefiles/Makefile.ultrix4 b/src/makefiles/Makefile.ultrix4
index cf46e90819b76cc5f0e5c0e133cf046cfce77220..b56aee6c686d4d5ff7e0f5c4aed35fec61569d91 100644
--- a/src/makefiles/Makefile.ultrix4
+++ b/src/makefiles/Makefile.ultrix4
@@ -1,2 +1,9 @@
 # install creates intermediate directories
 NO_BEFOREINSTL= true
+SHELL=/bin/sh5
+
+#
+# "-G 0" works for both DEC cc and GNU cc.
+#
+%.so: %.c
+	$(CC) -c -G 0 $(CFLAGS) -o $@ $<
diff --git a/src/template/ultrix4 b/src/template/ultrix4
index 038c7b1ef00b71348249379fa813959b84360144..237426646f768bbb22ad793d75af0cbcb2627d9a 100644
--- a/src/template/ultrix4
+++ b/src/template/ultrix4
@@ -5,6 +5,6 @@ ALL:
 SRCH_INC:
 SRCH_LIB:
 USE_LOCALE:no
-DLSUFFIX:.o
+DLSUFFIX:.so
 YFLAGS:-d
 YACC: