summaryrefslogtreecommitdiff
path: root/mk
diff options
context:
space:
mode:
authortnn <tnn>2016-03-04 01:38:39 +0000
committertnn <tnn>2016-03-04 01:38:39 +0000
commit811cc6c8ac487219505980e58896031f663558cc (patch)
tree6eb6828e5e3ea19450c409078c2c6d41b2792bd0 /mk
parent2a28c076dfe785e8027dff8a3cd82a1ae091e349 (diff)
downloadpkgsrc-811cc6c8ac487219505980e58896031f663558cc.tar.gz
pass correct ABI flags to ar(1) on AIX
AIX is particular about the type of object files `ar` should examine. This should be set explicitly to coincide with the user's defined $ABI. Contributed by Eric N. Vander Weele.
Diffstat (limited to 'mk')
-rw-r--r--mk/wrapper/bsd.wrapper.mk4
-rw-r--r--mk/wrapper/cmd-sink-aix-ar49
2 files changed, 52 insertions, 1 deletions
diff --git a/mk/wrapper/bsd.wrapper.mk b/mk/wrapper/bsd.wrapper.mk
index 2bdb9b6ad0b..d8d5b2fb0dd 100644
--- a/mk/wrapper/bsd.wrapper.mk
+++ b/mk/wrapper/bsd.wrapper.mk
@@ -1,4 +1,4 @@
-# $NetBSD: bsd.wrapper.mk,v 1.94 2016/01/31 17:27:41 rillig Exp $
+# $NetBSD: bsd.wrapper.mk,v 1.95 2016/03/04 01:38:39 tnn Exp $
#
# Copyright (c) 2005 The NetBSD Foundation, Inc.
# All rights reserved.
@@ -348,6 +348,7 @@ _WRAP_CMD_SINK.LD= ${WRAPPER_TMPDIR}/cmd-sink-hpux-ld
.elif ${OPSYS} == "AIX"
_WRAP_CMD_SINK.CC?= ${WRAPPER_TMPDIR}/cmd-sink-aix-cc
_WRAP_CMD_SINK.CXX?= ${_WRAP_CMD_SINK.CC}
+_WRAP_CMD_SINK.AR= ${WRAPPER_TMPDIR}/cmd-sink-aix-ar
_WRAP_CMD_SINK.LD= ${WRAPPER_TMPDIR}/cmd-sink-aix-ld
_WRAP_CACHE_BODY.CC?= ${WRAPPER_TMPDIR}/cache-body-aix-cc
_WRAP_CACHE_BODY.CC_R?= ${WRAPPER_TMPDIR}/cache-body-aix-cc
@@ -504,6 +505,7 @@ generate-wrappers: ${_target_}
arg-pp-darwin-gcc \
arg-pp-mipspro-cc \
arg-pp-sunpro-cxx \
+ cmd-sink-aix-ar \
cmd-sink-aix-cc \
cmd-sink-aix-ld \
cmd-sink-aix-xlc \
diff --git a/mk/wrapper/cmd-sink-aix-ar b/mk/wrapper/cmd-sink-aix-ar
new file mode 100644
index 00000000000..9cb3195dd9e
--- /dev/null
+++ b/mk/wrapper/cmd-sink-aix-ar
@@ -0,0 +1,49 @@
+# $NetBSD: cmd-sink-aix-ar,v 1.1 2016/03/04 01:38:39 tnn Exp $
+#
+# Copyright (c) 2016 The NetBSD Foundation, Inc.
+# All rights reserved.
+#
+# This code is derived from software contributed to The NetBSD Foundation
+# by Johnny C. Lam.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions
+# are met:
+# 1. Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+# 2. Redistributions in binary form must reproduce the above copyright
+# notice, this list of conditions and the following disclaimer in the
+# documentation and/or other materials provided with the distribution.
+# 3. All advertising materials mentioning features or use of this software
+# must display the following acknowledgement:
+# This product includes software developed by the NetBSD
+# Foundation, Inc. and its contributors.
+# 4. Neither the name of The NetBSD Foundation nor the names of its
+# contributors may be used to endorse or promote products derived
+# from this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
+# ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+# TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+# PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
+# BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+# POSSIBILITY OF SUCH DAMAGE.
+
+# AIX ar(1) requires options before the argument list (i.e., archive members).
+# Depending on ABI, set the appropriate '-X[32|64]' flag.
+if [ -n "$wrapper_abi" ]; then
+ arg=-X${wrapper_abi}
+ . $buildcmd
+fi
+
+# Empty out the command buffer and build up the command line in $cmd.
+while ! queue_is_empty cmdbuf; do
+ pop_queue cmdbuf arg
+ $debug_log $wrapperlog " (cmd-sink-aix-ar) pop: $arg"
+ . $buildcmd
+done