Date: Thu, 27 Nov 2008 00:59:47 -0800 From: Bruce Cran <bruce@cran.org.uk> To: Matthew Seaman <m.seaman@infracaninophile.co.uk> Cc: "Paul B. Mahol" <onemda@gmail.com>, freebsd-questions@freebsd.org Subject: Re: large binary, why not strip ? Message-ID: <20081127005947.1f74b224@tau.draftnet> In-Reply-To: <492E4D07.8030908@infracaninophile.co.uk> References: <b10011eb0811160042w158656bld3b91a2bf7cfdd3f@mail.gmail.com> <20081116125622.E24752@wojtek.tensor.gdynia.pl> <20081117172100.GB43367@hub.freebsd.org> <b10011eb0811171040y536d5e18y171ca9aed686f9bf@mail.gmail.com> <20081117210649.GE63818@hub.freebsd.org> <49226AFD.6060505@infracaninophile.co.uk> <492D7E03.3070500@infracaninophile.co.uk> <3a142e750811260901j134e9ff9pa334fc50c52fadd2@mail.gmail.com> <492E4D07.8030908@infracaninophile.co.uk>
next in thread | previous in thread | raw e-mail | index | archive | help
On Thu, 27 Nov 2008 07:32:23 +0000 Matthew Seaman <m.seaman@infracaninophile.co.uk> wrote: > Paul B. Mahol wrote: > > On 11/26/08, Matthew Seaman <m.seaman@infracaninophile.co.uk> wrote: > >> Matthew Seaman wrote: > >>> Kris Kennaway wrote: > >>> > >>>> Bonus points if you come up with a patch to do this: in most > >>>> cases it will be a simple matter of changing the port's > >>>> do-install: target to use INSTALL_* macros instead of cp/bsdtar > >>>> etc. This would be a good project to get some familiarity with > >>>> the ports tree. > >>> Would it be worthwhile to add a test and warning that all > >>> installed binaries > >>> have not been stripped to the 'security-check' target in > >>> bsd.port.mk? That's > >>> not really what that target was intended for (feeping creaturism > >>> alert!) but > >>> it's the obvious place to put such a test. > >>> > >>> Probably cleaner to create a whole new target, but that's going to > >>> duplicate > >>> some code. > >>> > >>> Hmmmm... I shall work up some patches, probably over the weekend, > >>> so there's > >>> something substantive to talk about. > >> Done: ports/129210 > >> > >> For the record, I also discovered that, contrary to what I said > >> earlier, there is apparently one class of binary object that will > >> not work correctly if stripped: kernel loadable modules. > > > > Kernel loadable modules are already stripped (--strip-debug). > > > > KLDs aren't stripped in a way that file(1) recognises: > > happy-idiot-talk:/boot/kernel:% file if_em.ko > if_em.ko: ELF 32-bit LSB shared object, Intel 80386, version 1 > (FreeBSD), dynamically linked, not stripped > > Unfortunately file(1) seems to be about the only tool available to > test a priori whether a binary object is stripped or not. It's > possible that objdump(1) or readelf(1) could do a similar thing, but > I can't work it out from those man pages. It seems nm also tells you fairly simply whether a file contains symbols or not: > nm /bin/ls nm: /bin/ls: no symbols > nm /usr/local/bin/a2p 00000000004030d0 T Myfatal 0000000000510308 D No 000000000051a200 B Str 0000000000510300 D Yes 0000000000519e00 A _DYNAMIC [...] KLD .ko files are built with full debug data but the source information (filenames, line numbers etc.) is stripped out into separate .ko.symbols files, in a similar way that Windows uses .PDB files; it lets you store the debug information separately and only match them up if something goes wrong. To see if a binary contains source data, you can run 'readelf -w'; no output seems to mean it couldn't find any data. -- Bruce Cran
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20081127005947.1f74b224>