--- /dev/null
+diff -urN atm/lib/Makefile atm.shared/lib/Makefile
+--- atm/lib/Makefile Fri Jan 21 06:27:10 2000
++++ atm.shared/lib/Makefile Sat Jan 13 00:34:04 2001
+@@ -1,29 +1,61 @@
+ ATM_OBJS=text2atm.o atm2text.o atmequal.o sdu2cell.o text2qos.o qos2text.o \
+- qosequal.o sap2text.o text2sap.o sapequal.o misc.o
+-ifeq (/usr/lib/libresolv.a,$(wildcard /usr/lib/libresolv.a))
+-ATM_OBJS += ans_l.o
+-else
+-ATM_OBJS += ans.o
+-endif
++ qosequal.o sap2text.o text2sap.o sapequal.o misc.o ans.o
++ATM_OBJS_S=text2atm_s.o atm2text_s.o atmequal_s.o sdu2cell_s.o text2qos_s.o qos2text_s.o \
++ qosequal_s.o sap2text_s.o text2sap_s.o sapequal_s.o misc_s.o ans_s.o
+ ATMD_OBJS=common.o diag.o kptr.o text2ip.o timer.o unix.o
++ATMD_OBJS_S=common_s.o diag_s.o kptr_s.o text2ip_s.o timer_s.o unix_s.o
+ PGMS=#test
+ GENLIBS=libatm.a libatmd.a
++SH_VER=`cat $(TOPDIR)/VERSION`
++SHLIBS=libatm.so.$(SH_VER) libatmd.so.$(SH_VER)
+ SYSHDR=atm.h atmd.h atmsap.h
+ OPTSYSHDR=stdint.h
+
+-do_all: libatm.a libatmd.a
++do_all: libatm.a libatmd.a libatm.so libatmd.so
+
+ include ../Rules.make
+
++install:
++ @process() { if [ ! -z "$$3" ]; then mode=$$1; dir=$$2; \
++ shift 2; echo "install -c -m $$mode $$* $$dir"; \
++ install -c -m $$mode $$* $$dir || exit 1; fi; }; \
++ optprocess() { [ -z "$$3" -o -r "/usr/include/$$3" ] || \
++ process $$*; }; \
++ $(PROCLIST)
++ @for n in "" $(SUBDIRS); do [ -z "$$n" ] || \
++ make -C $$n install || exit; done
++ ln -sf libatm.so.$(SH_VER) $(INSTLIB)/libatm.so
++ ln -sf libatmd.so.$(SH_VER) $(INSTLIB)/libatmd.so
++
+ ../lib/libatm.a: libatm.a
+
++../lib/libatm.so: libatm.so
++
++../lib/libatm.so.$(SH_VER): libatm.so.$(SH_VER)
++
+ libatm.a: $(ATM_OBJS)
+ ar rcs libatm.a $(ATM_OBJS)
+
++libatm.so: libatm.so.$(SH_VER)
++ ln -sf libatm.so.$(SH_VER) libatm.so
++
++libatm.so.$(SH_VER): $(ATM_OBJS_S)
++ $(CC) -shared -Wl,-soname,libatm.so.$(SH_VER) -o libatm.so.$(SH_VER) $(ATM_OBJS_S) -lresolv
++
+ ../lib/libatmd.a: libatmd.a
+
++../lib/libatm.so: libatmd.so
++
++../lib/libatm.so.$(SH_VER): libatmd.so.$(SH_VER)
++
+ libatmd.a: $(ATMD_OBJS)
+ ar rcs libatmd.a $(ATMD_OBJS)
+
+-ans_l.o: ans.o
+- ld -r -o ans_l.o ans.o -L/usr/lib -lresolv
++libatmd.so: libatmd.so.$(SH_VER)
++ ln -sf libatmd.so.$(SH_VER) libatmd.so
++
++libatmd.so.$(SH_VER): $(ATMD_OBJS_S)
++ $(CC) -shared -Wl,-soname,libatmd.so.$(SH_VER) -o libatmd.so.$(SH_VER) $(ATMD_OBJS_S)
++
++%_s.o: %.c
++ $(CC) -fPIC -DPIC $(CFLAGS) -c $< -o $@
+diff -urN atm/lib/timer.c atm.shared/lib/timer.c
+--- atm/lib/timer.c Tue Oct 21 19:00:10 1997
++++ atm.shared/lib/timer.c Sat Jan 13 00:27:26 2001
+@@ -12,6 +12,7 @@
+
+
+ static TIMER *timers = NULL;
++struct timeval now;
+
+
+ static void dump_list(const char *label)
+--- atm/Rules.make~ Sat Jan 13 00:38:31 2001
++++ atm/Rules.make Sat Jan 13 00:48:18 2001
+@@ -81,6 +81,7 @@
+ process 0755 $(INSTSYSBIN) $(SYSPGMS); \
+ process 0755 $(INSTUSRBIN) $(USRPGMS); \
+ process 0644 $(INSTLIB) $(GENLIBS); \
++ process 0755 $(INSTLIB) $(SHLIBS); \
+ process 0644 $(INSTHDR) $(SYSHDR); \
+ optprocess 0644 $(INSTHDR) $(OPTSYSHDR); \
+ process 0644 $(INSTMAN1) $(MAN1); \