This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

classification
Title: libpython2.4.so get not installed
Type: Stage:
Components: Installation Versions: Python 3.1, Python 2.7
process
Status: closed Resolution: wont fix
Dependencies: Superseder:
Assigned To: Nosy List: ajaksu2, hajoehlers, loewis, nnorwitz
Priority: normal Keywords:

Created on 2006-01-05 16:01 by hajoehlers, last changed 2022-04-11 14:56 by admin. This issue is now closed.

Messages (8)
msg60859 - (view) Author: hajo (hajoehlers) Date: 2006-01-05 16:01
Given:
AIX 5.1
GCC 3.3.2
Python 2.4.2 ( Python-2.4.2.tar.gz )

./configure       \
 --enable-unicode \
 --enable-shared  \
 --with-gcc       \
 --mandir=/usr/local/man  \
 --infodir=/usr/local/info

Problem:
during " gmake install "  the libpython2.4.a will not
be installed in /usr/local/lib and the link for
libpython2.4.so does not exist then.

I did not dig further but below is the output from
"gmake install"

For me the 
...
if test -f libpython2.4.so; then ...

look wrong because it does not contain a Path and will
fail.

regards
Hajo

output during "gmake install"

...
if test -f libpython2.4.so; then \^M
        if test ".so" = .dll; then \^M
                /opt/freeware/bin/install -c -m 555
libpython2.4.so /usr/local/bin; \^M
        else \^M
                /opt/freeware/bin/install -c -m 555
libpython2.4.so /usr/local/lib/libpython2.4.a; \^M
                if test libpython2.4.so !=
libpython2.4.a; then \^M
                        (cd /usr/local/lib; ln -sf
libpython2.4.a libpython2.4.so); \^M
                fi \^M
        fi; \^M
else    true; \^M
...
msg60860 - (view) Author: hajo (hajoehlers) Date: 2006-01-06 16:24
Logged In: YES 
user_id=1420117

Its looked like that the libpython2.4.so will not be build.
I took a lock at the Makefile but could not get a clear view
what option is needed to let the system build a libpython2.4.so

msg60861 - (view) Author: Neal Norwitz (nnorwitz) * (Python committer) Date: 2006-01-09 05:21
Logged In: YES 
user_id=33168

The problem seems to be in configure.in.  Search for
Py_ENABLE_SHARED.  Try adding a line for LDLIBRARY (like for
BeOS).  You may also need a line for INSTSONAME and others
variables too.  After modifying configure.in, you will need
to regenerate with autoconf.  You can try modifying
configure which is generated by autoconf.  Then re-run
configure.  Search for libpython in the generated Makefile.
 That should have a .so ending.
msg60862 - (view) Author: Neal Norwitz (nnorwitz) * (Python committer) Date: 2006-01-09 05:34
Logged In: YES 
user_id=33168

The problem seems to be in configure.in.  Search for
Py_ENABLE_SHARED.  Try adding a line for LDLIBRARY (like for
BeOS).  You may also need a line for INSTSONAME and others
variables too.  After modifying configure.in, you will need
to regenerate with autoconf.  You can try modifying
configure which is generated by autoconf.  Then re-run
configure.  Search for libpython in the generated Makefile.
 That should have a .so ending.
msg60863 - (view) Author: hajo (hajoehlers) Date: 2006-01-10 21:26
Logged In: YES 
user_id=1420117

Hi Neal
if give up to test/fix the configure.in With the help from
Ulrich Berning i build a static version and convert these to
a shared one. See notes down below.

Tnx for supporting
Hajo


$ cat ./mkshared.python <<EOF

#!/bin/ksh
# Task: Create a shared/dynamic version of python

user=`whoami`
if [ $user != 'root' ]; then
  echo "Try again as root ..."
  exit 1
fi
case $1 in
        -gcc)
        cmd="gcc -o python_shared Modules/python.o \
 -Wl,-bE:Modules/python.exp \
 -L/usr/local/lib -lpython2.4 -lpthread -ldl -lm -lc"
        ;;
        -xlc)
        cmd="cc_r -o python_shared Modules/python.o \
 -bE:Modules/python.exp \
 -L/usr/local/lib -lpython2.4 -lpthread -ldl -lm -lc"
        ;;
        *)
        echo "Usage $0 -gcc|-xlc"
        exit 0
        ;;
esac

echo "Creating temporary directory '.extract' ..."
mkdir -p .extract

echo "Creating a shared object from the static library ..."
ld -o .extract/shr.o libpython2.4.a -bnoentry \
 -bM:SRE -bE:Modules/python.exp \
 -H512 -T512 -lpthread -ldl -lm -lc
chmod 555 .extract/shr.o

echo "Creating shared library 'libpython2.4.so' ..."
ar vr libpython2.4.so .extract/shr.o

echo "Removing temporary directory '.extract' ..."
rm -rf .extract

echo "Installing shared library 'libpython2.4.so' as
'libpython2.4.a'
in /usr/local/lib ..."
slibclean
cp libpython2.4.so /usr/local/lib/libpython2.4.a
chmod 555 /usr/local/lib/libpython2.4.a
strip /usr/local/lib/libpython2.4.a
rm -f libpython2.4.so

echo "Linking new python executable with shared library ..."
eval $cmd

echo "Removing old executables in /usr/local/bin ..."
rm -f /usr/local/bin/python
rm -f /usr/local/bin/python2.4

echo "Installing new binary in /usr/local/lib ..."
cp python_shared /usr/local/bin/python2.4
strip /usr/local/bin/python2.4
chmod 755 /usr/local/bin/python2.4
ln -f /usr/local/bin/python2.4 /usr/local/bin/python
rm -f python_shared

echo "Calling dump -H on new executable to check the use of
the shared
library ..."
dump -H /usr/local/bin/python2.4

echo "All done ..."
EOF

# Clean Up LIBPATH or verify its setting.
unset LIBPATH

# Change into Python build directory
cd ./Python-2.4.2

# Start the converstion script
../mkshared.python -xlc

Now is /usr/local/bin/python an small executable which load
libpython2.4.so 
msg60864 - (view) Author: Martin v. Löwis (loewis) * (Python committer) Date: 2006-01-11 22:55
Logged In: YES 
user_id=21627

--enable-shared simply isn't supported on AIX. I'm tempted
to reject this as "won't fix".

If anything should be fixed, we should add

  *) AC_MSG_ERROR(--enable-shared not supported on this system)
  ;;

to the 

# Other platforms follow
if test $enable_shared = "yes"; then

block.
msg60865 - (view) Author: Neal Norwitz (nnorwitz) * (Python committer) Date: 2006-01-11 23:02
Logged In: YES 
user_id=33168

If it's not supported, then I definitely agree we should add
the error message you propose.
msg81444 - (view) Author: Daniel Diniz (ajaksu2) * (Python triager) Date: 2009-02-09 06:17
configure.in still doesn't have a "*) AC_MSG_ERROR(--enable-shared not
supported on this system)", closing as won't fix still sounds good.
History
Date User Action Args
2022-04-11 14:56:14adminsetgithub: 42769
2009-02-09 06:28:22loewissetstatus: open -> closed
resolution: wont fix
2009-02-09 06:17:30ajaksu2setnosy: + ajaksu2
title: libpython2.4.so get not installed -> libpython2.4.so get not installed
messages: + msg81444
versions: + Python 3.1, Python 2.7, - Python 2.4
2006-01-05 16:01:11hajoehlerscreate