summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorfoobar <sniper@php.net>2005-03-26 03:09:09 +0000
committerfoobar <sniper@php.net>2005-03-26 03:09:09 +0000
commit24eb2bfabc0b2ffa6a47a32250d869a6c62271c4 (patch)
tree6686de1cc274ea6f11db26570624aed6ebffb5f4
parentda53094765bd38510d4f95b3c237e8a1be7314f1 (diff)
downloadphp-git-24eb2bfabc0b2ffa6a47a32250d869a6c62271c4.tar.gz
- Prevent compiling shared extensions when --enable-versioning is used
- Fix -export-symbols in Linux in the bundled libtool.m4: o http://lists.gnu.org/archive/html/libtool/2002-07/msg00029.html # more about this: # http://marc.theaimsgroup.com/?l=php-dev&m=106629582813118&w=2
-rw-r--r--build/libtool.m417
-rw-r--r--configure.in3
2 files changed, 20 insertions, 0 deletions
diff --git a/build/libtool.m4 b/build/libtool.m4
index 41adb2b9e7..8dccd5160a 100644
--- a/build/libtool.m4
+++ b/build/libtool.m4
@@ -1403,6 +1403,23 @@ EOF
hardcode_shlibpath_var=no
;;
+ linux*)
+ if $LD --help 2>&1 | egrep ': supported targets:.* elf' > /dev/null; then
+ archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+ archive_expsym_cmds='echo "{" > $output_objdir/$libname.ver;
+ echo "global:" >> $output_objdir/$libname.ver;
+ cat $export_symbols | while read symbol; do
+ echo " \$symbol;" >> $output_objdir/$libname.ver;
+ done;
+ echo "local: *;" >> $output_objdir/$libname.ver;
+ echo "};" >> $output_objdir/$libname.ver~
+ $CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib~
+ rm -f $output_objdir/$libname.ver'
+ else
+ ld_shlibs=no
+ fi
+ ;;
+
*)
if $LD --help 2>&1 | egrep ': supported targets:.* elf' > /dev/null; then
archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
diff --git a/configure.in b/configure.in
index 6007a3ab65..e1f19ade2a 100644
--- a/configure.in
+++ b/configure.in
@@ -808,6 +808,9 @@ dnl Extensions post-config
dnl -------------------------------------------------------------------------
if test "$PHP_VERSIONING" = "yes"; then
+ if test -n "$PHP_MODULES"; then
+ AC_MSG_ERROR([--enable-versioning cannot be used with shared modules])
+ fi
test -z "$PHP_SYM_FILE" && PHP_SYM_FILE="$abs_srcdir/sapi/$PHP_SAPI/php.sym"
if test -f "$PHP_SYM_FILE"; then
EXTRA_LDFLAGS="-export-symbols $PHP_SYM_FILE $EXTRA_LDFLAGS"