[Python-Dev] python3 k1om dissociation permanence

2016-01-22 Thread ƦOB COASTN
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/python $SRC/hostpython
rm -f $SRC/Parser/hostpgen
mv $SRC/Parser/pgen $SRC/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"


0001-k1om-libffi.patch
Description: Binary data


0002-READELF.patch
Description: Binary data
___
Python-Dev mailing list
Python-Dev@python.org
https://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
https://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com


Re: [Python-Dev] Opcode cache in ceval loop

2016-02-02 Thread ƦOB COASTN
>> I can write a ceval.txt file explaining what's going on
>> in ceval loop, with details on the opcode cache and other
>> things.  I think it's even better than a PEP, to be honest.
>
>
> I totally agree.
>
Please include the notes text file.  This provides an excellent
summary for those of us that haven't yet taken the deep dive into the
ceval loop, but still wish to understand its implementation.
___
Python-Dev mailing list
Python-Dev@python.org
https://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
https://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com