Buildroot Archive on lore.kernel.org
 help / color / mirror / Atom feed
From: "Jörg Krause" <joerg.krause@embedded.rocks>
To: buildroot@busybox.net
Subject: [Buildroot] [PATCH v2 07/11] package/flex: disable reallocarray
Date: Thu, 14 Sep 2017 12:51:04 +0200	[thread overview]
Message-ID: <1505386264.12802.8.camel@embedded.rocks> (raw)
In-Reply-To: <20170914112527.GC18779@momiji>

On Thu, 2017-09-14 at 11:25 +0300, Adrian Perez de Castro wrote:
> Hi everybody,
> 
> On Wed, 13 Sep 2017 21:54:31 +0200, Romain Naour <romain.naour@gmail.com> wrote:
> > Hi J?rg,
> > 
> > Le 13/09/2017 ? 20:53, J?rg Krause a ?crit :
> > > Hi,
> > > 
> > > On Thu, 2017-09-07 at 23:32 +0200, Romain Naour wrote:
> > > > Hi Thomas,
> > > > 
> > > > Le 03/09/2017 ? 09:14, Thomas Petazzoni a ?crit :
> > > > > Hello,
> > > > > 
> > > > > On Sun, 3 Sep 2017 00:23:40 +0200, Romain Naour wrote:
> > > > > 
> > > > > > > This commit log is a bit mysterious: if reallocarray() has been
> > > > > > > introduced in glibc 2.26, why isn't flex able to use it ?  
> > > > > > 
> > > > > > It's a nasty issue, when reallocarray() is available for the target, flex will
> > > > > > build a small tool called stage1flex for the host (using _FOR_BUILD) but with
> > > > > > the config.h generated for the target.
> > > > > > 
> > > > > > My host doesn't have glibc 2.26, so reallocarray() is never defined while
> > > > > > building stage1flex:
> > > > > > 
> > > > > > misc.c:147:8: warning : implicit declaration of function ? reallocarray ?
> > > > > > [-Wimplicit-function-declaration]
> > > > > >   mem = reallocarray(NULL, (size_t) size, element_size);
> > > > > >         ^~~~~~~~~~~~
> > > > > > misc.c:147:6: warning : assignment makes pointer from integer without a cast
> > > > > > [-Wint-conversion]
> > > > > >   mem = reallocarray(NULL, (size_t) size, element_size);
> > > > > >       ^
> > > > > > 
> > > > > > I don't know how to fix this, except by disabling reallocarray() for the target...
> > > > > 
> > > > > This should all be explained in the commit log, and a short comment in
> > > > > flex.mk should be added as well.
> > > > 
> > > > Actually I looked further into this issue after sending the patch.
> > > > 
> > > > > 
> > > > > Generally speaking, the commit logs in this series are too terse: they
> > > > > just say "fix build with glibc 2.26" with no explanations, or they
> > > > > backport some seemingly random glibc patches, without explaining why
> > > > > they are needed. Could you improve this a bit ?
> > > > 
> > > > Well, the glibc bump is more complicated than expected and I need to spent more
> > > > time on it to understand what's going on...
> > > > 
> > > > At least we have a link to the upstream reference as a starting point.
> > > > Ok, this patch is really too terse, I added it just before sending the series :-/
> > > > 
> > > > I'll try to continue this week-end.
> > > 
> > > Fixed upstream:
> > > https://github.com/westes/flex/commit/24fd0551333e7eded87b64dd36062da3d
> > > f2f6380
> > > 
> > > Meanwhile, another patch was provided:
> > > http://patchwork.ozlabs.org/patch/813474/
> > 
> > Tanks for the link but this is a different issue.
> > 
> > The issue reported here is when the toolchain provide glibc 2.26 and the host
> > use an older glibc version which doesn't provide reallocarray().
> > 
> > The issue reported by Adrian is when glibc 2.26 is installed on the host.
> 
> This is correct, I've hit the host-has-2.26 issue.
> 
> > Sadly, the patch provided by Adrian doesn't fix this issue.
> 
> That's right as well. I remembered seeing Romain's patch flying by the mailing
> list, so I took a look at it and it seemed to me like it would not fix my
> build issue for ?host-flex?.
> 
> I think we need *both* patches:
> 
>  - Romain's fixes building ?flex? when Buildroot has glibc 2.26 and the host
>    has any libc which does not have reallocarray().
> 
>  - Mine fixes building ?host-flex? when the host has glibc 2.26, regardless
>    if the libc being built by Buildroot.
> 
> Is there anything preventing both from being merged? Would it be useful if
> we tried to merge both patches?

The configure check for reallocarray includes the Buildroot
output/host/include directory, so it finds reallocarray if a Buildroot
toolchain with glibc 2.26 is used, despite of the host toolchains glibc
version:

"""
configure:20837: checking for reallocarray
configure:20837: /usr/bin/gcc -o conftest -O2 -I$BUILDROOT/output/host/include -I$BUILDROOT/output/host/include -L$BUILDROOT/output/host/lib -Wl,-rpath,$BUILDROOT/output/host/lib conftest.c -lm  >&5
"""

Best regards,
J?rg Krause

  reply	other threads:[~2017-09-14 10:51 UTC|newest]

Thread overview: 34+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-09-02 20:54 [Buildroot] [PATCH v2 00/11] glibc: bump to 2.26 Romain Naour
2017-09-02 20:54 ` [Buildroot] [PATCH v2 01/11] package/gcc: fix build issue with glibc 2.26 Romain Naour
2017-09-17 16:08   ` Yann E. MORIN
2017-09-17 16:13     ` Yann E. MORIN
2017-09-02 20:54 ` [Buildroot] [PATCH v2 02/11] " Romain Naour
2017-09-17 16:17   ` Yann E. MORIN
2017-09-02 20:54 ` [Buildroot] [PATCH v2 03/11] package/mesa3d: fix build issue with glibc >= 2.26 Romain Naour
2017-09-19  7:54   ` Bernd Kuhls
2017-09-02 20:54 ` [Buildroot] [PATCH v2 04/11] package/jsoncpp: fix build " Romain Naour
2017-09-02 20:54 ` [Buildroot] [PATCH v2 05/11] package/glibc: needs kernel headers >= 3.10 on powerpc64le Romain Naour
2017-09-10 10:30   ` Yann E. MORIN
2017-09-11 23:05     ` Arnout Vandecappelle
2017-09-11 23:37       ` Thomas Petazzoni
2017-09-12  6:04         ` Yann E. MORIN
2017-09-12  7:47           ` Arnout Vandecappelle
2017-09-02 20:54 ` [Buildroot] [PATCH v2 06/11] package/gcc: enable float128 on powerpc64le with glibc >= 2.26 toolchains Romain Naour
2017-09-02 20:54 ` [Buildroot] [PATCH v2 07/11] package/flex: disable reallocarray Romain Naour
2017-09-02 21:12   ` Thomas Petazzoni
2017-09-02 22:23     ` Romain Naour
2017-09-03  7:14       ` Thomas Petazzoni
2017-09-07 21:32         ` Romain Naour
2017-09-13 18:53           ` Jörg Krause
2017-09-13 19:54             ` Romain Naour
2017-09-14  8:25               ` Adrian Perez de Castro
2017-09-14 10:51                 ` Jörg Krause [this message]
2017-09-02 20:54 ` [Buildroot] [PATCH v2 08/11] package/diffutils: fix build with glibc 2.26 Romain Naour
2017-09-02 20:54 ` [Buildroot] [PATCH v2 09/11] package/kodi: " Romain Naour
2017-09-19  7:51   ` Bernd Kuhls
2017-09-02 20:54 ` [Buildroot] [PATCH v2 10/11] package/glibc: bump to 2.26 Romain Naour
2017-09-19  7:50   ` Bernd Kuhls
2017-09-19 10:43     ` Romain Naour
2017-09-02 20:54 ` [Buildroot] [PATCH v2 11/11] package/glibc: backport fixes for glibc bug 21930 Romain Naour
2017-09-21 10:45 ` [Buildroot] [PATCH v2 00/11] glibc: bump to 2.26 Arnout Vandecappelle
2017-09-21 20:54   ` Romain Naour

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=1505386264.12802.8.camel@embedded.rocks \
    --to=joerg.krause@embedded.rocks \
    --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