[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
RE: cross-building with --enable-64: Assembly error
From: |
John D |
Subject: |
RE: cross-building with --enable-64: Assembly error |
Date: |
Sat, 16 Aug 2014 15:54:54 -0400 |
-----Original Message-----
From: John W. Eaton [mailto:address@hidden
Sent: Saturday, August 16, 2014 8:40 AM
To: John D; address@hidden; 'Philip Nienhuis'
Cc: address@hidden
Subject: Re: cross-building with --enable-64: Assembly error
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
--
Well my rebuild on fedora also fails at the same place now, both with and
without your change.
- 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, 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 <=
- 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