From d932899aa393e36f59ddc0480f2675a340f7960c Mon Sep 17 00:00:00 2001 From: Boris Kolpackov Date: Tue, 10 Mar 2020 12:11:45 +0200 Subject: Force hard links inside backlinked DLL assembly directory Windows does not allow the manifest file inside to be a symlink for some (probably security) reasons. --- libbuild2/cc/link-rule.cxx | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'libbuild2/cc/link-rule.cxx') diff --git a/libbuild2/cc/link-rule.cxx b/libbuild2/cc/link-rule.cxx index 056c5c4..5917419 100644 --- a/libbuild2/cc/link-rule.cxx +++ b/libbuild2/cc/link-rule.cxx @@ -1076,7 +1076,8 @@ namespace build2 // The problem is the Windows DLL assembly "logic" refuses to // recognize a junction as a valid assembly for some reason. So we // are going to resort to copy-link (i.e., a real directory with a - // bunch of links). + // bunch of links). Note also that while DLLs can be symlinked, + // the assembly manifest cannot (has to be hard-linked or copied). // // Interestingly, the directory symlink works just fine under // Wine. So we only resort to copy-link'ing if we are running on -- cgit v1.1