• 1(current)
  • 2
  • 3
  • 4
  • 5
  • 11
Win Win32 x64 XBMC x64 port - work in progress
#1
Brick 
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?
Reply
#2
Nice initiative, and good plan as well.
Reply
#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)
Reply
#4
Memphiz, OK.
Those x86 libs seems to be taken from that project. Am I wrong?
Reply
#5
This sounds great. I'm going to be watching this development closely. Bravo for taking this on!
Image
thegamesdb.net - An open video games database.
scottbrant.net - Blog
Reply
#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)
Reply
#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.
Reply
#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.
Reply
#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.
Reply
#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/
Reply
#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.
Reply
#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
Reply
#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.
Reply
#14
Nice work!
Reply
#15
zag, thanks!

New version of script and toolchains were uploaded.
Now with fix for minor GCC bug, that prevent build of shared libada.
Reply
  • 1(current)
  • 2
  • 3
  • 4
  • 5
  • 11

Logout Mark Read Team Forum Stats Members Help
Win32 x64 XBMC x64 port - work in progress5