Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1303772 > unrolled thread
| Started by | "Michael S. Tsirkin" <mst@redhat.com> |
|---|---|
| First post | 2016-01-07 19:00 +0100 |
| Last post | 2016-01-13 18:40 +0100 |
| Articles | 5 — 5 participants |
Back to article view | Back to linux.kernel
[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
| From | "Michael S. Tsirkin" <mst@redhat.com> |
|---|---|
| Date | 2016-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]
| From | Ralf Baechle <ralf@linux-mips.org> |
|---|---|
| Date | 2016-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]
| From | Alexandre Oliva <oliva@gnu.org> |
|---|---|
| Date | 2016-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]
| From | James Hogan <james.hogan@imgtec.com> |
|---|---|
| Date | 2016-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]
| From | Daniel Sanders <Daniel.Sanders@imgtec.com> |
|---|---|
| Date | 2016-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