[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
diffs.txt
Description: Text document
rndhw.i.gz
Description: application/gzip
rndhw.s.gz
Description: application/gzip
- Re: cross-building with --enable-64: Assembly error, John D, 2014/08/15
- Re: cross-building with --enable-64: Assembly error, John W. Eaton, 2014/08/15
- Re: cross-building with --enable-64: Assembly error, John W. Eaton, 2014/08/15
- RE: cross-building with --enable-64: Assembly error, John D, 2014/08/15
- RE: cross-building with --enable-64: Assembly error, John D, 2014/08/15
- Re: cross-building with --enable-64: Assembly error,
John W. Eaton <=
- RE: cross-building with --enable-64: Assembly error, John D, 2014/08/16
- RE: cross-building with --enable-64: Assembly error, John D, 2014/08/16
- RE: cross-building with --enable-64: Assembly error, John D, 2014/08/16
- RE: cross-building with --enable-64: Assembly error, John D, 2014/08/16
- RE: cross-building with --enable-64: Assembly error, Philip Nienhuis, 2014/08/17