Skip to content

Commit 2251e43

Browse files
committedAug 16, 2013
Merge branch 'PHP-5.5'
* PHP-5.5: With --enable-dtrace, the correct PIC/non-PIC .o files on Solaris and Linux are now used. DTrace is part of Oracle Linux. See https://oss.oracle.com/projects/DTrace/
2 parents 30502db + 4b4ffaf commit 2251e43

File tree

1 file changed

+38
-4
lines changed

1 file changed

+38
-4
lines changed
 

‎acinclude.m4

+38-4
Original file line numberDiff line numberDiff line change
@@ -2925,17 +2925,17 @@ dnl providerdesc
29252925
dnl header-file
29262926
ac_hdrobj=$2
29272927
2928-
dnl Add providerdesc.o into global objects when needed
2928+
dnl Add providerdesc.o or .lo into global objects when needed
29292929
case $host_alias in
29302930
*freebsd*)
29312931
PHP_GLOBAL_OBJS="[$]PHP_GLOBAL_OBJS [$]ac_bdir[$]ac_provsrc.o"
29322932
PHP_LDFLAGS="$PHP_LDFLAGS -lelf"
29332933
;;
29342934
*solaris*)
2935-
PHP_GLOBAL_OBJS="[$]PHP_GLOBAL_OBJS [$]ac_bdir[$]ac_provsrc.o"
2935+
PHP_GLOBAL_OBJS="[$]PHP_GLOBAL_OBJS [$]ac_bdir[$]ac_provsrc.lo"
29362936
;;
29372937
*linux*)
2938-
PHP_GLOBAL_OBJS="[$]PHP_GLOBAL_OBJS [$]ac_bdir[$]ac_provsrc.o"
2938+
PHP_GLOBAL_OBJS="[$]PHP_GLOBAL_OBJS [$]ac_bdir[$]ac_provsrc.lo"
29392939
;;
29402940
esac
29412941
@@ -2969,14 +2969,48 @@ dnl in GNU Make which causes the .d file to be overwritten (Bug 61268)
29692969
$abs_srcdir/$ac_provsrc:;
29702970
29712971
$ac_bdir[$]ac_hdrobj: $abs_srcdir/$ac_provsrc
2972-
CFLAGS="\$(CFLAGS_CLEAN)" dtrace -h -C -s $ac_srcdir[$]ac_provsrc -o \$[]@.bak && \$(SED) 's,PHP_,DTRACE_,g' \$[]@.bak > \$[]@
2972+
CFLAGS="\$(CFLAGS_CLEAN)" dtrace -h -C -s $ac_srcdir[$]ac_provsrc -o \$[]@.bak && \$(SED) -e 's,PHP_,DTRACE_,g' \$[]@.bak > \$[]@
29732973
29742974
\$(PHP_DTRACE_OBJS): $ac_bdir[$]ac_hdrobj
29752975
2976+
EOF
2977+
2978+
case $host_alias in
2979+
*solaris*|*linux*)
2980+
dtrace_prov_name="`echo $ac_provsrc | $SED -e 's#\(.*\)\/##'`.o"
2981+
dtrace_lib_dir="`echo $ac_bdir[$]ac_provsrc | $SED -e 's#\(.*\)/[^/]*#\1#'`/.libs"
2982+
dtrace_d_obj="`echo $ac_bdir[$]ac_provsrc | $SED -e 's#\(.*\)/\([^/]*\)#\1/.libs/\2#'`.o"
2983+
dtrace_nolib_objs='$(PHP_DTRACE_OBJS:.lo=.o)'
2984+
for ac_lo in $PHP_DTRACE_OBJS; do
2985+
dtrace_lib_objs="[$]dtrace_lib_objs `echo $ac_lo | $SED -e 's,\.lo$,.o,' -e 's#\(.*\)\/#\1\/.libs\/#'`"
2986+
done;
2987+
dnl Always attempt to create both PIC and non-PIC DTrace objects (Bug 63692)
2988+
cat>>Makefile.objects<<EOF
2989+
$ac_bdir[$]ac_provsrc.lo: \$(PHP_DTRACE_OBJS)
2990+
echo "[#] Generated by Makefile for libtool" > \$[]@
2991+
@test -d "$dtrace_lib_dir" || mkdir $dtrace_lib_dir
2992+
if CFLAGS="\$(CFLAGS_CLEAN)" dtrace -G -o $dtrace_d_obj -s $abs_srcdir/$ac_provsrc $dtrace_lib_objs 2> /dev/null && test -f "$dtrace_d_obj"; then [\\]
2993+
echo "pic_object=['].libs/$dtrace_prov_name[']" >> \$[]@ [;\\]
2994+
else [\\]
2995+
echo "pic_object='none'" >> \$[]@ [;\\]
2996+
fi
2997+
if CFLAGS="\$(CFLAGS_CLEAN)" dtrace -G -o $ac_bdir[$]ac_provsrc.o -s $abs_srcdir/$ac_provsrc $dtrace_nolib_objs 2> /dev/null && test -f "$ac_bdir[$]ac_provsrc.o"; then [\\]
2998+
echo "non_pic_object=[']$dtrace_prov_name[']" >> \$[]@ [;\\]
2999+
else [\\]
3000+
echo "non_pic_object='none'" >> \$[]@ [;\\]
3001+
fi
3002+
3003+
EOF
3004+
3005+
;;
3006+
*)
3007+
cat>>Makefile.objects<<EOF
29763008
$ac_bdir[$]ac_provsrc.o: \$(PHP_DTRACE_OBJS)
29773009
CFLAGS="\$(CFLAGS_CLEAN)" dtrace -G -o \$[]@ -s $abs_srcdir/$ac_provsrc $dtrace_objs
29783010
29793011
EOF
3012+
;;
3013+
esac
29803014
])
29813015

29823016
dnl

0 commit comments

Comments
 (0)
Please sign in to comment.