Hi, On Fri, 19 Feb 2016 09:24:23 -0800 Vagrant Cascadian <vagr...@debian.org> wrote: > Using sbuild's "--add-depends libc6-dev:armhf" does work around the issue for > me, but it seems a bit cumbersome to manually specify cross-build > dependencies... > > > According to the changelog, libc6-dev apparently was dropped > intentionally: > > build-essential (12.2) unstable; urgency=medium > > * Bump dependencies on gcc and g++ to 5.3. > * For cross packages, drop libc-dev dependency on libc-dev. > > -- Matthias Klose <d...@debian.org> Wed, 03 Feb 2016 00:26:37 +0100 > > I know there's a fair amount of history and background on > cross-toolchains in Debian, and I'm not in a position to intelligently > debate all the ramifications of the various methods. > > > If you have a recommendation of how I can cross-build u-boot without > manually installing build-dependencies, that would be really helpful! > Up until recently, installing crossbuild-essential-armhf, which sbuild did > automatically, worked quite nicely.
Speaking with my sbuild maintainer hat on, I was made aware of this bug through a request to add libc-dev:$hostarch and libstdc++6-dev:$hostarch as additional implicit crossbuild dependencies to sbuild in addition to the existing crossbuild-essential-$hostarch crossbuild dependency. This would remove the need to manually add "--add-depends libc6-dev:$hostarch" to the sbuild invocation when cross building for $hostarch with the new crossbuild-essential packages as described by vagrant. I would assume that packages should be able to rely on libc-dev:$hostarch being installed as part of build-essential no matter whether the host architecture equals the build architecture or not. Since I wonder where the right place is to fix this problem is and whether I should really modify sbuild, I'd like to join vagrant in their plea to get to know why this change was made in the 12.2 upload of src:build-essential. Intuitively it feels wrong to carry more implicit dependencies like build-essential and crossbuild-essential-$arch than necessary in packages resolving or checking crossbuild dependencies like sbuild, pbuilder, mk-build-deps, dose3, dpkg-checkbuilddeps or `apt-get build-dep`. Naively, I thought that the point of the crossbuild-essential-$arch packages was to encode the essential multiarch crossbuild dependencies in a single binary package rather than hardcoding them in multiple pieces of dependency resolving software which makes these architecture specific lists hard to maintain or keeping them in sync. So how and where should this best be handled? Thanks! cheers, josch
signature.asc
Description: signature