Buildroot Archive on lore.kernel.org
 help / color / mirror / Atom feed
From: Yann E. MORIN <yann.morin.1998@free.fr>
To: buildroot@busybox.net
Subject: [Buildroot] [PATCH 3/3] package/gcc: align gcc-final configure-cmds to the generic ones
Date: Tue, 24 Nov 2015 19:39:06 +0100	[thread overview]
Message-ID: <20151124183906.GA3904@free.fr> (raw)
In-Reply-To: <20151123211441.5135a9d2@free-electrons.com>

Thomas, All,

On 2015-11-23 21:14 +0100, Thomas Petazzoni spake thusly:
> On Sun, 22 Nov 2015 15:39:43 +0100, Yann E. MORIN wrote:
> > Since 7d6c79 (Compile static versions of gcc libraries) was applied, the
> > generic configure commands have been updated, but those changes have not
> > been propagated to the gcc-final custom configure commands.
> > 
> > Update the gcc-final custom configure commands to better match the
> > generic ones.
> > 
> > We do not propagate --disable-dependency-tracking because it breaks the
> > build, and --enable-shared (because of 169141a).
> > 
> > Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
> > Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
> 
> A little bit like Arnout, I am not sure to see the value of fully
> aligning the configure commands just for the sake of it.

My reasoning is that, when we update the ./configure command in the
infra, it's always for a good reason. The current set of options is the
result of many successive fixes to so many build failures and corner
cases, that we applied over time, and that we know ensure a proper
build, hopefully in even the harshest conditions.

It seems logical that we propagate those options to all packages that
have to override the ./configure command (unless said options actually
prevent the package from building, obviously). For gcc, we already know
that the additional options (except the omitted ones) are not causing
problems when building gcc-initial, at least (and I actually tested that
they did not cause build failures in gcc-final either, on: arm, mips,
i386 and xtensa).

That way, when we update the command in the infra, we can easily
propagate it down to overriding packages.

> Another possibility is to add a mechanism in the infra to exclude some
> generic config options from being used. But I tend to hate package
> infrastructure that are needed only for one package, especially when
> there is a way of not changing the infrastructure (which is the case
> here).

Let's see how many autotools packages do redefine their ./configure
command:

    $ git grep -l -E 'eval \$\((host-)?autotools-package' |wc -l
    1055

So, we have roughly 1055 (minus the manual) packages using the autotools
(or the host-autotools) infra.

    $ grep CONFIGURE_CMDS $(git grep -l -E 'eval \$\((host-)?autotools-package') |wc -l
    10

So, we have 8 (one hit is in the manual, one in a comment) packages that
override their ./configure command, with the associated reason:

  - berkeleydb: does not support in-tree build

  - fbv:        does not support cross-compilation

  - ffmpeg:     does not support --target and such

  - gcc-final:  needs --enable-static and not --enable-shared, does not
                support in-tree build, misses options from the infra

  - glibc:      does not support in-tree build, needs bash to execute
                ./configure, needs -O2 in CFLAGS, touches two files
                after the ./configure, uses extra options and misses
                some from the infra

  - libgtk3:    host variant redefines all of the configure, build and
                install commands, to build just the strictly required
                stuff

  - libplayer:  does not support --target and --host

  - mdadm:      does nothing!

So, it seems we could go with some cleanup there (any taker?):

  - fbv, ffmpeg, libplayer, mdadm:
                are not autotools packages, should be switched to the
                generic package infrastructure

  - libgtk3:    host variant should be switched to the generic package
                infrastructure

We'd be left with just three packages, berkeleydb, gcc-final and glibc.
The common symptom for all three in the inability to build in-tree.
Wecould probably ad dsupport for this in the gneeric infra, but it does
not make sense to work on the infra just for those three cases, when you
have a series do it so unconditionally, and for all the infras.

So, only gcc-final needs to ditch one option. It does not make sense to
add support in the infra just for this case.

Regards,
Yann E. MORIN.

-- 
.-----------------.--------------------.------------------.--------------------.
|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
| +33 223 225 172 `------------.-------:  X  AGAINST      |  \e/  There is no  |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
'------------------------------^-------^------------------^--------------------'

  reply	other threads:[~2015-11-24 18:39 UTC|newest]

Thread overview: 18+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-11-22 14:39 [Buildroot] [PATCH 0/3] core+gcc: align configure commands (branch yem/quickies-for-master) Yann E. MORIN
2015-11-22 14:39 ` [Buildroot] [PATCH 1/3] core/pkg-autotools: align host configure commands to target one Yann E. MORIN
2015-11-22 20:46   ` Arnout Vandecappelle
2015-11-23 17:38   ` Thomas Petazzoni
2015-11-23 17:51     ` Yann E. MORIN
2015-11-23 17:55       ` Yann E. MORIN
2015-11-23 20:09       ` Thomas Petazzoni
2015-11-23 20:51         ` Yann E. MORIN
2015-11-22 14:39 ` [Buildroot] [PATCH 2/3] package/gcc: comment on why we override the generic configure commands Yann E. MORIN
2015-11-22 15:11   ` Jérôme Pouiller
2015-11-22 20:48   ` Arnout Vandecappelle
2015-11-23 17:38   ` Thomas Petazzoni
2015-11-22 14:39 ` [Buildroot] [PATCH 3/3] package/gcc: align gcc-final configure-cmds to the generic ones Yann E. MORIN
2015-11-22 20:59   ` Arnout Vandecappelle
2015-11-22 21:02     ` Yann E. MORIN
2015-11-23 20:14   ` Thomas Petazzoni
2015-11-24 18:39     ` Yann E. MORIN [this message]
2015-12-29 22:06   ` Yann E. MORIN

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=20151124183906.GA3904@free.fr \
    --to=yann.morin.1998@free.fr \
    --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