]> granicus.if.org Git - postgresql/commitdiff
Suppress -arch switches in the output of ExtUtils::Embed.
authorTom Lane <tgl@sss.pgh.pa.us>
Tue, 14 Jun 2011 21:14:06 +0000 (17:14 -0400)
committerTom Lane <tgl@sss.pgh.pa.us>
Tue, 14 Jun 2011 21:14:06 +0000 (17:14 -0400)
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.

config/perl.m4
configure

index 808c86b52b85587fc448484f9ea6e902d7616e16..f2fbc09d84843913a33dbca7ec7c9d91e243ea60 100644 (file)
@@ -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)
index 6d4bf5a32029b1c87581bc3d3412cfaede7cfde6..ea89b5afd71c266fe08a2029f60dcb697c739f2a 100755 (executable)
--- a/configure
+++ b/configure
@@ -5336,7 +5336,7 @@ echo "$as_me:$LINENO: checking for flags to link embedded Perl" >&5
 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