[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [MiNT] rpm



Hi,

On sunnuntai 21 joulukuu 2014, Matthias Arndt wrote:
> Am 21. Dezember 2014 16:40:57 MEZ, schrieb "Thomas Jürges" 
<thomas@senmut.net>:
> >On 2014-12-21 16:31, Peter Slegg wrote:
> >> I presume the upstream repos tag their latest stable release ?
> >
> >Obviously that is up to the upstream projects.
> >
> >> What software do we need on the servers ? Jenkins, ant, gcc, libs ?
> >
> >Well, everything that is needed to build software.  A developer's
> >installation of a Linux system should do.  No GUI required.
> 
> The m68k cross compilers would be necessary + bash and otherbGnu tools
> like gmake . Certainly no Aranym required!

In theory.  In practice there can be a lot of issues when
cross-compiling SW using autotools etc.

For example, while autotools itself supports cross-compiling[1],
many programs utilizing autotools don't.  Host system stuff
like available headers, features, tools, paths etc leak into
compiled target binaries & scripts, so that they don't work
completely correctly on the target system.

And when you fix such things, and do an update, upstream has
breaked something else.  There's a good reason why Linux
distros do native builds even on slower platforms (e.g.
Debian m68k using Aranym).

When the amount of software is smaller and stable, and/or
"core" SW (which typically supports cross-compilation out
of box), this is less of an issue, but can still be a lot
of work.

When you don't have much developer time, it's better to skip
trying to do cross-compilation where you don't need to do it.
Machine-time is cheap (only problem could be building large
C++ programs, compiling them may require more memory than
the native system supports).

I propose starting from native compilation and just speeding
up slow things with e.g. distcc where the slaves are cross
compilers.


	- Eero

[1] by allowing values to be pre-seeded instead of being tested
    at run-time by build-time built test binaries.

Here's a document from (over) decade ago, explaining some of
the issues:
http://www.scratchbox.org/documentation/general/tutorials/explained.html