summaryrefslogtreecommitdiff
path: root/mk
diff options
context:
space:
mode:
authorjlam <jlam@pkgsrc.org>2005-06-08 05:54:17 +0000
committerjlam <jlam@pkgsrc.org>2005-06-08 05:54:17 +0000
commit532553f6534ee4461ba6b7c1ab35af3aba0276ad (patch)
tree921f3e3129237df8f2145f40d9cf2b8ba4012f74 /mk
parent5bc688b376b1e69659c4e1e60b9f2f18da7c1183 (diff)
downloadpkgsrc-532553f6534ee4461ba6b7c1ab35af3aba0276ad.tar.gz
Properly turn:
-Wl,-rpath -Wl,/dir1:/dir2:/dir3 into: -Wl,-rpath,/dir1 -Wl,-rpath,/dir2 -Wl,-rpath,/dir3 Do the same for -Wl,-R and -Wl,-rpath-link. This makes the wrapper scripts pass the test in regress/buildlink-transform/rpath-merge.mk and fixes PR pkg/27702.
Diffstat (limited to 'mk')
-rw-r--r--mk/wrapper/arg-source33
1 files changed, 32 insertions, 1 deletions
diff --git a/mk/wrapper/arg-source b/mk/wrapper/arg-source
index 2e0fd74e39b..69cdb3e3506 100644
--- a/mk/wrapper/arg-source
+++ b/mk/wrapper/arg-source
@@ -1,4 +1,4 @@
-# $NetBSD: arg-source,v 1.5 2005/06/08 05:02:50 jlam Exp $
+# $NetBSD: arg-source,v 1.6 2005/06/08 05:54:17 jlam Exp $
#
# Copyright (c) 2004 The NetBSD Foundation, Inc.
# All rights reserved.
@@ -81,6 +81,37 @@ while $test $# -gt 0; do
IFS="${save_IFS}"
;;
##############################################################
+ # Merge and split "-Wl,-R -Wl,/dir1:/dir2" into
+ # "-Wl,-R/dir1 -Wl,-R/dir2". Same for -Wl,-rpath and
+ # -Wl,-rpath-link.
+ ##############################################################
+ -Wl,-R|-Wl,-rpath|-Wl,-rpath-link|-Wl,--rpath)
+ nextarg="$1"; shift
+ case $arg in
+ -Wl,-R) R="-Wl,-R" ;;
+ -Wl,-rpath) R="-Wl,-rpath," ;;
+ -Wl,-rpath-link) R="-Wl,-rpath-link," ;;
+ -Wl,--rpath) R="-Wl,--rpath," ;;
+ esac
+ nextarg="${nextarg#-Wl}"
+ case $nextarg in
+ *:*)
+ save_IFS="${IFS}"; IFS=":"
+ for dir in $nextarg; do
+ shquote "$dir"; dir="$shquoted"
+ append_queue argbuf "$R$dir"
+ $debug_log $wrapperlog " (arg-source) push: $R$dir"
+ done
+ IFS="${save_IFS}"
+ ;;
+ *)
+ shquote "$nextarg"; nextarg="$shquoted"
+ append_queue argbuf "$R$nextarg"
+ $debug_log $wrapperlog " (arg-source) push: $R$nextarg"
+ ;;
+ esac
+ ;;
+ ##############################################################
# "-Xlinker arg" is the equivalent of "-Wl,arg" so convert it
# here before queueing it up.
##############################################################