|
![]() |
|
Thread Tools | Search this Thread |
![]() |
#1 |
Wizard
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 2,801
Karma: 6990707
Join Date: May 2016
Location: Ontario, Canada
Device: Kobo Mini, Aura Edition 2 v1, Clara HD
|
NickelTC: A prebuilt, relocatable, fully-functional toolchain using NiLuJe's scripts
NickelTC
A prebuilt, relocatable, fully-functional toolchain using NiLuJe's scripts. ___ I've had this on GitHub for a while, but I've still received messages from people asking about this kind of thing, so I thought I might as well make a post for it here. The work on this started when we (NiLuJe and I) were experimenting with Kobo plugins in September 2019, and this part was made public on GitHub around the time we (NiLuJe, sherman, and I) started working on NickelMenu in April 2020. You can download it as a Docker image from Docker Hub, or you can get it as a tarball for modern-ish glibc Linux systems (basically, the last few versions of Debian or Ubuntu, and it'll probably work on Arch and Fedora too) from here (you'll need a GitHub account). NiLuJe's scripts provide an output which would be almost identical to the ones from the official build scripts if they actually worked. It produces a toolchain which will be binary-compatible with Kobo stuff, including all kobo-specific patches. It also fixes some of the ancient tooling to work on modern Linux distros. NiLuJe did the majority of the hardest parts with the initial build (thanks!). My Dockerfile builds on NiLuJe's scripts (source), and: fixes the DESTDIR/prefix variables, makes it fully relocatable without any additional steps, makes the builds reproducible (almost), uses versioned dependencies (almost, I'm working on the last bit of that now), reduces host dependencies, patches tooling config files and creates wrappers where necessary, does some basic tests, fixes Qt sysroot stuff, and does a few other improvements. This toolchain should be usable as-is for building apps which integrate with Nickel (plugins, LD_PRELOAD wrappers, Qt things, etc) or other stuff which needs binary-compatibility with native libs. It is also suitable for being passed to things like buildroot to build other software. For a lot more info about this, see the README on GitHub. |
![]() |
![]() |
![]() |
#2 |
BLAM!
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 13,506
Karma: 26047190
Join Date: Jun 2010
Location: Paris, France
Device: Kindle 2i, 3g, 4, 5w, PW, PW2, PW5; Kobo H2O, Forma, Elipsa, Sage, C2E
|
I should add that the core, non-Qt bits (i.e., the actual compiler setup) is based on the work done around the KOReader toolchains.
And that I stand by the comment made about the nickel TC there: if you don't need to work with Nickel/Qt (eventually, the kernel), and if, where C++ is concerned, linking against the STL statically is not an issue, prefer the "kobo" toolchain target, because it uses a much more recent GCC version than the crapfest that is GCC 4.9 ![]() As an example, I don't actually use the nickel TC anywhere else than for NickelMenu. KOReader, KFMon, FBInk, KoboStuff are all built with the "kobo" TC. If, for some reason (e.g., modern C++), you absolutely need a bleeding-edge compiler, that's also possible (i.e., I regularly run tests with the latest Clang & GCC versions), ping me, as that's slightly less user-friendly ![]() Last edited by NiLuJe; 06-11-2020 at 03:46 PM. |
![]() |
![]() |
Advert | |
|
![]() |
Tags |
firmware, gcc, nickel, sysroot, toolchain |
|
![]() |
||||
Thread | Thread Starter | Forum | Replies | Last Post |
Water damage: fully functional, but battery really bad - replace? | coplate | Amazon Kindle | 18 | 04-26-2017 10:27 AM |
Easy debian install with prebuilt image. | Xqtftqx | Kindle Developer's Corner | 67 | 02-07-2017 05:49 PM |
YotaPhone: A Fully Functional LCD/E-Ink Phone on Sale Now! | faithbw | News | 16 | 12-09-2013 01:41 PM |
Making a duplicate of a fully functional CM7 image | dereksurfs | Nook Developer's Corner | 5 | 03-30-2012 12:50 AM |