New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Incorrect LIBPATH for address-model=32,64 on Windows using libjpeg.jam libpng.jam libtiff.jam zlib.jam #515
Comments
The problem appears to be due to having multiple The problem with the registration of multiple A minimal test case is a Jamfile:
where Running
with the first command ( The problem is not unique to A simple fix would be to bypass the registration of |
But the objects don't just differ in their |
The comparison code here is not detecting the relevant property. For the test case above the variables are assigned values as follows:
and therefore the (incorrect) cached object is returned. |
Odd. |
The action name is Should the |
Seems like
or here:
or perhaps in both places (where currently only Would be nice however if we hear from someone who actually knows what's going on here. @grafikrobot? @vprus? @swatanabe? |
Or is the right place here?
|
The same problem occurs for a similar case with
so I think that the |
This was last touched by 0b2643e and could be a regression. |
AMDG
On 7/24/20 7:18 PM, Peter Dimov wrote:
Or is the right place here?
https://github.com/boostorg/build/blob/512ea1f0730b59ba6232709bf9da20fde5dce3ad/src/tools/generators/searched-lib-generator.jam#L91
search and name should be added in all three locations. This line
is the one that will fix the bug. <address-model>, <architecture>,
and others do not directly affect searched-lib targets, so they
should not be added here.
In Christ,
Steven Watanabe
|
AMDG
Actually, <name> is already handled for searched-lib-target in the
target-name. <name> should still be added in the usage
requirements from searched-lib-generator.run, however.
In Christ,
Steven Watanabe
|
I can confirm that this solves the issue for the test cases, with |
I'm building Boost.GIL tests on Windows which depend on third-parties like libjpeg, libpng, etc.
I've configured
user-config.jam
to consume those dependencies installed by vcpkg package manager.When requesting multiple architectures using
address-model=32,64
oraddress-model=64,32
, targets for the second one fail to link due to incorrectLIBPATH
in B2 command line.IOW, requesting single architecture with
b2.exe address-model=64
orb2.exe address-model=32
works fine.Initially, I posted the problem to https://lists.boost.org/boost-build/2019/12/30275.php, but following brief investigation on Slack with @pdimov, there seem to be a problem in B2.
%HOME%\user-config.jam
Problem 1:
address-model=32,64
linking 64-bit target against 32-bit librariesProblem 2:
address-model=64,32
linking 32-bit target against 64-bit librariesBoost.GIL Jamfile-s
A word on the Jamfiles that are used above, may be relevant:
GIL's test/extension/io/Jamfile has these
using
-s which, as I have been told, should not really be inJamfile
:I removed them and tried the commands above. No difference, so I assume presence of those is benign.
The text was updated successfully, but these errors were encountered: