Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1297746 > unrolled thread
| Started by | Guenter Roeck <linux@roeck-us.net> |
|---|---|
| First post | 2015-12-24 06:10 +0100 |
| Last post | 2015-12-24 16:30 +0100 |
| Articles | 4 — 2 participants |
Back to article view | Back to linux.kernel
[PATCH -next] MIPS: VDSO: Fix build error with binutils 2.24 and earlier Guenter Roeck <linux@roeck-us.net> - 2015-12-24 06:10 +0100
Re: [PATCH -next] MIPS: VDSO: Fix build error with binutils 2.24 and earlier James Hogan <james.hogan@imgtec.com> - 2015-12-24 13:50 +0100
Re: [PATCH -next] MIPS: VDSO: Fix build error with binutils 2.24 and earlier James Hogan <james.hogan@imgtec.com> - 2015-12-24 14:00 +0100
Re: [PATCH -next] MIPS: VDSO: Fix build error with binutils 2.24 and earlier Guenter Roeck <linux@roeck-us.net> - 2015-12-24 16:30 +0100
| From | Guenter Roeck <linux@roeck-us.net> |
|---|---|
| Date | 2015-12-24 06:10 +0100 |
| Subject | [PATCH -next] MIPS: VDSO: Fix build error with binutils 2.24 and earlier |
| Message-ID | <qJ6k1-2vP-1@gated-at.bofh.it> |
Commit 2a037f310bab ("MIPS: VDSO: Fix build error") tries to fix a build
error seen with binutils 2.24 and earlier. However, the fix does not work,
and again results in the already known build errors if the kernel is built
with an earlier version of binutils.
CC arch/mips/vdso/gettimeofday.o
/tmp/ccnOVbHT.s: Assembler messages:
/tmp/ccnOVbHT.s:50: Error: can't resolve `_start' {*UND* section} - `L0 {.text section}
/tmp/ccnOVbHT.s:374: Error: can't resolve `_start' {*UND* section} - `L0 {.text section}
scripts/Makefile.build:258: recipe for target 'arch/mips/vdso/gettimeofday.o' failed
make[2]: *** [arch/mips/vdso/gettimeofday.o] Error 1
Fixes: 2a037f310bab ("MIPS: VDSO: Fix build error")
Cc: Qais Yousef <qais.yousef@imgtec.com>
Signed-off-by: Guenter Roeck <linux@roeck-us.net>
---
Tested with binutils 2.25 and 2.22.
arch/mips/vdso/Makefile | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/arch/mips/vdso/Makefile b/arch/mips/vdso/Makefile
index 018f8c7b94f2..14568900fc1d 100644
--- a/arch/mips/vdso/Makefile
+++ b/arch/mips/vdso/Makefile
@@ -26,7 +26,7 @@ aflags-vdso := $(ccflags-vdso) \
# the comments on that file.
#
ifndef CONFIG_CPU_MIPSR6
- ifeq ($(call ld-ifversion, -lt, 22500000, y),)
+ ifeq ($(call ld-ifversion, -lt, 22500000, y),y)
$(warning MIPS VDSO requires binutils >= 2.25)
obj-vdso-y := $(filter-out gettimeofday.o, $(obj-vdso-y))
ccflags-vdso += -DDISABLE_MIPS_VDSO
--
2.1.4
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
[toc] | [next] | [standalone]
| From | James Hogan <james.hogan@imgtec.com> |
|---|---|
| Date | 2015-12-24 13:50 +0100 |
| Subject | Re: [PATCH -next] MIPS: VDSO: Fix build error with binutils 2.24 and earlier |
| Message-ID | <qJdvb-6KI-1@gated-at.bofh.it> |
| In reply to | #1297746 |
[Multipart message — attachments visible in raw view] — view raw
Hi Guenter,
On Wed, Dec 23, 2015 at 09:04:31PM -0800, Guenter Roeck wrote:
> Commit 2a037f310bab ("MIPS: VDSO: Fix build error") tries to fix a build
> error seen with binutils 2.24 and earlier. However, the fix does not work,
> and again results in the already known build errors if the kernel is built
> with an earlier version of binutils.
>
> CC arch/mips/vdso/gettimeofday.o
> /tmp/ccnOVbHT.s: Assembler messages:
> /tmp/ccnOVbHT.s:50: Error: can't resolve `_start' {*UND* section} - `L0 {.text section}
> /tmp/ccnOVbHT.s:374: Error: can't resolve `_start' {*UND* section} - `L0 {.text section}
> scripts/Makefile.build:258: recipe for target 'arch/mips/vdso/gettimeofday.o' failed
> make[2]: *** [arch/mips/vdso/gettimeofday.o] Error 1
>
> Fixes: 2a037f310bab ("MIPS: VDSO: Fix build error")
> Cc: Qais Yousef <qais.yousef@imgtec.com>
> Signed-off-by: Guenter Roeck <linux@roeck-us.net>
> ---
> Tested with binutils 2.25 and 2.22.
>
> arch/mips/vdso/Makefile | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/arch/mips/vdso/Makefile b/arch/mips/vdso/Makefile
> index 018f8c7b94f2..14568900fc1d 100644
> --- a/arch/mips/vdso/Makefile
> +++ b/arch/mips/vdso/Makefile
> @@ -26,7 +26,7 @@ aflags-vdso := $(ccflags-vdso) \
> # the comments on that file.
> #
> ifndef CONFIG_CPU_MIPSR6
> - ifeq ($(call ld-ifversion, -lt, 22500000, y),)
> + ifeq ($(call ld-ifversion, -lt, 22500000, y),y)
I agree this is semantically correct, but there is something more evil
going on here.
Originally the check was version <= 2.24
Qais' patch changed it to version >= 2.25 (intending version < 2.25)
Your patch changes it to version < 2.25
I think the reason this fixed the problem for Qais is actually that he
probably had a similar toolchain version to what I'm using:
GNU ld (Codescape GNU Tools 2015.06-05 for MIPS MTI Linux) 2.24.90
./scripts/ld-version.sh does this:
print a[1]*10000000 + a[2]*100000 + a[3]*10000 + a[4]*100 + a[5];
which changes that version number into:
20000000
+ 2400000
+ 900000 = 23300000
I.e. it doesn't expect a[3] to be >= 10.
Should we do something like this (increase multipliers on a[1] and
a[2])?:
diff --git a/scripts/ld-version.sh b/scripts/ld-version.sh
index 198580d245e0..0b67edc5bc6f 100755
--- a/scripts/ld-version.sh
+++ b/scripts/ld-version.sh
@@ -3,6 +3,6 @@
{
gsub(".*)", "");
split($1,a, ".");
- print a[1]*10000000 + a[2]*100000 + a[3]*10000 + a[4]*100 + a[5];
+ print a[1]*100000000 + a[2]*1000000 + a[3]*10000 + a[4]*100 + a[5];
exit
}
which gives 2.24.90 => 224900000.
All call sites would need updating too to add the extra 0, but a quick
git grep isn't showing any other ones than this one.
Cheers
James
> $(warning MIPS VDSO requires binutils >= 2.25)
> obj-vdso-y := $(filter-out gettimeofday.o, $(obj-vdso-y))
> ccflags-vdso += -DDISABLE_MIPS_VDSO
> --
> 2.1.4
>
>
[toc] | [prev] | [next] | [standalone]
| From | James Hogan <james.hogan@imgtec.com> |
|---|---|
| Date | 2015-12-24 14:00 +0100 |
| Subject | Re: [PATCH -next] MIPS: VDSO: Fix build error with binutils 2.24 and earlier |
| Message-ID | <qJdET-6Ob-23@gated-at.bofh.it> |
| In reply to | #1297837 |
[Multipart message — attachments visible in raw view] — view raw
On Thu, Dec 24, 2015 at 12:48:12PM +0000, James Hogan wrote:
> Hi Guenter,
>
> On Wed, Dec 23, 2015 at 09:04:31PM -0800, Guenter Roeck wrote:
> > Commit 2a037f310bab ("MIPS: VDSO: Fix build error") tries to fix a build
> > error seen with binutils 2.24 and earlier. However, the fix does not work,
> > and again results in the already known build errors if the kernel is built
> > with an earlier version of binutils.
> >
> > CC arch/mips/vdso/gettimeofday.o
> > /tmp/ccnOVbHT.s: Assembler messages:
> > /tmp/ccnOVbHT.s:50: Error: can't resolve `_start' {*UND* section} - `L0 {.text section}
> > /tmp/ccnOVbHT.s:374: Error: can't resolve `_start' {*UND* section} - `L0 {.text section}
> > scripts/Makefile.build:258: recipe for target 'arch/mips/vdso/gettimeofday.o' failed
> > make[2]: *** [arch/mips/vdso/gettimeofday.o] Error 1
> >
> > Fixes: 2a037f310bab ("MIPS: VDSO: Fix build error")
> > Cc: Qais Yousef <qais.yousef@imgtec.com>
> > Signed-off-by: Guenter Roeck <linux@roeck-us.net>
> > ---
> > Tested with binutils 2.25 and 2.22.
> >
> > arch/mips/vdso/Makefile | 2 +-
> > 1 file changed, 1 insertion(+), 1 deletion(-)
> >
> > diff --git a/arch/mips/vdso/Makefile b/arch/mips/vdso/Makefile
> > index 018f8c7b94f2..14568900fc1d 100644
> > --- a/arch/mips/vdso/Makefile
> > +++ b/arch/mips/vdso/Makefile
> > @@ -26,7 +26,7 @@ aflags-vdso := $(ccflags-vdso) \
> > # the comments on that file.
> > #
> > ifndef CONFIG_CPU_MIPSR6
> > - ifeq ($(call ld-ifversion, -lt, 22500000, y),)
> > + ifeq ($(call ld-ifversion, -lt, 22500000, y),y)
>
> I agree this is semantically correct, but there is something more evil
> going on here.
>
> Originally the check was version <= 2.24
> Qais' patch changed it to version >= 2.25 (intending version < 2.25)
> Your patch changes it to version < 2.25
>
> I think the reason this fixed the problem for Qais is actually that he
> probably had a similar toolchain version to what I'm using:
>
> GNU ld (Codescape GNU Tools 2015.06-05 for MIPS MTI Linux) 2.24.90
>
> ./scripts/ld-version.sh does this:
>
> print a[1]*10000000 + a[2]*100000 + a[3]*10000 + a[4]*100 + a[5];
>
> which changes that version number into:
> 20000000
> + 2400000
> + 900000 = 23300000
>
> I.e. it doesn't expect a[3] to be >= 10.
>
> Should we do something like this (increase multipliers on a[1] and
> a[2])?:
>
> diff --git a/scripts/ld-version.sh b/scripts/ld-version.sh
> index 198580d245e0..0b67edc5bc6f 100755
> --- a/scripts/ld-version.sh
> +++ b/scripts/ld-version.sh
> @@ -3,6 +3,6 @@
> {
> gsub(".*)", "");
> split($1,a, ".");
> - print a[1]*10000000 + a[2]*100000 + a[3]*10000 + a[4]*100 + a[5];
> + print a[1]*100000000 + a[2]*1000000 + a[3]*10000 + a[4]*100 + a[5];
> exit
> }
>
> which gives 2.24.90 => 224900000.
>
> All call sites would need updating too to add the extra 0, but a quick
> git grep isn't showing any other ones than this one.
Actually, linux-next includes this commit which uses ld-ifversion too:
19a3cc83353e3bb4bc28769f8606139a3d350d2d
"Kbuild, lto: Add Link Time Optimization support v3"
Cheers
James
>
> Cheers
> James
>
> > $(warning MIPS VDSO requires binutils >= 2.25)
> > obj-vdso-y := $(filter-out gettimeofday.o, $(obj-vdso-y))
> > ccflags-vdso += -DDISABLE_MIPS_VDSO
> > --
> > 2.1.4
> >
> >
[toc] | [prev] | [next] | [standalone]
| From | Guenter Roeck <linux@roeck-us.net> |
|---|---|
| Date | 2015-12-24 16:30 +0100 |
| Subject | Re: [PATCH -next] MIPS: VDSO: Fix build error with binutils 2.24 and earlier |
| Message-ID | <qJg01-8rx-7@gated-at.bofh.it> |
| In reply to | #1297837 |
On 12/24/2015 04:48 AM, James Hogan wrote:
> Hi Guenter,
>
> On Wed, Dec 23, 2015 at 09:04:31PM -0800, Guenter Roeck wrote:
>> Commit 2a037f310bab ("MIPS: VDSO: Fix build error") tries to fix a build
>> error seen with binutils 2.24 and earlier. However, the fix does not work,
>> and again results in the already known build errors if the kernel is built
>> with an earlier version of binutils.
>>
>> CC arch/mips/vdso/gettimeofday.o
>> /tmp/ccnOVbHT.s: Assembler messages:
>> /tmp/ccnOVbHT.s:50: Error: can't resolve `_start' {*UND* section} - `L0 {.text section}
>> /tmp/ccnOVbHT.s:374: Error: can't resolve `_start' {*UND* section} - `L0 {.text section}
>> scripts/Makefile.build:258: recipe for target 'arch/mips/vdso/gettimeofday.o' failed
>> make[2]: *** [arch/mips/vdso/gettimeofday.o] Error 1
>>
>> Fixes: 2a037f310bab ("MIPS: VDSO: Fix build error")
>> Cc: Qais Yousef <qais.yousef@imgtec.com>
>> Signed-off-by: Guenter Roeck <linux@roeck-us.net>
>> ---
>> Tested with binutils 2.25 and 2.22.
>>
>> arch/mips/vdso/Makefile | 2 +-
>> 1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/arch/mips/vdso/Makefile b/arch/mips/vdso/Makefile
>> index 018f8c7b94f2..14568900fc1d 100644
>> --- a/arch/mips/vdso/Makefile
>> +++ b/arch/mips/vdso/Makefile
>> @@ -26,7 +26,7 @@ aflags-vdso := $(ccflags-vdso) \
>> # the comments on that file.
>> #
>> ifndef CONFIG_CPU_MIPSR6
>> - ifeq ($(call ld-ifversion, -lt, 22500000, y),)
>> + ifeq ($(call ld-ifversion, -lt, 22500000, y),y)
>
> I agree this is semantically correct, but there is something more evil
> going on here.
>
> Originally the check was version <= 2.24
> Qais' patch changed it to version >= 2.25 (intending version < 2.25)
> Your patch changes it to version < 2.25
>
> I think the reason this fixed the problem for Qais is actually that he
> probably had a similar toolchain version to what I'm using:
>
> GNU ld (Codescape GNU Tools 2015.06-05 for MIPS MTI Linux) 2.24.90
>
My toolchains are yocto 1.3 (2.22) and yocto 2.0 (2.25).
> ./scripts/ld-version.sh does this:
>
> print a[1]*10000000 + a[2]*100000 + a[3]*10000 + a[4]*100 + a[5];
>
> which changes that version number into:
> 20000000
> + 2400000
> + 900000 = 23300000
>
> I.e. it doesn't expect a[3] to be >= 10.
>
> Should we do something like this (increase multipliers on a[1] and
> a[2])?:
>
> diff --git a/scripts/ld-version.sh b/scripts/ld-version.sh
> index 198580d245e0..0b67edc5bc6f 100755
> --- a/scripts/ld-version.sh
> +++ b/scripts/ld-version.sh
> @@ -3,6 +3,6 @@
> {
> gsub(".*)", "");
> split($1,a, ".");
> - print a[1]*10000000 + a[2]*100000 + a[3]*10000 + a[4]*100 + a[5];
> + print a[1]*100000000 + a[2]*1000000 + a[3]*10000 + a[4]*100 + a[5];
> exit
> }
>
> which gives 2.24.90 => 224900000.
>
Yes, that makes sense, and from your description will be necessary.
Thanks,
Guenter
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
[toc] | [prev] | [standalone]
Back to top | Article view | linux.kernel
csiph-web