summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTom Lane <tgl@sss.pgh.pa.us>2011-06-14 17:13:58 -0400
committerTom Lane <tgl@sss.pgh.pa.us>2011-06-14 17:13:58 -0400
commit212567ad3ee23c7ff630e41034c48814b3f18cc9 (patch)
tree97f225dd1533c8435bdbd53a99061e648d2a5637
parentb36f59e93ed26d348ee629972e50b7fb2aac9269 (diff)
Suppress -arch switches in the output of ExtUtils::Embed.
We previously found out that OS X's standard perl installation tries to put -arch switches into Perl link commands, evidently in hopes of building universal binaries. But it doesn't work to add such switches in plperl's link step if they weren't being used earlier, so this is basically unworkable. When using gcc the result is only some warnings; but LLVM fails entirely, so this issue isn't as cosmetic as we originally thought. Hence, back-patch commit d69a419e682c2d39c2355105a7e5e2b90357c8f0 into pre-9.0 branches.
-rw-r--r--config/perl.m46
-rwxr-xr-xconfigure2
2 files changed, 6 insertions, 2 deletions
diff --git a/config/perl.m4 b/config/perl.m4
index 6ca8b524fa7..fa216f672a0 100644
--- a/config/perl.m4
+++ b/config/perl.m4
@@ -25,12 +25,16 @@ AC_DEFUN([PGAC_CHECK_PERL_CONFIGS],
# PGAC_CHECK_PERL_EMBED_LDFLAGS
# -----------------------------
+# We are after Embed's ldopts, but without the subset mentioned in
+# Config's ccdlflags; and also without any -arch flags, which recent
+# Apple releases put in unhelpfully. (If you want a multiarch build
+# you'd better be specifying it in more places than plperl's final link.)
AC_DEFUN([PGAC_CHECK_PERL_EMBED_LDFLAGS],
[AC_REQUIRE([PGAC_PATH_PERL])
AC_MSG_CHECKING(for flags to link embedded Perl)
pgac_tmp1=`$PERL -MExtUtils::Embed -e ldopts`
pgac_tmp2=`$PERL -MConfig -e 'print $Config{ccdlflags}'`
-perl_embed_ldflags=`echo X"$pgac_tmp1" | sed "s/^X//;s%$pgac_tmp2%%"`
+perl_embed_ldflags=`echo X"$pgac_tmp1" | sed -e "s/^X//" -e "s%$pgac_tmp2%%" -e ["s/ -arch [-a-zA-Z0-9_]*//g"]`
AC_SUBST(perl_embed_ldflags)dnl
if test -z "$perl_embed_ldflags" ; then
AC_MSG_RESULT(no)
diff --git a/configure b/configure
index 248b52cd850..628b331a6fc 100755
--- a/configure
+++ b/configure
@@ -6808,7 +6808,7 @@ echo "${ECHO_T}$perl_useshrplib" >&6; }
echo $ECHO_N "checking for flags to link embedded Perl... $ECHO_C" >&6; }
pgac_tmp1=`$PERL -MExtUtils::Embed -e ldopts`
pgac_tmp2=`$PERL -MConfig -e 'print $Config{ccdlflags}'`
-perl_embed_ldflags=`echo X"$pgac_tmp1" | sed "s/^X//;s%$pgac_tmp2%%"`
+perl_embed_ldflags=`echo X"$pgac_tmp1" | sed -e "s/^X//" -e "s%$pgac_tmp2%%" -e "s/ -arch [-a-zA-Z0-9_]*//g"`
if test -z "$perl_embed_ldflags" ; then
{ echo "$as_me:$LINENO: result: no" >&5
echo "${ECHO_T}no" >&6; }