[Python-Dev] python3 k1om dissociation permanence (original) (raw)

ƦOB COASTN robertpancoast77 at gmail.com
Fri Jan 22 14:56:37 EST 2016


Hello,

Enabling the build system for Intel MIC k1om is non-trivial using Python-3.4.4 Using Python2 for the k1om is very popular, but I require Python3 support on k1om.

The first requirement to complete this build involved the download and extraction of pre-built MPSS RPM's. Then built required host python bins using GCC. Lastly, build MIC bins using ICC. The exacts are appended to the end of this message.

I would like to discuss a few change requirements that trial and error has revealed.

1.) libffi requires the University OF Cantabria patch because the k1om is not binary compatible with x86_64. [attached]

These libffi changes could be implemented using the MIC or KNC macros. *see https://software.intel.com/en-us/node/514528

2.) ./configure script halts during failure to locate readelf for the host.

I simply commented out these lines in the ./configure file: #if test "$cross_compiling" = yes; then #case "$READELF" in #readelf|:) #as_fn_error $? "readelf for the host is required for cross builds" "$LINENO" 5 #;; #esac #fi

Ideally, ./configure would support ICC and k1om. Am I missing something in the configure/make commands below? Is it possible to bypass the readelf requirement when cross-compiling for k1om?

Additionally, are any of the command line parameters below unnecessary? PKG_CONFIG_LIBDIR PKG_CONFIG_PATH PYTHON_FOR_BUILD _PYTHON_HOST_PLATFORM HOSTPGEN HOSTARCH BUILDARCH

Thanks, Rob

#copy/unpack the k1om bins tarball cd /home/ wget mpss-3.4.6-k1om.tar tar xvf mpss-3.4.6-k1om.tar cd /home/mpss-3.4.6/k1om/ for rpm in *.rpm; do rpm2cpio $rpm | cpio -idm; done

#vars PythonVersion=Python-3.4.4 k1om_rpm=/home/mpss-3.4.6/k1om/ INSTALLPREFIX=/home/Python/release/$PythonVersion-mic SRC=/home/Python/$PythonVersion

echo "Compiling host Python" cd $SRC && make distclean cd $SRC && ./configure cd $SRC && make python Parser/pgen rm -f $SRC/hostpython mv SRC/pythonSRC/python SRC/pythonSRC/hostpython rm -f $SRC/Parser/hostpgen mv SRC/Parser/pgenSRC/Parser/pgen SRC/Parser/pgenSRC/Parser/hostpgen cd $SRC && make distclean

echo "Configuring Python for MIC..." cd $SRC && CONFIG_SITE=config.site
./configure
CC="icc -mmic"
CFLAGS="-I$k1om_rpm/include -I$k1om_rpm/usr/include -wd10006"
CXX="icpc -mmic"
CPPFLAGS="-I$k1om_rpm/include -I$k1om_rpm/usr/include -wd10006"
PKG_CONFIG_LIBDIR="$k1om_rpm/usr/lib64/pkgconfig"
PKG_CONFIG_PATH="$k1om_rpm/usr/lib64/pkgconfig"
--host=x86_64-k1om-linux
--build=x86_64-linux-gnu
--with-cxx-main="icpc -mmic"
--disable-ipv6 echo "done"

echo "Compiling Python for MIC..." cd $SRC && make
PYTHON_FOR_BUILD=./hostpython
_PYTHON_HOST_PLATFORM=x86_64-k1om-linux
HOSTPGEN=./Parser/hostpgen
HOSTARCH=x86_64-k1om-linux
BUILDARCH=x86_64-linux-gnu
EXTRA_CFLAGS="-fp-model precise -shared -fPIC"
LDFLAGS="-L$k1om_rpm/lib64 -L$k1om_rpm/usr/lib64" echo "done"

echo "Installing Python for MIC" mkdir -p $INSTALLPREFIX cd $SRC && make install
PYTHON_FOR_BUILD=./hostpython
_PYTHON_HOST_PLATFORM=x86_64-k1om-linux
prefix=$INSTALLPREFIX echo "done" -------------- next part -------------- A non-text attachment was scrubbed... Name: 0001-k1om-libffi.patch Type: application/octet-stream Size: 18705 bytes Desc: not available URL: <http://mail.python.org/pipermail/python-dev/attachments/20160122/693e9b7d/attachment.obj> -------------- next part -------------- A non-text attachment was scrubbed... Name: 0002-READELF.patch Type: application/octet-stream Size: 790 bytes Desc: not available URL: <http://mail.python.org/pipermail/python-dev/attachments/20160122/693e9b7d/attachment-0001.obj>



More information about the Python-Dev mailing list