X-Authentication-Warning: delorie.com: mail set sender to djgpp-workers-bounces using -f X-Recipient: djgpp-workers AT delorie DOT com 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=gji7YiNm3YNNGFaQ9KQ6HLSBSt3Qr555LpZg2kEoSno=; b=TREfUBCU5Q2LK8eG6rtZwyduCzmYtxMlQqBHN9h1rnCiSPc744wO7l9T6tuJHMOxFE jwgjDwraZxi6b1IacJBLjIlmRXP0KrIuFZm3ELNVN2jhFV8AIEw4dVT3I81HpwoQ6YDD vpp2AVQBvfbvb1TjaD+vnFHhdXHFPsc2oo7AjtSrcCnFaTJzY+vbzChRAPuJ1NKr+Pv8 U8Ld+TZwCulWsoMqBJ94m8oDldSsKI277yZGv5aQQxjX9OCDcoHx5Inmlmu/LYY17iJi rJfBzwj1jbK1hUN+ebTmY0cD42kY4ieOjOSvapDzhGuRT2Ghhfn0VCf5OB45qyN8Dh+3 ms6w== MIME-Version: 1.0 X-Received: by 10.50.66.227 with SMTP id i3mr22017935igt.19.1398085901817; Mon, 21 Apr 2014 06:11:41 -0700 (PDT) In-Reply-To: <83mwfedesd.fsf@gnu.org> References: <83vbu3cc6b DOT fsf AT gnu DOT org> <83mwfedesd DOT fsf AT gnu DOT org> Date: Mon, 21 Apr 2014 16:11:41 +0300 Message-ID: Subject: Re: ctime.c changes add about 4.5k more size From: Ozkan Sezer To: djgpp-workers AT delorie DOT com Content-Type: multipart/mixed; boundary=047d7bdc157a8b49d404f78d3d70 Reply-To: djgpp-workers AT delorie DOT com Errors-To: nobody AT delorie DOT com X-Mailing-List: djgpp-workers AT delorie DOT com X-Unsubscribes-To: listserv AT delorie DOT com Precedence: bulk --047d7bdc157a8b49d404f78d3d70 Content-Type: text/plain; charset=UTF-8 On 4/21/14, Eli Zaretskii wrote: >> Date: Mon, 21 Apr 2014 15:39:35 +0300 >> From: Ozkan Sezer >> >> FWIW, here is the long diff between versions 1.10 and 1.11 of ctime.c: >> http://www.delorie.com/bin/cvsweb.cgi/djgpp/src/libc/ansi/time/ctime.c >> http://www.delorie.com/bin/cvsweb.cgi/djgpp/src/libc/ansi/time/ctime.c.diff?r1=1.10&r2=1.11 >> ... which adds more size to an already long time code. > > The question is where do 5KB of extra code come from. Some changes in > the diffs are just reshuffling of the same code, others add what > cannot possibly generate so much more instructions. > > One way of finding the potential culprits is to compare the output of > "nm -A ctime.o" on both versions of compiled ctime.c. It's possible > that some static function (those marked with the lower-case "t") > either grew in size or were added in the new version. > > Armed with this knowledge, we might take a good look at those few > functions, and see if we can do without them, or maybe simplify them. Extracted ctime.o from old and new libc.a compilations, 13330 bytes and 17452 bytes, and ran nm on them, attached the output files. > > However, in general computing time_t value is a tricky business, so > it's quite possible the extra code is just some added feature (e.g., I > see some kind of quoting that is now being supported) or a bugfix, and > you cannot really do without those, if you want to be able to read the > latest time-zone files. Maybe it's best for me to override those functions in my projects with lite versions without using any timezone info. --047d7bdc157a8b49d404f78d3d70 Content-Type: application/octet-stream; name="nm1.out" Content-Disposition: attachment; filename="nm1.out" Content-Transfer-Encoding: base64 X-Attachment-Id: file0 MDAwMDE5YTAgVCBfYXNjdGltZQowMDAwMTk1MCBUIF9fX2FzY3RpbWVfcgowMDAwMDAwMCBiIC5i c3MKICAgICAgICAgVSBfX19ic3NfY291bnQKICAgICAgICAgVSBfX19jbG9zZQowMDAwMDAwMCBO IC5jb21tZW50CjAwMDAwMTEwIGIgY3AuNQowMDAwMTlmMCBUIF9jdGltZQowMDAwMTljMCBUIF9f X2N0aW1lX3IKMDAwMDAwMDAgZCAuZGF0YQowMDAwMTNhMCB0IF9kYXlzX3RvX3llYXJzCjAwMDAw MDgwIHQgX2RldHpjb2RlCjAwMDAwMDAwIGIgZGlyLjQKICAgICAgICAgVSBfX19kal9jdHlwZV9m bGFncwogICAgICAgICBVIF9fX2Vudmlyb25fY2hhbmdlZAogICAgICAgICBVIF9nZXRlbnYKMDAw MDA3YTAgdCBfZ2V0bnVtCjAwMDAwOGIwIHQgX2dldG9mZnNldAowMDAwMDkxMCB0IF9nZXRydWxl CjAwMDAwODEwIHQgX2dldHNlY3MKMDAwMDA3NTAgdCBfZ2V0em5hbWUKMDAwMDAwNzQgdCBfR01U CjAwMDAxOGQwIFQgX2dtdGltZQowMDAwMTg2MCBUIF9fX2dtdGltZV9yCjAwMDAxNTIwIGIgX2dt dF9pc19zZXQKMDAwMDExYjAgdCBfZ210bG9hZAowMDAwMGI2MCBiIF9nbXRtZW0KMDAwMDAxMjAg YiBsYXN0X2Vudl9jaGFuZ2VkLjgKMDAwMDE1MTAgYiBfbGNsX2lzX3NldAowMDAwMDFiMCBiIF9s Y2xtZW0KMDAwMDE1MzAgYiBfbGNsX3R6c3RyCjAwMDAxNzUwIHQgX2xvY2Fsc3ViCjAwMDAxODQw IFQgX2xvY2FsdGltZQowMDAwMTgyMCBUIF9fX2xvY2FsdGltZV9yCiAgICAgICAgIFUgX21lbWNw eQowMDAwMjAzMCBUIF9ta3RpbWUKMDAwMDAwMDAgdCBfbW9uX2xlbmd0aHMKMDAwMDE5MDAgdCBt b25fbmFtZS4yCjAwMDAxYTEwIHQgX25vcm1hbGl6ZQowMDAwMDA2OCB0IF9uX3llYXJfbGVuZ3Ro cwogICAgICAgICBVIF9fX29wZW4KMDAwMDAwMjAgRCBfX3Bvc2l4cnVsZXNfZGF0YQogICAgICAg ICBVIF9fX3JlYWQKMDAwMDAxOTAgYiByZXN1bHQuMAowMDAwMDBiMCB0IF9zZXR0em5hbWUKICAg ICAgICAgVSBfc3ByaW50ZgogICAgICAgICBVIF9zdHJjYXQKICAgICAgICAgVSBfc3RyY3B5CiAg ICAgICAgIFUgX19fc3RyaWNtcAogICAgICAgICBVIF9zdHJsZW4KICAgICAgICAgVSBfc3RybmNw eQogICAgICAgICBVIF9zdHJyY2hyCjAwMDAwMDAwIHQgLnRleHQKMDAwMDFlZTAgdCBfdGltZTEK MDAwMDFjOTAgdCBfdGltZTIKMDAwMDE1MzAgdCBfdGltZXN1YgowMDAwMDE2MCBiIHRtLjMKMDAw MDAxMzAgYiB0bS43CjAwMDAxYTgwIHQgX3RtY29tcAowMDAwMWFjMCB0IF90bW5vcm1hbGl6ZQow MDAwMDlmMCB0IF90cmFuc3RpbWUKMDAwMDA1YjQgZCB0emRpcl9ic3NfY291bnQuNgowMDAwMDE2 MCB0IF90emxvYWQKMDAwMDAwMDAgRCBfdHpuYW1lCjAwMDAwYzkwIHQgX3R6cGFyc2UKMDAwMDEy NDAgVCBfX190enNldAowMDAwMTFmMCBUIF9fX3R6c2V0d2FsbAowMDAwMThlNiB0IHdkYXlfbmFt ZS4xCjAwMDAwMDA4IGQgX1dJTERBQkJSCjAwMDAwMDYwIHQgX3llYXJfbGVuZ3Rocwo= --047d7bdc157a8b49d404f78d3d70 Content-Type: application/octet-stream; name="nm2.out" Content-Disposition: attachment; filename="nm2.out" Content-Transfer-Encoding: base64 X-Attachment-Id: file0 MDAwMDI1YzAgVCBfYXNjdGltZQowMDAwMjU3MCBUIF9fX2FzY3RpbWVfcgowMDAwMDAwMCBiIC5i c3MKICAgICAgICAgVSBfX19ic3NfY291bnQKICAgICAgICAgVSBfX19jbG9zZQowMDAwMDAwMCBO IC5jb21tZW50CjAwMDAwMDIwIGIgY3AuMwowMDAwMjYxMCBUIF9jdGltZQowMDAwMjVlMCBUIF9f X2N0aW1lX3IKMDAwMDAwMDAgZCAuZGF0YQowMDAwMDA3MCB0IF9kZXR6Y29kZQowMDAwMDI1MCB0 IF9kaWZmZXJfYnlfcmVwZWF0CjAwMDAwMDMwIGIgZGlyLjQKICAgICAgICAgVSBfX19kaXZkaTMK ICAgICAgICAgVSBfX19lbnZpcm9uX2NoYW5nZWQKICAgICAgICAgVSBfZXJybm8KICAgICAgICAg VSBfZ2V0ZW52CjAwMDAwMzkwIHQgX2dldG51bQowMDAwMDQ5MCB0IF9nZXRvZmZzZXQKMDAwMDAz NzAgdCBfZ2V0cXpuYW1lCjAwMDAwNGUwIHQgX2dldHJ1bGUKMDAwMDAzZjAgdCBfZ2V0c2Vjcwow MDAwMDMyMCB0IF9nZXR6bmFtZQowMDAwMDA2OCB0IF9nbXQKMDAwMDI0ZjAgVCBfZ210aW1lCjAw MDAyNDgwIFQgX19fZ210aW1lX3IKMDAwMDM4YTAgYiBfZ210X2lzX3NldAowMDAwMWEyMCB0IF9n bXRsb2FkCjAwMDAxY2IwIGIgX2dtdG1lbQowMDAwMWM2MCB0IF9pbmNyZW1lbnRfb3ZlcmZsb3cK MDAwMDI2MzAgdCBfaW5jcmVtZW50X292ZXJmbG93MzIKMDAwMDAxNDAgYiBsYXN0X2Vudl9jaGFu Z2VkLjkKMDAwMDM4OTAgYiBfbGNsX2lzX3NldAowMDAwMDFkMCBiIF9sY2xtZW0KMDAwMDM3OTAg YiBfbGNsX1RabmFtZQowMDAwMWMyMCB0IF9sZWFwc190aHJ1X2VuZF9vZgowMDAwMjI2MCB0IF9s b2NhbHN1YgowMDAwMjQ2MCBUIF9sb2NhbHRpbWUKMDAwMDI0NDAgVCBfX19sb2NhbHRpbWVfcgog ICAgICAgICBVIF9tZW1jcHkKMDAwMDJkOTAgVCBfbWt0aW1lCiAgICAgICAgIFUgX19fbW9kZGkz CjAwMDAwMDAwIHQgX21vbl9sZW5ndGhzCjAwMDAyNTIwIHQgbW9uX25hbWUuMgowMDAwMjY3MCB0 IF9ub3JtYWxpemVfb3ZlcmZsb3cKICAgICAgICAgVSBfX19vcGVuCjAwMDAwMDIwIEQgX19wb3Np eHJ1bGVzX2RhdGEKICAgICAgICAgVSBfX19yZWFkCjAwMDAwMWIwIGIgcmVzdWx0LjAKMDAwMDAx MjAgdCBfc2V0dHpuYW1lCiAgICAgICAgIFUgX3NwcmludGYKICAgICAgICAgVSBfc3RyY2F0CiAg ICAgICAgIFUgX3N0cmNocgogICAgICAgICBVIF9zdHJjbXAKICAgICAgICAgVSBfc3RyY3B5CiAg ICAgICAgIFUgX19fc3RyaWNtcAogICAgICAgICBVIF9zdHJsZW4KICAgICAgICAgVSBfc3RybmNw eQogICAgICAgICBVIF9zdHJyY2hyCjAwMDAwMDAwIHQgLnRleHQKMDAwMDJkNDAgdCBfdGltZTIK MDAwMDI3MjAgdCBfdGltZTJzdWIKMDAwMDFjYTAgdCBfdGltZXN1YgowMDAwMDE4MCBiIHRtLjcK MDAwMDAxNTAgYiB0bS44CjAwMDAyNmUwIHQgX3RtY29tcAowMDAwMDVjMCB0IF90cmFuc3RpbWUK MDAwMDAyNjAgdCBfdHlwZXNlcXVpdgowMDAwMDUxNCBkIHR6ZGlyX2Jzc19jb3VudC41CjAwMDAw ZTIwIHQgX3R6bG9hZAowMDAwMDAwMCBEIF90em5hbWUKMDAwMDA4ODAgdCBfdHpwYXJzZQowMDAw MWFiMCBUIF9fX3R6c2V0CjAwMDAxYTYwIFQgX19fdHpzZXR3YWxsCjAwMDAyNTA2IHQgd2RheV9u YW1lLjEKMDAwMDAwMDggZCBfd2lsZGFiYnIKMDAwMDAwNjAgdCBfeWVhcl9sZW5ndGhzCjAwMDAw MDAwIGIgenR0aW5mby42Cg== --047d7bdc157a8b49d404f78d3d70--