Bug#835925: Bug#840323: debhelper: cmake build system: cross compilation
- To: Neil Williams <email@example.com>
- Cc: Holger Levsen <firstname.lastname@example.org>, Simon Richter <email@example.com>, firstname.lastname@example.org, email@example.com, firstname.lastname@example.org
- Subject: Bug#835925: Bug#840323: debhelper: cmake build system: cross compilation
- From: Helmut Grohne <email@example.com>
- Date: Tue, 11 Oct 2016 23:04:22 +0200
- Message-id: <[🔎] 20161011210421.GA21400@localhost>
- Mail-followup-to: Helmut Grohne <firstname.lastname@example.org>, Neil Williams <email@example.com>, Holger Levsen <firstname.lastname@example.org>, Simon Richter <email@example.com>, firstname.lastname@example.org, email@example.com, firstname.lastname@example.org
- Reply-to: Helmut Grohne <email@example.com>, firstname.lastname@example.org
- In-reply-to: <[🔎] email@example.com>
- References: <147611309146.1109.2349499258549258351.reportbug@coffee> <20161010183938.GA17141@localhost> <20161010213035.GA3980@layer-acht.org> <20161011043305.GA12543@localhost> <[🔎] firstname.lastname@example.org>
On Tue, Oct 11, 2016 at 08:40:13AM +0100, Neil Williams wrote:
> cross-config exists solely to allow the removal of the dpkg-cross and
> libdebian-dpkgcross-perl binaries. Even then, the contents of
> cross-config could end up in other packages just as easily.
Yes, we should move cross-config to a better place.
> To repeat:
> > | summary 771496 If anything you are doing would fail after the
> > removal of dpkg-cross, you're doing it wrong. It's going away,
> > whether you want it to or not.
> That does *not* apply to cross-config and the original bug made it
> clear that the configuration elements could remain.
Even cross-config is sorely broken. Let me give some examples:
* ac_cv_func_malloc_0_nonnull=yes is wrong for e.g. musl
* Relying on DEB_HOST_* makes cross-config unuseable for
non-package builds. Instead, it should be multiarched.
* Searching /lib/$DEB_HOST_GNU_TYPE is broken on i386.
* glib_cv_stack_grows=no is wrong on hppa.
* ac_cv_file__etc_environment=no does not match native builds.
* CMAKE_SYSTEM_NAME=Linux breaks kfreebsd-any and hurd-any.
* The CMake toolchain file thinks we're still using sysroots.
* There are very many cache results that are not required anymore. In
general, all ac_cv_sizeof_* should be removed and the projects still
requiring them (e.g. blt until Steve Langasek fixed it) should be
Thus I believe that using cross-config is more harmful than useful,
because it has been completely unmaintained for years.
> Wrong package for this bug report. The package you need for CMake and
> other *configuration* support for cross-building (not *packaging*
> support for cross-building) is cross-config.
Having dpkg-cross in the name is wrong. It should not be endorsed in any
way. This needs to become a cross-distribution collaboration thing to
> That's the only file needed for CMake - it could just as easily be
> migrated into another package.
As I explained, no file is needed for CMake in the common case.
dh_auto_configure will just work.
> > Wookey, should we add a blocker bug keep it out of jessie?
Yes, this should have been stretch.
> However, Stretch must not release with the dpkg-cross and
> libdebian-dpkgcross-perl binary packages. If the new upload doesn't
> happen by the end of November 2017, then (as agreed at DebConf16), I'll
> have to do it as a final QA upload, leaving only the cross-config
> binary package.
Before killing it in sid, note that bootstrapping still relies on
dpkg-cross. We're in kind of a limbo here. There are basically two ways
to do a cross toolchain bootstrap:
1. Use dpkg-cross.
2. Use the patches from cross-gcc-dev.
cross-gcc-dev is fragile because it tends to break with gcc uploads.
Thus dpkg-cross currently is the only reliable way to bootstrap. Please
upstream cross-gcc-dev before removing dpkg-cross.