I've tried your suggestion. Building binutils on my 64-bit Fedora 20 system:
../../../binutils-2.23.2/bfd/doc/bfd.texinfo:325: unknown command `colophon' ../../../binutils-2.23.2/bfd/doc/bfd.texinfo:336: unknown command `cygnus' make[3]: *** [bfd.info] Error 1
I have texinfo-5.1-4.fc20.x86_64 installed.
On 05/22/2014 02:42 AM, David Hendricks wrote:
On Tue, May 20, 2014 at 8:51 PM, Sean McNeil <seanmcneil3@gmail.com mailto:seanmcneil3@gmail.com> wrote:
Are you bullding on 64-bit machine and have: CONFIG_COMPILER_GCC=y CONFIG_ANY_TOOLCHAIN=y ?
CONFIG_ANY_TOOLCHAIN should not be used in most cases. What does your .xcompile file look like?
I'm building on a 64-bit host using the crossgcc toolchain. Try running the buildgcc script in util/crossgcc, then rm -f .xcompile and run make and see if that helps.
For reference, here are my .xcompile and .config files as well as the output from make. xcompile.txt https://docs.google.com/a/google.com/file/d/0BwyScGuaZ2uNLVhwSHh4V0VWY28/edit?usp=drive_web config.txt https://docs.google.com/a/google.com/file/d/0BwyScGuaZ2uNZ2hEcENPQ2kwSHM/edit?usp=drive_web make.txt https://docs.google.com/a/google.com/file/d/0BwyScGuaZ2uNY1phV0c4c0MtM0U/edit?usp=drive_web
arch/x86/exec.S:1:0: note: this is the location of the previous definition /* ^ arch/x86/exec.S: Assembler messages: arch/x86/exec.S:43: Error: invalid instruction suffix for `push' arch/x86/exec.S:45: Error: invalid instruction suffix for `push' arch/x86/exec.S:52: Error: invalid instruction suffix for `push' arch/x86/exec.S:53: Error: invalid instruction suffix for `push' arch/x86/exec.S:54: Error: invalid instruction suffix for `push' arch/x86/exec.S:61: Error: invalid instruction suffix for `push' arch/x86/exec.S:62: Error: invalid instruction suffix for `push' arch/x86/exec.S:70: Error: invalid instruction suffix for `push' arch/x86/exec.S:73: Error: operand type mismatch for `call' arch/x86/exec.S:81: Error: invalid instruction suffix for `pop' arch/x86/exec.S:91: Error: invalid instruction suffix for `pop' arch/x86/exec.S:92: Error: invalid instruction suffix for `pop' arch/x86/exec.S:93: Error: invalid instruction suffix for `pop' arch/x86/exec.S:97: Error: invalid instruction suffix for `pop' make[2]: *** [build/arch/x86/exec.libc.o] Error 1 make[1]: *** [libpayload] Error 2 make: *** [filo] Error 2 On 05/21/2014 10:36 AM, David Hendricks wrote:
On Tue, May 20, 2014 at 6:31 PM, Sean McNeil <seanmcneil3@gmail.com <mailto:seanmcneil3@gmail.com>> wrote: All the recent changes to how the compiler is defined have now caused payloads like FILO and SeaBIOS to not build on X86_64 machines. Is anyone working to fix this? I just tried building images with each of those as payloads and they seemed to compile fine for me. Try "rm -f .xcompile" before compiling and see if that helps. If that doesn't work, can you post more details such as the git version you're on and output of "make" ? -- David Hendricks (dhendrix) Systems Software Engineer, Google Inc.
-- David Hendricks (dhendrix) Systems Software Engineer, Google Inc.
The below problem is known and fixed in the newer binutils. I changed buildgcc to:
-BINUTILS_VERSION=2.23.2 +BINUTILS_VERSION=2.24
and everything builds fine. So please confirm that CONFIG_ANY_TOOLCHAIN is deprecated and to be removed. If there are no plans to support it, in my opinion it should not be provided as a choice.
Cheers, Sean
On 05/22/2014 09:59 AM, Sean McNeil wrote:
I've tried your suggestion. Building binutils on my 64-bit Fedora 20 system:
../../../binutils-2.23.2/bfd/doc/bfd.texinfo:325: unknown command `colophon' ../../../binutils-2.23.2/bfd/doc/bfd.texinfo:336: unknown command `cygnus' make[3]: *** [bfd.info] Error 1
I have texinfo-5.1-4.fc20.x86_64 installed.
On 05/22/2014 02:42 AM, David Hendricks wrote:
On Tue, May 20, 2014 at 8:51 PM, Sean McNeil <seanmcneil3@gmail.com mailto:seanmcneil3@gmail.com> wrote:
Are you bullding on 64-bit machine and have: CONFIG_COMPILER_GCC=y CONFIG_ANY_TOOLCHAIN=y ?
CONFIG_ANY_TOOLCHAIN should not be used in most cases. What does your .xcompile file look like?
I'm building on a 64-bit host using the crossgcc toolchain. Try running the buildgcc script in util/crossgcc, then rm -f .xcompile and run make and see if that helps.
For reference, here are my .xcompile and .config files as well as the output from make. xcompile.txt https://docs.google.com/a/google.com/file/d/0BwyScGuaZ2uNLVhwSHh4V0VWY28/edit?usp=drive_web config.txt https://docs.google.com/a/google.com/file/d/0BwyScGuaZ2uNZ2hEcENPQ2kwSHM/edit?usp=drive_web make.txt https://docs.google.com/a/google.com/file/d/0BwyScGuaZ2uNY1phV0c4c0MtM0U/edit?usp=drive_web
arch/x86/exec.S:1:0: note: this is the location of the previous definition /* ^ arch/x86/exec.S: Assembler messages: arch/x86/exec.S:43: Error: invalid instruction suffix for `push' arch/x86/exec.S:45: Error: invalid instruction suffix for `push' arch/x86/exec.S:52: Error: invalid instruction suffix for `push' arch/x86/exec.S:53: Error: invalid instruction suffix for `push' arch/x86/exec.S:54: Error: invalid instruction suffix for `push' arch/x86/exec.S:61: Error: invalid instruction suffix for `push' arch/x86/exec.S:62: Error: invalid instruction suffix for `push' arch/x86/exec.S:70: Error: invalid instruction suffix for `push' arch/x86/exec.S:73: Error: operand type mismatch for `call' arch/x86/exec.S:81: Error: invalid instruction suffix for `pop' arch/x86/exec.S:91: Error: invalid instruction suffix for `pop' arch/x86/exec.S:92: Error: invalid instruction suffix for `pop' arch/x86/exec.S:93: Error: invalid instruction suffix for `pop' arch/x86/exec.S:97: Error: invalid instruction suffix for `pop' make[2]: *** [build/arch/x86/exec.libc.o] Error 1 make[1]: *** [libpayload] Error 2 make: *** [filo] Error 2 On 05/21/2014 10:36 AM, David Hendricks wrote:
On Tue, May 20, 2014 at 6:31 PM, Sean McNeil <seanmcneil3@gmail.com <mailto:seanmcneil3@gmail.com>> wrote: All the recent changes to how the compiler is defined have now caused payloads like FILO and SeaBIOS to not build on X86_64 machines. Is anyone working to fix this? I just tried building images with each of those as payloads and they seemed to compile fine for me. Try "rm -f .xcompile" before compiling and see if that helps. If that doesn't work, can you post more details such as the git version you're on and output of "make" ? -- David Hendricks (dhendrix) Systems Software Engineer, Google Inc.
-- David Hendricks (dhendrix) Systems Software Engineer, Google Inc.
Am 22.05.2014 05:36, schrieb Sean McNeil:
and everything builds fine. So please confirm that CONFIG_ANY_TOOLCHAIN is deprecated and to be removed. If there are no plans to support it, in my opinion it should not be provided as a choice.
It's not that there aren't plans to support it (I think Google needs it), but it's certainly of secondary concern to us. We certainly prefer people to use "our" compiler since that allows us to reproduce issues more easily.
That said I think the (ad-hoc) patch I sent a couple of hours ago should fix things for seabios with your host compiler. Other payloads can be adapted similarily.
As a result, ANY_TOOLCHAIN will stay and you're free to use it if you prefer, but expect the occasional issue arising that you'll have to work on yourself. Patches accepted :-)
Patrick
Patrick Georgi wrote:
As a result, ANY_TOOLCHAIN will stay and you're free to use it if you prefer,
Let's put it behind CONFIG_EXPERT.
//Peter