mirror of
https://github.com/php/php-src.git
synced 2025-08-15 13:38:49 +02:00
Allow *.a and *.o as libtool objects, and hardcode runpaths into
shared libraries. (Both taken from FreeBSD's libtool port.)
This commit is contained in:
parent
e3d0c91dbb
commit
b2edf87b39
4 changed files with 149 additions and 14 deletions
|
@ -114,9 +114,9 @@ fi
|
|||
|
||||
./scripts/preconfig
|
||||
|
||||
rm -f ltmain.sh
|
||||
rm -f ltmain.sh ltconfig
|
||||
libtoolize --automake --copy --force
|
||||
patch ltmain.sh < patch-ltmain.sh
|
||||
cat patch-?? | patch
|
||||
|
||||
mv aclocal.m4 aclocal.m4.old 2>/dev/null
|
||||
aclocal
|
||||
|
|
21
patch-aa
Normal file
21
patch-aa
Normal file
|
@ -0,0 +1,21 @@
|
|||
*** /usr/local/share/libtool/ltconfig Wed Jul 14 14:46:28 1999
|
||||
--- ltconfig Wed Oct 6 20:32:14 1999
|
||||
***************
|
||||
*** 1226,1233 ****
|
||||
|
||||
*)
|
||||
if $LD --help 2>&1 | egrep ': supported targets:.* elf' > /dev/null; then
|
||||
! archive_cmds='$CC -shared $libobjs $deplibs $linkopts ${wl}-soname $wl$soname -o $lib'
|
||||
! archive_expsym_cmds='$CC -shared $libobjs $deplibs $linkopts ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
|
||||
else
|
||||
ld_shlibs=no
|
||||
fi
|
||||
--- 1226,1233 ----
|
||||
|
||||
*)
|
||||
if $LD --help 2>&1 | egrep ': supported targets:.* elf' > /dev/null; then
|
||||
! archive_cmds='$CC -shared $compile_rpath $libobjs $deplibs $linkopts ${wl}-soname $wl$soname -o $lib'
|
||||
! archive_expsym_cmds='$CC -shared $compile_rpath $libobjs $deplibs $linkopts ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
|
||||
else
|
||||
ld_shlibs=no
|
||||
fi
|
126
patch-ab
Normal file
126
patch-ab
Normal file
|
@ -0,0 +1,126 @@
|
|||
*** /usr/local/share/libtool/ltmain.sh Wed Jul 14 14:46:28 1999
|
||||
--- ltmain.sh Wed Oct 6 20:45:47 1999
|
||||
***************
|
||||
*** 1162,1168 ****
|
||||
|
||||
*.o | *.obj | *.a | *.lib)
|
||||
# A standard object.
|
||||
! objs="$objs $arg"
|
||||
;;
|
||||
|
||||
*.lo)
|
||||
--- 1162,1168 ----
|
||||
|
||||
*.o | *.obj | *.a | *.lib)
|
||||
# A standard object.
|
||||
! libobjs="$libobjs $arg"
|
||||
;;
|
||||
|
||||
*.lo)
|
||||
***************
|
||||
*** 1796,1801 ****
|
||||
--- 1796,1889 ----
|
||||
esac
|
||||
fi
|
||||
|
||||
+ if test -n "$rpath$xrpath"; then
|
||||
+ # If the user specified any rpath flags, then add them.
|
||||
+ for libdir in $rpath $xrpath; do
|
||||
+ # This is the magic to use -rpath.
|
||||
+ case "$compile_rpath " in
|
||||
+ *" $libdir "*) ;;
|
||||
+ *) compile_rpath="$compile_rpath $libdir" ;;
|
||||
+ esac
|
||||
+ case "$finalize_rpath " in
|
||||
+ *" $libdir "*) ;;
|
||||
+ *) finalize_rpath="$finalize_rpath $libdir" ;;
|
||||
+ esac
|
||||
+ done
|
||||
+ fi
|
||||
+
|
||||
+ # Now hardcode the library paths
|
||||
+ rpath=
|
||||
+ hardcode_libdirs=
|
||||
+ for libdir in $compile_rpath; do
|
||||
+ if test -n "$hardcode_libdir_flag_spec"; then
|
||||
+ if test -n "$hardcode_libdir_separator"; then
|
||||
+ if test -z "$hardcode_libdirs"; then
|
||||
+ hardcode_libdirs="$libdir"
|
||||
+ else
|
||||
+ # Just accumulate the unique libdirs.
|
||||
+ case "$hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator" in
|
||||
+ *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
|
||||
+ ;;
|
||||
+ *)
|
||||
+ hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
|
||||
+ ;;
|
||||
+ esac
|
||||
+ fi
|
||||
+ else
|
||||
+ eval flag=\"$hardcode_libdir_flag_spec\"
|
||||
+ rpath="$rpath $flag"
|
||||
+ fi
|
||||
+ elif test -n "$runpath_var"; then
|
||||
+ case "$perm_rpath " in
|
||||
+ *" $libdir "*) ;;
|
||||
+ *) perm_rpath="$perm_rpath $libdir" ;;
|
||||
+ esac
|
||||
+ fi
|
||||
+ done
|
||||
+ # Substitute the hardcoded libdirs into the rpath.
|
||||
+ if test -n "$hardcode_libdir_separator" &&
|
||||
+ test -n "$hardcode_libdirs"; then
|
||||
+ libdir="$hardcode_libdirs"
|
||||
+ eval rpath=\" $hardcode_libdir_flag_spec\"
|
||||
+ fi
|
||||
+ compile_rpath="$rpath"
|
||||
+
|
||||
+ rpath=
|
||||
+ hardcode_libdirs=
|
||||
+ for libdir in $finalize_rpath; do
|
||||
+ if test -n "$hardcode_libdir_flag_spec"; then
|
||||
+ if test -n "$hardcode_libdir_separator"; then
|
||||
+ if test -z "$hardcode_libdirs"; then
|
||||
+ hardcode_libdirs="$libdir"
|
||||
+ else
|
||||
+ # Just accumulate the unique libdirs.
|
||||
+ case "$hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator" in
|
||||
+ *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
|
||||
+ ;;
|
||||
+ *)
|
||||
+ hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
|
||||
+ ;;
|
||||
+ esac
|
||||
+ fi
|
||||
+ else
|
||||
+ eval flag=\"$hardcode_libdir_flag_spec\"
|
||||
+ rpath="$rpath $flag"
|
||||
+ fi
|
||||
+ elif test -n "$runpath_var"; then
|
||||
+ case "$finalize_perm_rpath " in
|
||||
+ *" $libdir "*) ;;
|
||||
+ *) finalize_perm_rpath="$finalize_perm_rpath $libdir" ;;
|
||||
+ esac
|
||||
+ fi
|
||||
+ done
|
||||
+ # Substitute the hardcoded libdirs into the rpath.
|
||||
+ if test -n "$hardcode_libdir_separator" &&
|
||||
+ test -n "$hardcode_libdirs"; then
|
||||
+ libdir="$hardcode_libdirs"
|
||||
+ eval rpath=\" $hardcode_libdir_flag_spec\"
|
||||
+ fi
|
||||
+ finalize_rpath="$rpath"
|
||||
+
|
||||
# Create the output directory, or remove our outputs if we need to.
|
||||
if test -d $output_objdir; then
|
||||
$show "${rm}r $output_objdir/$outputname $output_objdir/$libname.* $output_objdir/${libname}${release}.*"
|
||||
***************
|
||||
*** 1955,1960 ****
|
||||
--- 2043,2049 ----
|
||||
done
|
||||
done
|
||||
if test -n "$a_deplib" ; then
|
||||
+ newdeplibs="$newdeplibs $a_deplib"
|
||||
droppeddeps=yes
|
||||
echo
|
||||
echo "*** Warning: This library needs some functionality provided by $a_deplib."
|
|
@ -1,12 +0,0 @@
|
|||
*** ltmain.sh.orig Wed Oct 6 15:10:21 1999
|
||||
--- ltmain.sh Wed Oct 6 15:11:33 1999
|
||||
***************
|
||||
*** 1955,1960 ****
|
||||
--- 1955,1961 ----
|
||||
done
|
||||
done
|
||||
if test -n "$a_deplib" ; then
|
||||
+ newdeplibs="$newdeplibs $a_deplib"
|
||||
droppeddeps=yes
|
||||
echo
|
||||
echo "*** Warning: This library needs some functionality provided by $a_deplib."
|
Loading…
Add table
Add a link
Reference in a new issue