On Sat, 09 Jun 2012 18:16:32 -0400 "P. J. McDermott" <pjm@nac.net> wrote: > perl-base (from src:perl) is one of the packages that must be in the > base build system (it's marked "Essential: yes" and there are four > dependent Perl module packages marked "Priority: required"). So it will > be one of the packages I have to make sure can be cross built. Not necessarily. For bootstrapping a full Debian archive, yes, but for an embedded distribution based on Debian, no. (Emdebian Crush did this). It is entirely possible to have Debian without perl, Essential doesn't have to mean anything for embedded purposes. Cross-building perl isn't a blocker for anything other than bootstrapping - and it could be argued that you don't need a full perl interpreter to bootstrap, as long as you can cross-build enough of perl that any circular dependencies are avoided. Don't let Essential drag you into cross-building more than necessary. Essential is NOT relevant for bootstrapping, it is a convenience macro, that's all; a way of shortening the dependency chain. > But when someone asked me a week ago about writing a program in Perl for > my embedded distro project [1], Unless this is for an architecture not currently supported by Debian, then don't bother cross-building it - you aren't changing *functionality* of the perl interpreter, so there is absolutely no reason to cross-build it. Don't cross-build stuff which is available already *unless* you absolutely must have modified functionality. > I realized that the Perl interpreter > can't really be cross built (my goal in that project is to cross build > every package). That is a waste of effort. It is a pointless objective, as above. Cross-building is a means to an end, not an objective in and of itself. If the objective is a fully functional perl interpreter for an existing Debian architecture which will run existing Debian perl code, then your only option is to use the natively built perl interpreter. It's completely pointless to waste time on anything else. All you'll do is introduce changes in the cross-built interpreter which cause bugs which can't be reproduced with the native interpreter. > As I understood Perl's strange custom build system [2] > (with both the old [3] and new [4] cross compilation methods), it seemed > like it requires some commands to be executed on the host (using GNU > Autoconf terminology) system. That is quite common, there will always be times when the native compiler must be available during a cross-build and many packages need things like CC_FOR_BUILD to do this. > (We don't need to have this one package holding us back from natively > bootstrapping the rest of the archive.) I just hope the other language > interpreters don't have similarly strange build systems (or are at least > bootstrappable)... Almost certainly they do, amongst other packages. Perl is just one of many, it's not just interpreters either. You might find the EmdebianAudit useful for that. (wiki.d.o) > Should I escalate the severity of #633884 from wishlist, since we need > src:perl to cross build? NO. Cross-building has never had a severity higher than wishlist in Debian. Cross-building is not an objective for Wheezy, it isn't an objective in and of itself anyway. What we actually need is a cross-building system based on MultiArch in Wheezy+1 (or possibly +2) - as long as your cross-build support is independent of how the cross dependencies are installed (i.e. in the paths for foreign arch libraries) then it will work. Ensure that your support does not perpetuate a reliance on dpkg-cross because that is going away. Most cross-builds will be fine - just ensure that there are no hard-coded paths which look for /usr/$triplet/lib instead of /usr/lib/$triplet. However, that cross-build system is only required when the package has to be built for a new architecture or to implement functional changes not supported by the native version. > And is it worth trying to get cross building support into wheezy's > src:perl before the freeze? Not a hope. It's far too late. Wheezy could freeze within days. -- Neil Williams ============= http://www.linux.codehelp.co.uk/
Attachment:
pgpb7hy8_Xhcw.pgp
Description: PGP signature