delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp/2015/05/23/09:10:28

X-Authentication-Warning: delorie.com: mail set sender to djgpp-bounces using -f
X-Recipient: djgpp AT delorie DOT com
X-Original-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
d=gmail.com; s=20120113;
h=mime-version:in-reply-to:references:date:message-id:subject:from:to
:content-type;
bh=bFfAluwPxI4wXzqovvBOOv54gzCgWLENTyfi1TF0s5Q=;
b=H5muU3DvoRocIAyYGMSpNMAEFPXkgKxYJCe6s0MmSlkm2cP88q9Jz/o7+Fv62DRqcX
N2MZGZK6yRu6SBZbZ8SDzo+4avlMrbUd5GW/nUpXXUjJF39WAJOP23xO3U3h+JEo23L2
R+0o8zt3BEUXY9j6uoHbdGELOLCxcDRHM2Pepc+YBJSOxd0YKXPDRMikw8rL1DkplHJS
wtn9FKHBc8kBqi0t8GztV+LuFX0S9GzQJa6SJnRVSz/aMOGgXu3KDlx3TZkfg0g3tfKr
flNBIEw9FqBJm29r8TmbXZ5pd4m4wx6SWH9f0UKL28ANZlKzkhicAbAD3Z6kEhCz0KxB
Ax3g==
MIME-Version: 1.0
X-Received: by 10.107.12.34 with SMTP id w34mr13440151ioi.10.1432386616289;
Sat, 23 May 2015 06:10:16 -0700 (PDT)
In-Reply-To: <CAA2C=vD9T8H=fjrattH6RkH7Dec611TCjQKnc4N5e+3LD5Y9Gg@mail.gmail.com>
References: <201505042003 DOT t44K3odg011007 AT delorie DOT com>
<CAA2C=vDjMv6vQbayBvrpwWTCp3Eu4SjardA8y6ujZPV_bY-cbQ AT mail DOT gmail DOT com>
<83mw106kgn DOT fsf AT gnu DOT org>
<CAA2C=vD9T8H=fjrattH6RkH7Dec611TCjQKnc4N5e+3LD5Y9Gg AT mail DOT gmail DOT com>
Date: Sat, 23 May 2015 16:10:16 +0300
Message-ID: <CAA2C=vAb2KvK+j=Q_J=88BYiJACJ023bq4eJzOd_AusWF_2ZVQ@mail.gmail.com>
Subject: Re: ANNOUNCE: DJGPP 2.05 beta 1
From: "Ozkan Sezer (sezeroz AT gmail DOT com)" <djgpp AT delorie DOT com>
To: djgpp AT delorie DOT com
Reply-To: djgpp AT delorie DOT com
Errors-To: nobody AT delorie DOT com
X-Mailing-List: djgpp AT delorie DOT com
X-Unsubscribes-To: listserv AT delorie DOT com

--001a113f7e1c72d1c30516bf7f27
Content-Type: text/plain; charset=UTF-8

Updated patch for zoneinfo build system follows (also attached
as a patch file.) Bulid tested using 2.03 and 2.05 cross toolchains,
also successfully built under winxp using gcc-2.95 and djgpp-2.03
based environment. If no objections, I plan to apply this tomorrow.

* build tz binaries against source-tree, not against toolchain:
- zic: define as dos-zic.exe or host-zic.exe depending on cross
  or native build.
- host-zic: place in $(TOPDIR)/hostbin like other utils.
- HOST_ZIC: new var for 'host-zic' for cross-builds.
- HOST_ZIC: do not build if cross-compiling, copy over target-
  zic.exe to hostbin/ instead.
- LIBGCCA, DJGPP_DJL: copied defitinions from src/makefile.inc.
- CFLAGS: add -nostdinc -I$(TOPDIR)/include
- GCCFLAGS: (kept intact)
- zdump.exe, zic.exe, date.exe: change rules to link against
  freshly built crt0.o and libc.a.
- date.exe: remove logwtmpl.a building, because it was linking
  to locally built logwtmpl.a and logwtmp.o is simply an empty
  object for dos-targeting builds.
- debug flags: made them to work old compilers too, and cleaned
  and tidied a bit.

Index: zoneinfo/src/makefile
===================================================================
RCS file: /cvs/djgpp/djgpp/zoneinfo/src/makefile,v
retrieving revision 1.16
diff -u -r1.16 makefile
--- zoneinfo/src/makefile	26 Nov 2013 18:08:51 -0000	1.16
+++ zoneinfo/src/makefile	23 May 2015 12:55:50 -0000
@@ -87,6 +87,27 @@
 CROSS_GCC_MAJOR := $(word 3, $(shell ../../src/misc.exe |
$(CROSS_GCC) -E -dD -x c - | egrep 'define\ *__GNUC__'))
 CROSS_GCC_MINOR := $(word 3, $(shell ../../src/misc.exe |
$(CROSS_GCC) -E -dD -x c - | egrep 'define\ *__GNUC_MINOR__'))

+# very old gcc, e.g. gcc-2.95, fails the above, so we invent a default.
+ifeq ($(GCC_MAJOR),)
+GCC_MAJOR := 2
+GCC_MINOR := 7
+endif
+ifeq ($(CROSS_GCC_MAJOR),)
+CROSS_GCC_MAJOR := 2
+CROSS_GCC_MINOR := 7
+endif
+
+ifeq ($(LIBGCCA),)
+LIBGCCA := $(shell $(CROSS_GCC) $(GCC_OPT) -print-file-name=libgcc.a)
+LIBGCCA := $(subst \,/,$(LIBGCCA))
+export LIBGCCA
+endif
+
+ifeq ($(DJGPP_DJL),)
+DJGPP_DJL = $(TOPDIR)/lib/djgpp.djl
+#export DJGPP_DJL
+endif
+
 # A replacement for (possibly missing) Unix programs:

 UTIL=		$(TOPDIR)/src/misc.exe
@@ -162,97 +183,48 @@
 #	-Wsuggest-attribute=noreturn -Wsuggest-attribute=pure -Wtrampolines \
 #	-Wwrite-strings

+COMMON_DEBUG_FLAGS = -Dlint -g -fno-common -fstrict-aliasing \
+	-Wall -W -Wcast-align -Wcast-qual -Wpointer-arith \
+	-Wmissing-declarations -Wmissing-prototypes -Wstrict-prototypes \
+	-Wnested-externs -Wshadow -Wwrite-strings
+
 # Cross compiler debug flags.
-CROSS_GCC_DEBUG_FLAGS_FOR_ALL = -Dlint -g2 -fno-common -fstrict-aliasing \
-	-Wall -Wextra \
-	-Wbad-function-cast -Wcast-align -Wcast-qual \
-	-Wformat=2 -Winit-self \
-	-Wmissing-declarations -Wmissing-noreturn -Wmissing-prototypes \
-	-Wnested-externs -Wno-format-nonliteral -Wno-sign-compare \
-	-Wno-unused-parameter  -Wpointer-arith -Wshadow -Wstrict-prototypes \
-	-Wwrite-strings
-
-ifeq ($(CROSS_GCC_MAJOR),3)
-ifeq ($(CROSS_GCC_MINOR),4)
-CROSS_GCC_DEBUG_FLAGS = $(CROSS_GCC_DEBUG_FLAGS_FOR_ALL) -Wconversion
-Wtraditional
+ifeq ($(filter 2,$(CROSS_GCC_MAJOR)),)
+# gcc >= 3.x
+CROSS_GCC3_DFLAGS = -Wbad-function-cast -Wno-sign-compare -Wno-unused-parameter
+ifeq ($(filter 3,$(CROSS_GCC_MAJOR)),)
+ifeq ($(filter 4,$(CROSS_GCC_MAJOR)),)
+# gcc >= 5.x
+CROSS_GCC4_DFLAGS = -Wno-type-limits
+else
+# gcc >= 4.x
+ifeq ($(filter 0 1 2,$(CROSS_GCC_MINOR)),)
+# gcc >= 4.3
+CROSS_GCC4_DFLAGS = -Wno-type-limits
+endif
 endif
 endif
-
-ifeq ($(CROSS_GCC_MAJOR),4)
- ifeq ($(CROSS_GCC_MINOR),0)
-CROSS_GCC_DEBUG_FLAGS_SPECIAL =
- else
-  ifeq ($(CROSS_GCC_MINOR),1)
-CROSS_GCC_DEBUG_FLAGS_SPECIAL =
-  else
-   ifeq ($(CROSS_GCC_MINOR),2)
-CROSS_GCC_DEBUG_FLAGS_SPECIAL = -Woverlength-strings
-   else
-    ifeq ($(CROSS_GCC_MINOR),3)
-CROSS_GCC_DEBUG_FLAGS_SPECIAL = -Woverlength-strings
-Wno-sign-conversion -Wno-type-limits
-    else
-     ifeq ($(CROSS_GCC_MINOR),4)
-CROSS_GCC_DEBUG_FLAGS_SPECIAL = -Woverlength-strings
-Wno-sign-conversion -Wno-type-limits
-     else
-      ifeq ($(CROSS_GCC_MINOR),5)
-CROSS_GCC_DEBUG_FLAGS_SPECIAL = -Woverlength-strings
-Wno-sign-conversion -Wno-type-limits
-      else
-# gcc 4.6 and later works.
-CROSS_GCC_DEBUG_FLAGS_SPECIAL = -Woverlength-strings
-Wno-sign-conversion -Wno-type-limits -Wsuggest-attribute=const
-Wsuggest-attribute=noreturn -Wsuggest-attribute=pure -Wtrampolines
-      endif
-     endif
-    endif
-   endif
-  endif
-CROSS_GCC_DEBUG_FLAGS = $(CROSS_GCC_DEBUG_FLAGS_FOR_ALL)
$(CROSS_GCC_DEBUG_FLAGS_SPECIAL)
- endif
 endif
+CROSS_GCC_DEBUG_FLAGS = $(COMMON_DEBUG_FLAGS) $(CROSS_GCC3_DFLAGS)
$(CROSS_GCC4_DFLAGS)

 # Native compiler debug flags.
-GCC_DEBUG_FLAGS_FOR_ALL = -Dlint -g2 -fno-common -fstrict-aliasing \
-	-Wall -Wextra \
-	-Wbad-function-cast -Wcast-align -Wcast-qual \
-	-Wformat=2 -Winit-self \
-	-Wmissing-declarations -Wmissing-noreturn -Wmissing-prototypes \
-	-Wnested-externs -Wno-format-nonliteral -Wno-sign-compare \
-	-Wno-unused-parameter  -Wpointer-arith -Wshadow -Wstrict-prototypes \
-	-Wwrite-strings
-
-ifeq ($(GCC_MAJOR),3)
-ifeq ($(GCC_MINOR),4)
-GCC_DEBUG_FLAGS = $(GCC_DEBUG_FLAGS_FOR_ALL) -Wconversion -Wtraditional
+ifeq ($(filter 2,$(GCC_MAJOR)),)
+# gcc >= 3.x
+GCC3_DEBUG_FLAGS = -Wbad-function-cast -Wno-sign-compare -Wno-unused-parameter
+ifeq ($(filter 3,$(GCC_MAJOR)),)
+ifeq ($(filter 4,$(GCC_MAJOR)),)
+# gcc >= 5.x
+GCC4_DEBUG_FLAGS = -Wno-type-limits
+else
+# gcc >= 4.x
+ifeq ($(filter 0 1 2,$(GCC_MINOR)),)
+# gcc >= 4.3
+GCC4_DEBUG_FLAGS = -Wno-type-limits
+endif
 endif
 endif
-
-ifeq ($(GCC_MAJOR),4)
- ifeq ($(GCC_MINOR),0)
-GCC_DEBUG_FLAGS_SPECIAL =
- else
-  ifeq ($(GCC_MINOR),1)
-GCC_DEBUG_FLAGS_SPECIAL =
-  else
-   ifeq ($(GCC_MINOR),2)
-GCC_DEBUG_FLAGS_SPECIAL = -Woverlength-strings
-   else
-    ifeq ($(GCC_MINOR),3)
-GCC_DEBUG_FLAGS_SPECIAL = -Woverlength-strings -Wno-sign-conversion
-Wno-type-limits
-    else
-     ifeq ($(GCC_MINOR),4)
-GCC_DEBUG_FLAGS_SPECIAL = -Woverlength-strings -Wno-sign-conversion
-Wno-type-limits
-     else
-      ifeq ($(GCC_MINOR),5)
-GCC_DEBUG_FLAGS_SPECIAL = -Woverlength-strings -Wno-sign-conversion
-Wno-type-limits
-      else
-# gcc 4.6 and later works.
-GCC_DEBUG_FLAGS_SPECIAL = -Woverlength-strings -Wno-sign-conversion
-Wno-type-limits -Wsuggest-attribute=const
-Wsuggest-attribute=noreturn -Wsuggest-attribute=pure -Wtrampolines
-      endif
-     endif
-    endif
-   endif
-  endif
-GCC_DEBUG_FLAGS = $(GCC_DEBUG_FLAGS_FOR_ALL) $(GCC_DEBUG_FLAGS_SPECIAL)
- endif
 endif
+GCC_DEBUG_FLAGS = $(COMMON_DEBUG_FLAGS) $(GCC3_DEBUG_FLAGS) $(GCC4_DEBUG_FLAGS)

 #
 # If you want to use System V compatibility code, add
@@ -349,7 +321,7 @@
 		-DHAVE_STRERROR=1 -DHAVE_SYMLINK=0 -DHAVE_STDINT_H=1\
 		-DSTD_INSPIRED \
 		-DLOCALE_HOME=\"/dev/env/DJDIR~c:/djgpp~/share/locale\" \
-		$(CROSS_GCC_DEBUG_FLAGS) -O2
+		$(CROSS_GCC_DEBUG_FLAGS) -O2 -nostdinc -I$(TOPDIR)/include

 # Flags for native compiler
 GCCFLAGS=	-DHAVE_ADJTIME=0 -DHAVE_LONG_DOUBLE=1 -DHAVE_SETTIMEOFDAY=1 \
@@ -368,7 +340,12 @@
 LDFLAGS=	$(LFLAGS)

 EXEEXT=		.exe
-zic=		./host-zic
+HOST_ZIC=	$(TOPDIR)/hostbin/zic$(EXEEXT)
+ifeq ($(CROSS_BUILD),1)
+zic=		$(HOST_ZIC)
+else
+zic=		zic$(EXEEXT)
+endif
 ZIC=		$(zic) $(ZFLAGS)

 # The name of a Posix-compliant `awk' on your system.
@@ -508,7 +485,7 @@
 		$(UTIL) cp zdump.man $(MANDIR)/cat8/zdump.8
 		$(UTIL) cp zic.man $(MANDIR)/cat8/zic.8

-all:		tzselect host-zic zic$(EXEEXT) zdump$(EXEEXT) $(LIBOBJS)
+all:		tzselect $(HOST_ZIC) zic$(EXEEXT) zdump$(EXEEXT) $(LIBOBJS)

 ALL:		all date$(EXEEXT)

@@ -517,18 +494,23 @@
 		 echo 'static char const TZVERSION[]="$(VERSION)";' && \
 		 echo 'static char const REPORT_BUGS_TO[]="$(BUGEMAIL)";') >$@

-zdump$(EXEEXT):	$(TZDOBJS)
-		$(CC) -o $@ $(CFLAGS) $(LDFLAGS) $(TZDOBJS) $(LDLIBS)
-		$(CROSS_STRIP) $@
-
-host-zic:	$(TZCSRCS) yearistype version.h
+zdump$(EXEEXT):	$(TZDOBJS) $(TOPDIR)/lib/crt0.o $(TOPDIR)/lib/libc.a
+		$(CROSS_LD) -s $(LDFLAGS) $(TOPDIR)/lib/crt0.o $(TZDOBJS) -o $@
$(TOPDIR)/lib/libc.a $(LIBGCCA) -T $(DJGPP_DJL)
+		$(TOPDIR)/hostbin/stubify.exe $@
+
+ifneq ($(CROSS_BUILD),1)
+$(HOST_ZIC):	zic$(EXEEXT)
+		$(UTIL) cp zic$(EXEEXT) $(HOST_ZIC)
+else
+$(HOST_ZIC):	$(TZCSRCS) yearistype version.h
 		$(GCC) -DTZDIR=\"/dev/env/DJDIR~c:/djgpp~/zoneinfo\" \
 		$(GCCFLAGS) $(LDFLAGS) $(TZCSRCS) $(LDLIBS) -o $@
 		$(STRIP) $@
+endif

-zic$(EXEEXT):	$(TZCOBJS) yearistype
-		$(CC) -o $@ $(CFLAGS) $(LDFLAGS) $(TZCOBJS) $(LDLIBS)
-		$(CROSS_STRIP) $@
+zic$(EXEEXT):	$(TZCOBJS) $(TOPDIR)/lib/crt0.o $(TOPDIR)/lib/libc.a yearistype
+		$(CROSS_LD) -s $(LDFLAGS) $(TOPDIR)/lib/crt0.o $(TZCOBJS) -o $@
$(TOPDIR)/lib/libc.a $(LIBGCCA) -T $(DJGPP_DJL)
+		$(TOPDIR)/hostbin/stubify.exe $@

 yearistype:	yearistype.sh
 		$(UTIL) cp yearistype.sh yearistype
@@ -578,15 +560,9 @@
 		-$(UTIL) mkdir $(LIBDIR)
 		$(CROSS_AR) rus $@ $(LIBOBJS)

-# We use the system's logwtmp in preference to ours if available.
-
-date$(EXEEXT):	$(DATEOBJS)
-		$(CROSS_AR) rs logwtmpl.a logwtmp.o
-		$(CC) $(CFLAGS) date.o localtime.o asctime.o strftime.o \
-			$(LDLIBS) -lc logwtmpl.a -o $@
-		$(CROSS_STRIP) $@
-		$(UTIL) rm logwtmpl.a
-		$(CROSS_STRIP) $@
+date$(EXEEXT):	$(DATEOBJS) $(TOPDIR)/lib/crt0.o $(TOPDIR)/lib/libc.a
+		$(CROSS_LD) -s $(LDFLAGS) $(TOPDIR)/lib/crt0.o $(DATEOBJS) -o $@
$(TOPDIR)/lib/libc.a $(LIBGCCA) -T $(DJGPP_DJL)
+		$(TOPDIR)/hostbin/stubify.exe $@

 tzselect:	tzselect.ksh
 		sed \
@@ -611,7 +587,7 @@

 clean_misc:
 		$(UTIL) rm core *.o *.out tzselect zdump$(EXEEXT) zic$(EXEEXT) \
-			yearistype date$(EXEEXT) logwtmpl* *.tar.gz host-zic *.exe *.man \
+			yearistype date$(EXEEXT) logwtmpl* *.tar.gz $(HOST_ZIC) *.exe *.man \
 			TDATA_list
 clean:		clean_misc
 		$(UTIL) rm -f -r tzpublic

--
O.S.

--001a113f7e1c72d1c30516bf7f27
Content-Type: text/plain; charset=US-ASCII; name="z4.diff"
Content-Disposition: attachment; filename="z4.diff"
Content-Transfer-Encoding: base64
X-Attachment-Id: file0

KiBidWlsZCB0eiBiaW5hcmllcyBhZ2FpbnN0IHNvdXJjZS10cmVlLCBub3QgYWdhaW5zdCB0b29s
Y2hhaW46Ci0gemljOiBkZWZpbmUgYXMgZG9zLXppYy5leGUgb3IgaG9zdC16aWMuZXhlIGRlcGVu
ZGluZyBvbiBjcm9zcwogIG9yIG5hdGl2ZSBidWlsZC4KLSBob3N0LXppYzogcGxhY2UgaW4gJChU
T1BESVIpL2hvc3RiaW4gbGlrZSBvdGhlciB1dGlscy4KLSBIT1NUX1pJQzogbmV3IHZhciBmb3Ig
J2hvc3QtemljJyBmb3IgY3Jvc3MtYnVpbGRzLgotIEhPU1RfWklDOiBkbyBub3QgYnVpbGQgaWYg
Y3Jvc3MtY29tcGlsaW5nLCBjb3B5IG92ZXIgdGFyZ2V0LQogIHppYy5leGUgdG8gaG9zdGJpbi8g
aW5zdGVhZC4KLSBMSUJHQ0NBLCBESkdQUF9ESkw6IGNvcGllZCBkZWZpdGluaW9ucyBmcm9tIHNy
Yy9tYWtlZmlsZS5pbmMuCi0gQ0ZMQUdTOiBhZGQgLW5vc3RkaW5jIC1JJChUT1BESVIpL2luY2x1
ZGUKLSBHQ0NGTEFHUzogKGtlcHQgaW50YWN0KQotIHpkdW1wLmV4ZSwgemljLmV4ZSwgZGF0ZS5l
eGU6IGNoYW5nZSBydWxlcyB0byBsaW5rIGFnYWluc3QKICBmcmVzaGx5IGJ1aWx0IGNydDAubyBh
bmQgbGliYy5hLgotIGRhdGUuZXhlOiByZW1vdmUgbG9nd3RtcGwuYSBidWlsZGluZywgYmVjYXVz
ZSBpdCB3YXMgbGlua2luZwogIHRvIGxvY2FsbHkgYnVpbHQgbG9nd3RtcGwuYSBhbmQgbG9nd3Rt
cC5vIGlzIHNpbXBseSBhbiBlbXB0eQogIG9iamVjdCBmb3IgZG9zLXRhcmdldGluZyBidWlsZHMu
Ci0gZGVidWcgZmxhZ3M6IG1hZGUgdGhlbSB0byB3b3JrIG9sZCBjb21waWxlcnMgdG9vLCBhbmQg
Y2xlYW5lZAogIGFuZCB0aWRpZWQgYSBiaXQuCgpJbmRleDogem9uZWluZm8vc3JjL21ha2VmaWxl
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KUkNTIGZpbGU6IC9jdnMvZGpncHAvZGpncHAvem9uZWluZm8vc3JjL21ha2Vm
aWxlLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjE2CmRpZmYgLXUgLXIxLjE2IG1ha2VmaWxlCi0t
LSB6b25laW5mby9zcmMvbWFrZWZpbGUJMjYgTm92IDIwMTMgMTg6MDg6NTEgLTAwMDAJMS4xNgor
Kysgem9uZWluZm8vc3JjL21ha2VmaWxlCTIzIE1heSAyMDE1IDEyOjU1OjUwIC0wMDAwCkBAIC04
Nyw2ICs4NywyNyBAQAogQ1JPU1NfR0NDX01BSk9SIDo9ICQod29yZCAzLCAkKHNoZWxsIC4uLy4u
L3NyYy9taXNjLmV4ZSB8ICQoQ1JPU1NfR0NDKSAtRSAtZEQgLXggYyAtIHwgZWdyZXAgJ2RlZmlu
ZVwgKl9fR05VQ19fJykpCiBDUk9TU19HQ0NfTUlOT1IgOj0gJCh3b3JkIDMsICQoc2hlbGwgLi4v
Li4vc3JjL21pc2MuZXhlIHwgJChDUk9TU19HQ0MpIC1FIC1kRCAteCBjIC0gfCBlZ3JlcCAnZGVm
aW5lXCAqX19HTlVDX01JTk9SX18nKSkKIAorIyB2ZXJ5IG9sZCBnY2MsIGUuZy4gZ2NjLTIuOTUs
IGZhaWxzIHRoZSBhYm92ZSwgc28gd2UgaW52ZW50IGEgZGVmYXVsdC4KK2lmZXEgKCQoR0NDX01B
Sk9SKSwpCitHQ0NfTUFKT1IgOj0gMgorR0NDX01JTk9SIDo9IDcKK2VuZGlmCitpZmVxICgkKENS
T1NTX0dDQ19NQUpPUiksKQorQ1JPU1NfR0NDX01BSk9SIDo9IDIKK0NST1NTX0dDQ19NSU5PUiA6
PSA3CitlbmRpZgorCitpZmVxICgkKExJQkdDQ0EpLCkKK0xJQkdDQ0EgOj0gJChzaGVsbCAkKENS
T1NTX0dDQykgJChHQ0NfT1BUKSAtcHJpbnQtZmlsZS1uYW1lPWxpYmdjYy5hKQorTElCR0NDQSA6
PSAkKHN1YnN0IFwsLywkKExJQkdDQ0EpKQorZXhwb3J0IExJQkdDQ0EKK2VuZGlmCisKK2lmZXEg
KCQoREpHUFBfREpMKSwpCitESkdQUF9ESkwgPSAkKFRPUERJUikvbGliL2RqZ3BwLmRqbAorI2V4
cG9ydCBESkdQUF9ESkwKK2VuZGlmCisKICMgQSByZXBsYWNlbWVudCBmb3IgKHBvc3NpYmx5IG1p
c3NpbmcpIFVuaXggcHJvZ3JhbXM6CiAKIFVUSUw9CQkkKFRPUERJUikvc3JjL21pc2MuZXhlCkBA
IC0xNjIsOTcgKzE4Myw0OCBAQAogIwktV3N1Z2dlc3QtYXR0cmlidXRlPW5vcmV0dXJuIC1Xc3Vn
Z2VzdC1hdHRyaWJ1dGU9cHVyZSAtV3RyYW1wb2xpbmVzIFwKICMJLVd3cml0ZS1zdHJpbmdzCiAK
K0NPTU1PTl9ERUJVR19GTEFHUyA9IC1EbGludCAtZyAtZm5vLWNvbW1vbiAtZnN0cmljdC1hbGlh
c2luZyBcCisJLVdhbGwgLVcgLVdjYXN0LWFsaWduIC1XY2FzdC1xdWFsIC1XcG9pbnRlci1hcml0
aCBcCisJLVdtaXNzaW5nLWRlY2xhcmF0aW9ucyAtV21pc3NpbmctcHJvdG90eXBlcyAtV3N0cmlj
dC1wcm90b3R5cGVzIFwKKwktV25lc3RlZC1leHRlcm5zIC1Xc2hhZG93IC1Xd3JpdGUtc3RyaW5n
cworCiAjIENyb3NzIGNvbXBpbGVyIGRlYnVnIGZsYWdzLgotQ1JPU1NfR0NDX0RFQlVHX0ZMQUdT
X0ZPUl9BTEwgPSAtRGxpbnQgLWcyIC1mbm8tY29tbW9uIC1mc3RyaWN0LWFsaWFzaW5nIFwKLQkt
V2FsbCAtV2V4dHJhIFwKLQktV2JhZC1mdW5jdGlvbi1jYXN0IC1XY2FzdC1hbGlnbiAtV2Nhc3Qt
cXVhbCBcCi0JLVdmb3JtYXQ9MiAtV2luaXQtc2VsZiBcCi0JLVdtaXNzaW5nLWRlY2xhcmF0aW9u
cyAtV21pc3Npbmctbm9yZXR1cm4gLVdtaXNzaW5nLXByb3RvdHlwZXMgXAotCS1XbmVzdGVkLWV4
dGVybnMgLVduby1mb3JtYXQtbm9ubGl0ZXJhbCAtV25vLXNpZ24tY29tcGFyZSBcCi0JLVduby11
bnVzZWQtcGFyYW1ldGVyICAtV3BvaW50ZXItYXJpdGggLVdzaGFkb3cgLVdzdHJpY3QtcHJvdG90
eXBlcyBcCi0JLVd3cml0ZS1zdHJpbmdzCi0KLWlmZXEgKCQoQ1JPU1NfR0NDX01BSk9SKSwzKQot
aWZlcSAoJChDUk9TU19HQ0NfTUlOT1IpLDQpCi1DUk9TU19HQ0NfREVCVUdfRkxBR1MgPSAkKENS
T1NTX0dDQ19ERUJVR19GTEFHU19GT1JfQUxMKSAtV2NvbnZlcnNpb24gLVd0cmFkaXRpb25hbAor
aWZlcSAoJChmaWx0ZXIgMiwkKENST1NTX0dDQ19NQUpPUikpLCkKKyMgZ2NjID49IDMueAorQ1JP
U1NfR0NDM19ERkxBR1MgPSAtV2JhZC1mdW5jdGlvbi1jYXN0IC1Xbm8tc2lnbi1jb21wYXJlIC1X
bm8tdW51c2VkLXBhcmFtZXRlcgoraWZlcSAoJChmaWx0ZXIgMywkKENST1NTX0dDQ19NQUpPUikp
LCkKK2lmZXEgKCQoZmlsdGVyIDQsJChDUk9TU19HQ0NfTUFKT1IpKSwpCisjIGdjYyA+PSA1LngK
K0NST1NTX0dDQzRfREZMQUdTID0gLVduby10eXBlLWxpbWl0cworZWxzZQorIyBnY2MgPj0gNC54
CitpZmVxICgkKGZpbHRlciAwIDEgMiwkKENST1NTX0dDQ19NSU5PUikpLCkKKyMgZ2NjID49IDQu
MworQ1JPU1NfR0NDNF9ERkxBR1MgPSAtV25vLXR5cGUtbGltaXRzCitlbmRpZgogZW5kaWYKIGVu
ZGlmCi0KLWlmZXEgKCQoQ1JPU1NfR0NDX01BSk9SKSw0KQotIGlmZXEgKCQoQ1JPU1NfR0NDX01J
Tk9SKSwwKQotQ1JPU1NfR0NDX0RFQlVHX0ZMQUdTX1NQRUNJQUwgPSAKLSBlbHNlCi0gIGlmZXEg
KCQoQ1JPU1NfR0NDX01JTk9SKSwxKQotQ1JPU1NfR0NDX0RFQlVHX0ZMQUdTX1NQRUNJQUwgPSAK
LSAgZWxzZQotICAgaWZlcSAoJChDUk9TU19HQ0NfTUlOT1IpLDIpCi1DUk9TU19HQ0NfREVCVUdf
RkxBR1NfU1BFQ0lBTCA9IC1Xb3Zlcmxlbmd0aC1zdHJpbmdzCi0gICBlbHNlCi0gICAgaWZlcSAo
JChDUk9TU19HQ0NfTUlOT1IpLDMpCi1DUk9TU19HQ0NfREVCVUdfRkxBR1NfU1BFQ0lBTCA9IC1X
b3Zlcmxlbmd0aC1zdHJpbmdzIC1Xbm8tc2lnbi1jb252ZXJzaW9uIC1Xbm8tdHlwZS1saW1pdHMK
LSAgICBlbHNlCi0gICAgIGlmZXEgKCQoQ1JPU1NfR0NDX01JTk9SKSw0KQotQ1JPU1NfR0NDX0RF
QlVHX0ZMQUdTX1NQRUNJQUwgPSAtV292ZXJsZW5ndGgtc3RyaW5ncyAtV25vLXNpZ24tY29udmVy
c2lvbiAtV25vLXR5cGUtbGltaXRzCi0gICAgIGVsc2UKLSAgICAgIGlmZXEgKCQoQ1JPU1NfR0ND
X01JTk9SKSw1KQotQ1JPU1NfR0NDX0RFQlVHX0ZMQUdTX1NQRUNJQUwgPSAtV292ZXJsZW5ndGgt
c3RyaW5ncyAtV25vLXNpZ24tY29udmVyc2lvbiAtV25vLXR5cGUtbGltaXRzCi0gICAgICBlbHNl
Ci0jIGdjYyA0LjYgYW5kIGxhdGVyIHdvcmtzLgotQ1JPU1NfR0NDX0RFQlVHX0ZMQUdTX1NQRUNJ
QUwgPSAtV292ZXJsZW5ndGgtc3RyaW5ncyAtV25vLXNpZ24tY29udmVyc2lvbiAtV25vLXR5cGUt
bGltaXRzIC1Xc3VnZ2VzdC1hdHRyaWJ1dGU9Y29uc3QgLVdzdWdnZXN0LWF0dHJpYnV0ZT1ub3Jl
dHVybiAtV3N1Z2dlc3QtYXR0cmlidXRlPXB1cmUgLVd0cmFtcG9saW5lcwotICAgICAgZW5kaWYK
LSAgICAgZW5kaWYKLSAgICBlbmRpZgotICAgZW5kaWYKLSAgZW5kaWYKLUNST1NTX0dDQ19ERUJV
R19GTEFHUyA9ICQoQ1JPU1NfR0NDX0RFQlVHX0ZMQUdTX0ZPUl9BTEwpICQoQ1JPU1NfR0NDX0RF
QlVHX0ZMQUdTX1NQRUNJQUwpCi0gZW5kaWYKIGVuZGlmCitDUk9TU19HQ0NfREVCVUdfRkxBR1Mg
PSAkKENPTU1PTl9ERUJVR19GTEFHUykgJChDUk9TU19HQ0MzX0RGTEFHUykgJChDUk9TU19HQ0M0
X0RGTEFHUykKIAogIyBOYXRpdmUgY29tcGlsZXIgZGVidWcgZmxhZ3MuCi1HQ0NfREVCVUdfRkxB
R1NfRk9SX0FMTCA9IC1EbGludCAtZzIgLWZuby1jb21tb24gLWZzdHJpY3QtYWxpYXNpbmcgXAot
CS1XYWxsIC1XZXh0cmEgXAotCS1XYmFkLWZ1bmN0aW9uLWNhc3QgLVdjYXN0LWFsaWduIC1XY2Fz
dC1xdWFsIFwKLQktV2Zvcm1hdD0yIC1XaW5pdC1zZWxmIFwKLQktV21pc3NpbmctZGVjbGFyYXRp
b25zIC1XbWlzc2luZy1ub3JldHVybiAtV21pc3NpbmctcHJvdG90eXBlcyBcCi0JLVduZXN0ZWQt
ZXh0ZXJucyAtV25vLWZvcm1hdC1ub25saXRlcmFsIC1Xbm8tc2lnbi1jb21wYXJlIFwKLQktV25v
LXVudXNlZC1wYXJhbWV0ZXIgIC1XcG9pbnRlci1hcml0aCAtV3NoYWRvdyAtV3N0cmljdC1wcm90
b3R5cGVzIFwKLQktV3dyaXRlLXN0cmluZ3MKLQotaWZlcSAoJChHQ0NfTUFKT1IpLDMpCi1pZmVx
ICgkKEdDQ19NSU5PUiksNCkKLUdDQ19ERUJVR19GTEFHUyA9ICQoR0NDX0RFQlVHX0ZMQUdTX0ZP
Ul9BTEwpIC1XY29udmVyc2lvbiAtV3RyYWRpdGlvbmFsCitpZmVxICgkKGZpbHRlciAyLCQoR0ND
X01BSk9SKSksKQorIyBnY2MgPj0gMy54CitHQ0MzX0RFQlVHX0ZMQUdTID0gLVdiYWQtZnVuY3Rp
b24tY2FzdCAtV25vLXNpZ24tY29tcGFyZSAtV25vLXVudXNlZC1wYXJhbWV0ZXIKK2lmZXEgKCQo
ZmlsdGVyIDMsJChHQ0NfTUFKT1IpKSwpCitpZmVxICgkKGZpbHRlciA0LCQoR0NDX01BSk9SKSks
KQorIyBnY2MgPj0gNS54CitHQ0M0X0RFQlVHX0ZMQUdTID0gLVduby10eXBlLWxpbWl0cworZWxz
ZQorIyBnY2MgPj0gNC54CitpZmVxICgkKGZpbHRlciAwIDEgMiwkKEdDQ19NSU5PUikpLCkKKyMg
Z2NjID49IDQuMworR0NDNF9ERUJVR19GTEFHUyA9IC1Xbm8tdHlwZS1saW1pdHMKK2VuZGlmCiBl
bmRpZgogZW5kaWYKLQotaWZlcSAoJChHQ0NfTUFKT1IpLDQpCi0gaWZlcSAoJChHQ0NfTUlOT1Ip
LDApCi1HQ0NfREVCVUdfRkxBR1NfU1BFQ0lBTCA9IAotIGVsc2UKLSAgaWZlcSAoJChHQ0NfTUlO
T1IpLDEpCi1HQ0NfREVCVUdfRkxBR1NfU1BFQ0lBTCA9IAotICBlbHNlCi0gICBpZmVxICgkKEdD
Q19NSU5PUiksMikKLUdDQ19ERUJVR19GTEFHU19TUEVDSUFMID0gLVdvdmVybGVuZ3RoLXN0cmlu
Z3MKLSAgIGVsc2UKLSAgICBpZmVxICgkKEdDQ19NSU5PUiksMykKLUdDQ19ERUJVR19GTEFHU19T
UEVDSUFMID0gLVdvdmVybGVuZ3RoLXN0cmluZ3MgLVduby1zaWduLWNvbnZlcnNpb24gLVduby10
eXBlLWxpbWl0cwotICAgIGVsc2UKLSAgICAgaWZlcSAoJChHQ0NfTUlOT1IpLDQpCi1HQ0NfREVC
VUdfRkxBR1NfU1BFQ0lBTCA9IC1Xb3Zlcmxlbmd0aC1zdHJpbmdzIC1Xbm8tc2lnbi1jb252ZXJz
aW9uIC1Xbm8tdHlwZS1saW1pdHMKLSAgICAgZWxzZQotICAgICAgaWZlcSAoJChHQ0NfTUlOT1Ip
LDUpCi1HQ0NfREVCVUdfRkxBR1NfU1BFQ0lBTCA9IC1Xb3Zlcmxlbmd0aC1zdHJpbmdzIC1Xbm8t
c2lnbi1jb252ZXJzaW9uIC1Xbm8tdHlwZS1saW1pdHMKLSAgICAgIGVsc2UKLSMgZ2NjIDQuNiBh
bmQgbGF0ZXIgd29ya3MuCi1HQ0NfREVCVUdfRkxBR1NfU1BFQ0lBTCA9IC1Xb3Zlcmxlbmd0aC1z
dHJpbmdzIC1Xbm8tc2lnbi1jb252ZXJzaW9uIC1Xbm8tdHlwZS1saW1pdHMgLVdzdWdnZXN0LWF0
dHJpYnV0ZT1jb25zdCAtV3N1Z2dlc3QtYXR0cmlidXRlPW5vcmV0dXJuIC1Xc3VnZ2VzdC1hdHRy
aWJ1dGU9cHVyZSAtV3RyYW1wb2xpbmVzCi0gICAgICBlbmRpZgotICAgICBlbmRpZgotICAgIGVu
ZGlmCi0gICBlbmRpZgotICBlbmRpZgotR0NDX0RFQlVHX0ZMQUdTID0gJChHQ0NfREVCVUdfRkxB
R1NfRk9SX0FMTCkgJChHQ0NfREVCVUdfRkxBR1NfU1BFQ0lBTCkKLSBlbmRpZgogZW5kaWYKK0dD
Q19ERUJVR19GTEFHUyA9ICQoQ09NTU9OX0RFQlVHX0ZMQUdTKSAkKEdDQzNfREVCVUdfRkxBR1Mp
ICQoR0NDNF9ERUJVR19GTEFHUykKIAogIwogIyBJZiB5b3Ugd2FudCB0byB1c2UgU3lzdGVtIFYg
Y29tcGF0aWJpbGl0eSBjb2RlLCBhZGQKQEAgLTM0OSw3ICszMjEsNyBAQAogCQktREhBVkVfU1RS
RVJST1I9MSAtREhBVkVfU1lNTElOSz0wIC1ESEFWRV9TVERJTlRfSD0xXAogCQktRFNURF9JTlNQ
SVJFRCBcCiAJCS1ETE9DQUxFX0hPTUU9XCIvZGV2L2Vudi9ESkRJUn5jOi9kamdwcH4vc2hhcmUv
bG9jYWxlXCIgXAotCQkkKENST1NTX0dDQ19ERUJVR19GTEFHUykgLU8yCisJCSQoQ1JPU1NfR0ND
X0RFQlVHX0ZMQUdTKSAtTzIgLW5vc3RkaW5jIC1JJChUT1BESVIpL2luY2x1ZGUKIAogIyBGbGFn
cyBmb3IgbmF0aXZlIGNvbXBpbGVyCiBHQ0NGTEFHUz0JLURIQVZFX0FESlRJTUU9MCAtREhBVkVf
TE9OR19ET1VCTEU9MSAtREhBVkVfU0VUVElNRU9GREFZPTEgXApAQCAtMzY4LDcgKzM0MCwxMiBA
QAogTERGTEFHUz0JJChMRkxBR1MpCiAKIEVYRUVYVD0JCS5leGUKLXppYz0JCS4vaG9zdC16aWMK
K0hPU1RfWklDPQkkKFRPUERJUikvaG9zdGJpbi96aWMkKEVYRUVYVCkKK2lmZXEgKCQoQ1JPU1Nf
QlVJTEQpLDEpCit6aWM9CQkkKEhPU1RfWklDKQorZWxzZQoremljPQkJemljJChFWEVFWFQpCitl
bmRpZgogWklDPQkJJCh6aWMpICQoWkZMQUdTKQogCiAjIFRoZSBuYW1lIG9mIGEgUG9zaXgtY29t
cGxpYW50IGBhd2snIG9uIHlvdXIgc3lzdGVtLgpAQCAtNTA4LDcgKzQ4NSw3IEBACiAJCSQoVVRJ
TCkgY3AgemR1bXAubWFuICQoTUFORElSKS9jYXQ4L3pkdW1wLjgKIAkJJChVVElMKSBjcCB6aWMu
bWFuICQoTUFORElSKS9jYXQ4L3ppYy44CiAKLWFsbDoJCXR6c2VsZWN0IGhvc3QtemljIHppYyQo
RVhFRVhUKSB6ZHVtcCQoRVhFRVhUKSAkKExJQk9CSlMpCithbGw6CQl0enNlbGVjdCAkKEhPU1Rf
WklDKSB6aWMkKEVYRUVYVCkgemR1bXAkKEVYRUVYVCkgJChMSUJPQkpTKQogCiBBTEw6CQlhbGwg
ZGF0ZSQoRVhFRVhUKQogCkBAIC01MTcsMTggKzQ5NCwyMyBAQAogCQkgZWNobyAnc3RhdGljIGNo
YXIgY29uc3QgVFpWRVJTSU9OW109IiQoVkVSU0lPTikiOycgJiYgXAogCQkgZWNobyAnc3RhdGlj
IGNoYXIgY29uc3QgUkVQT1JUX0JVR1NfVE9bXT0iJChCVUdFTUFJTCkiOycpID4kQAogCi16ZHVt
cCQoRVhFRVhUKToJJChUWkRPQkpTKQotCQkkKENDKSAtbyAkQCAkKENGTEFHUykgJChMREZMQUdT
KSAkKFRaRE9CSlMpICQoTERMSUJTKQotCQkkKENST1NTX1NUUklQKSAkQAotCi1ob3N0LXppYzoJ
JChUWkNTUkNTKSB5ZWFyaXN0eXBlIHZlcnNpb24uaAoremR1bXAkKEVYRUVYVCk6CSQoVFpET0JK
UykgJChUT1BESVIpL2xpYi9jcnQwLm8gJChUT1BESVIpL2xpYi9saWJjLmEKKwkJJChDUk9TU19M
RCkgLXMgJChMREZMQUdTKSAkKFRPUERJUikvbGliL2NydDAubyAkKFRaRE9CSlMpIC1vICRAICQo
VE9QRElSKS9saWIvbGliYy5hICQoTElCR0NDQSkgLVQgJChESkdQUF9ESkwpCisJCSQoVE9QRElS
KS9ob3N0YmluL3N0dWJpZnkuZXhlICRACisKK2lmbmVxICgkKENST1NTX0JVSUxEKSwxKQorJChI
T1NUX1pJQyk6CXppYyQoRVhFRVhUKQorCQkkKFVUSUwpIGNwIHppYyQoRVhFRVhUKSAkKEhPU1Rf
WklDKQorZWxzZQorJChIT1NUX1pJQyk6CSQoVFpDU1JDUykgeWVhcmlzdHlwZSB2ZXJzaW9uLmgK
IAkJJChHQ0MpIC1EVFpESVI9XCIvZGV2L2Vudi9ESkRJUn5jOi9kamdwcH4vem9uZWluZm9cIiBc
CiAJCSQoR0NDRkxBR1MpICQoTERGTEFHUykgJChUWkNTUkNTKSAkKExETElCUykgLW8gJEAKIAkJ
JChTVFJJUCkgJEAKK2VuZGlmCiAKLXppYyQoRVhFRVhUKToJJChUWkNPQkpTKSB5ZWFyaXN0eXBl
Ci0JCSQoQ0MpIC1vICRAICQoQ0ZMQUdTKSAkKExERkxBR1MpICQoVFpDT0JKUykgJChMRExJQlMp
Ci0JCSQoQ1JPU1NfU1RSSVApICRACit6aWMkKEVYRUVYVCk6CSQoVFpDT0JKUykgJChUT1BESVIp
L2xpYi9jcnQwLm8gJChUT1BESVIpL2xpYi9saWJjLmEgeWVhcmlzdHlwZQorCQkkKENST1NTX0xE
KSAtcyAkKExERkxBR1MpICQoVE9QRElSKS9saWIvY3J0MC5vICQoVFpDT0JKUykgLW8gJEAgJChU
T1BESVIpL2xpYi9saWJjLmEgJChMSUJHQ0NBKSAtVCAkKERKR1BQX0RKTCkKKwkJJChUT1BESVIp
L2hvc3RiaW4vc3R1YmlmeS5leGUgJEAKIAogeWVhcmlzdHlwZToJeWVhcmlzdHlwZS5zaAogCQkk
KFVUSUwpIGNwIHllYXJpc3R5cGUuc2ggeWVhcmlzdHlwZQpAQCAtNTc4LDE1ICs1NjAsOSBAQAog
CQktJChVVElMKSBta2RpciAkKExJQkRJUikKIAkJJChDUk9TU19BUikgcnVzICRAICQoTElCT0JK
UykKIAotIyBXZSB1c2UgdGhlIHN5c3RlbSdzIGxvZ3d0bXAgaW4gcHJlZmVyZW5jZSB0byBvdXJz
IGlmIGF2YWlsYWJsZS4KLQotZGF0ZSQoRVhFRVhUKToJJChEQVRFT0JKUykKLQkJJChDUk9TU19B
UikgcnMgbG9nd3RtcGwuYSBsb2d3dG1wLm8KLQkJJChDQykgJChDRkxBR1MpIGRhdGUubyBsb2Nh
bHRpbWUubyBhc2N0aW1lLm8gc3RyZnRpbWUubyBcCi0JCQkkKExETElCUykgLWxjIGxvZ3d0bXBs
LmEgLW8gJEAKLQkJJChDUk9TU19TVFJJUCkgJEAKLQkJJChVVElMKSBybSBsb2d3dG1wbC5hCi0J
CSQoQ1JPU1NfU1RSSVApICRACitkYXRlJChFWEVFWFQpOgkkKERBVEVPQkpTKSAkKFRPUERJUikv
bGliL2NydDAubyAkKFRPUERJUikvbGliL2xpYmMuYQorCQkkKENST1NTX0xEKSAtcyAkKExERkxB
R1MpICQoVE9QRElSKS9saWIvY3J0MC5vICQoREFURU9CSlMpIC1vICRAICQoVE9QRElSKS9saWIv
bGliYy5hICQoTElCR0NDQSkgLVQgJChESkdQUF9ESkwpCisJCSQoVE9QRElSKS9ob3N0YmluL3N0
dWJpZnkuZXhlICRACiAKIHR6c2VsZWN0Ogl0enNlbGVjdC5rc2gKIAkJc2VkIFwKQEAgLTYxMSw3
ICs1ODcsNyBAQAogCiBjbGVhbl9taXNjOgogCQkkKFVUSUwpIHJtIGNvcmUgKi5vICoub3V0IHR6
c2VsZWN0IHpkdW1wJChFWEVFWFQpIHppYyQoRVhFRVhUKSBcCi0JCQl5ZWFyaXN0eXBlIGRhdGUk
KEVYRUVYVCkgbG9nd3RtcGwqICoudGFyLmd6IGhvc3QtemljICouZXhlICoubWFuIFwKKwkJCXll
YXJpc3R5cGUgZGF0ZSQoRVhFRVhUKSBsb2d3dG1wbCogKi50YXIuZ3ogJChIT1NUX1pJQykgKi5l
eGUgKi5tYW4gXAogCQkJVERBVEFfbGlzdAogY2xlYW46CQljbGVhbl9taXNjCiAJCSQoVVRJTCkg
cm0gLWYgLXIgdHpwdWJsaWMK
--001a113f7e1c72d1c30516bf7f27--

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019