unofficial mirror of guix-patches@gnu.org 
 help / color / mirror / code / Atom feed
From: "Ludovic Courtès" <ludo@gnu.org>
To: "Jakub Kądziołka" <kuba@kadziolka.net>
Cc: 42555@debbugs.gnu.org
Subject: [bug#42555] [PATCH v2 core-updates] build-system/gnu: strip with --strip-unneeded
Date: Sat, 19 Sep 2020 14:49:41 +0200	[thread overview]
Message-ID: <87o8m2q6ca.fsf@gnu.org> (raw)
In-Reply-To: <20200730002154.5704-1-kuba@kadziolka.net> ("Jakub Kądziołka"'s message of "Thu, 30 Jul 2020 02:21:54 +0200")

Hi Jakub,

Jakub Kądziołka <kuba@kadziolka.net> skribis:

> Apart from debug information, one can also strip some symbols. This can
> be a significant difference, the closure of gcc-toolchain@7 got reduced
> by 15 MB in my tests.

Nice!  Now’s a good time to get that patch in on ‘core-updates’.

> As per [1], --strip-debug is included in --strip-unneeded, and
> the debug files created also contain a copy of the information removed
> by --strip-unneeded.

Hmm the Binutils manual suggests otherwise (info "(binutils) objcopy"):

--8<---------------cut here---------------start------------->8---
'-g'
'--strip-debug'
     Do not copy debugging symbols or sections from the source file.

'--strip-unneeded'
     Strip all symbols that are not needed for relocation processing.
--8<---------------cut here---------------end--------------->8---

… but objcopy.c reads this:

--8<---------------cut here---------------start------------->8---
      else if ((flags & BSF_DEBUGGING) != 0)	/* Debugging symbol.  */
	keep = (strip_symbols != STRIP_DEBUG
		&& strip_symbols != STRIP_UNNEEDED
		&& ! convert_debugging);
--8<---------------cut here---------------end--------------->8---

… confirming that ‘--strip-unneeded’ includes ‘--strip-debug’.

I submitted a patch for the Binutils manual.

> Linux From Scratch suggests that this option shouldn't be used on static
> libraries [2], however other sources [3] indicate otherwise. Building a
> toolchain with this patch succeeds, and the result works fine for
> 'gcc -static hello-world.c'.

OK.

> [1]: https://stackoverflow.com/a/52555093

Perhaps we can omit this one.  In general, I think it’s safer to refer
to “primary sources” as Wikipedians would say.

> [2]: http://www.linuxfromscratch.org/lfs/view/9.1/chapter05/stripping.html
> [3]: https://www.technovelty.org/linux/stripping-shared-libraries.html
>
> * guix/build/gnu-build-system.scm (strip): Use --strip-unneeded.
> * guix/build-system/gnu.scm (static-package, gnu-build, gnu-cross-build): Likewise.

LGTM!

For the record, I tried ‘--strip-all’ before, but that was problematic
for some reason:

  https://lists.gnu.org/archive/html/guix-devel/2018-03/msg00135.html

Thanks,
Ludo’.




  reply	other threads:[~2020-09-19 12:50 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-07-26 23:38 [bug#42555] [PATCH core-updates] build-system/gnu: strip with --strip-unneeded Jakub Kądziołka
2020-07-30  0:21 ` [bug#42555] [PATCH v2 " Jakub Kądziołka
2020-09-19 12:49   ` Ludovic Courtès [this message]
2020-09-19 13:49     ` bug#42555: " Jakub Kądziołka

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

  List information: https://guix.gnu.org/

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

  git send-email \
    --in-reply-to=87o8m2q6ca.fsf@gnu.org \
    --to=ludo@gnu.org \
    --cc=42555@debbugs.gnu.org \
    --cc=kuba@kadziolka.net \
    /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.savannah.gnu.org/cgit/guix.git

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 read-only IMAP folder(s) and NNTP newsgroup(s).