Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.debian.bugs.dist > #1223263
| From | Helmut Grohne <helmut@subdivi.de> |
|---|---|
| Newsgroups | linux.debian.bugs.dist |
| Subject | Bug#815172: crossbuild-essential-armhf: cross-building issues due to missing libc6-dev:armhf |
| Date | 2024-12-08 21:30 +0100 |
| Message-ID | <JRw4F-eXQo-1@gated-at.bofh.it> (permalink) |
| References | <rxHPQ-6gz-15@gated-at.bofh.it> <r3X2r-8uR-29@gated-at.bofh.it> <rxHPQ-6gz-15@gated-at.bofh.it> |
| Organization | linux.* mail to news gateway |
[Multipart message — attachments visible in raw view] - view raw
Control: tags -1 = patch
Control: block -1 by 989723
Control: retitle -1 mark build-essentila Multi-Arch: same to have cross builds install libc6-dev
On Wed, May 11, 2016 at 09:15:09PM +0200, Matthias Klose wrote:
> having a dependency on a foreign arch prevents migration to testing, so for
> now I prefer having packages in testing. of course a recommends could be
> added.
It is true that we cannot have foreign architecture dependencies at this
time. The good news is that we don't have to. We can just turn the
package foreign and then the dependency no longer crosses an
architecture boundary!
At this time, the semantics for building go like this:
If you build natively, satisfy the depenency "build-essential". If
you cross build. satisfy the dependency "crossbuild-essential-$arch"
(and additionally libc-dev:$arch and libstdc++-dev:$arch).
How about we simplify these semantics to:
If you build, satisfy the dependency "build-essential".
Of course, if it was that easy we wouldn't have gone for the longer
version above, right? Right. The problem formerly was that
build-essential couldn't easily express a dependency on "the host
architecture and build architecture gcc and g++ toolchains". Now, it
can. It's gcc-for-host and gcc-for-build (g++ likewise). And with that
part resolved, we may simply change the dependencies of build-essential.
Please bear in mind that gcc-for-build depends on "gcc", so in the
native case, we really do get the same packages as before plus a few
almost empty dependency packages. And in the cross case, the
build-essential dependency that is implicitly host architecture
qualified will pull all the right packages - including libc6-dev:$host.
So we may now change build-essential to become Multi-Arch: same and
coinstall it and use it as the single package that will ensure presence
of build-essential functionality in native and cross builds. This is a
result of a lot of work that Matthias and me spent on adding the
-for-build and -for-host packages to binutils first, and then to gcc-VER
and gcc-defaults.
Now I hope I'm not missing something critical and we may just settle
this really old bug that has required us to put workarounds into both
sbuild and pbuilder for so long. It may now just work.
Helmut
Back to linux.debian.bugs.dist | Previous | Next | Find similar | Unroll thread
Bug#815172: crossbuild-essential-armhf: cross-building issues due to missing libc6-dev:armhf Helmut Grohne <helmut@subdivi.de> - 2024-12-08 21:30 +0100
csiph-web