[Python-bugs-list] [ python-Bugs-231439 ] python and Python interfaces should use cc -G for so's

nobody nobody@sourceforge.net
Mon, 05 Mar 2001 02:14:51 -0800


Bugs #231439, was updated on 2001-02-07 10:52
You can respond by visiting: 
http://sourceforge.net/tracker/?func=detail&atid=105470&aid=231439&group_id=5470

Category: Build
Group: Platform-specific
Status: Open
Priority: 5
Submitted By: Larry Rosenman
Assigned to: Martin v. Löwis
Summary: python and Python interfaces should use cc -G for so's

Initial Comment:
the Python build environment should use cc -G for it's shared libs.  This is true at *LEAST* on UnixWare.  The ld man page calls this out. 

The PostgreSQL interface build had to be modified because of this. 

If you need a shell account on a UnixWare 7 box, I can arrange same. 

LER


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

Comment By: Martin v. Löwis
Date: 2001-03-05 02:14

Message:
Logged In: YES 
user_id=21627

Can you please try adding -Wl,-Bexport into LINKFORSHARED?
This is essentially the same as SCO_SV, except that
-Bdynamic -dy appear to be the default on Unixware.

This option will cause symbols in the python executable to
be exported to shared libraries. By default, only shared
libraries export all their symbols; for executables, -Bhide
is the default. That should cause _PyObject_New to be
available.

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

Comment By: Neil Schemenauer
Date: 2001-03-03 23:37

Message:
Logged In: YES 
user_id=35752

Martin, with your patch I get:

ImportError: Python 2.1b1 (#1, Mar  4 2001, 01:30:18) [C] on
unixware5
Type "copyright", "credits" or "license" for more
information.
>>> import zlib
Traceback (most recent call last):
  File "<stdin>", line 1, in ?
dynamic linker: ./python: relocation error: symbol not
found: _PyObject_New; referenced from:
/home/nas/Python-2.1b1/build/lib.unixware-5-i386-2.1/zlib.so

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

Comment By: Larry Rosenman
Date: 2001-03-02 18:00

Message:
Logged In: YES 
user_id=36452

What about -KPIC -Ki486 -belf -Wl,-Bexport? This is what is
                                currently used on SCO_SV

I'd lose the -Ki486 -belf as they are not needed for 
UnixWare. 

You can look at man pages at:

http://uw7doc.sco.com

or my site at:
http://www.lerctr.org:457

I also gave neil (nas) a login, and can do the same for you. 

LER


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

Comment By: Martin v. Löwis
Date: 2001-03-02 15:40

Message:
Logged In: YES 
user_id=21627

OK, upload fails, so try this inline. You may succeed with
cut-n-paste from the HTML source

Index: configure.in
===================================================================
RCS file: /cvsroot/python/python/dist/src/configure.in,v
retrieving revision 1.207
diff -u -r1.207 configure.in
--- configure.in	2001/02/27 04:45:05	1.207
+++ configure.in	2001/03/02 23:36:10
@@ -576,6 +576,11 @@
 		else
 			LDSHARED="ld -Bshareable ${LDFLAGS}"
 		fi;;
+	UnixWare*)
+		if test "$GCC" = "yes"
+		then LDSHARED='$(CC) -shared'
+		else LDSHARED="cc -G";
+		fi ;;
 	SCO_SV*) LDSHARED="cc -G -KPIC -Ki486 -belf
-Wl,-Bexport";;
 	Monterey*) LDSHARED="cc -G -dy -Bdynamic -Bexport
-L/usr/lib/ia64l64";;
 	CYGWIN*) LDSHARED="gcc -shared
-Wl,--enable-auto-image-base";;
@@ -601,6 +606,11 @@
 	BSD/OS*/4*) CCSHARED="-fpic";;
 	OpenBSD*) CCSHARED="-fpic";;
 	FreeBSD*|NetBSD*) CCSHARED="-fPIC";;
+	UnixWare*)
+		if test "$GCC" = "yes"
+		then LDSHARED='$(CC) -fPIC'
+		else LDSHARED="cc -KPIC";
+		fi ;;
 	SCO_SV*) CCSHARED="-KPIC -dy -Bdynamic";;
 	Monterey*) CCSHARED="-G";;
 	IRIX*/6*)  case $CC in


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

Comment By: Martin v. Löwis
Date: 2001-03-02 15:38

Message:
Logged In: YES 
user_id=21627

Can you provide an example compiler invocation to see what
options are actually used? One -c invocation and one linker
invocation would be good.

What about -KPIC -Ki486 -belf -Wl,-Bexport? This is what is
currently used on SCO_SV.

Can you please try the attached patch (patch1 if upload
succeeds)?

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

Comment By: Larry Rosenman
Date: 2001-02-10 16:41

Message:
uname -u is invalid.  

$ uname -u
UX:uname: ERROR: Illegal option -- u
UX:uname: TO FIX: Usage:
        uname parameter_name
        uname -f
        uname [-acdilmnprsvAX]
        uname [-S system name]
$ uname -a
UnixWare lerlaptop 5 7.1.1 i386 x86at SCO UNIX_SVR5
$ uname -s
UnixWare
$ uname -r
5
$ uname -v
7.1.1
$ uname -a
UnixWare lerlaptop 5 7.1.1 i386 x86at SCO UNIX_SVR5
$ 


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

Comment By: Neil Schemenauer
Date: 2001-02-10 12:46

Message:
What does "uname -u" say for UnixWare?

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

Comment By: A.M. Kuchling
Date: 2001-02-08 09:23

Message:
Assigning to Neil.

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

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