how long to keep support for gcc on x86?

Isaac (.ike) Levy ike at blackskyresearch.net
Mon Jan 14 03:08:50 UTC 2013


On Jan 13, 2013, at 7:58 PM, Peter Wemm wrote:
> On Sun, Jan 13, 2013 at 3:08 PM, Adrian Chadd <adrian at freebsd.org> wrote:
>> ... ?
>> 
>> As an embedded platform, I'd expect that people will want to support
>> any feature which dramatically boosts performance whilst reducing CPU.
>> 
>> Also, if Intel decide to keep trying to push low power x86 for mobile
>> applications, rather than ARM, x86 may just make a resurgence in
>> places you once thought were servers.
>> 
>> 32 bit x86 isn't legacy and won't be for a long time to come.
> 
> Our buildworld environment and embedded $everything isn't well known
> for being embedded friendly.  

IMHO, I believe the buildworld environment is quite friendly, but I don't have anything except FreeBSD and OpenBSD to compare it to,

> I'd wager that if somebody was trying to
> use an i386 kernel in an embedded device where every last thing
> counted, they'd be using an external toolchain targeted for their
> platform and some very selective cross-building.  

I'll take your wager- I'm one of those guys, lots of embedded FreeBSD on tiny hardware- but I haven't been using any external toolchain or compiler.

Your wager may still be rational, your case is plausable, but since 2004, I (and dozens of colleagues/friends/hackers) happily been compiling FreeBSD, using zero add-on tools. (I've used a lot of Soekris 4801 and 5501, and ALIX alix2d3 embedded boards).  Typical Kernel and world take approximately 18+ hours to build on a 4801, depending on the kernel conf.

Beyond Soekris and PcEngines, there is a glut of relevant industrial single-board/embedded/funky hardware that is also 32 bit x86- some pretty amazing gear, at varying levels of cost.

The only port (external toolchain) I've installed on a build box was dtach and sudo, (neither of which are obviously considered build toolchain type utilities).  I actually *enjoy* naked FreeBSD on these platforms- no ports, no fluff, 500+ utilities in /bin and /usr/bin is plenty of software to me :)

FreeBSD kernel has had rock-solid support for these boards,
http://wiki.soekris.info/Installing_FreeBSD
Even the nanobsd build framework complements the soekris-specific kernel/world build support nicely.

> Compiler of
> $your_choice would be on the table if you were doing external
> compiling, and.. the default in-tree compiler does support AES-NI on
> both i386 and amd64, and the logical other choice (gcc-4.6+ and
> binutils) also does.

External compiling is indeed possible, however, I've found it much simpler for my purposes to simply build on the machine itself.  (At the end of the day, the apps I'm running have to *run* on the box, and if they're too fat to compile there, my experience is that should set rough expectations for how well the software will actually perform on the platforms)

> The only question is whether to go out of our way to support an
> archaic, non-default compiler on one platform.

I may be missing the point, I'm just a sysadmin who hacks in userland, but 32 bit x86 doesn't seem to be disappearing any time soon.

One more relevant use: Beyond the real possibility of more 32 bit x86 as ARM competition, with the glut of 32 bit x86 'server' hardware I touch in datacenters, much of it that crosses my hands will end up being "put out to pasture" on the perimeter as FreeBSD network appliances, where it can still shine rockin' PF/CARP/etc until the hardware completely dies.

And relevant: the PfSense installed base: lots of 32 bit x86 hardware (tons of SOHO routers on embedded boards, along with bigger kit in datacenters).

Best,
.ike




More information about the freebsd-arch mailing list