Your message dated Sun, 14 Feb 2016 19:46:25 +0100
with message-id <[email protected]>
and subject line Re: Bug#777270: make: please make make multiarch:foreign 
(properly this time)
has caused the Debian Bug report #777270,
regarding make: please make make multiarch:foreign (properly this time)
to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact [email protected]
immediately.)


-- 
777270: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=777270
Debian Bug Tracking System
Contact [email protected] with problems
--- Begin Message ---
Package: make
Version: 4.0-8.1
Severity: wishlist
User: [email protected]
Usertags: cross-satisfiability

Hi,

make not being Multi-Arch:foreign is currently the reason for 228 source
packages not being able to satisfy their cross build dependencies [1].
Bug #693926 was the first attempt in making it M-A:foreign but it was
correctly spotted by Jakub Wilk that the "-lfoo" prerequisites resolve
the library path of "foo" depending on the architecture of make, thus
giving it an architecture dependent interface.

I also saw in earlier bug involving the -l targets and multiarch:
#618840. The patch that fixed the bug in the end sets the MULTIARCH_DIRS
variable in to the value of DEB_HOST_MULTIARCH at compile time in
configure.in and is later used to compile remake.c. I think that by now
the patch is defunct as configure.in does not exist anymore and thus the
MULTIARCH_DIRS variable never gets set. Maybe that patch should be
removed?

Anyways, this approach would also not solve the problem because it would
set the variable at compile time but a working solution would search the
right library path at run time.

The question is, how to supply the host architecture to make at run
time.

One way would be to add a dependency on dpkg-dev to the make binary
package and let the make executable call `dpkg-architecture
-qDEB_HOST_MULTIARCH` at run time.

There also exists the MAKE_HOST variable but according to the file NEWS
it is supposed to be the architecture that make was compiled for, so it
doesn't help with this.

Yet another way would be to create a new Debian specific environment
variable which affected packages set in debian/rules. But this again
requires to change many source packages.

Depending on what you find a reasonable solution I can supply a patch.

Thanks!

cheers, josch

[1] http://bootstrap.debian.net/cross_all.html

--- End Message ---
--- Begin Message ---
Control: tags -1 + wontfix

Hi Manoj and Johannes,

On Sat, Feb 07, 2015 at 10:00:27AM +0100, Johannes Schauer wrote:
> make not being Multi-Arch:foreign is currently the reason for 228 source
> packages not being able to satisfy their cross build dependencies [1].
> Bug #693926 was the first attempt in making it M-A:foreign but it was
> correctly spotted by Jakub Wilk that the "-lfoo" prerequisites resolve
> the library path of "foo" depending on the architecture of make, thus
> giving it an architecture dependent interface.

As sad as this may be for those other packages, I do not believe that
there is a sane way to turn M-A:foreign. In addition, to the library
prerequisite issue, make is able to load shared libraries into the make
executable at runtime[1]. This is similar to how Perl and Python load
extensions. Like Perl and Python, M-A:allowed thus is the best we can
aim for with make and make currently is M-A:allowed.

In agreement with Johannes, I am thus closing this bug: It is not
actionable anymore.

Helmut

[1] 
https://www.gnu.org/software/make/manual/html_node/Loaded-Object-Example.html

--- End Message ---

Reply via email to