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

Attachment: signature.asc
Description: signature

Reply via email to