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: SO name is too short! Python 2.2.1
Type: Stage:
Components: Build Versions:
process
Status: closed Resolution: fixed
Dependencies: Superseder:
Assigned To: Nosy List: eschasi, loewis
Priority: normal Keywords:

Created on 2002-09-17 03:32 by eschasi, last changed 2022-04-10 16:05 by admin. This issue is now closed.

Messages (5)
msg12409 - (view) Author: eschasi (eschasi) Date: 2002-09-17 03:32
I had various odd problems building python 2.2.1 under the 
FreeBSD ports, but have finally resolved it. 
 
It turns out that my standard system setup includes two 
environment variables which are used in shell scripts to 
generate inverse video.  They are SO and SE, for 
standout and standend, as per the classic termcap/termlib 
variables. 
 
Unfortunately, the ./configure script uses SO as the 
extension for shared libraries.  If it is previously defined, 
the value is retained rather than developed by test.  Thus 
my python builds were looking for shared libraries with 
the name foo.<ESC>[7m rather than foo.so. 
 
I found two fixes which worked.  One was to undefine SO. 
The other was to rummage thru configure, configure.in and 
Makefile.pre.in at the top dir and change SO to SHLIBEXT. 
After either, the configure/builds ran fine. 
 
I notice in those files that SO is pretty much the *only* 
two-character variable name used that is not already 
strongly associated with a 'standard' name for builds 
via make (CC, LD, etc).  I have not encounted any other 
use of SO except python's and mine. 
 
While I'm not presumptuous enough to suggest that pythons 
build should change to avoid my problems, I *will* note 
that long, meaningful variable names are alwas better than 
short, obscure, misleading ones.  While SO does reflect 
the UNIX shared library, it's a bit misleading for DLLs, etc. 
msg12410 - (view) Author: Martin v. Löwis (loewis) * (Python committer) Date: 2002-09-17 15:33
Logged In: YES 
user_id=21627

When changing this, I'm concerned that third-party code may
break which relies on the extension being SO. I'd like to
hear other opinions on whether this should or should not be
changed.
msg12411 - (view) Author: eschasi (eschasi) Date: 2002-09-17 17:48
Logged In: YES 
user_id=161331

Sorry, you're confusing the variable name and the shared file 
extension name.  For UNIX systems, the extension has to be .so; 
it has to be .dll for Windows, etc.  The internal variable the 
build process uses to hold the extension is a separate item. 
msg12412 - (view) Author: Martin v. Löwis (loewis) * (Python committer) Date: 2002-09-17 17:57
Logged In: YES 
user_id=21627

I'm not confusing the two. I'm concerned that extensions
module build procedures read through the generated makefile,
try to extract SO from it, and make use of this. It appears
that your requested change would break such build procedures.

I'm not worried about the actual extension; I know it has to
be .so or .sl on Unix.
msg12413 - (view) Author: Martin v. Löwis (loewis) * (Python committer) Date: 2003-06-14 14:47
Logged In: YES 
user_id=21627

I think this should be solved by unsetting SO before
configuration. I have added a warning in

configure.in 1.416
configure 1.405

if SO is set, to allow the user to interrupt configure.
History
Date User Action Args
2022-04-10 16:05:40adminsetgithub: 37184
2002-09-17 03:32:53eschasicreate