[Raspbian-devel] Arm bof and raspbian.
peter green
plugwash at p10link.net
Fri Aug 16 10:53:47 UTC 2013
I've just watched the stream of the arm bof (a video will hopefully
appear at
http://meetings-archive.debian.net/pub/debian-meetings/2013/debconf13/high/
but doesn't seem to be available yet). I tried to participate over IRC
but it doesn't seem I was terriblly successful in doing so (wooky later
apologised for not watching the correct irc channel).
There were a few proposals, one suggestion was to make armhf-v6 a new
architecture but while this would solve some problems it would cause
others and so I don't support it as a way forward. For starters debian
architectures have traditionally represent ABIs not minimum CPU
requirements, raspbian packages and debian armhf packages are (supposed
to be at least) compatible, you just can't run the mixture on a Pi due
to minimum CPU requirements. Secondly it would leave no upgrade path for
existing raspbian users.
Another proposal was to expand the package management tools and archive
infrastructure to support variants of a port with different minimum CPU
requirements but this seemed to be one of those ideas that sounds good
in theory but would be a lot of work (with noone voulenteering to
actually do it) and probablly take several release cycles to do even if
there was someone to do it due to the number of things it would hit
(dpkg, apt, higher level package managers, archive infrastructure etc).
Yet another proposal was to simply drop the minimum CPU requirements of
armhf to support the Pi. This would be in keeping with debian traditions
of supporting the minimum variant of an architecture but didn't seem
very popular among people in the room (a show of hands showed about
twice as many people thinking it was a bad idea as thinking it was a
good idea). The question was raised as to how much impact this would
have but noone really had an answer (it's a tricky one to benchmark
because afaict the biggest disadvantage would be increased cache and
memory pressure due to increased code size which is often hard to see in
benchmarks that focus on testing one thing at a time)
At the end of the talk the host (who i'm assuming was wooky from the
information given before the talk but he isn't someone I recognise by
face) said something along the lines of "we'd like to help the Pi guys
but were not sure how". Here are some thoughts on what would help us
without making radical infrastructure changes.
1: centralise compiler defaults. Having to patch every bloody compiler
package gets annoying fast and also makes it very difficult to multiarch
raspbian with official ports of debian due to the version skew it
creates (in particular with libgcc). I made a post about this to
debian-gcc last month* but got no response. I've also been talking about
it on irc with wooky, disussion pasted at the bottom of this email.
2: It would be helpful to us if testing stayed both in a more consistent
state and closer to unstable. Much of the day to day effort in running
raspbian is trying to deal with the inconsistencies in testing and/or
dealing with build failures that have been somehow fixed in unstable but
where the fix did not make it into testing before the break did. Of
course I realise there is a compromise here, enforcing strict
consistency checks on testing (all dependencies satisfiable including
build-dependencies, exactly one version of each source package) would
make it even harder to get transitions to go through. Maintainers can
help here too, was it really nessacery to tie the migration of the
default gcc change to the D and gold changes?
3: more skilled manpower would also be useful. In particular it would be
really really helpful if we had a gcc expert who would work with us.
Someone also mentioned that supposedly some people are upset about
packages missing from raspbian. Last I looked we actually had better
coverage then the official arm ports but if there is a specific package
you require that is in one of the official arm ports but not in raspbian
do get in touch and i'll take a look. After the BoF wooky forwarded an
email mentioning gnuradio. I'll follow that up seperately, I wont bother
debian-arm with the reply to that but I will put it on raspbian-devel on
alioth in case anyone wants to read it.
Finally it's not strictly related to anything else mentioned here but
someone mentioned a mini-debconf in cambridge, can anyone tell me where
I can find more details.
* http://lists.debian.org/debian-gcc/2013/07/msg00135.html
Discussion with wooky on #debian-arm after the BoF follows
<wookey> plugwash: I just realised I was only looking in this channel,
not #debconf-talkroom2
<wookey> apoloigies for that if I missed things. please repost
<plugwash> In response to the comment about people apparently claiming
things were missing from raspbian.
<plugwash> <plugwash> Last I checked raspbian actually had more stuff in
it than the official arm ports
<plugwash> <plugwash> if something is in debian jessie and missing from
raspbian jessie please do tell me
<wookey> plugwash: I will forward the mail I got
<wookey> it seemed odd to me too
<plugwash> In response to the question about what would help us assuming
we stick with the current situation of raspbian being an unofficial port
<plugwash> <plugwash> One thing i'd really like to see is the
centralisation of compiler defaults
<plugwash> <plugwash> right now we have to patch a shedload of compiler
packages individually for raspbian which is a pain in the arse
<wookey> plugwash: mail sent (gnuradio was given as example)
<plugwash> ahh gnuradio :(
<wookey> re compiler defaults. agreed. I've wanted compilers for years
that could easily have default targets changed, but gcc design doesn;t
really support that - you have to rebuild
<plugwash> wookey, It's not having to rebuild that is the problem it's
having to change the source package
<wookey> plugwash: what other than gcc package needs to be changed?
<wookey> we could make it easier to find the bit to change in the debian
poackaging
<wookey> or is it lots of individula packages which set compiler options
rather than using compiler defaults?
<plugwash> there are a few packages that do override compiler defaults,
there are also a lot of compiler source packages wooky gcc-4.6 ,
gcc-4.7, gcc.4.8, ghc, gcj-*, gdc-*, fpc, gnat-* and so-on
<plugwash> there is also the big problem that one of the gcc source
packages builds libgcc which is a key M-A: same library so patching that
source package causes multiarch issues
<plugwash> It would be *much* easier for us if there was one
"compiler-defaults" source package that we could change and then just
rebuild the compiler packages against it
<wookey> OK. But does gcc provide a place to do that? Or is it actually
lots of different files?
<wookey> would we only be able to do it by adding debian mechanism on
top of upstream?
<wookey> libgcc1 coming from gcc source package (and not easily
buildable seaparately) is indeed annoying.
<wookey> there is support for a 'reverse cross' build of just libgcc in
the packaging (as emdebian uses/used it)
<wookey> If you can work out how to provide such a package I'd certainly
support adopting it. I'll add this to the crosscompiler agenda notes
* sandeepparitala (~sandeep at 122.252.228.137) has joined #debian-arm
<plugwash> for gcc variants at least the compiler defaults are already
set by the debian packaging we don't patch any upstream files, it would
just be a matter of having the debian packaging read them from somewhere
rather than hardcoding them. For some other compilers it would be
tricker but worst case we make them look at the gcc defaults and
translate them somehow. Other compilers are less important too because
of generally slower release cycles and lack of t
<plugwash> he libgcc problem.
<plugwash>
http://debdiffs.raspbian.org/main/g/gcc-4.8/gcc-4.8_4.8.0-7+rpi1.debdiff
shows what we currently have to do to a gcc package
More information about the Raspbian-devel
mailing list