Re: Linux kernel cross-compilers

2013-08-17 Thread Sam Ravnborg
> >
> > I found out the root source: SHELL is set the /bin/sh, which on the failing
> > system points to /bin/dash (default in Ubuntu, or at least it used to be).
> > dash apparently has a built-in version of echo which does not understand
> > '-e'.
> > Oh well.
> 
> Cool. OTOH I don't think that we need to -e to output __XTENSA_EB__.
> Will send a patch for that.

Could you please take a look at the other places that uses "echo -e".
At least one usage inarch/x86/Makefiel looks questionable.
grep did not turn up many uses.

Sam
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: Linux kernel cross-compilers

2013-08-17 Thread Sam Ravnborg
 
  I found out the root source: SHELL is set the /bin/sh, which on the failing
  system points to /bin/dash (default in Ubuntu, or at least it used to be).
  dash apparently has a built-in version of echo which does not understand
  '-e'.
  Oh well.
 
 Cool. OTOH I don't think that we need to -e to output __XTENSA_EB__.
 Will send a patch for that.

Could you please take a look at the other places that uses echo -e.
At least one usage inarch/x86/Makefiel looks questionable.
grep did not turn up many uses.

Sam
--
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: Linux kernel cross-compilers

2013-08-16 Thread Guenter Roeck
On Fri, Aug 16, 2013 at 09:26:51PM +0200, Sam Ravnborg wrote:
> On Fri, Aug 16, 2013 at 08:43:35AM -0700, Guenter Roeck wrote:
> > On 08/16/2013 02:45 AM, Max Filippov wrote:
>  Guenter,
>  can you share a complete build log with V=1?
> 
> >>>
> >>> http://roeck-us.net/linux/logs/make.xtensa.log.bad
> >>> http://roeck-us.net/linux/logs/make.xtensa.log.ok
> >>>
> >>> Key difference: the failing command in the bad case is
> >>>  xtensa-linux-objcopy -O elf32-xtensa-le
> >>> and in the good case
> >>>  xtensa-linux-objcopy -O elf32-xtensa-be
> >>>
> >>> Same compiler (4.6.3 from kernel.org), same configuration file, same 
> >>> command
> >>> line.
> >>> Configuration file is generated from defconfig, and the resulting .config
> >>> file
> >>> is the same in both cases.
> >>>
> >>> If I execute make and expicitly set BIG_ENDIAN=1 on the failing system as
> >>> parameter to it,
> >>> it works fine. If I set BIG_ENDIAN=0 on the passing system, it fails.
> >>>
> >>> I am puzzled. Guess there must be something different, but I have no idea
> >>> what it might be.
> >>
> >> What is the output of
> >>
> >> echo -e __XTENSA_EB__ | xtensa-linux-gcc -E -
> >>
> >> on the failing system?
> >>
> > It is "1", but that let me pinpoint the problem.
> >
> > On the failing system, the version of echo executed by make does
> > not understand the "-e" option. Thus, when running 
> > arch/xtensa/boot/Makefile,
> > "echo -e __XTENSA_EB__" returns "-e __XTENSA_EB__", which doesn't compile,
> > and BIG_ENDIAN ends up being 0. So the compiler is completely innocent.
> >
> > I found out the root source: SHELL is set the /bin/sh, which on the failing
> > system points to /bin/dash (default in Ubuntu, or at least it used to be).
> > dash apparently has a built-in version of echo which does not understand 
> > '-e'.
> 
> Could you try to replace "echo -e bla" with "printf "bla".
> Kbuild.include uses some similar tricks but here printf is used.
> Maybe this can be dash compatible then
> 
"echo" would do perfectly fine in this case. Besides, there are more
"echo -e" in arch/xtensa/Makefile. Those only cause unpredictable build
results (because neither big endian not little endian is set because of it),
but no errors.

Problem is that "echo -e" is used elsewhere in various kernel makefiles,
not just for xtensa. Those don't cause odd errors like the one I observed,
but may result in unpredictable behavior. I am not sure if I should try
to fix that.

Maybe we should just put "don't try to compile the linux kernel with dash
as default shell" as a note somewhere.

Guenter
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: Linux kernel cross-compilers

2013-08-16 Thread Max Filippov
On Fri, Aug 16, 2013 at 7:43 PM, Guenter Roeck  wrote:
> On 08/16/2013 02:45 AM, Max Filippov wrote:

 Guenter,
 can you share a complete build log with V=1?

>>>
>>> http://roeck-us.net/linux/logs/make.xtensa.log.bad
>>> http://roeck-us.net/linux/logs/make.xtensa.log.ok
>>>
>>> Key difference: the failing command in the bad case is
>>>  xtensa-linux-objcopy -O elf32-xtensa-le
>>> and in the good case
>>>  xtensa-linux-objcopy -O elf32-xtensa-be
>>>
>>> Same compiler (4.6.3 from kernel.org), same configuration file, same
>>> command
>>> line.
>>> Configuration file is generated from defconfig, and the resulting .config
>>> file
>>> is the same in both cases.
>>>
>>> If I execute make and expicitly set BIG_ENDIAN=1 on the failing system as
>>> parameter to it,
>>> it works fine. If I set BIG_ENDIAN=0 on the passing system, it fails.
>>>
>>> I am puzzled. Guess there must be something different, but I have no idea
>>> what it might be.
>>
>>
>> What is the output of
>>
>> echo -e __XTENSA_EB__ | xtensa-linux-gcc -E -
>>
>> on the failing system?
>>
> It is "1", but that let me pinpoint the problem.
>
> On the failing system, the version of echo executed by make does
> not understand the "-e" option. Thus, when running
> arch/xtensa/boot/Makefile,
> "echo -e __XTENSA_EB__" returns "-e __XTENSA_EB__", which doesn't compile,
> and BIG_ENDIAN ends up being 0. So the compiler is completely innocent.
>
> I found out the root source: SHELL is set the /bin/sh, which on the failing
> system points to /bin/dash (default in Ubuntu, or at least it used to be).
> dash apparently has a built-in version of echo which does not understand
> '-e'.
> Oh well.

Cool. OTOH I don't think that we need to -e to output __XTENSA_EB__.
Will send a patch for that.

-- 
Thanks.
-- Max
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: Linux kernel cross-compilers

2013-08-16 Thread Sam Ravnborg
On Fri, Aug 16, 2013 at 08:43:35AM -0700, Guenter Roeck wrote:
> On 08/16/2013 02:45 AM, Max Filippov wrote:
 Guenter,
 can you share a complete build log with V=1?

>>>
>>> http://roeck-us.net/linux/logs/make.xtensa.log.bad
>>> http://roeck-us.net/linux/logs/make.xtensa.log.ok
>>>
>>> Key difference: the failing command in the bad case is
>>>  xtensa-linux-objcopy -O elf32-xtensa-le
>>> and in the good case
>>>  xtensa-linux-objcopy -O elf32-xtensa-be
>>>
>>> Same compiler (4.6.3 from kernel.org), same configuration file, same command
>>> line.
>>> Configuration file is generated from defconfig, and the resulting .config
>>> file
>>> is the same in both cases.
>>>
>>> If I execute make and expicitly set BIG_ENDIAN=1 on the failing system as
>>> parameter to it,
>>> it works fine. If I set BIG_ENDIAN=0 on the passing system, it fails.
>>>
>>> I am puzzled. Guess there must be something different, but I have no idea
>>> what it might be.
>>
>> What is the output of
>>
>> echo -e __XTENSA_EB__ | xtensa-linux-gcc -E -
>>
>> on the failing system?
>>
> It is "1", but that let me pinpoint the problem.
>
> On the failing system, the version of echo executed by make does
> not understand the "-e" option. Thus, when running arch/xtensa/boot/Makefile,
> "echo -e __XTENSA_EB__" returns "-e __XTENSA_EB__", which doesn't compile,
> and BIG_ENDIAN ends up being 0. So the compiler is completely innocent.
>
> I found out the root source: SHELL is set the /bin/sh, which on the failing
> system points to /bin/dash (default in Ubuntu, or at least it used to be).
> dash apparently has a built-in version of echo which does not understand '-e'.

Could you try to replace "echo -e bla" with "printf "bla".
Kbuild.include uses some similar tricks but here printf is used.
Maybe this can be dash compatible then

Sam
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: Linux kernel cross-compilers

2013-08-16 Thread Guenter Roeck

On 08/16/2013 02:45 AM, Max Filippov wrote:

Guenter,
can you share a complete build log with V=1?



http://roeck-us.net/linux/logs/make.xtensa.log.bad
http://roeck-us.net/linux/logs/make.xtensa.log.ok

Key difference: the failing command in the bad case is
 xtensa-linux-objcopy -O elf32-xtensa-le
and in the good case
 xtensa-linux-objcopy -O elf32-xtensa-be

Same compiler (4.6.3 from kernel.org), same configuration file, same command
line.
Configuration file is generated from defconfig, and the resulting .config
file
is the same in both cases.

If I execute make and expicitly set BIG_ENDIAN=1 on the failing system as
parameter to it,
it works fine. If I set BIG_ENDIAN=0 on the passing system, it fails.

I am puzzled. Guess there must be something different, but I have no idea
what it might be.


What is the output of

echo -e __XTENSA_EB__ | xtensa-linux-gcc -E -

on the failing system?


It is "1", but that let me pinpoint the problem.

On the failing system, the version of echo executed by make does
not understand the "-e" option. Thus, when running arch/xtensa/boot/Makefile,
"echo -e __XTENSA_EB__" returns "-e __XTENSA_EB__", which doesn't compile,
and BIG_ENDIAN ends up being 0. So the compiler is completely innocent.

I found out the root source: SHELL is set the /bin/sh, which on the failing
system points to /bin/dash (default in Ubuntu, or at least it used to be).
dash apparently has a built-in version of echo which does not understand '-e'.
Oh well.

Thanks a lot for helping me to track this down!

Guenter

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: Linux kernel cross-compilers

2013-08-16 Thread Max Filippov
>> Guenter,
>> can you share a complete build log with V=1?
>>
>
> http://roeck-us.net/linux/logs/make.xtensa.log.bad
> http://roeck-us.net/linux/logs/make.xtensa.log.ok
>
> Key difference: the failing command in the bad case is
> xtensa-linux-objcopy -O elf32-xtensa-le
> and in the good case
> xtensa-linux-objcopy -O elf32-xtensa-be
>
> Same compiler (4.6.3 from kernel.org), same configuration file, same command
> line.
> Configuration file is generated from defconfig, and the resulting .config
> file
> is the same in both cases.
>
> If I execute make and expicitly set BIG_ENDIAN=1 on the failing system as
> parameter to it,
> it works fine. If I set BIG_ENDIAN=0 on the passing system, it fails.
>
> I am puzzled. Guess there must be something different, but I have no idea
> what it might be.

What is the output of

echo -e __XTENSA_EB__ | xtensa-linux-gcc -E -

on the failing system?

-- 
Thanks.
-- Max
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: Linux kernel cross-compilers

2013-08-16 Thread Guenter Roeck

On 08/16/2013 01:31 AM, Max Filippov wrote:

On Fri, Aug 16, 2013 at 11:50 AM, Guenter Roeck  wrote:

On 08/16/2013 12:22 AM, Max Filippov wrote:


On Fri, Aug 16, 2013 at 9:48 AM, Tony Breeds 
wrote:


On Thu, Aug 15, 2013 at 01:46:16PM +0400, Max Filippov wrote:


Yes, xtensa compiler/linker is known to have issues with link-time
relaxation; e.g. it may fail to build linux image without
CONFIG_LD_NO_RELAX.



Is there something I can do at linker build time to help with this?



I don't think so. Apparently it's not a linker configuration issue, it's a
bug.


CONFIG_LD_NO_RELAX doesn't help.

For reference, here is the error:

xtensa-linux-objcopy: Unable to change endianness of input file(s)
make[2]: *** [arch/xtensa/boot/boot-elf/Image.o] Error 1
make[1]: *** [boot-elf] Error 2
make: *** [zImage] Error 2

Oddly enough, I only see the problem on one of three servers.


Guenter,
can you share a complete build log with V=1?



http://roeck-us.net/linux/logs/make.xtensa.log.bad
http://roeck-us.net/linux/logs/make.xtensa.log.ok

Key difference: the failing command in the bad case is
xtensa-linux-objcopy -O elf32-xtensa-le
and in the good case
xtensa-linux-objcopy -O elf32-xtensa-be

Same compiler (4.6.3 from kernel.org), same configuration file, same command 
line.
Configuration file is generated from defconfig, and the resulting .config file
is the same in both cases.

If I execute make and expicitly set BIG_ENDIAN=1 on the failing system as 
parameter to it,
it works fine. If I set BIG_ENDIAN=0 on the passing system, it fails.

I am puzzled. Guess there must be something different, but I have no idea what 
it might be.

If I execute the command which sets BIG_ENDIAN manually from the shell (from
arch/xtensa/boot/Makefile), it returns 1 on both systems.

If you have an idea what is going on please let me know.

Thanks,
Guenter

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: Linux kernel cross-compilers

2013-08-16 Thread Max Filippov
On Fri, Aug 16, 2013 at 11:50 AM, Guenter Roeck  wrote:
> On 08/16/2013 12:22 AM, Max Filippov wrote:
>>
>> On Fri, Aug 16, 2013 at 9:48 AM, Tony Breeds 
>> wrote:
>>>
>>> On Thu, Aug 15, 2013 at 01:46:16PM +0400, Max Filippov wrote:
>>>
 Yes, xtensa compiler/linker is known to have issues with link-time
 relaxation; e.g. it may fail to build linux image without
 CONFIG_LD_NO_RELAX.
>>>
>>>
>>> Is there something I can do at linker build time to help with this?
>>
>>
>> I don't think so. Apparently it's not a linker configuration issue, it's a
>> bug.
>>
> CONFIG_LD_NO_RELAX doesn't help.
>
> For reference, here is the error:
>
> xtensa-linux-objcopy: Unable to change endianness of input file(s)
> make[2]: *** [arch/xtensa/boot/boot-elf/Image.o] Error 1
> make[1]: *** [boot-elf] Error 2
> make: *** [zImage] Error 2
>
> Oddly enough, I only see the problem on one of three servers.

Guenter,
can you share a complete build log with V=1?

-- 
Thanks.
-- Max
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: Linux kernel cross-compilers

2013-08-16 Thread Guenter Roeck

On 08/15/2013 10:47 PM, Tony Breeds wrote:

On Thu, Aug 15, 2013 at 02:07:05AM -0700, Guenter Roeck wrote:

Hi Tony,

would it be possible to provide an arm64 cross-compiler on 
https://www.kernel.org/pub/tools/crosstool/ ?


I have one built I just need to upload it.  I'll try and do it this
weekend.


Would be great.


Also, the xtensa compiler fails for me with an odd error message on one of my 
servers.
Have you heard about any problems with it from others ?


Nope.  Sorry, but it looks like you're being looked after there.


No far not helping. I had hoped it is a known problem that has been fixed with 
a later
gcc or binutils version, but it looks like it isn't widely seen.


c6x is supposed to be supported by gcc now. No idea if that helps anything, 
though.


Thanks.  I have tried to build a 4.8.1 cx6 toolchain but It hasn't
worked todate.  I'll keep trying as time permits.


Too bad. Thanks for trying!

Guenter

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: Linux kernel cross-compilers

2013-08-16 Thread Guenter Roeck

On 08/16/2013 12:22 AM, Max Filippov wrote:

On Fri, Aug 16, 2013 at 9:48 AM, Tony Breeds  wrote:

On Thu, Aug 15, 2013 at 01:46:16PM +0400, Max Filippov wrote:


Yes, xtensa compiler/linker is known to have issues with link-time
relaxation; e.g. it may fail to build linux image without CONFIG_LD_NO_RELAX.


Is there something I can do at linker build time to help with this?


I don't think so. Apparently it's not a linker configuration issue, it's a bug.


CONFIG_LD_NO_RELAX doesn't help.

For reference, here is the error:

xtensa-linux-objcopy: Unable to change endianness of input file(s)
make[2]: *** [arch/xtensa/boot/boot-elf/Image.o] Error 1
make[1]: *** [boot-elf] Error 2
make: *** [zImage] Error 2

Oddly enough, I only see the problem on one of three servers.

Guenter

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: Linux kernel cross-compilers

2013-08-16 Thread Max Filippov
On Fri, Aug 16, 2013 at 9:48 AM, Tony Breeds  wrote:
> On Thu, Aug 15, 2013 at 01:46:16PM +0400, Max Filippov wrote:
>
>> Yes, xtensa compiler/linker is known to have issues with link-time
>> relaxation; e.g. it may fail to build linux image without CONFIG_LD_NO_RELAX.
>
> Is there something I can do at linker build time to help with this?

I don't think so. Apparently it's not a linker configuration issue, it's a bug.
-- 
Thanks.
-- Max
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: Linux kernel cross-compilers

2013-08-16 Thread Max Filippov
On Fri, Aug 16, 2013 at 9:48 AM, Tony Breeds t...@bakeyournoodle.com wrote:
 On Thu, Aug 15, 2013 at 01:46:16PM +0400, Max Filippov wrote:

 Yes, xtensa compiler/linker is known to have issues with link-time
 relaxation; e.g. it may fail to build linux image without CONFIG_LD_NO_RELAX.

 Is there something I can do at linker build time to help with this?

I don't think so. Apparently it's not a linker configuration issue, it's a bug.
-- 
Thanks.
-- Max
--
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: Linux kernel cross-compilers

2013-08-16 Thread Guenter Roeck

On 08/16/2013 12:22 AM, Max Filippov wrote:

On Fri, Aug 16, 2013 at 9:48 AM, Tony Breeds t...@bakeyournoodle.com wrote:

On Thu, Aug 15, 2013 at 01:46:16PM +0400, Max Filippov wrote:


Yes, xtensa compiler/linker is known to have issues with link-time
relaxation; e.g. it may fail to build linux image without CONFIG_LD_NO_RELAX.


Is there something I can do at linker build time to help with this?


I don't think so. Apparently it's not a linker configuration issue, it's a bug.


CONFIG_LD_NO_RELAX doesn't help.

For reference, here is the error:

xtensa-linux-objcopy: Unable to change endianness of input file(s)
make[2]: *** [arch/xtensa/boot/boot-elf/Image.o] Error 1
make[1]: *** [boot-elf] Error 2
make: *** [zImage] Error 2

Oddly enough, I only see the problem on one of three servers.

Guenter

--
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: Linux kernel cross-compilers

2013-08-16 Thread Guenter Roeck

On 08/15/2013 10:47 PM, Tony Breeds wrote:

On Thu, Aug 15, 2013 at 02:07:05AM -0700, Guenter Roeck wrote:

Hi Tony,

would it be possible to provide an arm64 cross-compiler on 
https://www.kernel.org/pub/tools/crosstool/ ?


I have one built I just need to upload it.  I'll try and do it this
weekend.


Would be great.


Also, the xtensa compiler fails for me with an odd error message on one of my 
servers.
Have you heard about any problems with it from others ?


Nope.  Sorry, but it looks like you're being looked after there.


No far not helping. I had hoped it is a known problem that has been fixed with 
a later
gcc or binutils version, but it looks like it isn't widely seen.


c6x is supposed to be supported by gcc now. No idea if that helps anything, 
though.


Thanks.  I have tried to build a 4.8.1 cx6 toolchain but It hasn't
worked todate.  I'll keep trying as time permits.


Too bad. Thanks for trying!

Guenter

--
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: Linux kernel cross-compilers

2013-08-16 Thread Max Filippov
On Fri, Aug 16, 2013 at 11:50 AM, Guenter Roeck li...@roeck-us.net wrote:
 On 08/16/2013 12:22 AM, Max Filippov wrote:

 On Fri, Aug 16, 2013 at 9:48 AM, Tony Breeds t...@bakeyournoodle.com
 wrote:

 On Thu, Aug 15, 2013 at 01:46:16PM +0400, Max Filippov wrote:

 Yes, xtensa compiler/linker is known to have issues with link-time
 relaxation; e.g. it may fail to build linux image without
 CONFIG_LD_NO_RELAX.


 Is there something I can do at linker build time to help with this?


 I don't think so. Apparently it's not a linker configuration issue, it's a
 bug.

 CONFIG_LD_NO_RELAX doesn't help.

 For reference, here is the error:

 xtensa-linux-objcopy: Unable to change endianness of input file(s)
 make[2]: *** [arch/xtensa/boot/boot-elf/Image.o] Error 1
 make[1]: *** [boot-elf] Error 2
 make: *** [zImage] Error 2

 Oddly enough, I only see the problem on one of three servers.

Guenter,
can you share a complete build log with V=1?

-- 
Thanks.
-- Max
--
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: Linux kernel cross-compilers

2013-08-16 Thread Guenter Roeck

On 08/16/2013 01:31 AM, Max Filippov wrote:

On Fri, Aug 16, 2013 at 11:50 AM, Guenter Roeck li...@roeck-us.net wrote:

On 08/16/2013 12:22 AM, Max Filippov wrote:


On Fri, Aug 16, 2013 at 9:48 AM, Tony Breeds t...@bakeyournoodle.com
wrote:


On Thu, Aug 15, 2013 at 01:46:16PM +0400, Max Filippov wrote:


Yes, xtensa compiler/linker is known to have issues with link-time
relaxation; e.g. it may fail to build linux image without
CONFIG_LD_NO_RELAX.



Is there something I can do at linker build time to help with this?



I don't think so. Apparently it's not a linker configuration issue, it's a
bug.


CONFIG_LD_NO_RELAX doesn't help.

For reference, here is the error:

xtensa-linux-objcopy: Unable to change endianness of input file(s)
make[2]: *** [arch/xtensa/boot/boot-elf/Image.o] Error 1
make[1]: *** [boot-elf] Error 2
make: *** [zImage] Error 2

Oddly enough, I only see the problem on one of three servers.


Guenter,
can you share a complete build log with V=1?



http://roeck-us.net/linux/logs/make.xtensa.log.bad
http://roeck-us.net/linux/logs/make.xtensa.log.ok

Key difference: the failing command in the bad case is
xtensa-linux-objcopy -O elf32-xtensa-le
and in the good case
xtensa-linux-objcopy -O elf32-xtensa-be

Same compiler (4.6.3 from kernel.org), same configuration file, same command 
line.
Configuration file is generated from defconfig, and the resulting .config file
is the same in both cases.

If I execute make and expicitly set BIG_ENDIAN=1 on the failing system as 
parameter to it,
it works fine. If I set BIG_ENDIAN=0 on the passing system, it fails.

I am puzzled. Guess there must be something different, but I have no idea what 
it might be.

If I execute the command which sets BIG_ENDIAN manually from the shell (from
arch/xtensa/boot/Makefile), it returns 1 on both systems.

If you have an idea what is going on please let me know.

Thanks,
Guenter

--
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: Linux kernel cross-compilers

2013-08-16 Thread Max Filippov
 Guenter,
 can you share a complete build log with V=1?


 http://roeck-us.net/linux/logs/make.xtensa.log.bad
 http://roeck-us.net/linux/logs/make.xtensa.log.ok

 Key difference: the failing command in the bad case is
 xtensa-linux-objcopy -O elf32-xtensa-le
 and in the good case
 xtensa-linux-objcopy -O elf32-xtensa-be

 Same compiler (4.6.3 from kernel.org), same configuration file, same command
 line.
 Configuration file is generated from defconfig, and the resulting .config
 file
 is the same in both cases.

 If I execute make and expicitly set BIG_ENDIAN=1 on the failing system as
 parameter to it,
 it works fine. If I set BIG_ENDIAN=0 on the passing system, it fails.

 I am puzzled. Guess there must be something different, but I have no idea
 what it might be.

What is the output of

echo -e __XTENSA_EB__ | xtensa-linux-gcc -E -

on the failing system?

-- 
Thanks.
-- Max
--
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: Linux kernel cross-compilers

2013-08-16 Thread Guenter Roeck

On 08/16/2013 02:45 AM, Max Filippov wrote:

Guenter,
can you share a complete build log with V=1?



http://roeck-us.net/linux/logs/make.xtensa.log.bad
http://roeck-us.net/linux/logs/make.xtensa.log.ok

Key difference: the failing command in the bad case is
 xtensa-linux-objcopy -O elf32-xtensa-le
and in the good case
 xtensa-linux-objcopy -O elf32-xtensa-be

Same compiler (4.6.3 from kernel.org), same configuration file, same command
line.
Configuration file is generated from defconfig, and the resulting .config
file
is the same in both cases.

If I execute make and expicitly set BIG_ENDIAN=1 on the failing system as
parameter to it,
it works fine. If I set BIG_ENDIAN=0 on the passing system, it fails.

I am puzzled. Guess there must be something different, but I have no idea
what it might be.


What is the output of

echo -e __XTENSA_EB__ | xtensa-linux-gcc -E -

on the failing system?


It is 1, but that let me pinpoint the problem.

On the failing system, the version of echo executed by make does
not understand the -e option. Thus, when running arch/xtensa/boot/Makefile,
echo -e __XTENSA_EB__ returns -e __XTENSA_EB__, which doesn't compile,
and BIG_ENDIAN ends up being 0. So the compiler is completely innocent.

I found out the root source: SHELL is set the /bin/sh, which on the failing
system points to /bin/dash (default in Ubuntu, or at least it used to be).
dash apparently has a built-in version of echo which does not understand '-e'.
Oh well.

Thanks a lot for helping me to track this down!

Guenter

--
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: Linux kernel cross-compilers

2013-08-16 Thread Sam Ravnborg
On Fri, Aug 16, 2013 at 08:43:35AM -0700, Guenter Roeck wrote:
 On 08/16/2013 02:45 AM, Max Filippov wrote:
 Guenter,
 can you share a complete build log with V=1?


 http://roeck-us.net/linux/logs/make.xtensa.log.bad
 http://roeck-us.net/linux/logs/make.xtensa.log.ok

 Key difference: the failing command in the bad case is
  xtensa-linux-objcopy -O elf32-xtensa-le
 and in the good case
  xtensa-linux-objcopy -O elf32-xtensa-be

 Same compiler (4.6.3 from kernel.org), same configuration file, same command
 line.
 Configuration file is generated from defconfig, and the resulting .config
 file
 is the same in both cases.

 If I execute make and expicitly set BIG_ENDIAN=1 on the failing system as
 parameter to it,
 it works fine. If I set BIG_ENDIAN=0 on the passing system, it fails.

 I am puzzled. Guess there must be something different, but I have no idea
 what it might be.

 What is the output of

 echo -e __XTENSA_EB__ | xtensa-linux-gcc -E -

 on the failing system?

 It is 1, but that let me pinpoint the problem.

 On the failing system, the version of echo executed by make does
 not understand the -e option. Thus, when running arch/xtensa/boot/Makefile,
 echo -e __XTENSA_EB__ returns -e __XTENSA_EB__, which doesn't compile,
 and BIG_ENDIAN ends up being 0. So the compiler is completely innocent.

 I found out the root source: SHELL is set the /bin/sh, which on the failing
 system points to /bin/dash (default in Ubuntu, or at least it used to be).
 dash apparently has a built-in version of echo which does not understand '-e'.

Could you try to replace echo -e bla with printf bla.
Kbuild.include uses some similar tricks but here printf is used.
Maybe this can be dash compatible then

Sam
--
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: Linux kernel cross-compilers

2013-08-16 Thread Max Filippov
On Fri, Aug 16, 2013 at 7:43 PM, Guenter Roeck li...@roeck-us.net wrote:
 On 08/16/2013 02:45 AM, Max Filippov wrote:

 Guenter,
 can you share a complete build log with V=1?


 http://roeck-us.net/linux/logs/make.xtensa.log.bad
 http://roeck-us.net/linux/logs/make.xtensa.log.ok

 Key difference: the failing command in the bad case is
  xtensa-linux-objcopy -O elf32-xtensa-le
 and in the good case
  xtensa-linux-objcopy -O elf32-xtensa-be

 Same compiler (4.6.3 from kernel.org), same configuration file, same
 command
 line.
 Configuration file is generated from defconfig, and the resulting .config
 file
 is the same in both cases.

 If I execute make and expicitly set BIG_ENDIAN=1 on the failing system as
 parameter to it,
 it works fine. If I set BIG_ENDIAN=0 on the passing system, it fails.

 I am puzzled. Guess there must be something different, but I have no idea
 what it might be.


 What is the output of

 echo -e __XTENSA_EB__ | xtensa-linux-gcc -E -

 on the failing system?

 It is 1, but that let me pinpoint the problem.

 On the failing system, the version of echo executed by make does
 not understand the -e option. Thus, when running
 arch/xtensa/boot/Makefile,
 echo -e __XTENSA_EB__ returns -e __XTENSA_EB__, which doesn't compile,
 and BIG_ENDIAN ends up being 0. So the compiler is completely innocent.

 I found out the root source: SHELL is set the /bin/sh, which on the failing
 system points to /bin/dash (default in Ubuntu, or at least it used to be).
 dash apparently has a built-in version of echo which does not understand
 '-e'.
 Oh well.

Cool. OTOH I don't think that we need to -e to output __XTENSA_EB__.
Will send a patch for that.

-- 
Thanks.
-- Max
--
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: Linux kernel cross-compilers

2013-08-16 Thread Guenter Roeck
On Fri, Aug 16, 2013 at 09:26:51PM +0200, Sam Ravnborg wrote:
 On Fri, Aug 16, 2013 at 08:43:35AM -0700, Guenter Roeck wrote:
  On 08/16/2013 02:45 AM, Max Filippov wrote:
  Guenter,
  can you share a complete build log with V=1?
 
 
  http://roeck-us.net/linux/logs/make.xtensa.log.bad
  http://roeck-us.net/linux/logs/make.xtensa.log.ok
 
  Key difference: the failing command in the bad case is
   xtensa-linux-objcopy -O elf32-xtensa-le
  and in the good case
   xtensa-linux-objcopy -O elf32-xtensa-be
 
  Same compiler (4.6.3 from kernel.org), same configuration file, same 
  command
  line.
  Configuration file is generated from defconfig, and the resulting .config
  file
  is the same in both cases.
 
  If I execute make and expicitly set BIG_ENDIAN=1 on the failing system as
  parameter to it,
  it works fine. If I set BIG_ENDIAN=0 on the passing system, it fails.
 
  I am puzzled. Guess there must be something different, but I have no idea
  what it might be.
 
  What is the output of
 
  echo -e __XTENSA_EB__ | xtensa-linux-gcc -E -
 
  on the failing system?
 
  It is 1, but that let me pinpoint the problem.
 
  On the failing system, the version of echo executed by make does
  not understand the -e option. Thus, when running 
  arch/xtensa/boot/Makefile,
  echo -e __XTENSA_EB__ returns -e __XTENSA_EB__, which doesn't compile,
  and BIG_ENDIAN ends up being 0. So the compiler is completely innocent.
 
  I found out the root source: SHELL is set the /bin/sh, which on the failing
  system points to /bin/dash (default in Ubuntu, or at least it used to be).
  dash apparently has a built-in version of echo which does not understand 
  '-e'.
 
 Could you try to replace echo -e bla with printf bla.
 Kbuild.include uses some similar tricks but here printf is used.
 Maybe this can be dash compatible then
 
echo would do perfectly fine in this case. Besides, there are more
echo -e in arch/xtensa/Makefile. Those only cause unpredictable build
results (because neither big endian not little endian is set because of it),
but no errors.

Problem is that echo -e is used elsewhere in various kernel makefiles,
not just for xtensa. Those don't cause odd errors like the one I observed,
but may result in unpredictable behavior. I am not sure if I should try
to fix that.

Maybe we should just put don't try to compile the linux kernel with dash
as default shell as a note somewhere.

Guenter
--
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: Linux kernel cross-compilers

2013-08-15 Thread Tony Breeds
On Thu, Aug 15, 2013 at 01:46:16PM +0400, Max Filippov wrote:
 
> Yes, xtensa compiler/linker is known to have issues with link-time
> relaxation; e.g. it may fail to build linux image without CONFIG_LD_NO_RELAX.

Is there something I can do at linker build time to help with this?

Yours Tony


pgpfaHO3TmWlK.pgp
Description: PGP signature


Re: Linux kernel cross-compilers

2013-08-15 Thread Tony Breeds
On Thu, Aug 15, 2013 at 02:07:05AM -0700, Guenter Roeck wrote:
> Hi Tony,
> 
> would it be possible to provide an arm64 cross-compiler on 
> https://www.kernel.org/pub/tools/crosstool/ ?

I have one built I just need to upload it.  I'll try and do it this
weekend.

> Also, the xtensa compiler fails for me with an odd error message on one of my 
> servers.
> Have you heard about any problems with it from others ?

Nope.  Sorry, but it looks like you're being looked after there.

> c6x is supposed to be supported by gcc now. No idea if that helps anything, 
> though.

Thanks.  I have tried to build a 4.8.1 cx6 toolchain but It hasn't
worked todate.  I'll keep trying as time permits.
> 
> Thanks,
> Guenter
> 

Yours Tony


pgpbYYVRdMEZ2.pgp
Description: PGP signature


Re: Linux kernel cross-compilers

2013-08-15 Thread Guenter Roeck

On 08/15/2013 07:22 AM, Max Filippov wrote:

On Thu, Aug 15, 2013 at 6:02 PM, Guenter Roeck  wrote:

On 08/15/2013 02:46 AM, Max Filippov wrote:


Hi Guenter,

On Thu, Aug 15, 2013 at 1:07 PM, Guenter Roeck  wrote:


Also, the xtensa compiler fails for me with an odd error message on one
of
my servers.



What is the message?


It complains about being unable to change the byte order in an object file.

Actually, the message is from the linker, but I have no idea what is causing
it.


I've seen such message when I attempted to link a kernel, parts of which
were by mistake compiled for different xtensa core variants. Clean rebuild
fixed that.



"clean -f -q -d -x" did not help in my case. It can't get much cleaner than 
that.

Guenter

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: Linux kernel cross-compilers

2013-08-15 Thread Max Filippov
On Thu, Aug 15, 2013 at 6:02 PM, Guenter Roeck  wrote:
> On 08/15/2013 02:46 AM, Max Filippov wrote:
>>
>> Hi Guenter,
>>
>> On Thu, Aug 15, 2013 at 1:07 PM, Guenter Roeck  wrote:
>>>
>>> Also, the xtensa compiler fails for me with an odd error message on one
>>> of
>>> my servers.
>>
>>
>> What is the message?
>>
> It complains about being unable to change the byte order in an object file.
>
> Actually, the message is from the linker, but I have no idea what is causing
> it.

I've seen such message when I attempted to link a kernel, parts of which
were by mistake compiled for different xtensa core variants. Clean rebuild
fixed that.

> It works on two servers but fails on the third. At least in theory the
> installation
> on all servers should be the same.

-- 
Thanks.
-- Max
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: Linux kernel cross-compilers

2013-08-15 Thread Guenter Roeck

On 08/15/2013 02:46 AM, Max Filippov wrote:

Hi Guenter,

On Thu, Aug 15, 2013 at 1:07 PM, Guenter Roeck  wrote:

Also, the xtensa compiler fails for me with an odd error message on one of
my servers.


What is the message?


It complains about being unable to change the byte order in an object file.

Actually, the message is from the linker, but I have no idea what is causing it.
It works on two servers but fails on the third. At least in theory the 
installation
on all servers should be the same.

Guenter

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: Linux kernel cross-compilers

2013-08-15 Thread Max Filippov
Hi Guenter,

On Thu, Aug 15, 2013 at 1:07 PM, Guenter Roeck  wrote:
> Also, the xtensa compiler fails for me with an odd error message on one of
> my servers.

What is the message?

> Have you heard about any problems with it from others ?

Yes, xtensa compiler/linker is known to have issues with link-time
relaxation; e.g. it may fail to build linux image without CONFIG_LD_NO_RELAX.

-- 
Thanks.
-- Max
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: Linux kernel cross-compilers

2013-08-15 Thread Max Filippov
Hi Guenter,

On Thu, Aug 15, 2013 at 1:07 PM, Guenter Roeck li...@roeck-us.net wrote:
 Also, the xtensa compiler fails for me with an odd error message on one of
 my servers.

What is the message?

 Have you heard about any problems with it from others ?

Yes, xtensa compiler/linker is known to have issues with link-time
relaxation; e.g. it may fail to build linux image without CONFIG_LD_NO_RELAX.

-- 
Thanks.
-- Max
--
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: Linux kernel cross-compilers

2013-08-15 Thread Guenter Roeck

On 08/15/2013 02:46 AM, Max Filippov wrote:

Hi Guenter,

On Thu, Aug 15, 2013 at 1:07 PM, Guenter Roeck li...@roeck-us.net wrote:

Also, the xtensa compiler fails for me with an odd error message on one of
my servers.


What is the message?


It complains about being unable to change the byte order in an object file.

Actually, the message is from the linker, but I have no idea what is causing it.
It works on two servers but fails on the third. At least in theory the 
installation
on all servers should be the same.

Guenter

--
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: Linux kernel cross-compilers

2013-08-15 Thread Max Filippov
On Thu, Aug 15, 2013 at 6:02 PM, Guenter Roeck li...@roeck-us.net wrote:
 On 08/15/2013 02:46 AM, Max Filippov wrote:

 Hi Guenter,

 On Thu, Aug 15, 2013 at 1:07 PM, Guenter Roeck li...@roeck-us.net wrote:

 Also, the xtensa compiler fails for me with an odd error message on one
 of
 my servers.


 What is the message?

 It complains about being unable to change the byte order in an object file.

 Actually, the message is from the linker, but I have no idea what is causing
 it.

I've seen such message when I attempted to link a kernel, parts of which
were by mistake compiled for different xtensa core variants. Clean rebuild
fixed that.

 It works on two servers but fails on the third. At least in theory the
 installation
 on all servers should be the same.

-- 
Thanks.
-- Max
--
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: Linux kernel cross-compilers

2013-08-15 Thread Guenter Roeck

On 08/15/2013 07:22 AM, Max Filippov wrote:

On Thu, Aug 15, 2013 at 6:02 PM, Guenter Roeck li...@roeck-us.net wrote:

On 08/15/2013 02:46 AM, Max Filippov wrote:


Hi Guenter,

On Thu, Aug 15, 2013 at 1:07 PM, Guenter Roeck li...@roeck-us.net wrote:


Also, the xtensa compiler fails for me with an odd error message on one
of
my servers.



What is the message?


It complains about being unable to change the byte order in an object file.

Actually, the message is from the linker, but I have no idea what is causing
it.


I've seen such message when I attempted to link a kernel, parts of which
were by mistake compiled for different xtensa core variants. Clean rebuild
fixed that.



clean -f -q -d -x did not help in my case. It can't get much cleaner than 
that.

Guenter

--
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: Linux kernel cross-compilers

2013-08-15 Thread Tony Breeds
On Thu, Aug 15, 2013 at 02:07:05AM -0700, Guenter Roeck wrote:
 Hi Tony,
 
 would it be possible to provide an arm64 cross-compiler on 
 https://www.kernel.org/pub/tools/crosstool/ ?

I have one built I just need to upload it.  I'll try and do it this
weekend.

 Also, the xtensa compiler fails for me with an odd error message on one of my 
 servers.
 Have you heard about any problems with it from others ?

Nope.  Sorry, but it looks like you're being looked after there.

 c6x is supposed to be supported by gcc now. No idea if that helps anything, 
 though.

Thanks.  I have tried to build a 4.8.1 cx6 toolchain but It hasn't
worked todate.  I'll keep trying as time permits.
 
 Thanks,
 Guenter
 

Yours Tony


pgpbYYVRdMEZ2.pgp
Description: PGP signature


Re: Linux kernel cross-compilers

2013-08-15 Thread Tony Breeds
On Thu, Aug 15, 2013 at 01:46:16PM +0400, Max Filippov wrote:
 
 Yes, xtensa compiler/linker is known to have issues with link-time
 relaxation; e.g. it may fail to build linux image without CONFIG_LD_NO_RELAX.

Is there something I can do at linker build time to help with this?

Yours Tony


pgpfaHO3TmWlK.pgp
Description: PGP signature