@@ -2925,17 +2925,17 @@ dnl providerdesc
29252925dnl 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,12 +2969,46 @@ 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
29793011EOF
3012+ ;;
3013+ esac
29803014] )
0 commit comments