Bug#450483: [Build-common-hackers] Bug#450483: cdbs: Stop setting DEB_CONFIGURE_SCRIPT_ENV in order to enable cross-building
On Sat, Nov 24, 2007, Neil Williams wrote: ifneq ($(DEB_HOST_GNU_TYPE),$(DEB_BUILD_GNU_TYPE)) DEB_MAKE_ENVVARS=CC=$(DEB_HOST_GNU_TYPE)-gcc endif Why set CC in cdbs instead of setting it in the cross build env? -- Loïc Minier
Bug#450483: [Build-common-hackers] Bug#450483: cdbs: Stop setting DEB_CONFIGURE_SCRIPT_ENV in order to enable cross-building
Loïc Minier wrote: On Sat, Nov 24, 2007, Neil Williams wrote: ifneq ($(DEB_HOST_GNU_TYPE),$(DEB_BUILD_GNU_TYPE)) DEB_MAKE_ENVVARS=CC=$(DEB_HOST_GNU_TYPE)-gcc endif Why set CC in cdbs instead of setting it in the cross build env? Please read the rest of the bug report, CC was set in the cross build environment before the cross build support was rewritten. The rewrite was done because if CC *is* set in the environment, it prevents CC_FOR_BUILD from operating and therefore packages that need to build tools during the cross build fail to build - like libx11. The rewritten cross building support now allows all packages to cross build successfully. This change in CDBS is because the same change is needed in *all* CDBS packages that use a makefile without a ./configure and I would rather fix the problem in CDBS than have to apply precisely the same patch to each package in this situation. Therefore, CC must NOT be set by the cross build environment because CC will break more packages than it fixes. Those CDBS packages that use only a Makefile without ./configure, there is no way of passing the correct CC from the cross build environment - it needs to come from CDBS. -- Neil Williams = http://www.data-freedom.org/ http://www.nosoftwarepatents.com/ http://www.linux.codehelp.co.uk/ signature.asc Description: OpenPGP digital signature
Bug#450483: [Build-common-hackers] Bug#450483: cdbs: Stop setting DEB_CONFIGURE_SCRIPT_ENV in order to enable cross-building
Neil Williams wrote: No. MAKEFLAGS should not be overwritten by the build tools. Huh? This discussion is about DEB_CONFIGURE_SCRIPT_ENV. How do you get from that to MAKEFLAGS? AFAICS, nothing in cdbs touches MAKEFLAGS. CDBS has no business setting DEB_CONFIGURE_SCRIPT_ENV. Any package that needs it is simply broken because there is no way of providing useful information by that method. Explain that to all the packages that are making use of it. -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]
Bug#450483: [Build-common-hackers] Bug#450483: cdbs: Stop setting DEB_CONFIGURE_SCRIPT_ENV in order to enable cross-building
Neil Williams wrote: Actually, packages fail to cross compile with it set because CDBS sets 'gcc' It does no such thing. -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]
Bug#450483: [Build-common-hackers] Bug#450483: cdbs: Stop setting DEB_CONFIGURE_SCRIPT_ENV in order to enable cross-building
Am Mittwoch, 7. November 2007 schrieb Neil Williams: It is only when cross-compiling and all those packages need to be fixed anyway because the cross compiling support no longer provides anything useful for CDBS to pass to this variable. But there are many other situations in which useful things are passed around that way, which packages need in order to build properly. Please check the patch - it only sets DEB_CONFIGURE_SCRIPT_ENV to empty when cross-compiling. Thus making the affected packages fail to build properly when cross-compiling, which appears to be contrary to your intentions. Which part of the contents of DEB_CONFIGURE_SCRIPT_ENV are you objecting to, specifically? -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]
Bug#450483: [Build-common-hackers] Bug#450483: cdbs: Stop setting DEB_CONFIGURE_SCRIPT_ENV in order to enable cross-building
On Wed, 7 Nov 2007 16:14:13 +0100 Peter Eisentraut [EMAIL PROTECTED] wrote: Am Mittwoch, 7. November 2007 schrieb Neil Williams: Please can DEB_CONFIGURE_SCRIPT_ENV be set to empty in CDBS so that CDBS packages can be cross-built successfully? Um, well, no, because this would break all packages that rely on the settings of the environment variables that are transported this way. It is only when cross-compiling and all those packages need to be fixed anyway because the cross compiling support no longer provides anything useful for CDBS to pass to this variable. Please check the patch - it only sets DEB_CONFIGURE_SCRIPT_ENV to empty when cross-compiling. -- Neil Williams = http://www.data-freedom.org/ http://www.nosoftwarepatents.com/ http://www.linux.codehelp.co.uk/ pgpJB5qzdsUAP.pgp Description: PGP signature
Bug#450483: [Build-common-hackers] Bug#450483: cdbs: Stop setting DEB_CONFIGURE_SCRIPT_ENV in order to enable cross-building
Am Mittwoch, 7. November 2007 schrieb Neil Williams: Please can DEB_CONFIGURE_SCRIPT_ENV be set to empty in CDBS so that CDBS packages can be cross-built successfully? Um, well, no, because this would break all packages that rely on the settings of the environment variables that are transported this way. -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]
Bug#450483: [Build-common-hackers] Bug#450483: cdbs: Stop setting DEB_CONFIGURE_SCRIPT_ENV in order to enable cross-building
On Wed, 7 Nov 2007 19:07:28 +0100 Peter Eisentraut [EMAIL PROTECTED] wrote: Forgot to CC the bug report. Neil Williams wrote: No. MAKEFLAGS should not be overwritten by the build tools. Huh? This discussion is about DEB_CONFIGURE_SCRIPT_ENV. How do you get from that to MAKEFLAGS? AFAICS, nothing in cdbs touches MAKEFLAGS. Setting CC= overrides MAKEFLAGS, that is why this needs to be removed. I need CDBS to NOT set CC - that is the sum of it. CDBS has no business setting DEB_CONFIGURE_SCRIPT_ENV. Any package that needs it is simply broken because there is no way of providing useful information by that method. Explain that to all the packages that are making use of it. I will - because it only matters in cross-builds (because that is how I have framed the patch) and the cross build tools explain why this is so and what needs to be done. In the case of CDBS, if this patch is implemented, nothing needs to be done. -- Neil Williams = http://www.data-freedom.org/ http://www.nosoftwarepatents.com/ http://www.linux.codehelp.co.uk/ pgpBZkwR3XnJQ.pgp Description: PGP signature
Bug#450483: [Build-common-hackers] Bug#450483: cdbs: Stop setting DEB_CONFIGURE_SCRIPT_ENV in order to enable cross-building
On Wed, 7 Nov 2007 19:09:01 +0100 Peter Eisentraut [EMAIL PROTECTED] wrote: Forgot to keep the bug report in CC. Sorry. Neil Williams wrote: Actually, packages fail to cross compile with it set because CDBS sets 'gcc' It does no such thing. It does - CC=gcc The effect of DEB_CONFIGURE_SCRIPT_ENV is that the package tries to cross build using gcc which simply breaks. Unset DEB_CONFIGURE_SCRIPT_ENV for the crossbuild and gcc gets the value from --host and works fine. This is ONLY relevant for cross building and cross building support has been entirely rewritten recently. The main change was to stop passing CC to all packages so that certain packages could get a sensible setting for CC_FOR_BUILD. The $(CC) setting should come from --host, NOT from DEB_CONFIGURE_SCRIPT_ENV. Unset DEB_CONFIGURE_SCRIPT_ENV and the cross build gets $(CC) from --host as it should. -- Neil Williams = http://www.data-freedom.org/ http://www.nosoftwarepatents.com/ http://www.linux.codehelp.co.uk/ pgpWgoUvROo7d.pgp Description: PGP signature
Bug#450483: [Build-common-hackers] Bug#450483: cdbs: Stop setting DEB_CONFIGURE_SCRIPT_ENV in order to enable cross-building
On Wed, 7 Nov 2007 17:53:38 +0100 Peter Eisentraut [EMAIL PROTECTED] wrote: Am Mittwoch, 7. November 2007 schrieb Neil Williams: It is only when cross-compiling and all those packages need to be fixed anyway because the cross compiling support no longer provides anything useful for CDBS to pass to this variable. But there are many other situations in which useful things are passed around that way, which packages need in order to build properly. No. MAKEFLAGS should not be overwritten by the build tools. *packages* may need MAKEFLAGS and the package should ensure that MAKEFLAGS is suitably set. The build tools cannot take over MAKEFLAGS and set it in a generalised manner. Keep it package specific. You appear to be confused here because CDBS IS clobbering MAKEFLAGS and yet you're saying that packages need it - yet CDBS tramples all over it! Let the packages set the environment and everything is good. Please note: I have rewritten the cross building support in Debian (about 75% of it) and I specifically *removed* these overrides because they break packages in a way that cannot be overridden. Please check the patch - it only sets DEB_CONFIGURE_SCRIPT_ENV to empty when cross-compiling. Thus making the affected packages fail to build properly when cross-compiling, Actually, packages fail to cross compile with it set because CDBS sets 'gcc' when I need to set arm-linux-gnu-gcc etc. That is set by dpkg-architecture and debian/rules but CDBS goes and tramples all over it. When CDBS sets CC=gcc I cannot unset or override that anymore because the cross compiling tools (like CDBS) must *NOT* override it or things like CC_FOR_BUILD will fail. That's where this whole thing started: libx11 http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=425445 which appears to be contrary to your intentions. Which part of the contents of DEB_CONFIGURE_SCRIPT_ENV are you objecting to, specifically? All of it. CDBS has no business setting DEB_CONFIGURE_SCRIPT_ENV. Any package that needs it is simply broken because there is no way of providing useful information by that method. CDBS already sets DEB_HOST_GNU_TYPE when specified by dpkg-architecture - as set by the cross build itself - but then DEB_CONFIGURE_SCRIPT_ENV goes and CLOBBERS IT! Only if DEB_CONFIGURE_SCRIPT_ENV is empty can DEB_HOST_GNU_TYPE actually get passed on to the package build. -- Neil Williams = http://www.data-freedom.org/ http://www.nosoftwarepatents.com/ http://www.linux.codehelp.co.uk/ pgpvhm0u8hQ8a.pgp Description: PGP signature