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 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.





reply via email to

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