mirror of
https://github.com/boostorg/build.git
synced 2026-02-16 13:22:11 +00:00
Do not hardcode dll paths in libraries. That's not really needed, and
would force us to relink all libraries when staging. Now that libraries do not hardcode dll paths, add a check that correct -rpath-link options are added. When staging, we don't hardcode-dll-paths, and libraries never hardcode dll paths, so if there's a long chain of libraries, we should add -rpath-link, otherwise the linker won't find the dynamic libraries and will complain. [SVN r25756]
This commit is contained in:
@@ -12,7 +12,12 @@ import string
|
||||
|
||||
t = Tester()
|
||||
|
||||
t.write("Jamfile", """
|
||||
t.write("Jamfile", """
|
||||
# Stage the binary, so that it will be relinked
|
||||
# without hardcode-dll-paths. That will chech that
|
||||
# we pass correct -rpath-link, even if not passing
|
||||
# -rpath.
|
||||
stage dist : main ;
|
||||
exe main : main.cpp b ;
|
||||
""")
|
||||
|
||||
|
||||
@@ -693,6 +693,7 @@ class linking-generator : generator
|
||||
rule run ( project name ? : property-set : sources + : multiple ? )
|
||||
{
|
||||
if [ $(property-set).get <hardcode-dll-paths> ] = true
|
||||
&& [ type.is-derived $(self.target-types[1]) EXE ]
|
||||
{
|
||||
local xdll-path = [ $(property-set).get <xdll-path> ] ;
|
||||
# It's possible that we have libraries in sources which did not came
|
||||
|
||||
Reference in New Issue
Block a user