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 D
Subject: RE: cross-building with --enable-64: Assembly error
Date: Sat, 16 Aug 2014 22:31:18 -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


Try this match to mxe, based upon this patch.
http://lists.freedesktop.org/archives/gstreamer-commits/2014-February/077094
.html


Attachment: fix-libgcrypt.patch
Description: Binary data


reply via email to

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