Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1303772 > unrolled thread

[PATCH] ld-version: fix it on Fedora

Started by"Michael S. Tsirkin" <mst@redhat.com>
First post2016-01-07 19:00 +0100
Last post2016-01-13 18:40 +0100
Articles 5 — 5 participants

Back to article view | Back to linux.kernel


Contents

  [PATCH] ld-version: fix it on Fedora "Michael S. Tsirkin" <mst@redhat.com> - 2016-01-07 19:00 +0100
    Re: [PATCH] ld-version: fix it on Fedora Ralf Baechle <ralf@linux-mips.org> - 2016-01-07 19:20 +0100
    Re: [PATCH] ld-version: fix it on Fedora Alexandre Oliva <oliva@gnu.org> - 2016-01-07 20:00 +0100
    Re: [PATCH] ld-version: fix it on Fedora James Hogan <james.hogan@imgtec.com> - 2016-01-13 18:10 +0100
      RE: [PATCH] ld-version: fix it on Fedora Daniel Sanders <Daniel.Sanders@imgtec.com> - 2016-01-13 18:40 +0100

#1303772 — [PATCH] ld-version: fix it on Fedora

From"Michael S. Tsirkin" <mst@redhat.com>
Date2016-01-07 19:00 +0100
Subject[PATCH] ld-version: fix it on Fedora
Message-ID<qOn0U-31l-25@gated-at.bofh.it>
On Fedora 23, ld --version outputs:
GNU ld version 2.25-15.fc23

But ld-version.sh fails to parse this, so e.g.  mips build fails to
enable VDSO, printing a warning that binutils >= 2.24 is required.

To fix, teach ld-version to parse this format.

Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
---

Which tree should this be merged through? Mine? MIPS?

 scripts/ld-version.sh | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/scripts/ld-version.sh b/scripts/ld-version.sh
index 198580d..25d23c8 100755
--- a/scripts/ld-version.sh
+++ b/scripts/ld-version.sh
@@ -2,6 +2,8 @@
 # extract linker version number from stdin and turn into single number
 	{
 	gsub(".*)", "");
+	gsub(".*version ", "");
+	gsub("-.*", "");
 	split($1,a, ".");
 	print a[1]*10000000 + a[2]*100000 + a[3]*10000 + a[4]*100 + a[5];
 	exit
-- 
MST

[toc] | [next] | [standalone]


#1303779

FromRalf Baechle <ralf@linux-mips.org>
Date2016-01-07 19:20 +0100
Message-ID<qOnke-3qH-5@gated-at.bofh.it>
In reply to#1303772
On Thu, Jan 07, 2016 at 07:55:24PM +0200, Michael S. Tsirkin wrote:

> On Fedora 23, ld --version outputs:
> GNU ld version 2.25-15.fc23
> 
> But ld-version.sh fails to parse this, so e.g.  mips build fails to
> enable VDSO, printing a warning that binutils >= 2.24 is required.
> 
> To fix, teach ld-version to parse this format.
> 
> Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
> ---
> 
> Which tree should this be merged through? Mine? MIPS?

MIPS is the sole user of ld-ifversion at this time and taking this through
the MIPS tree will avoid possible merge conflicts with James Hogan's
pending d5ece1cb074b2c7082c9a2948ac598dd0ad40657 fix ("Fix ld-version.sh to
handle large 3rd version part").  So I think I should take this through
the MIPS tree.

Thanks!

  Ralf

[toc] | [prev] | [next] | [standalone]


#1303807

FromAlexandre Oliva <oliva@gnu.org>
Date2016-01-07 20:00 +0100
Message-ID<qOnWX-3Gz-27@gated-at.bofh.it>
In reply to#1303772
On Jan  7, 2016, "Michael S. Tsirkin" <mst@redhat.com> wrote:

> On Fedora 23, ld --version outputs:
> GNU ld version 2.25-15.fc23

> But ld-version.sh fails to parse this

On gnewsense 3, ld --version outputs:

GNU ld (GNU Binutils for Debian) 2.20.1-system.20100303
Copyright [...]

The date at the end severely confuses the version parser.

Furthermore, awk is mawk, whose gsub takes ')' as grouping, so it
complains about the missing '('.

Also, once a[1] is multiplied by 1e7, mawk's print spits out the number
in exponential notation, which confuses the -lt test.  In order to avoid
that falling back to floating-point numbers, I've used smaller
multipliers and concatenated (truncated) integers.  Yuck.

I've modified the script so that it takes the - as a separator too, and
so that it works on both gawk and mawk.  Here's the ld-version.sh that
worked for me.  I guess this will have to be combined with your patch
somehow.

#!/usr/bin/awk -f
# extract linker version number from stdin and turn into single number
        {
        gsub(".*[)]", "");
        split($1,a, "[-.]");
        printf "%i%04i\n", a[1]*10000 + a[2]*100 + a[3], (a[4]*100 + a[5])%10000;
        exit
        }

-- 
Alexandre Oliva, freedom fighter    http://FSFLA.org/~lxoliva/
You must be the change you wish to see in the world. -- Gandhi
Be Free! -- http://FSFLA.org/   FSF Latin America board member
Free Software Evangelist|Red Hat Brasil GNU Toolchain Engineer

[toc] | [prev] | [next] | [standalone]


#1308637

FromJames Hogan <james.hogan@imgtec.com>
Date2016-01-13 18:10 +0100
Message-ID<qQx5O-2Pq-39@gated-at.bofh.it>
In reply to#1303772
Cc'ing Daniel, who has hit further breakage due to unusual version numbers.

On 7 January 2016 at 17:55, Michael S. Tsirkin <mst@redhat.com> wrote:
> On Fedora 23, ld --version outputs:
> GNU ld version 2.25-15.fc23
>
> But ld-version.sh fails to parse this, so e.g.  mips build fails to
> enable VDSO, printing a warning that binutils >= 2.24 is required.
>
> To fix, teach ld-version to parse this format.
>
> Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
> ---
>
> Which tree should this be merged through? Mine? MIPS?
>
>  scripts/ld-version.sh | 2 ++
>  1 file changed, 2 insertions(+)
>
> diff --git a/scripts/ld-version.sh b/scripts/ld-version.sh
> index 198580d..25d23c8 100755
> --- a/scripts/ld-version.sh
> +++ b/scripts/ld-version.sh
> @@ -2,6 +2,8 @@
>  # extract linker version number from stdin and turn into single number
>         {
>         gsub(".*)", "");
> +       gsub(".*version ", "");
> +       gsub("-.*", "");
>         split($1,a, ".");
>         print a[1]*10000000 + a[2]*100000 + a[3]*10000 + a[4]*100 + a[5];
>         exit
> --
> MST
>

[toc] | [prev] | [next] | [standalone]


#1308676

FromDaniel Sanders <Daniel.Sanders@imgtec.com>
Date2016-01-13 18:40 +0100
Message-ID<qQxyP-300-49@gated-at.bofh.it>
In reply to#1308637
Hi,

The version number that's giving me problems is 2.24.51.20140217 which ld-version.sh converts to 2036931700 (20000000+2400000+510000+2014021700).

At the moment, I'm wondering whether we really need to handle more than three version number components. Another thought is that the comparison could be inside ld-version.sh (or a replacement) so that it can compare the array of version components directly instead of using a constructed integer as a proxy.

> -----Original Message-----
> From: james@albanarts.com [mailto:james@albanarts.com] On Behalf Of
> James Hogan
> Sent: 13 January 2016 17:06
> To: Michael S. Tsirkin
> Cc: LKML; Michal Marek; linux-kbuild@vger.kernel.org; Linux MIPS Mailing
> List; Ralf Baechle; Daniel Sanders
> Subject: Re: [PATCH] ld-version: fix it on Fedora
> 
> Cc'ing Daniel, who has hit further breakage due to unusual version numbers.
> 
> On 7 January 2016 at 17:55, Michael S. Tsirkin <mst@redhat.com> wrote:
> > On Fedora 23, ld --version outputs:
> > GNU ld version 2.25-15.fc23
> >
> > But ld-version.sh fails to parse this, so e.g.  mips build fails to
> > enable VDSO, printing a warning that binutils >= 2.24 is required.
> >
> > To fix, teach ld-version to parse this format.
> >
> > Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
> > ---
> >
> > Which tree should this be merged through? Mine? MIPS?
> >
> >  scripts/ld-version.sh | 2 ++
> >  1 file changed, 2 insertions(+)
> >
> > diff --git a/scripts/ld-version.sh b/scripts/ld-version.sh
> > index 198580d..25d23c8 100755
> > --- a/scripts/ld-version.sh
> > +++ b/scripts/ld-version.sh
> > @@ -2,6 +2,8 @@
> >  # extract linker version number from stdin and turn into single number
> >         {
> >         gsub(".*)", "");
> > +       gsub(".*version ", "");
> > +       gsub("-.*", "");
> >         split($1,a, ".");
> >         print a[1]*10000000 + a[2]*100000 + a[3]*10000 + a[4]*100 + a[5];
> >         exit
> > --
> > MST
> >

[toc] | [prev] | [standalone]


Back to top | Article view | linux.kernel


csiph-web