From: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
To: buildroot@busybox.net
Subject: [Buildroot] [PATCH 3/6] package/Makefile.in: Use gcc spec files for PIE build flags
Date: Sat, 11 Aug 2018 12:29:54 +0200 [thread overview]
Message-ID: <20180811122954.15470d8a@windsurf> (raw)
In-Reply-To: <CANQCQpYDuFNMYrwmWiJefh89NjOMoABQwCSne1sM1=-Kcjt9vA@mail.gmail.com>
Hello,
On Fri, 10 Aug 2018 19:42:32 -0500, Matthew Weber wrote:
> > I've read the whole discussion on this patch, but still I don't
> > understand which direction we want to take moving forward: move away
> > from handling options in the wrapper, and use a spec file for
> > everything ? Or keep the entire logic in the wrapper ?
>
> So far, the spec files are just fixing a conditional case where a
> option isn't compatible. ie PIE and shared can't be used together.
> This prevents a lot of patchwork on all the packages. I could move
> this string search and condition process to the wrapper but it seems
> cleaner to do that in the spec file. I do want to note that we did
> not go to the extent that gentoo did where they use spec files to
> enable and do the conditional compatibility fixups at link time(PIE vs
> shared) for all the hardening options.
I understand the idea of using the spec file. However, I'm worried that
it further complicates the overall toolchain setup. In addition, the
-spec option passed in TARGET_CFLAGS/TARGET_LDFLAGS will only work with
packages that do obey to CFLAGS/LDFLAGS, and some broken packages
don't. Being in the wrapper allows to ensure the flags are used. And
additionally, what's done in the wrapper is also used when the
Buildroot toolchain is used "manually" (outside of the Buildroot
infrastructure) to build stuff.
> > I'm not happy at all with the approach of having some flags handled in
> > the wrapper, some flags handled through spec files. I believe choosing
> > the spec file direction makes this patch series more difficult to
> > merge, because we have to go through this whole discussion of spec file
> > vs. wrapper.
>
> Agree, the specfile even just doing the conditional fixup is a 3rd leg
> on this whole thing. We can add it to the wrapper code but we will
> loose visibility to what the wrapper is doing vs with the spec we can
> dump and analyze the output.
That's not true: the wrapper looks at BR2_DEBUG_WRAPPER={1,2} to dump
what it is doing:
/* Debug the wrapper to see actual arguments passed to
* the compiler:
* unset, empty, or 0: do not trace
* set to 1 : trace all arguments on a single line
* set to 2 : trace one argument per line
*/
if ((env_debug = getenv("BR2_DEBUG_WRAPPER"))) {
> > I have nothing against using spec files, but right now, our logic is
> > based on a wrapper program. Therefore, I would be more comfortable with
> > an approach that relies on the wrapper program, so that it is in line
> > with what we are doing today. Then, separately, we can discuss how our
> > wrapper can be replaced, completely or partially, by a spec file.
>
> Ok. If the above feedback in this email doesn't change the view
> related to spec files, I can look at switching to a pure wrapper for
> fixups and static setting of variables with flags.
I think I'd be happier with a first step where the wrapper is being
used. Then in a second step, we can decide to rethink what the wrapper
is doing, and move more of its logic to a spec file. I think a wrapper
will still be needed anyway, at least to pass --sysroot and --spec.
Best regards,
Thomas
--
Thomas Petazzoni, CTO, Bootlin (formerly Free Electrons)
Embedded Linux and Kernel engineering
https://bootlin.com
next prev parent reply other threads:[~2018-08-11 10:29 UTC|newest]
Thread overview: 44+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-07-11 14:31 [Buildroot] [PATCH 0/6] Hardening Flag Bugfix/Enhancement Matt Weber
2018-07-11 14:31 ` [Buildroot] [PATCH 1/6] package/Makefile.in: Do not use CPPFLAGS for hardening options Matt Weber
2018-07-11 21:14 ` Arnout Vandecappelle
2018-08-10 20:31 ` Thomas Petazzoni
2018-07-11 14:31 ` [Buildroot] [PATCH 2/6] package/Makefile.in: Add missing options to LDFLAGS for full RELRO build Matt Weber
2018-07-11 21:26 ` Arnout Vandecappelle
2018-08-10 20:33 ` Thomas Petazzoni
2018-07-11 14:31 ` [Buildroot] [PATCH 3/6] package/Makefile.in: Use gcc spec files for PIE build flags Matt Weber
2018-07-11 21:44 ` Arnout Vandecappelle
2018-07-11 23:17 ` Matthew Weber
2018-07-13 9:39 ` Arnout Vandecappelle
2018-07-13 12:31 ` Matthew Weber
2018-07-19 9:49 ` Sørensen, Stefan
2018-07-19 12:58 ` Matthew Weber
2018-07-19 13:10 ` Sørensen, Stefan
2018-08-07 17:02 ` Matthew Weber
2018-08-07 17:20 ` Matthew Weber
2018-08-08 7:24 ` Jan Kundrát
2018-08-08 8:35 ` Jan Kundrát
2018-08-08 11:38 ` Matthew Weber
2018-08-09 14:32 ` Matthew Weber
2018-08-28 20:07 ` Matthew Weber
2018-08-10 20:50 ` Thomas Petazzoni
2018-08-11 0:42 ` Matthew Weber
2018-08-11 10:29 ` Thomas Petazzoni [this message]
2018-08-12 3:55 ` Matthew Weber
2018-08-12 7:41 ` Thomas Petazzoni
2018-08-12 12:49 ` Matthew Weber
2018-08-12 15:07 ` Thomas Petazzoni
2018-08-12 21:20 ` Arnout Vandecappelle
2018-07-11 14:31 ` [Buildroot] [PATCH 4/6] support/testing: runtest proxy support Matt Weber
2018-07-11 21:47 ` Arnout Vandecappelle
2018-08-10 20:51 ` Thomas Petazzoni
2018-08-11 0:30 ` Matthew Weber
2018-08-11 1:03 ` Matthew Weber
2018-07-11 14:31 ` [Buildroot] [PATCH 5/6] package/checksec: new package Matt Weber
2018-08-10 20:58 ` Thomas Petazzoni
2018-08-11 0:57 ` Matthew Weber
2018-08-11 10:30 ` Thomas Petazzoni
2018-07-11 14:31 ` [Buildroot] [PATCH 6/6] support/testing/tests/core: SSP & hardening flags Matt Weber
2018-07-16 1:32 ` Ricardo Martincoski
2018-07-17 2:53 ` Matthew Weber
2018-07-17 3:05 ` Matthew Weber
2018-07-12 11:44 ` [Buildroot] [PATCH 0/6] Hardening Flag Bugfix/Enhancement Matthew Weber
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=20180811122954.15470d8a@windsurf \
--to=thomas.petazzoni@bootlin.com \
--cc=buildroot@busybox.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.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox