64-bit Python 2.3.latest on HP-UX 11.23: success

Matej Kenda kendamatej at yahoo.com
Sat Sep 25 16:44:16 EDT 2004


Hi all,

This message is to let you know that I have successfully compiled the latest
sources from the 2.3 branch on the abovementioned OS using the HP ansiC
compiler version 5.50.

Final status: success, it works fine

---

The procedure:

1. Get the latest sources of 2.3

cvs -z3 -d:pserver:anonymous at cvs.sourceforge.net:/cvsroot/python co -r \
release23-maint python 

2. Install the 64-bit OpenSSH downloaded from HP

3. Run configure script with additional CFLAGS

export CFLAGS="-Ae +DD64 -mt -O0 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64
"
./configure --prefix=/usr/local/aCCPython


4. Edit Makefile to add support for 64-bit compilation and turn off
optimisation.

I got the hint to remove the optimisation in the README file. I didn't try
to turn the optimisation on, but it may work with the recent ansiC
compiler.

Diff between the generated Makefile and modified one:

 # Compiler options
-OPT=           -DNDEBUG -O
-BASECFLAGS=
+OPT=           -O0
+BASECFLAGS=    +DD64 -mt
 CFLAGS=                $(BASECFLAGS) $(OPT)
-CPPFLAGS=      -I. -I$(srcdir)/Include
-LDFLAGS=
+CPPFLAGS=      -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -I.
-I$(srcdir)/Include
+LDFLAGS=       +DD64 -mt
-LINKFORSHARED= -Wl,-E -Wl,+s
+LINKFORSHARED= -Wl,-E -Wl,-s +DD64
 # Extra C flags added for building the interpreter object files.
-CFLAGSFORSHARED=
+CFLAGSFORSHARED= +z

5. Edit the pyconfig.h file to enable posix threads

6. Edit the setup.py to avoid using installed 32-bit libraries

Index: setup.py
===================================================================
RCS file: /cvsroot/python/python/dist/src/setup.py,v
retrieving revision 1.171.6.2
diff -u -r1.171.6.2 setup.py
--- setup.py    21 Oct 2003 20:01:21 -0000      1.171.6.2
+++ setup.py    24 Sep 2004 08:16:24 -0000
@@ -591,7 +591,8 @@

         # The standard Unix dbm module:
         if platform not in ['cygwin']:
-            if find_file("ndbm.h", inc_dirs, []) is not None:
+#            if find_file("ndbm.h", inc_dirs, []) is not None:
+            if None is not None:
                 # Some systems have -lndbm, others don't
                 if self.compiler.find_library_file(lib_dirs, 'ndbm'):
                     ndbm_libs = ['ndbm']
@@ -698,7 +699,8 @@
         #
         # You can upgrade zlib to version 1.1.4 yourself by going to
         # http://www.gzip.org/zlib/
-        zlib_inc = find_file('zlib.h', [], inc_dirs)
+#        zlib_inc = find_file('zlib.h', [], inc_dirs)
+        zlib_inc = None
         if zlib_inc is not None:
             zlib_h = zlib_inc[0] + '/zlib.h'
             version = '"0.0.0"'


7. run gmake all install

---

Issues:

1. The following line makes a lot of warnings when compiling, because it
looks like the HP compiler already sets this:

/* Define to activate features from IEEE Stds 1003.1-2001 */
#define _POSIX_C_SOURCE 200112L

2. Shared library extensions for modules

The ELF libraries on HP-UX should have the extension .so. I tries to change
the library extension from .sl to .so. However, the install scrips searched
for files with the .sl extension anyway. I didn't dig deep to solve this
issue, because the library extensions aren't that important for me at this
point.

---

I can send the Makefile and the pyconfig.h that I used to compile
the Python to anyone interested.


Best regards,

Matej

--
Matej Kenda, HERMES SoftLab d.d., Slovenia



More information about the Python-list mailing list