Remove any -arch switches given in ExtUtils::Embed's ldopts from our
authorTom Lane <[email protected]>
Tue, 8 Sep 2009 18:15:55 +0000 (18:15 +0000)
committerTom Lane <[email protected]>
Tue, 8 Sep 2009 18:15:55 +0000 (18:15 +0000)
perl_embed_ldflags setting.  On OS X it seems that ExtUtils::Embed is
trying to force a universal binary to be built, but you need to specify
that a lot further upstream if you want Postgres built that way; the only
result of including -arch in perl_embed_ldflags is some warnings at the
plperl.so link step.  Per my complaint and Jan Otto's suggestion.

config/perl.m4
configure

index d587c95d03b1c2e7b8ea29444b893217d2cc8524..f84c52c1525046f647551c2bbf2415f9cb3c2a86 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 252bfee19c6f991a48027eb1d60cc2b7f2139b03..c64f2888d823e69353c806d64bf6494d4e4d90c9 100755 (executable)
--- a/configure
+++ b/configure
@@ -6943,7 +6943,7 @@ $as_echo "$perl_useshrplib" >&6; }
 $as_echo_n "checking for flags to link embedded Perl... " >&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
        { $as_echo "$as_me:$LINENO: result: no" >&5
 $as_echo "no" >&6; }