[OpenWrt-Devel] SDK vs. Toolchain+

Daniel Dickinson openwrt at daniel.thecshore.com
Sun Jan 3 18:32:54 EST 2016

On 03/01/16 01:01 PM, Felix Fietkau wrote:
> On 2016-01-03 18:53, Daniel Dickinson wrote:
>> Hi Felix,
>> I think part of the confusion stems from the fact that the current SDK
>> is not really an SDK but a 'Toolchain+'.  Perhaps the current SDK should
>> be renamed to clarify that point, and a 'real' SDK created.
> What's a 'real' SDK as opposed to a 'Toolchain+'?

Perhaps it's just the way I think of it, but a Toolchain/Toolchain(+) 
provides everything need to do build on a particular platform, with only 
minor exceptions of things included with OS in a standard install.  It's 
binary or equivalent (i.e. no special tools required) pretty much by 
definition because it's supposed to take care of providing what you need 
to do a build.  You can talk about the source of a toolchain, but I 
don't think it's coherent to talk about the source as the toolchain.   A 
toolchain of some sort is typically required to build an SDK, or to 
develop new versions of the toolchain (assuming you have the source of 
the toolchain).

A 'real' SDK on the other hand allows you to build toolchains and 
systems from scratch, but has more dependencies (unless it's combination 
SDK + Toolchain) because the operating system has to provide enough 
build machinery to build from source (or in the proprietary version, 
source + binary bits that theoretically can be legitimately packaged 
that way and/or 'protect' 'special' IP).

It's kind of a greyish area for definitions because I'm not sure there 
is a consistent usage of the SDK term in industry.  I think in some 
cases SDK is used to mean what I think of as Toolchain+ that is used 
build add-ons for a system, but is platform-specific (and not 
necessarily with source to port either), whereas in the the open source 
world I think SDK tends to imply something that lets you build from 
scratch (with source).

In any event, regardless of what you call it, the current OpenWrt SDK is 
of the variety of (mostly) standalone binaries that you use to build 
packages for openwrt, rather than of a set of sources that can be used 
to build what you need to build packages and/or the packages themselves 
(which is what I would consider a 'real' SDK vs the current Toolchain+).

The two types of things have different goals. the 'real' SDK is meant to 
provide the ability to develop the system; the toolchain/toolchain+ is 
meant to bootstrap the process or at least make building stand on it's 
own for a given platform.

>> The current SDK is useless without ImageBuilder and/or package repositories.
> Not really. It allows you to build packages that you can put on a
> running system built from the same release (including out-of-tree kernel
> modules).

Ok, I mean useless for building firmware; it certainly isn't useless by 
any means (I fin it rather useful as a Toolchain+; for SDK there is 
buildroot + feeds + downloaded packages).

Does that clarify my thinking a little for you, and do you see, perhaps, 
the value of the current toolchain+ type of SDK in addition to the kind 
of SDK I think you're thinking of (That I call a 'real' SDK)?


openwrt-devel mailing list
openwrt-devel at lists.openwrt.org

More information about the openwrt-devel mailing list