octave-maintainers
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: cross-building with --enable-64: Assembly error


From: John W. Eaton
Subject: Re: cross-building with --enable-64: Assembly error
Date: Sat, 16 Aug 2014 08:40:24 -0400
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Icedove/24.5.0

On 08/15/2014 10:45 PM, John D wrote:

Not that it helps any, but it compiles fine on my Fedora 20 box .

According to the log, the -O2 optimization is used on mine.

A quick look on the internet shows a few other people have had similar
issues when building gcrrypt.

I see now that the libcgrypt build completes if I use CFLAGS="".

So maybe it is a compiler bug?

I see that GCC 4.9.1 has been released.  I suppose we should try it and see
if the problem is fixed in that version.

gcc 4.9.1 changes pushed to mxe-octave

OK, I updated and still see the same problem, so whatever the bug is, GCC 4.9.1 doesn't fix it.

I modified libgcrypt.mk (diff attached) to add -v and -save-temps to the compiler flags and I see


/scratch/jwe/src/mxe-octave-64/usr/libexec/gcc/x86_64-w64-mingw32/4.9.1/cc1 -fpreprocessed rndhw.i -quiet -dumpbase rndhw.c -mtune=generic -march=x86-64 -auxbase-strip .libs/rndhw.o -g -O2 -version -o rndhw.s
  GNU C (GCC) version 4.9.1 (x86_64-w64-mingw32)
compiled by GNU C version 4.9.0, GMP version 6.0.0, MPFR version 3.1.2, MPC version 1.0.2 GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
  GNU C (GCC) version 4.9.1 (x86_64-w64-mingw32)
compiled by GNU C version 4.9.0, GMP version 6.0.0, MPFR version 3.1.2, MPC version 1.0.2 GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
  Compiler executable checksum: d45bd0cea5f24051d77f101f77aec004
COLLECT_GCC_OPTIONS='-D' 'HAVE_CONFIG_H' '-I' '.' '-I' '..' '-I' '../src' '-I' '../src' '-I' '/scratch/jwe/src/mxe-octave-64/usr/x86_64-w64-mingw32/include' '-I' '/scratch/jwe/src/mxe-octave-64/usr/x86_64-w64-mingw32/include' '-O2' '-g' '-save-temps' '-v' '-MT' 'rndhw.lo' '-MD' '-MP' '-MF' '.deps/rndhw.Tpo' '-c' '-D' 'DLL_EXPORT' '-D' 'PIC' '-o' '.libs/rndhw.o' '-mtune=generic' '-march=x86-64' /scratch/jwe/src/mxe-octave-64/usr/bin/x86_64-w64-mingw32-as -v -I . -I .. -I ../src -I ../src -I /scratch/jwe/src/mxe-octave-64/usr/x86_64-w64-mingw32/include -I /scratch/jwe/src/mxe-octave-64/usr/x86_64-w64-mingw32/include -o .libs/rndhw.o rndhw.s GNU assembler version 2.24 (x86_64-w64-mingw32) using BFD version (GNU Binutils) 2.24
  rndhw.s: Assembler messages:
  rndhw.s:53: Error: unsupported instruction `mov'
  Makefile:401: recipe for target 'rndhw.lo' failed
  make[4]: *** [rndhw.lo] Error 1


So the copy of as that was built as part of the mxe-octave build process is being used. But line 53 of the file rndhw.s is a movl instruction, not mov. So it seems odd to me that the assembler is complaining about mov instead of movl, but maybe I don't understand what that error message really means.

Ah, looking more closely, this line is inside an /APP ... /NO_APP block, so I guess the movl is being expanded incorrectly there? In any case, I don't understand why we are seeing different results, especially if we are both using the -mtune=generic option.

Both of the generated rndhw.i and rndhw.s files are also attached.

Could you try adding -v and -save-temps to your libgcrypt.mk file and send me the resulting rndhw.i and rndhw.s files so I can compare them with mine? Also can you show the exact command line that is used to invoke the assembler on your system?

Thanks,

jwe

Attachment: diffs.txt
Description: Text document

Attachment: rndhw.i.gz
Description: application/gzip

Attachment: rndhw.s.gz
Description: application/gzip


reply via email to

[Prev in Thread] Current Thread [Next in Thread]