Messages in this thread | | | From | Alexandre Oliva <> | Subject | Re: [PATCH] ld-version: fix it on Fedora | Date | Thu, 07 Jan 2016 16:42:24 -0200 |
| |
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
| |