octave-maintainers
[Top][All Lists]
Advanced

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

Re: Please build the JIT branch


From: Max Brister
Subject: Re: Please build the JIT branch
Date: Thu, 12 Jul 2012 11:44:14 -0500

On Thu, Jul 12, 2012 at 7:27 AM, Michael Goffioul
<address@hidden> wrote:
> On Tue, Jul 10, 2012 at 11:00 PM, Max Brister <address@hidden> wrote:
>>
>> >> Hi Jordi,
>> >> any specific build or configuration instruction ?
>>
>> If at the end of configure you do not see a long list of libraries in
>> `LLVM Libraries:' then the build script couldn't find llvm-config. You
>> can set the path to llvm config manually by doing.
>> ./configure LLVM_CONFIG=<path-to-llvm-config>
>
>
> With MSVC, I'm also seeing this warning:
>
> ../../src/pt-jit.cc(208) : warning C4190: 'octave_jit_cast_complex_any' has
> C-linkage specified, but returns UDT 'std::complex<double>' which is
> incompatible with C
>         C:\Program Files\Microsoft Visual Studio
> 10.0\VC\INCLUDE\complex(668) : see declaration of 'std::complex<double>'
>
> I'm not sure what will be the final impact. Max, any idea? Is the 'extern
> "C"' mandatory?

The original reason why I used extern "C" was because I wanted to
ensure the C calling convention was used. It looks like this is the
default calling convention for msvc++ anyways
(http://msdn.microsoft.com/en-us/library/zkwh89ks.aspx). I should
probably replace extern "C" with either __cdecl on msvc++ or
__attribute__((cdecl)) for gcc as name mangling is not an issue (just
the actual calling convention).

If the calling convention is incorrect the result will either be stack
corruption or incorrect results. If you could check to see if the
following script produces the correct result that would be
appreciated.

a = b = 1+1i;
for ii=1:5
  a = a + b;
endfor

Max Brister


reply via email to

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