Host system for FC development

Mychaela Falconia mychaela.falconia at
Tue Oct 30 02:06:24 UTC 2018

Hello again everyone,

I just pushed a change into our freecalypso-tools repository that
fixes the ancient bug in the toolchain/ script that
was reported by Das Signal.  I rebuilt the toolchain on my system
after this change, and everything works fine so far.

If anyone is watching that freecalypso-tools Hg repository, you have
seen that I have a bit of activity going there right now - I am
preparing to put out a new release of our FC host tools.  There are no
major new features or other significant changes since fc-host-tools-r8,
instead it will be a bugfix release fixing some minor bugs and
bringing out some documentation updates.

Regarding the ARM7 gcc toolchain, I am also aware of another issue
whereby our gcc-4.5.4 fails to compile on "modern" systems that have a
too-new version of texinfo that barfs on some construct in the old
gcc's texi files.  My solution for Slackware 14.2 was to reverse-upgrade
texinfo to the older Slackware version with upgradepkg and be done
with it, but I realize that other people who may not despise GNU the
way I do may find this "solution" very unattractive.  Therefore, if
someone can present a patch for our old gcc that would make it pass
compilation with new texinfo versions *without* breaking builds on
systems with old texinfo, I will incorporate that patch into our
toolchain build setup.  Hopefully we can get this change in before my
planned fc-host-tools-r9 release.

Zooming out to the bigger picture, though, I need to emphasize to the
wider community that you do NOT need to build everything from source
yourself in order to make use of FreeCalypso hardware products or to
play with FreeCalypso on the previously supported pre-existing hw.
The only software component which you *are* expected to compile
yourself from source on your own host systems is our FC host tools
package: it updates frequently enough to where it would not be
reasonable to expect community volunteers like our dear Das Signal to
provide prebuilt binary packages for every release.  However, this FC
host tools package is *very* basic Unix/Linux C code with absolutely
NO dependencies beyond the most basic libc, thus I hope that no one
should have any problems with compiling it from source on their own
systems.  Yes, it is true that my personally preferred programming
style (which I will *not* change) is very ancient, and when you
compile my FC host tools on some "modern" system, you will probably
get a flood of compiler warnings - but if you are an end user and not
a FreeCalypso core developer, you can just ignore those warnings - you
should still get working executable binaries in the end.  I know of a
few people who quite firmly wear end user hats who have compiled our
FC host tools from source in order to play with FC on Openmoko and
Mot C139 phones (one person had to do the same in order to install new
fw on the FCDEV3B board he got from me for his crowdfunding contribution),
and I haven't heard any complaints from them about our host tools
being a pain to build.

When it comes to the ARM7 gcc toolchain which started this whole
discussion, it is quite unlikely that a casual FreeCalypso end user or
tinkerer will ever need to use this toolchain at all, as we have only
two components which are built with this toolchain:

* Our target-utils which provide loadagent and compalstage ARM7 code
pieces needed for loadtools to work are built with this ARM7 gcc
toolchain - but these tools are essentially static (don't need to
change for new firmware development or even new FreeCalypso hardware
devices), and prebuilt target binaries (meaning binaries for the ARM7
target, as opposed to your Unix/Linux host system) are included in my
packaged FC host tools source release tarballs.

* Our experimental FC Selenite firmware in the blob-free and
proprietary-tool-free configuration uses the same ARM7 gcc toolchain,
but this experimental fw is absolutely nowhere near ready for production
use - do NOT run this fw on public GSM networks outside of a controlled
and radio-isolated test environment unless you want to take a chance of
FCC (or other countries' equivalent) knocking on your door and charging
you with disrupting the operation of public communication networks.
In contrast, our production firmwares, the ones which I officially
endorse for use on live GSM networks and for which I accept full legal
responsibility when they are used in conjuction with FreeCalypso hw
that is made and sold by me, are built with TI's original TMS470
toolchain under Wine.  Our firmware was previously TI's, and TI's
large team of sw engineers had developed and maintained it for over a
decade without ever using any compiler other than TI's own, thus one
cannot expect this fw to just work when built with a completely
different compiler which none of its original developers ever had in
mind - bazillion little things will break in the subtlest of ways in
the most unexpected places.  Fixing the gcc-built version to make it
work no worse than our current production TMS470-built fw will be a
major task requiring a significant staffing allocation, and right now
it is near the bottom of my priority list.

However, if you do need to use our ARM7 gcc toolchain because you
would like to play with our experimental Selenite fw (hopefully in a
controlled radio environment not affecting live networks) or because
you would like to recompile our target-utils from source, you really
don't need to compile the toolchain itself yourself - the prebuilt
toolchain binaries which our dear contributor Das Signal just put out
should work just fine.  The toolchain itself has not changed since
2013-08, which was about a month before the liberation of Calypso-Moko
and thus before the beginning of FreeCalypso proper!  Rebuilding the
ARM7 gcc toolchain itself from source is thus a step reserved for
those who desire the ultimate assurance of full control, and if you
are that dedicated, you should be willing to accept a little bit of
inconvenience in the build setup.

Based on some comments I have received off-list, it seems like my
original post about my Slackware update woes gave the community a
wrong impression that anyone who wishes to play with FreeCalypso needs
to replicate an elaborate hacked-up Slackware setup exactly like mine.
If so, I apologize for that misleading impression - you do NOT need a
setup like mine in order to play with FC, just compiling FC host tools
is enough if you are going to run officially released FC firmware
images, and if you wish to compile your own fw, you will need Wine in
order to build the version that actually works, not the ARM7 gcc
toolchain.  I hope that the present post clarifies the confusion.

Hasta la Victoria, Siempre,
Mychaela aka The Mother

More information about the Community mailing list