diff options
author | jlam <jlam@pkgsrc.org> | 2005-08-05 19:46:41 +0000 |
---|---|---|
committer | jlam <jlam@pkgsrc.org> | 2005-08-05 19:46:41 +0000 |
commit | ca47ca0ada4c5948e60115d6e63cd48ed7902654 (patch) | |
tree | e842f8c3d1bac6ec9e9562b51fc56ff7e2a3f493 /mk | |
parent | c27abb4a8785cf89fd3289f873d59c595986351e (diff) | |
download | pkgsrc-ca47ca0ada4c5948e60115d6e63cd48ed7902654.tar.gz |
Hardcode a workaround for perl's DynaLoader.a which is definitely a
PIC code archive, but libtool isn't smart enough to realize it. Munge
the name within cmd-sink-libtool into something that will make libtool
recognize it as a PIC code archive. We unmunge it in arg-pp-main so
non-libtool wrappers see the right thing. This let's us use libtool
to link applications with an embedded Perl interpreter.
I feel so dirty...
Diffstat (limited to 'mk')
-rw-r--r-- | mk/buildlink3/cmd-sink-libtool | 15 | ||||
-rw-r--r-- | mk/wrapper/arg-pp-main | 15 |
2 files changed, 28 insertions, 2 deletions
diff --git a/mk/buildlink3/cmd-sink-libtool b/mk/buildlink3/cmd-sink-libtool index 44311d935d0..75599527020 100644 --- a/mk/buildlink3/cmd-sink-libtool +++ b/mk/buildlink3/cmd-sink-libtool @@ -1,4 +1,4 @@ -# $NetBSD: cmd-sink-libtool,v 1.1 2004/09/21 15:01:40 jlam Exp $ +# $NetBSD: cmd-sink-libtool,v 1.2 2005/08/05 19:46:41 jlam Exp $ # # Copyright (c) 2004 The NetBSD Foundation, Inc. # All rights reserved. @@ -40,6 +40,19 @@ while ! queue_is_empty cmdbuf; do $debug_log $wrapperlog " (cmd-sink-libtool) pop: $arg" case $arg in ############################################################## + # Hardcode a workaround for perl's DynaLoader.a which is + # definitely a PIC code archive, but libtool isn't smart + # enough to realize it. Munge the name into something that + # will make libtool recognize it as a PIC code archive. We + # unmunge it in arg-pp-main so non-libtool wrappers see the + # right thing. + ############################################################## + */DynaLoader.a) + arg="${arg%/DynaLoader.a}/libDynaLoader_pic.a" + $debug_log $wrapperlog " (cmd-sink-libtool) to: $arg" + . $buildcmd + ;; + ############################################################## # If we're in "compile" mode, then don't add any linker options # to the command line. ############################################################## diff --git a/mk/wrapper/arg-pp-main b/mk/wrapper/arg-pp-main index 45766a56de9..537c812c456 100644 --- a/mk/wrapper/arg-pp-main +++ b/mk/wrapper/arg-pp-main @@ -1,4 +1,4 @@ -# $NetBSD: arg-pp-main,v 1.4 2005/02/14 21:33:36 jlam Exp $ +# $NetBSD: arg-pp-main,v 1.5 2005/08/05 19:46:41 jlam Exp $ # # Copyright (c) 2005 The NetBSD Foundation, Inc. # All rights reserved. @@ -36,6 +36,19 @@ case $arg in ###################################################################### +# Hardcode a workaround for perl's DynaLoader.a which is definitely +# a PIC code archive, but libtool isn't smart enough to realize it. +# cmd-sink-libtool munged it into something libtool recognizes, but +# now we need to unmunge it so that the compiler/linker are called +# with the right name for the archive. +###################################################################### +*/libDynaLoader_pic.a) + arg="${arg%/libDynaLoader_pic.a}/DynaLoader.a" + prepend_queue argbuf "$arg" + $debug_log $wrapperlog " (arg-pp-main) pre: $arg" + argmatch=yes + ;; +###################################################################### # Split direct paths to shared libraries into the "-Ldir -llib" # equivalent. ###################################################################### |