Edit report at http://bugs.php.net/bug.php?id=43032&edit=1

 ID:               43032
 User updated by:  mamfelt at acm dot org
 Reported by:      mamfelt at acm dot org
 Summary:          installation of /usr/local/apache2/modules/libphp5.so
                   fails
 Status:           Bogus
 Type:             Bug
 Package:          Apache2 related
-Operating System: AIX 5.3 TL06
+Operating System: AIX 5.3 TL07 and AIX 6.1
-PHP Version:      5.2.4
+PHP Version:      5.2.13

 New Comment:

This problem is still "out there". I have just traced back and re-read
bugs http://bugs.php.net/bug.php?id=39187 and
http://bugs.php.net/bug.php?id=39197 which seem to place the blame the
linkers or not using GNU tools.

I also found an interesting comment on linux_questions - see comment #5
-
http://www.linuxquestions.org/questions/showthread.php?p=3607362#post3607362



where he comments on the rm -f logic.



It saddens me to read that PHP, or some of the PHP people who respond to
these regard AIX as "under them", that the world only exist in Linux and
GNU (at least that is the impression I have after re-reading the posts.



GNU-tools are not the only tools. PHP is open-source only because I can
download it. So, I post today in the hope that perceptions have changed
enough that a bug is not marked bogus just because someone is taking the
time and effort to port to AIX.



By the way - I am trying to build an installable package. Not all, but
most GNU tools use the variable DESTDIR to instruct Makefile to install
in a alternate location. (Some projects use BUILD_DIR).



The "problem" of shared libraries should not be a consideration -
perhaps a warning to be safe - when INSTALL_ROOT is being used. And my
comment from 2007 is still true regarding clearing out shared library
code. rm -f does not clear memory, only slibclean does.



For the "demonstration" I removed the @ in the install-sapi section of
Makefile to see the actual commands performed. The file it has just
installed is being removed. This is still a bug. And if it works for you
- I wonder how you set your system up - because I installed a system
specifically to build packages so that idiosyncrancies of my main server
would not be confusing matters.



===========

r...@x105:[/data/prj/php-5.2.13]INSTALL_ROOT=/data/prj/php5.2.13.apache2.sapi
                                   

r...@x105:[/data/prj/php-5.2.13]export INSTALL_ROOT                     
                                        

r...@x105:[/data/prj/php-5.2.13]make install-sapi                       
    

Installing PHP SAPI module:       apache2handler

        /data/prj/php-5.2.13/build/shtool mkdir -p
/data/prj/php5.2.13.apache2.sapi/usr/local/bin

        if test ! -r /data/prj/php-5.2.13/libs/libphp5.so; then  for i
in 0.0.0 0.0 0; do  if test -r /data/prj/php-5.2.13/libs/libphp5.so.$i;
then  ln -s /data/prj/php-5.2.13/libs/libphp5.so.$i
/data/prj/php-5.2.13/libs/libphp5.so;  break;  fi;  done;  fi

        /data/prj/php-5.2.13/build/shtool mkdir -p
'/data/prj/php5.2.13.apache2.sapi/usr/local/apache2/modules' &&
/data/prj/php-5.2.13/build/shtool mkdir -p
'/data/prj/php5.2.13.apache2.sapi/usr/local/apache2/conf' &&
/usr/local/apache2/bin/apxs -S
LIBEXECDIR='/data/prj/php5.2.13.apache2.sapi/usr/local/apache2/modules'
-S SYSCONFDIR='/data/prj/php5.2.13.apache2.sapi/usr/local/apache2/conf'
-i -a -n php5 libphp5.la

/usr/local/apache2/build/instdso.sh
SH_LIBTOOL='/usr/local/apache2/build/libtool' libphp5.la
/data/prj/php5.2.13.apache2.sapi/usr/local/apache2/modules

rm -f
/data/prj/php5.2.13.apache2.sapi/usr/local/apache2/modules/libphp5.so

/usr/local/apache2/build/libtool --mode=install cp libphp5.la
/data/prj/php5.2.13.apache2.sapi/usr/local/apache2/modules/

cp .libs/libphp5.a
/data/prj/php5.2.13.apache2.sapi/usr/local/apache2/modules/libphp5.a

cp .libs/libphp5.lai
/data/prj/php5.2.13.apache2.sapi/usr/local/apache2/modules/libphp5.la

libtool: install: warning: remember to run `libtool --finish
/data/prj/php-5.2.13/libs'

chmod 755
/data/prj/php5.2.13.apache2.sapi/usr/local/apache2/modules/libphp5.so

chmod:
/data/prj/php5.2.13.apache2.sapi/usr/local/apache2/modules/libphp5.so: A
file or directory in the path name does not exist.

apxs:Error: Command failed with rc=65536

.

make: 1254-004 The error code from the last command is 1.





Stop.

===============

Note: I'll resolve this by disabling the rm -f command, just as I did in
2007. I still request (actually recommend again) that you look at the
logic and consider slibclean if the goal is to clear memory. And to do
it before the copy is made, rather than after.


Previous Comments:
------------------------------------------------------------------------
[2007-10-22 08:19:17] j...@php.net

See bug #39197



------------------------------------------------------------------------
[2007-10-19 10:21:39] mamfelt at acm dot org

Description:
------------
The last part of make install fails, no php5 libraries are installed
into /usr/lib/apache2/modules. Further, the file libs/libphp5.so is not
built either.



Note: regarding the following code: (in
/usr/local/apache2/build/instdso.sh)



if test "$SYS" = "AIX"

then

    # on AIX, shared libraries remain in storage even when

    # all processes using them have exited; standard practice

    # prior to installing a shared library is to rm -f first

    CMD="rm -f $TARGETDIR/$TARGET_NAME"

    echo $CMD

    $CMD || exit $?

fi



The command you should consider is:

slibclean (Shared Library Clean) to cleanup shared memory.







Reproduce code:
---------------
mich...@x054:[/home/michael/prj/php-5.2.4]make install

        echo '\

\

Installing PHP SAPI module:       apache2handler

/usr/local/apache2/build/instdso.sh
SH_LIBTOOL='/usr/local/apache2/build/libtool' libphp5.la
/usr/local/apache2/modules

rm -f /usr/local/apache2/modules/libphp5.so

/usr/local/apache2/build/libtool --mode=install cp libphp5.la
/usr/local/apache2/modules/

cp .libs/libphp5.a /usr/local/apache2/modules/libphp5.a

cp .libs/libphp5.lai /usr/local/apache2/modules/libphp5.la

libtool: install: warning: remember to run `libtool --finish
/home/michael/prj/php-5.2.4/libs'

chmod 755 /usr/local/apache2/modules/libphp5.so

chmod: /usr/local/apache2/modules/libphp5.so: A file or directory in the
path name does not exist.

apxs:Error: Command failed with rc=65536

.

make: 1254-004 The error code from the last command is 1.





Stop.



Expected result:
----------------
The correct files installed in /usr/local/apache2/modules

Actual result:
--------------
mich...@x054:[/home/michael/prj/php-5.2.4]ls -l libs

total 41152

-rw-r--r--   1 root     system     21062992 Oct 19 11:16 libphp5.a

-rw-r--r--   1 root     system         1209 Oct 19 11:16 libphp5.la



mich...@x054:[/home/michael/prj/php-5.2.4]ls -l
/usr/local/apache2/modules

total 984

-rw-r--r--   1 root     system         8951 Oct 19 10:25 httpd.exp

-rwxr-xr-x   1 root     system        90560 Oct 19 10:26 mod_cgi.so

-rwxr-xr-x   1 root     system        64654 Oct 19 10:26 mod_headers.so

-rwxr-xr-x   1 root     system        56795 Oct 19 10:26 mod_info.so

-rwxr-xr-x   1 root     system       190456 Oct 19 10:27 mod_rewrite.so

-rwxr-xr-x   1 root     system        40889 Oct 19 10:27 mod_speling.so




------------------------------------------------------------------------



-- 
Edit this bug report at http://bugs.php.net/bug.php?id=43032&edit=1

Reply via email to