First of, many thanks to each one of you for taking your time to post your
valuable comments and suggestions. My apologies for not filling in the
details. Here goes:

1.We have linux running on the Microblaze. So, what I am looking at this
point is a software only solution.
2. We have cross compilation tools and buildroot. I was able to compile
python3.8 externally and run it on Microblaze. Note that I compiled python
outside of buildroot since the version of python built from buildroot did
not work.
3. Buildroot did not have support for Numpy. So I added it to the
configuration. To resolve the compilation issues, here is what I did:

diff -r -u
/home/gokul/numpyExpt/numpy-1.16.4/numpy/core/include/numpy/npy_cpu.h
python-numpy-1.16.4.BAK/numpy/core/include/numpy/npy_cpu.h
--- /home/gokul/numpyExpt/numpy-1.16.4/numpy/core/include/numpy/npy_cpu.h      
2019-02-22 06:03:41.000000000 +0530
+++ python-numpy-1.16.4.BAK/numpy/core/include/numpy/npy_cpu.h  2019-12-22
18:52:16.468085099 +0530
@@ -102,6 +102,8 @@
     #define NPY_CPU_ARCEB
 #elif defined(__riscv) && defined(__riscv_xlen) && __riscv_xlen == 64
     #define NPY_CPU_RISCV64
+#elif defined(__MICROBLAZEEL__) 
+    #define NPY_CPU_MICROBLAZEEL
 #else
     #error Unknown CPU, please report this to numpy maintainers with \
     information about your platform (OS, CPU and compiler)
diff -r -u
/home/gokul/numpyExpt/numpy-1.16.4/numpy/core/include/numpy/npy_endian.h
python-numpy-1.16.4.BAK/numpy/core/include/numpy/npy_endian.h
--- /home/gokul/numpyExpt/numpy-1.16.4/numpy/core/include/numpy/npy_endian.h   
2019-02-22 06:03:41.000000000 +0530
+++ python-numpy-1.16.4.BAK/numpy/core/include/numpy/npy_endian.h      
2019-12-22 18:54:08.912859083 +0530
@@ -48,7 +48,8 @@
             || defined(NPY_CPU_MIPSEL)        \
             || defined(NPY_CPU_PPC64LE)       \
             || defined(NPY_CPU_ARCEL)         \
-            || defined(NPY_CPU_RISCV64)
+            || defined(NPY_CPU_RISCV64)       \
+            || defined(NPY_CPU_MICROBLAZEEL)
         #define NPY_BYTE_ORDER NPY_LITTLE_ENDIAN
     #elif defined(NPY_CPU_PPC)                \
             || defined(NPY_CPU_SPARC)         \

diff -ruN -x '*.py'
/home/gokul/numpyExpt/numpy-1.16.4/numpy/core/include/microblaze-fenv.h
python-numpy-1.16.4/numpy/core/include/microblaze-fenv.h
--- /home/gokul/numpyExpt/numpy-1.16.4/numpy/core/include/microblaze-fenv.h    
1970-01-01 05:30:00.000000000 +0530
+++ python-numpy-1.16.4/numpy/core/include/microblaze-fenv.h    2020-01-02
14:06:30.410908275 +0530
@@ -0,0 +1,36 @@
+#ifndef MICROBLAZE_FENV_H
+#define MICROBLAZE_FENV_H 1
+
+enum
+  {
+    FE_INEXACT   =
+#define FE_INEXACT      (0x00)
+      FE_INEXACT,
+    FE_UNDERFLOW =
+#define FE_UNDERFLOW    (0x00)
+      FE_UNDERFLOW,
+    FE_OVERFLOW  =
+#define FE_OVERFLOW     (0x00)
+      FE_OVERFLOW,
+    FE_DIVBYZERO =
+#define FE_DIVBYZERO    (0x00)
+      FE_DIVBYZERO,
+    FE_INVALID   =
+#define FE_INVALID      (0x00)
+      FE_INVALID
+  };
+
+enum
+  {
+    FE_TOWARDZERO =
+#define FE_TOWARDZERO   (0x0)
+      FE_TOWARDZERO,
+    FE_DOWNWARD   =
+#define FE_DOWNWARD     (0x0)
+      FE_DOWNWARD,
+    FE_UPWARD     =
+#define FE_UPWARD       (0x0)
+      FE_UPWARD
+  };
+
+#endif

The last change above was to take care of floating point exception errors in
compilation. Not sure if this is the right approach- I had to do this since
Microblaze didnt support all these exceptions

4. When I run with these changes, I get the following runtime error:
~# /usr/local/bin/python

Python 3.8.0 (default, Jan  3 2020, 16:10:54)
[GCC 8.2.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import numpy as np
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/lib/python3.8/site-packages/numpy/__init__.py", line 150, in
<module>
    from . import random
  File "/usr/lib/python3.8/site-packages/numpy/random/__init__.py", line
143, in <module>
    from .mtrand import *
SystemError: execution of module numpy.random.mtrand failed without setting
an exception
>>>





--
Sent from: http://numpy-discussion.10968.n7.nabble.com/
_______________________________________________
NumPy-Discussion mailing list
NumPy-Discussion@python.org
https://mail.python.org/mailman/listinfo/numpy-discussion

Reply via email to