Hello, David.
You wrote 8 июля 2013 г., 19:19:37:
>> DB> In an ideal world, TI would maintain its own apt repository (and yum),
>> And FreeBSD packages for i386, amd64, arm, MIPS, PowerPC, and ia64? And
>> repository for NetBSD and OpenBSD and MacOS X too?
DB> TI should (in an ideal world) have repositories containing toolchain
DB> releases for their chips, in a form suitable for the most commonly used
DB> platforms - and in source code for use on other platforms. If a lot of
Ok, "in source code for use on other platform" is good message. Other
question, how usable this source code and what voo-doo magic is needed to
build them on host unsupported by vendor (TI in this case). I see different
amount of such voo-doo in my life: from "almost imposible" (egcs3 for MIPS
used in Agenda VR3 "Open" PDA, but it was more than 10 years ago), via
"hard but doable" (current gcc for Cortex-Mx whcih needs to be built twice
according to official instructions and which is released as one gigantic
source blob, not patches to official released sources) to "super-easy and
non-problematic" (Peter Bigot's msp430-gcc, but I need to say, that it was
easy and before Peter Bigot, with msp430-gcc3).
On the other hand, I don't understand, why vendor should provide binary
packages for any *IX-style system at all. These systems are different from
Windows (and, to some extent, from MacOS X) in the way software are
packages: here is OFFICIAL CENTRAL repository, and here are PACKAGE
MAINTAINERS, who are not "upstream" authors in most cases, It is work for
distributive authors to package BINARY programs and provide user way to
build binaries from sources with "one click" (think about Gentoo, if you
are not familiar with *BSD systems).
DB> people want to compile for the msp430 using OpenBSD on PPC processors,
DB> then it makes sense for TI to support that too - otherwise, unusual
DB> users can use the source and compile themselves.
Question is, how hard it will be -- to compile themselves. In my experience
in this area (more than 10 years for now) as soon as "vendor" provide
binaries for 1-2 popular platforms, and ESPECIALLY, if these binaries are
windows-style ("/opt/${soft}-${release}"), it is very hard to build proper
packages for other systems, especially for source-based ones (such as
Gentoo or FreeBSD), as build process is tailored to vendor needs, with some
script, additional stages, copying half-backed software to file system
hierarchy in pre-defined places, with hardcoded paths, etc. Of course, it
should not be such, but, again, in my experience it IS almost always.
Building msp430-gcc (with binutils, etc) is as easy as "configure" with
4-5 parameters for binutils, "gmake all install" for it, and then unpack
MCU headers (separate package! It is good!) repeat "configure-gmake" cycle
for GCC. It's all! (of course, you must apply patches from project, but,
again, there is strict, well-defined order of them, and it is not problem
at all). And after that system has 3 (4, with msp430-libc) well-defined,
well-behaved packages, with files in places, defined by system politics,
and not vendor decision. It is great! Simply!
And now, look at official ARM arm-gcc building script: it builds gcc
twice, it copy first copy of gcc somewhere, to remove later, it wants to
find some linux-specific headers in process, etc, etc, etc. Also, it uses
"sh" with bash-ism and some Linux-only utilities, which could be easily
replaced with POSIX ones. As usual in Linux world. Transform this in
well-behaved set of packages for any system, but targeted by authors, is hard.
DB> TI could (again in an ideal world) allow external maintainers here - if
DB> they don't want to maintain an OpenBSD repository themselves, but
DB> someone else is willing to do so, then TI could host it.
Nope. OpenBSD should. Any Open/Net/FreeBSD systems prefer to install
software from sources, locally built (think Gentoo in Linux world). There
are 3 branches of FreeBSD in active usage, cross number of platforms, for
example...
DB> When I write software for *nix, I use *nix philosophies. When I write
DB> software for Windows, I use Windows philosophies. When I write embedded
DB> software, I use embedded software philosophies.
Compiler is border ground here, of course.
>> Good toolchain should be based on official released sources (not some
>> obscure snapshots from binutils/gcc GIT), and be integrated in upstream
>> (so, it build should be as easy as "./configure --target-=msp430 && gmake
>> all install") or provided as one manageable patchset, not targeted for ANY
>> specific host (Ubuntu, Debian, Gentoo, Widnows, FreeBSD, whatever).
DB> Have you ever done embedded development work? Have you ever worked with
DB> gcc releases? Have you ever worked at getting changes for gcc into the
DB> upstream trees and then releases?
Yes, yes, and no. I'm maintaining (and using) msp430-gcc for FreeBSD for
about 5 years now :)
DB> files, and the latest libraries. This is the way Peter (and his
DB> predecessors) handled msp430
Please note, that way Peter handles msp430, I'm using as example of
excellent and third-party-maintainer-friendly way ;)
DB> No, Peter's method is not ideal for users - it is pretty good, and it is
DB> more than can be expected of him, but it is not quite complete. In
DB> particular, having source-only releases is a big barrier to many users
DB> (even Linux users). Obviously the source release is the most important,
Could you name Linux distro, which DOESN'T have Peter's
msp430-binutils/gcc/libc/headers in its OFFICIAL repo? Ok, maybe you could,
I don't know much about Linux distros, but even for "obscure" and "dead"
FreeBSD here is binary package, which could be installed by any user, with
system-provided package manager from system-provided repository without
adding any external ones. It is why (and for what) distros exists!
DB> and no one could possibly complain that Peter hasn't made pre-packaged
DB> bundles for different distros and OS's - but we /can/ expect that from a
DB> big company like TI.
Again, I repeat: every time I see "vendor-provided" binaries for 1-2
popular platform, I also see huge barriers to build (formally open-source)
software for not-so-popular platforms. It is especially true for
toolchains. If "new" msp430 toolchain port avoid this pitfall, I'll be
first, who buy beer for TI/RedHat developers, who make this port, if we
ever meet in flesh.
--
// Black Lion AKA Lev Serebryakov <[email protected]>
------------------------------------------------------------------------------
See everything from the browser to the database with AppDynamics
Get end-to-end visibility with application monitoring from AppDynamics
Isolate bottlenecks and diagnose root cause in seconds.
Start your free trial of AppDynamics Pro today!
http://pubads.g.doubleclick.net/gampad/clk?id=48808831&iu=/4140/ostg.clktrk
_______________________________________________
Mspgcc-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/mspgcc-users