Date: Mon, 3 Sep 2007 17:20:09 +0400 From: Yar Tikhiy <yar@comp.chem.msu.su> To: Giorgos Keramidas <keramida@freebsd.org> Cc: hackers@freebsd.org, Tim Kientzle <kientzle@freebsd.org> Subject: Re: Useful tools missing from /rescue Message-ID: <20070903132009.GI30502@comp.chem.msu.su> In-Reply-To: <20070903001803.GA8098@kobe.laptop> References: <20070901073440.GL85633@comp.chem.msu.su> <46DAFE5C.6070806@freebsd.org> <20070903001803.GA8098@kobe.laptop>
next in thread | previous in thread | raw e-mail | index | archive | help
On Mon, Sep 03, 2007 at 03:18:03AM +0300, Giorgos Keramidas wrote:
> On 2007-09-02 11:18, Tim Kientzle <kientzle@freebsd.org> wrote:
> > Yar Tikhiy wrote:
> >> In addition, there are chflags and chmod in /rescue, but there's no
> >> chown in it, so the toolset is a bit incomplete.
> >
> > Oh, my. chown was definitely an oversight. That
> > should have been in there.
>
> Probably because chown is a relatively big binary. If build as a static
> binary here, it ends up being:
>
> $ pwd
> /home/keramida/bsd/src/usr.sbin/chown
> $ make DEBUG_FLAGS='' NO_SHARED=yes all
> [...]
> $ ls -ld chown
> -rwxrwxr-x 1 keramida users - 2297013 Sep 3 03:06 chown
> $ strip -s chown
> $ ls -ld chown
> -rwxrwxr-x 1 keramida users - 550624 Sep 3 03:06 chown
> $
>
> This will get smaller when crunched, but it's still almost 4x the size
> of chmod:
>
> $ pwd
> /home/keramida/bsd/src/bin/chmod
> $ make DEBUG_FLAGS='' NO_SHARED=yes all
> [...]
> $ ls -ld chmod
> -rwxrwxr-x 1 keramida users - 662678 Sep 3 03:08 chmod
> $ strip -s chmod
> $ ls -ld chmod
> -rwxrwxr-x 1 keramida users - 165884 Sep 3 03:08 chmod
> $
>
> Running nm(1) on the binaries, I see that they have the same symbols
> though:
>
> $ nm -S chmod | awk '{print $2,$3,$4}' | sort > /tmp/symbols.chmod
> $ nm -S chown | awk '{print $2,$3,$4}' | sort > /tmp/symbols.chown
> $ diff -u /tmp/symbols.chmod /tmp/symbols.chown
> $
>
> Does this mean that adding chown to the already crunched binary will not
> cause a lot of bloat because of symbols/functions private to chown?
The difference in the static binary sizes is weird, but I don't
have time now to dig the issue deeper, sorry. The rescue binary
grows just slightly when chown is added to it:
-r-xr-xr-x 121 root wheel 3715096 1 ΣΕΞ 10:22 /rescue.old/rescue
-r-xr-xr-x 122 root wheel 3718192 3 ΣΕΞ 17:17 /rescue/rescue
--
Yar
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20070903132009.GI30502>
