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: References: <201505042003 DOT t44K3odg011007 AT delorie DOT com> <83mw106kgn DOT fsf AT gnu DOT org> Date: Sat, 23 May 2015 16:10:16 +0300 Message-ID: Subject: Re: ANNOUNCE: DJGPP 2.05 beta 1 From: "Ozkan Sezer (sezeroz AT gmail DOT com)" To: djgpp AT delorie DOT com Content-Type: multipart/mixed; boundary=001a113f7e1c72d1c30516bf7f27 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 Precedence: bulk --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--