uclibc support reference implementation, take 1
First off, big thanks to everyone for the behind the scenes "bar talk",
you all know who you are and what you've said, so I'll get straight to
the fruit of that discussion:
I have a reference uclibc toolchain built now, which we can use to
prove any modifications that might be desirable before we start bugging
people with patches to apply to Debian tools.
Presently, it looks like this:
dpkg 1.14.4 from Sid. Source is unmodified except for the following:
+ uclibc-linux linux-uclibc linux[^-]*-uclibc
+ uclibc-linux-<cpu> uclibc-<cpu>
dpkg-cross 1.38 from Sid. Apply the most recent patch from #430507.
This simply gets it to consult dpkg-architecture before using its own
internal tables, so the additions above are automatically supported
binutils 2.17cvs20070426-8 from Sid. This works unmodified to create
uclibc-arm packages using the new table entries above.
gcc-4.1.2 from SLIND. This I've used partly because gcc-4.2 for arm
seems to have a few teething problems, and partly because they have
a nice mechanism for creating a packaged bootstrap compiler that isn't
supported in the mainline gcc source yet. It needed a few patches to
build, partly to fix broken debian/patches for arm in that particular
release, and partly to fix a SLIND assumption that DEB_TARGET_ARCH_OS
returns 'uclibc', which is not the case with the above table entries.
I'll send those patches to them separately.
uclibc 0.9.29. This is a new upstream source, with the SLIND patch
and packaging wrapped around it.
And that's pretty much it for the first step. Toss them all together,
go brew a pot of coffee, and by the time your bloodstream is rushing
alkaloids and cream to the bits that most need them, you've got yourself
a(nother) uclibc toolchain.
What remains to be done:
- Ratify the new dpkg table entries here, and submit them for addition.
I guess the next step to that is for people to submit any objections
or suggested modifications they might have to the above. I know that
these values work now, but they still may not be the best to use ...
- Confirm the dpkg-cross patch is sound and get it into the distro too.
Since most of the dpkg-cross maintainers are here, hopefully that
shouldn't be too hard either.
- Thank the binutils maintainer(s) ;-)
- Merge the needed SLIND patches to mainline gcc.
- Make uclibc library packages available somewhere
- Build the rest of the system.
- Make more cool things from it.
If we can knock off the first two in the next few days, that will give
us a solid foundation to deal with the others, and avoid too many more
people having to make arbitrary choices in order to have something
working now ...
It will also keep me busy and off your backs ;-)