[Patches] [ python-Patches-460751 ] --with-shared: python with shared lib

noreply@sourceforge.net noreply@sourceforge.net
Wed, 12 Sep 2001 01:06:17 -0700


Patches item #460751, was opened at 2001-09-11 14:29
You can respond by visiting: 
http://sourceforge.net/tracker/?func=detail&atid=305470&aid=460751&group_id=5470

Category: Build
Group: None
Status: Open
Resolution: None
Priority: 5
Submitted By: Frederic Giacometti (giacometti)
Assigned to: Nobody/Anonymous (nobody)
Summary: --with-shared: python with shared lib

Initial Comment:
As a follow up to patch 400938
(https://sourceforge.net/tracker/?group_id=5470&atid=305470&func=detail&aid=400938),
here is an implementation of the --with-shared
configure option for building python on Posix systems
as a shared library.

Building python as shared library is activated with the
--with-shared option on ./configure

The following points are drawn to particular attention:

- A configbuild.py module is generated and placed in
the machine-dependent directory. It records most 
Python/Makefile variables (CC, CFLAG, LDSHARED...), and
make them available in Python.

- The build has been tested on:
   Linux2: OK
   SunOS5: OK
   IRIX64: Build OK, crash on test (bus error)

- Inference with distutils: I found it very difficult
understanding the distutil architecture and finding the
right points of change; I minimized my interaction
there. Furthermore, the availability of the
'configbuild' module overlaps some of the distutils;
but 'configbuild' is very easy to use ...

- Unresolved symbols: I turned on the symbol checking
flags whenever possible, on behalf the its better
generating the error on build than at runtime.

- configure.in: I only edited the configure Bourne
script, and did not bother with configure.in (actually,
I deleted it) and its autoconfig/m4 macro comparses.

Frederic Giacometti





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

>Comment By: Martin v. Löwis (loewis)
Date: 2001-09-12 01:06

Message:
Logged In: YES 
user_id=21627

As for libtool: I strongly advise not to use it. It is
broken in too many ways to enumerate.

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

Comment By: Martin v. Löwis (loewis)
Date: 2001-09-12 00:18

Message:
Logged In: YES 
user_id=21627

I recommend to rework this patch to get rid of 
configbuild. I cannot see what you achieve with the 
configbuild module that you couldn't do with 
distutils.sysconfig.get_config_vars (which is capable of 
parsing the Makefile directly).

I also recommend to go through the patch chunk by chunk, 
asking yourself whether this chunk *really* is needed to 
achieve the desired functionality. E.g. I cannot see the 
relationship of the .cvsignore chunk; I also believe that 
removal of .purify is incorrect. Likewise, while I 
sympathize with the unresolved symbols change, I believe 
it is unrelated to the main objective of this patch 
(building Python shared).

What is the rationale for not changing configure.in? 
As-is, this patch is useless: configure will be 
overwritten everytime you run autoconf. Please get a copy 
of autoconf on one of your systems, change configure.in, 
run autoconf, and then provide us with a patch that only 
changes configure.in: everybody reviewing this patch 
should be capable of running autoconf. configure is a 
generated file and should not be edited manually.

What is the rationale for the introduction of the 
THREADOBJ variable?



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

Comment By: Guido van Rossum (gvanrossum)
Date: 2001-09-11 19:03

Message:
Logged In: YES 
user_id=6380

Haven't seen the patch yet, but I like the idea -- the
command line option suggests that it shouldn't hurt
platforms where it can't be done or has to be done
differently.

Alternative: we could also consider using libtool. I didn't
like that much in the past, but maybe it would work. Dunno.
Anybody know about it?

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

You can respond by visiting: 
http://sourceforge.net/tracker/?func=detail&atid=305470&aid=460751&group_id=5470