Kodi Community Forum
Win Win32 x64 XBMC x64 port - work in progress - Printable Version

+- Kodi Community Forum (https://forum.kodi.tv)
+-- Forum: Development (https://forum.kodi.tv/forumdisplay.php?fid=32)
+--- Forum: Kodi Application (https://forum.kodi.tv/forumdisplay.php?fid=93)
+--- Thread: Win Win32 x64 XBMC x64 port - work in progress (/showthread.php?tid=145172)

Pages: 1 2 3 4 5 6 7 8 9 10 11


Win32 x64 XBMC x64 port - work in progress - Karlson2k - 2012-11-14

Despite the real benefits of x64 code are arguably, I decided to start work on it.

So the current plan:
  • Setup infrastructure that allow build both of x32 and x64 XBMC - done
  • Get working Mingw w64 (with MSYS) environment.
    • Get working Mingw w64 (with MSYS): basic checks are passed - info, download
    • Setup additional Mingw libs.
      • dlfcn-win32 - got build
      • libiconv - got build
      • libxml2 - got build
      • PlibC - got build
      • pthreads - got build
      • liblzma - got build
      • zlib - got build
  • Get all Mingw libs, distributed with XBMC source as source code, compiled.
    • ffmpeg - got build
    • libdvd - got build
    • libmpeg2 - got build
    • timidity - got build
    • asap - got build
  • Get all precompiled libs for x64
    • boost - got build
    • dnssd - x64 VS project provided by project owner - info
    • freetype - got build
    • harfbuzz - got build
    • libbluray - got build
    • libcdio - got build
    • libjpeg-turbo - x64 binary provided be project owner - info
    • libmicrohttpd - got build
    • libnfs - got build
    • libplist - work not started
    • librtmp - work not started
    • libshairplay - got build
    • lzo - got build
    • python - binary provided by project owner - info
    • sqlite - got build
    • taglib - got build
    • tinyxml - got build
    • libogg - binary from windows KDE project
    • libsamplerate - binary from windows KDE project
    • libssh - binary from windows KDE project
    • libvorbis - binary from windows KDE project
    • zlib - work not started
    • bzip2 - binary from windows KDE project
    • curl - work not started
    • expat - binary from windows KDE project
    • flac - work not started
    • fontconfig - work not started
    • fribidi - work not started
    • libcec - x64 provided by project owner - info
    • libiconv - work not started
    • mysql-connector-c - binary provided by project owner - archive
    • SDL - binary provided by project owner - info
    • SDL_image - binary provided by project owner - info
    • yajl - work not started
  • Setup Windows x64 XBMC build
    • Add x64 MSVC platform - done
    • Remove/replace any inline assembler code (not supported on x64) - work not started
    • Resolve any lib version compatibility problems (some libs are updated to latest versions) - work not started
    • Resolve any compatibility problems with x64 code (like USE_32BIT_TIME) - work not started

Most points, that require any manual steps, are divided to stages: work not started, work started, got build, basic checks are passed, fully working, finilized.

UPDATE: Need help from team! I'm sure that some libs are left from older XBMC version. Could someone cleanup this list?


RE: Win32 x64 XBMC x64 port - work in progress - zag - 2012-11-14

Nice initiative, and good plan as well.


RE: Win32 x64 XBMC x64 port - work in progress - Memphiz - 2012-11-14

Yeah looks good. But the "binary from windows KDE project" have to change to "got build". We need to control the building of all libs. We need to be able to generate the binaries from the source by ourselfs...


RE: Win32 x64 XBMC x64 port - work in progress - Karlson2k - 2012-11-14

Memphiz, OK.
Those x86 libs seems to be taken from that project. Am I wrong?


RE: Win32 x64 XBMC x64 port - work in progress - ghostelement - 2012-11-14

This sounds great. I'm going to be watching this development closely. Bravo for taking this on!


Win32 x64 XBMC x64 port - work in progress - Memphiz - 2012-11-15

karlson2k i'm not familiar with what our windows devs are doing on the dependency side. But imho its a nogo on all other platforms. If its already that way on 32bit windows then just forget my post.


RE: Win32 x64 XBMC x64 port - work in progress - Montellese - 2012-11-15

WiSo probably knows best about the origin of most of the 3rd party libraries. Sometimes there's a README in the downloaded archive which has some information on where the binaries came from (and how to compile them etc).


RE: Win32 x64 XBMC x64 port - work in progress - WiSo - 2012-11-15

The source url is either in the download txt or in the readme.txt within the archive. We used standard precompiled binaries where possible and only compile on our own where necessary. So hopefully we can gain anything out of it since I won't switch to 64bit if we can't build 32bit in parallel. The question then would be if we want to store additional 64bit libs on our ftp parallel to 32bit or we compile everything from scratch. Latter doesn't sound like a nice idea for me at least on windows. And we would need a 64bit winbilly Wink


RE: Win32 x64 XBMC x64 port - work in progress - Karlson2k - 2012-11-17

I'm creating win-64bit infrastructure in parallel to win-32bit so it's possible to compile and run both x32 and x64 XBMC within same git clone.
There are small influence on x32, like renaming DownloadBuildDeps.bat to DownloadX32BuildDeps.bat.
I suggest for x64 similar to x32 scheme, like storing precompiled libs on ftp. Building every single lib from source will drive developers crazy. Smile
But anyway we need a reproducible lib building process.


RE: Win32 x64 XBMC x64 port - work in progress - Karlson2k - 2012-11-17

MinGW w64 with Msys
For the first time I used XhmikosR's build of MinGW-w64 http://xhmikosr.1f0.de/tools/?folder=dG9vbHM
Generally it's OK, but have some space for improvement.
Now I'm working on my own build of MinGW w64.
But if you want to try something by yourself, you can try with that version. Some basic info I get there: http://pcloadletter.co.uk/2011/05/07/compiling-64bit-ffmpeg-for-windows-with-libfaac/



RE: Win32 x64 XBMC x64 port - work in progress - Karlson2k - 2012-11-26

I'm working on script for full Mingw 32/64 environment.
At first I get Zeranoe mingw-w64 build script and modified it for XBMC needs.
First beta is http://pastebin.com/cVmzANXg
Just put it somewhere (on Msys/Mingw-w32 or any *nix host), run it and it will build full tollchain.
I'm working on full version with Msys and all internal libs.



RE: Win32 x64 XBMC x64 port - work in progress - Skixbmc - 2013-02-08

Hi Karlson2k

Can you give a link with the required libs?
I'm also working on a port to x64 and I'm busy with assembly code.

Reg.
Fred


RE: Win32 x64 XBMC x64 port - work in progress - Karlson2k - 2013-03-05

Well, I'd like to inform you that thread isn't dead.
Moreover, hard work on MinGW-w64 toolchain is done already.
I spend a lot of time on researching MinGW-w64/GCC problems, finding bugs and solutions so it's possible now to build really good toolchain.
I've started from Zaranoe build script (http://ffmpeg.zeranoe.com/blog/?cat=4), but now I'm using my version of this script which is mostly rewritten.
You can get latest version of this script on http://code.google.com/p/mingw64-further/downloads/list?can=3&q=build-mingw-w64
This script will build MinGW-w64 toolchains (for win32 and for win64). Script is tested on MSYS and when using default version settings.
With small development, this script can be used on Linux to build cross-complier toolchain.

Compiled, ready-to-use win32 toolchain is available at http://code.google.com/p/mingw64-further/downloads/list?q=mingw-w64-i686
win64 toolchain: http://code.google.com/p/mingw64-further/downloads/list?q=mingw-w64-x86_64
Toolchains were build around all latest libraries (all libraries was itself tested). Toolchains are not depend on any host library so they are pretty movable.
Grab it, use it, report any bugs and suggestions.


RE: Win32 x64 XBMC x64 port - work in progress - zag - 2013-03-06

Nice work!


RE: Win32 x64 XBMC x64 port - work in progress - Karlson2k - 2013-03-06

zag, thanks!

New version of script and toolchains were uploaded.
Now with fix for minor GCC bug, that prevent build of shared libada.