mailing list of musl libc
 help / color / mirror / code / Atom feed
From: Jens Gustedt <jens.gustedt@inria.fr>
To: musl@lists.openwall.com
Subject: Re: build with clang-3.4 warnings report
Date: Sat, 05 Apr 2014 16:37:49 +0200	[thread overview]
Message-ID: <1396708669.11744.314.camel@eris.loria.fr> (raw)
In-Reply-To: <20140405130700.GV26358@brightrain.aerifal.cx>

[-- Attachment #1: Type: text/plain, Size: 1700 bytes --]

Am Samstag, den 05.04.2014, 09:07 -0400 schrieb Rich Felker:
> On Sat, Apr 05, 2014 at 11:04:58AM +0200, Jens Gustedt wrote:
> > The whole thing could be avoided by using designated initializers and
> > eliminating the whole errid array right away. Designated initializers
> > should be present in all decent versions of gcc. Do you want me to
> > prepare a patch?
> 
> No, this is not about avoiding features but rather not adding a whole
> page (or two pages, on 64-bit machines) of non-sharable pseudo-data to
> libc.so, or the same amount of text to nearly every static-linked
> program.

I experimented a bit, and I get

 - +20 bytes more for the simplest version, replacing the positon
   array by an array with sizes of the strings and a good reduction in
   complexity of the function

 - +40 to +60 bytes extra code size for some trivial error and bounds
   checking (which only can do good, here)

 - +100 bytes when replacing the "unsigned char" array with the sizes
   by an "unsigned short" array that holds all the offsets of the
   strings and reduces the function itself mainly to a table lookup.

(all that on x86_64 and only compile tested for them moment)

So this is largely below the one page threshold (increasing code size
from 3200 byte to 3360 at the worst), and the generated assembler
looks quite clean.

Jens

-- 
:: INRIA Nancy Grand Est :: http://www.loria.fr/~gustedt/   ::
:: AlGorille ::::::::::::::: office Nancy : +33 383593090   ::
:: ICube :::::::::::::: office Strasbourg : +33 368854536   ::
:: ::::::::::::::::::::::::::: gsm France : +33 651400183   ::
:: :::::::::::::::::::: gsm international : +49 15737185122 ::



[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 198 bytes --]

  reply	other threads:[~2014-04-05 14:37 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-04-04 19:59 Abdoulaye Walsimou Gaye
2014-04-04 20:47 ` Rich Felker
2014-04-05  1:06   ` Abdoulaye Walsimou Gaye
2014-04-05  1:54     ` Rich Felker
2014-04-05  9:04       ` Jens Gustedt
2014-04-05  9:31         ` Szabolcs Nagy
2014-04-05 13:07         ` Rich Felker
2014-04-05 14:37           ` Jens Gustedt [this message]
2014-04-05 16:35             ` Rich Felker
2014-04-05 22:08               ` Jens Gustedt
2014-04-06  1:57                 ` Rich Felker
2014-04-06 16:37                   ` Jens Gustedt
2014-04-06 16:49                     ` Rich Felker
2014-04-07 11:17       ` Oliver Schneider
2014-04-07 17:23         ` Rich Felker
2014-04-07 19:40           ` Abdoulaye Walsimou Gaye

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1396708669.11744.314.camel@eris.loria.fr \
    --to=jens.gustedt@inria.fr \
    --cc=musl@lists.openwall.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.vuxu.org/mirror/musl/

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).