Issue1397850
Created on 2006-01-05 16:01 by hajoehlers, last changed 2009-02-09 06:28 by loewis. 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) * ![]() |
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) * ![]() |
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) * ![]() |
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) * ![]() |
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) | 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 |
| 2009-02-09 06:28:22 | loewis | set | status: open -> closed resolution: wont fix |
| 2009-02-09 06:17:30 | ajaksu2 | set | nosy:
+ 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:11 | hajoehlers | create | |
