[debhelper-devel] Bug#840323: debhelper: cmake build system: cross compilation
Helmut Grohne
helmut at subdivi.de
Tue Oct 11 21:04:22 UTC 2016
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
fixed.
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.
>
> https://packages.debian.org/sid/all/cross-config/filelist
>
> /etc/dpkg-cross/cmake/CMakeCross.txt
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
become sustainable.
> 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.
Helmut
More information about the debhelper-devel
mailing list