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 <l...@serebryakov.spb.ru>


------------------------------------------------------------------------------
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
Mspgcc-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mspgcc-users

Reply via email to