Windows - Win32 x64 XBMC x64 port - work in progress

  Thread Rating:
  • 5 Vote(s) - 4.2 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Post Reply
Karlson2k Offline
Team-Kodi Developer
Posts: 333
Joined: Oct 2010
Reputation: 9
Location: Moscow, Russia
Brick  Win32 x64 XBMC x64 port - work in progress
Post: #1
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?
(This post was last modified: 2013-03-11 00:14 by Karlson2k.)
find quote
zag Offline
Retired Team-Kodi Member
Posts: 4,006
Joined: Oct 2007
Reputation: 75
Location: UK
Post: #2
Nice initiative, and good plan as well.
find quote
Memphiz Offline
Kodi MVP
Posts: 16,055
Joined: Feb 2011
Reputation: 226
Location: germany
Post: #3
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...

AppleTV4/iPhone/iPod/iPad: HowTo find debug logs and everything else which the devs like so much: click here
HowTo setup NFS for Kodi: NFS (wiki)
HowTo configure avahi (zeroconf): Avahi_Zeroconf (wiki)
READ THE IOS FAQ!: iOS FAQ (wiki)
find quote
Karlson2k Offline
Team-Kodi Developer
Posts: 333
Joined: Oct 2010
Reputation: 9
Location: Moscow, Russia
Post: #4
Memphiz, OK.
Those x86 libs seems to be taken from that project. Am I wrong?
find quote
ghostelement Offline
Fan
Posts: 472
Joined: Sep 2010
Reputation: 6
Location: Portland, Oregon
Post: #5
This sounds great. I'm going to be watching this development closely. Bravo for taking this on!

[Image: tgdb-buttonlogosmall.png]
thegamesdb.net - An open video games database.
scottbrant.net - Blog
find quote
Memphiz Offline
Kodi MVP
Posts: 16,055
Joined: Feb 2011
Reputation: 226
Location: germany
Post: #6
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.

AppleTV4/iPhone/iPod/iPad: HowTo find debug logs and everything else which the devs like so much: click here
HowTo setup NFS for Kodi: NFS (wiki)
HowTo configure avahi (zeroconf): Avahi_Zeroconf (wiki)
READ THE IOS FAQ!: iOS FAQ (wiki)
find quote
Montellese Offline
Team Kodi Developer
Posts: 4,842
Joined: Jan 2009
Reputation: 72
Location: Switzerland
Post: #7
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).

Always read the online manual (wiki), FAQ (wiki) and search the forum before posting.
Do not e-mail Team Kodi members directly asking for support. Read/follow the forum rules (wiki).
Please read the pages on troubleshooting (wiki) and bug reporting (wiki) before reporting issues.
find quote
WiSo Offline
Team-Kodi Developer
Posts: 2,745
Joined: Oct 2003
Reputation: 1
Location: Germany
Post: #8
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

Always read the XBMC online-manual, FAQ and search the forum before posting.
Do not e-mail XBMC-Team members directly asking for support. Read/follow the forum rules.
For troubleshooting and bug reporting please make sure you read this first.
find quote
Karlson2k Offline
Team-Kodi Developer
Posts: 333
Joined: Oct 2010
Reputation: 9
Location: Moscow, Russia
Post: #9
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.
find quote
Karlson2k Offline
Team-Kodi Developer
Posts: 333
Joined: Oct 2010
Reputation: 9
Location: Moscow, Russia
Post: #10
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/com...h-libfaac/
find quote
Karlson2k Offline
Team-Kodi Developer
Posts: 333
Joined: Oct 2010
Reputation: 9
Location: Moscow, Russia
Post: #11
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.
(This post was last modified: 2012-11-26 22:47 by Karlson2k.)
find quote
Skixbmc Offline
Member
Posts: 89
Joined: Sep 2012
Reputation: 1
Post: #12
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

Silverstone Grandia GD02-MT | AMD A8-3850 | Breakaway Audio Enhancer, HK AVR-365 | HKTS 30, Philips 50PFL7956H/12 21:9 3D
find quote
Karlson2k Offline
Team-Kodi Developer
Posts: 333
Joined: Oct 2010
Reputation: 9
Location: Moscow, Russia
Post: #13
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...-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...w-w64-i686
win64 toolchain: http://code.google.com/p/mingw64-further...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.
find quote
zag Offline
Retired Team-Kodi Member
Posts: 4,006
Joined: Oct 2007
Reputation: 75
Location: UK
Post: #14
Nice work!
find quote
Karlson2k Offline
Team-Kodi Developer
Posts: 333
Joined: Oct 2010
Reputation: 9
Location: Moscow, Russia
Post: #15
zag, thanks!

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