Re: [julia-dev] Cross compiling for Windows on Fedora 17

89 views
Skip to first unread message

Stefan Karpinski

unread,
Jan 19, 2013, 7:42:38 AM1/19/13
to Julia Dev
I'm in no way an expert on our Windows support, but I'm pretty sure we don't support Win64 yet.


On Sat, Jan 19, 2013 at 7:16 AM, Jean-Marc Lugrin <jmlu...@gmail.com> wrote:
I tried to install the packages described in https://github.com/JuliaLang/julia/issues/2006 to cross compile for windows 64 on a Fedora 17 (running in VirtualBox).

The package names are not exactly the same but I think I got most (hopefully all) of the equivalent ones.

I changed also
ifeq ($(XC_HOST),i686-w64-mingw32)
by
ifeq ($(XC_HOST),x86_64-w64-mingw32)
in Make.inc and defined the variable XC_HOST = x86_64-w64-mingw32 (as it seems to be the name used on Fedora).

Alas, the build quickly terminate in error:
i387/s_ceil.S: Assembler messages:
i387/s_ceil.S:10: Error: invalid instruction suffix for `push'
make[3]: *** [i387/s_ceil.S.o] Error 1
make[2]: *** [openlibm/libopenlibm.dll] Error 2
make[1]: *** [julia-release] Error 2
make: *** [release] Error 2

I have also seen that there is a line in the Makefile
cp /usr/lib/gcc/i686-w64-mingw32/4.6/$${dllname}.dll $(PREFIX)/$(JL_LIBDIR) ; \
There is no directory in gcc except x86_64-redhat-linux.

Any clue ? 


--
 
 
 

Jameson Nash

unread,
Jan 19, 2013, 4:19:16 PM1/19/13
to juli...@googlegroups.com
When cross compiling for Windows 64, please you the target i686-w64-mingw32 as given in the makefile. Editing that ifeq statement may result in some incompatible definitions being attempted for various parts of the build, which is why is it hard coded to give an error for unsupported platforms.

That folder is a hardcoded dependency on my installation (Ubuntu). I don't have a Fedora machine to test with so I can't comment on where the file is supposed to be, but it appears it may be in /usr/i686-w64-mingw32/sys-root/mingw/bin/ ? Failing to copy this file is OK and just means that there will be a runtime dependency on having mingw32/msys installed on the target machine.

Getting full 64-bit support working is on our todo list. (I'm attempting to get parts of it working right now)

-jameson


--
 
 
 

Jean-Marc Lugrin

unread,
Jan 19, 2013, 4:42:03 PM1/19/13
to juli...@googlegroups.com
Thanks, the files are in /usr/x86_64-w64-mingw32/sys-root/mingw/bin

However if I leave i686-w64-mingw32 as it is, it wont find the compiler to start with. I will try with a soft link.  The native build works fine on Fedora 17, just some dependency packages have different names (gcc-c++ and libncurses5-devel)
-- jm
Reply all
Reply to author
Forward
0 new messages