[issue12991] Python 64-bit build on HP Itanium - Executable built successfully but modules failed with HP Compiler
Wong Wah Meng
report at bugs.python.org
Fri Sep 16 13:43:00 CEST 2011
New submission from Wong Wah Meng <wahmeng at freescale.com>:
Server Info: HP-UX B.11.31 Itanium ia64.
Evaluation copy is used however the license is being purchased, hopefully this are not these errors are not caused by evaluation copy.
# swlist -l product | grep Compiler
ACXX C.06.26.EVAL HP C/aC++ Compiler
C-ANSI-C C.06.26.EVAL HP C/aC++ Compiler
COMPLIBS B.11.31 Compiler Support Libraries
I encountered more failures in module build with my HP-UX ANSI C Compiler versus gcc. I wonder why. I need a Oracle plug-in later, i.e. cx_Oracle and the reason I do not want to ignore these errors now because I thought cx_Oracle will have to (or, better) be built using HP compiler, not gcc for support from Oracle.
I read through the README file, I followed the instruction to set the required environment variables before the configure is run, and unset them before make is run, also edited Makefile to remove Optimization and the -Olimit 1500. However, it gives me a lot more modules that are failed to be built versus 2 when gcc is used. At the bottom of the mail we can see what failed to be built.
I have summarized my inquiry as follow:-
1.) Despite following the instruction to edit the Makefile before make is run, I am surprise to see that the Makefile content is changed again when the executable is generated. The changed I edited is restored. Is this expected and did the compiler make use of the content that I edited when it did the build and link?
$ diff Makefile Makefile_Original
< OPT= -DNDEBUG -O
< BASECFLAGS= +DD64 -Olimit 1500
> OPT= -DNDEBUG
> BASECFLAGS= +DD64
2.) A lot of failed module and I suspected it is due +DD64 nopt recognized by the compiler. Why the HP-UX compiler did not recognize the option?
ld -b +DD64 -lxnet build/temp.hp-ux-B.11.31-ia64-2.7/home/r32813/Build/2.7.1/Python-2.7.1/Modules/mathmodule.o build/temp.hp-ux-B.11.31-ia64-2.7/home/r32813/Build/2.7.1/Python-2.7.1/Modules/_math.o -L/usr/local/lib -lm -o build/lib.hp-ux-B.11.31-ia64-2.7/math.so
ld: Unrecognized argument: +DD64
3.) This is a general question, in the README file there isn't specific instruction on how to enable gcc for 64-bit build. Does gcc support 64-bit build and how to?
4.) These are warning message. I have seen a lot of them. Am I right I can ignore them? I don't see them when I use gcc though.
cc -Ae -c +DD64 -g -DNDEBUG -I. -IInclude -I./Include -DPy_BUILD_CORE -o Modules/python.o ./Modules/python.c
"Include/pyfpe.h", line 8: warning #3750-D: "\" followed by white space is not a line splice
Thanks in advance for your input. Here is the output of my make using HP C compiler.
Python build finished, but the necessary bits to build these modules were not found:
_bsddb _curses _curses_panel
_sqlite3 _ssl _tkinter
bsddb185 bz2 dl
gdbm imageop linuxaudiodev
ossaudiodev readline spwd
To find the necessary bits, look in setup.py in detect_modules() for the module's name.
Failed to build these modules:
_bisect _codecs_cn _codecs_hk
_codecs_iso2022 _codecs_jp _codecs_kr
_codecs_tw _collections _csv
_ctypes _ctypes_test _elementtree
_functools _heapq _hotshot
_io _json _locale
_lsprof _md5 _multibytecodec
_multiprocessing _random _sha
_socket _struct _testcapi
array audioop binascii
cmath cPickle crypt
cStringIO datetime dbm
fcntl future_builtins grp
itertools math mmap
nis operator parser
pyexpat resource select
strop syslog termios
nosy: wah meng
title: Python 64-bit build on HP Itanium - Executable built successfully but modules failed with HP Compiler
type: compile error
versions: Python 2.7
Python tracker <report at bugs.python.org>
More information about the Python-bugs-list