Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Upgrade BoringSSL to pick up OPENSSL_NO_ASM fix against OPENSSL_ARM #5497

Closed
rcordeau opened this issue Mar 1, 2016 · 20 comments
Closed

Upgrade BoringSSL to pick up OPENSSL_NO_ASM fix against OPENSSL_ARM #5497

rcordeau opened this issue Mar 1, 2016 · 20 comments

Comments

@rcordeau
Copy link

rcordeau commented Mar 1, 2016

I have an embedded project running on a Xilinx Zynq, and the linux from Xilinx doesn't do armhf, only armel (soft-fp). With grpc v0.11.0, things worked on the arm with grpc and python. We wanted to upgrade to v0.13 to pickup some bug fixes, and now although we can compile, we get import errors with boringssl. Example:

from grpc.beta import implementations
Traceback (most recent call last):
File "", line 1, in
File "grpc/beta/implementations.py", line 38, in
from grpc._adapter import _intermediary_low
File "grpc/_adapter/_intermediary_low.py", line 57, in
from grpc._adapter import _low
File "grpc/_adapter/_low.py", line 33, in
from grpc._cython import cygrpc
ImportError: grpc/_cython/cygrpc.so: undefined symbol: x25519_NEON

Anyone have any ideas? I tried cutting out the curve25519 library from boringssl, but that led to another import error for gcm_gmult_4bit. I am kind of at wits end.
Thanks.

@soltanmm
Copy link
Contributor

soltanmm commented Mar 2, 2016

This is installing from source, correct? Or are y'all installing from PyPI? What's the output of python -m sysconfig?

EDIT: Well, derp, of course you're installing from source - you just said 0.14-dev. My bad.

Are you cross-compiling? Or building on the target machine?
(I'm not familiar with the ARM ecosystem so there may be a bit of Q&A here.)

@rcordeau
Copy link
Author

rcordeau commented Mar 2, 2016

I'm not cross compiling because that it just a pain in the ass. So, I am compiling directly on a Raspberry Pi 2, using Slackware 14.1 (because it is armel, not armhf like Raspian or other distros; the target system isn't using armhf). So it is just like compiling on the target system.

Here is the output of python -m sysconfig:
root@slackpi:~# python -m sysconfig
Platform: "linux-armv7l"
Python version: "2.7"
Current installation scheme: "posix_prefix"

Paths:
data = "/usr"
include = "/usr/include/python2.7"
platinclude = "/usr/include/python2.7"
platlib = "/usr/lib/python2.7/site-packages"
platstdlib = "/usr/lib/python2.7"
purelib = "/usr/lib/python2.7/site-packages"
scripts = "/usr/bin"
stdlib = "/usr/lib/python2.7"

Variables:
AC_APPLE_UNIVERSAL_BUILD = "0"
AIX_GENUINE_CPLUSPLUS = "0"
AR = "ar"
ARFLAGS = "rc"
ASDLGEN = "./Parser/asdl_c.py"
ASDLGEN_FILES = "./Parser/asdl.py ./Parser/asdl_c.py"
AST_ASDL = "./Parser/Python.asdl"
AST_C = "Python/Python-ast.c"
AST_C_DIR = "Python"
AST_H = "Include/Python-ast.h"
AST_H_DIR = "Include"
ATHEOS_THREADS = "0"
BASECFLAGS = "-fno-strict-aliasing"
BASEMODLIBS = ""
BEOS_THREADS = "0"
BINDIR = "/usr/bin"
BINLIBDEST = "/usr/lib/python2.7"
BLDLIBRARY = "-L. -lpython2.7"
BLDSHARED = "gcc -pthread -shared"
BUILDEXE = ""
BUILDPYTHON = "python"
CC = "gcc -pthread"
CCSHARED = "-fPIC"
CFLAGS = "-fno-strict-aliasing -g -O2 -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -march=armv5te"
CFLAGSFORSHARED = "-fPIC"
CONFIGFILES = "configure configure.ac acconfig.h pyconfig.h.in Makefile.pre.in"
CONFIG_ARGS = "'--prefix=/usr' '--mandir=/usr/man' '--libdir=/usr/lib' '--docdir=/usr/doc/python-2.7.5' '--with-threads' '--enable-ipv6' '--enable-shared' '--build=arm-slackware-linux-gnueabi' 'build_alias=arm-slackware-linux-gnueabi'"
CONFINCLUDEDIR = "/usr/include"
CONFINCLUDEPY = "/usr/include/python2.7"
COREPYTHONPATH = ":plat-linux2:lib-tk:lib-old"
CPPFLAGS = "-I. -IInclude -I./Include"
CXX = "g++ -pthread"
C_THREADS = "0"
DESTDIRS = "/usr /usr/lib /usr/lib/python2.7 /usr/lib/python2.7/lib-dynload"
DESTLIB = "/usr/lib/python2.7"
DESTPATH = ""
DESTSHARED = "/usr/lib/python2.7/lib-dynload"
DIRMODE = "755"
DIST = "README ChangeLog configure configure.ac acconfig.h pyconfig.h.in Makefile.pre.in Include Lib Misc Demo Ext-dummy"
DISTDIRS = "Include Lib Misc Demo Ext-dummy"
DISTFILES = "README ChangeLog configure configure.ac acconfig.h pyconfig.h.in Makefile.pre.in"
DLINCLDIR = "."
DLLLIBRARY = ""
DOUBLE_IS_ARM_MIXED_ENDIAN_IEEE754 = "0"
DOUBLE_IS_BIG_ENDIAN_IEEE754 = "0"
DOUBLE_IS_LITTLE_ENDIAN_IEEE754 = "1"
DYNLOADFILE = "dynload_shlib.o"
ENABLE_IPV6 = "1"
EXE = ""
EXEMODE = "755"
EXTRAMACHDEPPATH = ""
EXTRAPLATDIR = ""
EXTRATESTOPTS = ""
FILEMODE = "644"
FLOCK_NEEDS_LIBBSD = "0"
GETPGRP_HAVE_ARG = "0"
GETTIMEOFDAY_NO_TZ = "0"
GLHACK = "-Dclear=GLclear"
GNULD = "yes"
GRAMMAR_C = "Python/graminit.c"
GRAMMAR_H = "Include/graminit.h"
GRAMMAR_INPUT = "./Grammar/Grammar"
HAVE_ACOSH = "1"
HAVE_ADDRINFO = "1"
HAVE_ALARM = "1"
HAVE_ALTZONE = "0"
HAVE_ASINH = "1"
HAVE_ASM_TYPES_H = "1"
HAVE_ATANH = "1"
HAVE_ATTRIBUTE_FORMAT_PARSETUPLE = "0"
HAVE_BIND_TEXTDOMAIN_CODESET = "1"
HAVE_BLUETOOTH_BLUETOOTH_H = "1"
HAVE_BLUETOOTH_H = "0"
HAVE_BROKEN_NICE = "0"
HAVE_BROKEN_PIPE_BUF = "0"
HAVE_BROKEN_POLL = "0"
HAVE_BROKEN_POSIX_SEMAPHORES = "0"
HAVE_BROKEN_PTHREAD_SIGMASK = "0"
HAVE_BROKEN_SEM_GETVALUE = "0"
HAVE_BROKEN_UNSETENV = "0"
HAVE_C99_BOOL = "1"
HAVE_CHFLAGS = "0"
HAVE_CHOWN = "1"
HAVE_CHROOT = "1"
HAVE_CLOCK = "1"
HAVE_CONFSTR = "1"
HAVE_CONIO_H = "0"
HAVE_COPYSIGN = "1"
HAVE_CTERMID = "1"
HAVE_CTERMID_R = "0"
HAVE_CURSES_H = "1"
HAVE_CURSES_IS_TERM_RESIZED = "1"
HAVE_CURSES_RESIZETERM = "1"
HAVE_CURSES_RESIZE_TERM = "1"
HAVE_DECL_ISFINITE = "1"
HAVE_DECL_ISINF = "1"
HAVE_DECL_ISNAN = "1"
HAVE_DECL_TZNAME = "0"
HAVE_DEVICE_MACROS = "1"
HAVE_DEV_PTC = "0"
HAVE_DEV_PTMX = "1"
HAVE_DIRECT_H = "0"
HAVE_DIRENT_H = "1"
HAVE_DLFCN_H = "1"
HAVE_DLOPEN = "1"
HAVE_DUP2 = "1"
HAVE_DYNAMIC_LOADING = "1"
HAVE_EPOLL = "1"
HAVE_ERF = "1"
HAVE_ERFC = "1"
HAVE_ERRNO_H = "1"
HAVE_EXECV = "1"
HAVE_EXPM1 = "1"
HAVE_FCHDIR = "1"
HAVE_FCHMOD = "1"
HAVE_FCHOWN = "1"
HAVE_FCNTL_H = "1"
HAVE_FDATASYNC = "1"
HAVE_FINITE = "1"
HAVE_FLOCK = "1"
HAVE_FORK = "1"
HAVE_FORKPTY = "1"
HAVE_FPATHCONF = "1"
HAVE_FSEEK64 = "0"
HAVE_FSEEKO = "1"
HAVE_FSTATVFS = "1"
HAVE_FSYNC = "1"
HAVE_FTELL64 = "0"
HAVE_FTELLO = "1"
HAVE_FTIME = "1"
HAVE_FTRUNCATE = "1"
HAVE_GAI_STRERROR = "1"
HAVE_GAMMA = "1"
HAVE_GCC_ASM_FOR_X87 = "0"
HAVE_GETADDRINFO = "1"
HAVE_GETCWD = "1"
HAVE_GETC_UNLOCKED = "1"
HAVE_GETGROUPS = "1"
HAVE_GETHOSTBYNAME = "0"
HAVE_GETHOSTBYNAME_R = "1"
HAVE_GETHOSTBYNAME_R_3_ARG = "0"
HAVE_GETHOSTBYNAME_R_5_ARG = "0"
HAVE_GETHOSTBYNAME_R_6_ARG = "1"
HAVE_GETITIMER = "1"
HAVE_GETLOADAVG = "1"
HAVE_GETLOGIN = "1"
HAVE_GETNAMEINFO = "1"
HAVE_GETPAGESIZE = "1"
HAVE_GETPEERNAME = "1"
HAVE_GETPGID = "1"
HAVE_GETPGRP = "1"
HAVE_GETPID = "1"
HAVE_GETPRIORITY = "1"
HAVE_GETPWENT = "1"
HAVE_GETRESGID = "1"
HAVE_GETRESUID = "1"
HAVE_GETSID = "1"
HAVE_GETSPENT = "1"
HAVE_GETSPNAM = "1"
HAVE_GETTIMEOFDAY = "1"
HAVE_GETWD = "1"
HAVE_GRP_H = "1"
HAVE_HSTRERROR = "1"
HAVE_HYPOT = "1"
HAVE_IEEEFP_H = "0"
HAVE_INET_ATON = "1"
HAVE_INET_PTON = "1"
HAVE_INITGROUPS = "1"
HAVE_INT32_T = "1"
HAVE_INT64_T = "1"
HAVE_INTTYPES_H = "1"
HAVE_IO_H = "0"
HAVE_KILL = "1"
HAVE_KILLPG = "1"
HAVE_KQUEUE = "0"
HAVE_LANGINFO_H = "1"
HAVE_LARGEFILE_SUPPORT = "1"
HAVE_LCHFLAGS = "0"
HAVE_LCHMOD = "0"
HAVE_LCHOWN = "1"
HAVE_LGAMMA = "1"
HAVE_LIBDL = "1"
HAVE_LIBDLD = "0"
HAVE_LIBIEEE = "0"
HAVE_LIBINTL_H = "1"
HAVE_LIBREADLINE = "1"
HAVE_LIBRESOLV = "0"
HAVE_LIBUTIL_H = "0"
HAVE_LINK = "1"
HAVE_LINUX_NETLINK_H = "1"
HAVE_LINUX_TIPC_H = "1"
HAVE_LOG1P = "1"
HAVE_LONG_DOUBLE = "1"
HAVE_LONG_LONG = "1"
HAVE_LSTAT = "1"
HAVE_MAKEDEV = "1"
HAVE_MEMMOVE = "1"
HAVE_MEMORY_H = "1"
HAVE_MKFIFO = "1"
HAVE_MKNOD = "1"
HAVE_MKTIME = "1"
HAVE_MREMAP = "1"
HAVE_NCURSES_H = "1"
HAVE_NDIR_H = "0"
HAVE_NETPACKET_PACKET_H = "1"
HAVE_NICE = "1"
HAVE_OPENPTY = "1"
HAVE_OSX105_SDK = "0"
HAVE_PATHCONF = "1"
HAVE_PAUSE = "1"
HAVE_PLOCK = "0"
HAVE_POLL = "1"
HAVE_POLL_H = "1"
HAVE_PROCESS_H = "0"
HAVE_PROTOTYPES = "1"
HAVE_PTH = "0"
HAVE_PTHREAD_DESTRUCTOR = "0"
HAVE_PTHREAD_H = "1"
HAVE_PTHREAD_INIT = "0"
HAVE_PTHREAD_SIGMASK = "1"
HAVE_PTY_H = "1"
HAVE_PUTENV = "1"
HAVE_READLINK = "1"
HAVE_REALPATH = "1"
HAVE_RL_CALLBACK = "1"
HAVE_RL_CATCH_SIGNAL = "1"
HAVE_RL_COMPLETION_APPEND_CHARACTER = "1"
HAVE_RL_COMPLETION_DISPLAY_MATCHES_HOOK = "1"
HAVE_RL_COMPLETION_MATCHES = "1"
HAVE_RL_COMPLETION_SUPPRESS_APPEND = "1"
HAVE_RL_PRE_INPUT_HOOK = "1"
HAVE_ROUND = "1"
HAVE_SELECT = "1"
HAVE_SEM_GETVALUE = "1"
HAVE_SEM_OPEN = "1"
HAVE_SEM_TIMEDWAIT = "1"
HAVE_SEM_UNLINK = "1"
HAVE_SETEGID = "1"
HAVE_SETEUID = "1"
HAVE_SETGID = "1"
HAVE_SETGROUPS = "1"
HAVE_SETITIMER = "1"
HAVE_SETLOCALE = "1"
HAVE_SETPGID = "1"
HAVE_SETPGRP = "1"
HAVE_SETREGID = "1"
HAVE_SETRESGID = "1"
HAVE_SETRESUID = "1"
HAVE_SETREUID = "1"
HAVE_SETSID = "1"
HAVE_SETUID = "1"
HAVE_SETVBUF = "1"
HAVE_SHADOW_H = "1"
HAVE_SIGACTION = "1"
HAVE_SIGINTERRUPT = "1"
HAVE_SIGNAL_H = "1"
HAVE_SIGRELSE = "1"
HAVE_SNPRINTF = "1"
HAVE_SOCKADDR_SA_LEN = "0"
HAVE_SOCKADDR_STORAGE = "1"
HAVE_SOCKETPAIR = "1"
HAVE_SPAWN_H = "1"
HAVE_SSIZE_T = "1"
HAVE_STATVFS = "1"
HAVE_STAT_TV_NSEC = "1"
HAVE_STAT_TV_NSEC2 = "0"
HAVE_STDARG_PROTOTYPES = "1"
HAVE_STDINT_H = "1"
HAVE_STDLIB_H = "1"
HAVE_STRDUP = "1"
HAVE_STRFTIME = "1"
HAVE_STRINGS_H = "1"
HAVE_STRING_H = "1"
HAVE_STROPTS_H = "1"
HAVE_STRUCT_STAT_ST_BIRTHTIME = "0"
HAVE_STRUCT_STAT_ST_BLKSIZE = "1"
HAVE_STRUCT_STAT_ST_BLOCKS = "1"
HAVE_STRUCT_STAT_ST_FLAGS = "0"
HAVE_STRUCT_STAT_ST_GEN = "0"
HAVE_STRUCT_STAT_ST_RDEV = "1"
HAVE_STRUCT_TM_TM_ZONE = "1"
HAVE_ST_BLOCKS = "1"
HAVE_SYMLINK = "1"
HAVE_SYSCONF = "1"
HAVE_SYSEXITS_H = "1"
HAVE_SYS_AUDIOIO_H = "0"
HAVE_SYS_BSDTTY_H = "0"
HAVE_SYS_DIR_H = "0"
HAVE_SYS_EPOLL_H = "1"
HAVE_SYS_EVENT_H = "0"
HAVE_SYS_FILE_H = "1"
HAVE_SYS_LOADAVG_H = "0"
HAVE_SYS_LOCK_H = "0"
HAVE_SYS_MKDEV_H = "0"
HAVE_SYS_MODEM_H = "0"
HAVE_SYS_NDIR_H = "0"
HAVE_SYS_PARAM_H = "1"
HAVE_SYS_POLL_H = "1"
HAVE_SYS_RESOURCE_H = "1"
HAVE_SYS_SELECT_H = "1"
HAVE_SYS_SOCKET_H = "1"
HAVE_SYS_STATVFS_H = "1"
HAVE_SYS_STAT_H = "1"
HAVE_SYS_TERMIO_H = "0"
HAVE_SYS_TIMES_H = "1"
HAVE_SYS_TIME_H = "1"
HAVE_SYS_TYPES_H = "1"
HAVE_SYS_UN_H = "1"
HAVE_SYS_UTSNAME_H = "1"
HAVE_SYS_WAIT_H = "1"
HAVE_TCGETPGRP = "1"
HAVE_TCSETPGRP = "1"
HAVE_TEMPNAM = "1"
HAVE_TERMIOS_H = "1"
HAVE_TERM_H = "1"
HAVE_TGAMMA = "1"
HAVE_THREAD_H = "0"
HAVE_TIMEGM = "1"
HAVE_TIMES = "1"
HAVE_TMPFILE = "1"
HAVE_TMPNAM = "1"
HAVE_TMPNAM_R = "1"
HAVE_TM_ZONE = "1"
HAVE_TRUNCATE = "1"
HAVE_TZNAME = "0"
HAVE_UCS4_TCL = "0"
HAVE_UINT32_T = "1"
HAVE_UINT64_T = "1"
HAVE_UINTPTR_T = "1"
HAVE_UNAME = "1"
HAVE_UNISTD_H = "1"
HAVE_UNSETENV = "1"
HAVE_USABLE_WCHAR_T = "0"
HAVE_UTIL_H = "0"
HAVE_UTIMES = "1"
HAVE_UTIME_H = "1"
HAVE_WAIT3 = "1"
HAVE_WAIT4 = "1"
HAVE_WAITPID = "1"
HAVE_WCHAR_H = "1"
HAVE_WCSCOLL = "1"
HAVE_WORKING_TZSET = "1"
HAVE_ZLIB_COPY = "1"
HAVE__GETPTY = "0"
HGBRANCH = "hg id -b ."
HGTAG = "hg id -t ."
HGVERSION = "hg id -i ."
HOST_GNU_TYPE = "arm-slackware-linux-gnueabi"
HURD_C_THREADS = "0"
INCLDIRSTOMAKE = "/usr/include /usr/include /usr/include/python2.7 /usr/include/python2.7"
INCLUDEDIR = "/usr/include"
INCLUDEPY = "/usr/include/python2.7"
INSTALL = "/usr/bin/ginstall -c"
INSTALL_DATA = "/usr/bin/ginstall -c -m 644"
INSTALL_PROGRAM = "/usr/bin/ginstall -c"
INSTALL_SCRIPT = "/usr/bin/ginstall -c"
INSTALL_SHARED = "/usr/bin/ginstall -c -m 555"
INSTSONAME = "libpython2.7.so.1.0"
LDCXXSHARED = "g++ -pthread -shared"
LDFLAGS = ""
LDLAST = ""
LDLIBRARY = "libpython2.7.so"
LDLIBRARYDIR = ""
LDSHARED = "gcc -pthread -shared"
LIBC = ""
LIBDEST = "/usr/lib/python2.7"
LIBDIR = "/usr/lib"
LIBFFI_INCLUDEDIR = ""
LIBM = "-lm"
LIBOBJDIR = "Python/"
LIBOBJS = ""
LIBP = "/usr/lib/python2.7"
LIBPC = "/usr/lib/pkgconfig"
LIBPL = "/usr/lib/python2.7/config"
LIBRARY = "libpython2.7.a"
LIBRARY_OBJS = ""
LIBS = "-lpthread -ldl -lutil"
LIBSUBDIRS = "lib-tk lib-tk/test lib-tk/test/test_tkinter "
LINKCC = "gcc -pthread"
LINKFORSHARED = "-Xlinker -export-dynamic"
LN = "ln"
LOCALMODLIBS = ""
MACHDEP = "linux2"
MACHDEPPATH = ":plat-linux2"
MACHDEPS = "plat-linux2"
MACHDEP_OBJS = ""
MACHDESTLIB = "/usr/lib/python2.7"
MACH_C_THREADS = "0"
MACOSX_DEPLOYMENT_TARGET = ""
MAINCC = "gcc -pthread"
MAJOR_IN_MKDEV = "0"
MAJOR_IN_SYSMACROS = "0"
MAKESETUP = "./Modules/makesetup"
MANDIR = "/usr/man"
MEMTESTOPTS = "-l -x test_subprocess test_io test_lib2to3 \ -x test_dl test___all
test_fork1 "
MKDIR_P = "/usr/bin/mkdir -p"
MODLIBS = ""
MODOBJS = "Modules/threadmodule.o Modules/signalmodule.o Modules/posixmodule.o Modules/errnomodule.o Modules/pwdmodule.o Modules/_sre.o Modules/_codecsmodule.o Modules/_weakref.o Modules/zipimport.o Modules/symtablemodule.o Modules/xxsubtype.o"
MODULE_OBJS = ""
MULTIARCH = ""
MVWDELCH_IS_EXPRESSION = "1"
OBJECT_OBJS = ""
OLDPATH = ":lib-old"
OPT = "-DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes"
OTHER_LIBTOOL_OPT = ""
PACKAGE_BUGREPORT = "0"
PACKAGE_NAME = "0"
PACKAGE_STRING = "0"
PACKAGE_TARNAME = "0"
PACKAGE_URL = "0"
PACKAGE_VERSION = "0"
PARSER_HEADERS = ""
PARSER_OBJS = "\ Parser/myreadline.o Parser/tokenizer.o"
PGEN = "Parser/pgen"
PGENOBJS = "\ "
PGENSRCS = "\ "
PGOBJS = ""
PGSRCS = ""
PLATDIR = "plat-linux2"
PLATMACDIRS = "plat-mac plat-mac/Carbon plat-mac/lib-scriptpackages "
PLATMACPATH = ":plat-mac:plat-mac/lib-scriptpackages"
POBJS = ""
POSIX_SEMAPHORES_NOT_ENABLED = "0"
PROFILE_TASK = "./Tools/pybench/pybench.py -n 2 --with-gc --with-syscheck"
PSRCS = ""
PTHREAD_SYSTEM_SCHED_SUPPORTED = "1"
PURIFY = ""
PYLONG_BITS_IN_DIGIT = "0"
PYTHON = "python"
PYTHONFRAMEWORK = ""
PYTHONFRAMEWORKDIR = "no-framework"
PYTHONFRAMEWORKINSTALLDIR = ""
PYTHONFRAMEWORKPREFIX = ""
PYTHONPATH = ":plat-linux2:lib-tk:lib-old"
PYTHON_FOR_BUILD = "./python -E"
PYTHON_HEADERS = ""
PYTHON_OBJS = ""
PY_CFLAGS = "-fno-strict-aliasing -g -O2 -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -march=armv5te -I. -IInclude -I./Include -fPIC -DPy_BUILD_CORE"
PY_FORMAT_LONG_LONG = ""ll""
PY_FORMAT_SIZE_T = ""z""
PY_UNICODE_TYPE = "unsigned short"
Py_DEBUG = "0"
Py_ENABLE_SHARED = "1"
Py_UNICODE_SIZE = "2"
Py_USING_UNICODE = "1"
QUICKTESTOPTS = "-l -x test_subprocess test_io test_lib2to3 "
RANLIB = "ranlib"
RESSRCDIR = "Mac/Resources/framework"
RETSIGTYPE = "void"
RUNSHARED = "LD_LIBRARY_PATH=/root/tmp/build-python/Python-2.7.5:"
SCRIPTDIR = "/usr/lib"
SETPGRP_HAVE_ARG = "0"
SGI_ABI = ""
SHELL = "/bin/sh"
SHLIBS = "-lpthread -ldl -lutil"
SHLIB_EXT = "".so""
SIGNAL_OBJS = ""
SIGNED_RIGHT_SHIFT_ZERO_FILLS = "0"
SITEPATH = ""
SIZEOF_DOUBLE = "8"
SIZEOF_FLOAT = "4"
SIZEOF_FPOS_T = "16"
SIZEOF_INT = "4"
SIZEOF_LONG = "4"
SIZEOF_LONG_DOUBLE = "8"
SIZEOF_LONG_LONG = "8"
SIZEOF_OFF_T = "8"
SIZEOF_PID_T = "4"
SIZEOF_PTHREAD_T = "4"
SIZEOF_SHORT = "2"
SIZEOF_SIZE_T = "4"
SIZEOF_TIME_T = "4"
SIZEOF_UINTPTR_T = "4"
SIZEOF_VOID_P = "4"
SIZEOF_WCHAR_T = "4"
SIZEOF__BOOL = "1"
SO = ".so"
SRCDIRS = "Parser Grammar Objects Python Modules Mac"
SRC_GDB_HOOKS = "./Tools/gdb/libpython.py"
STDC_HEADERS = "1"
STRICT_SYSV_CURSES = "/* Don't use ncurses extensions */"
STRINGLIB_HEADERS = ""
SUBDIRS = ""
SUBDIRSTOO = "Include Lib Misc Demo"
SVNVERSION = "svnversion ."
SYSLIBS = "-lm"
SYS_SELECT_WITH_SYS_TIME = "1"
TANH_PRESERVES_ZERO_SIGN = "1"
TESTOPTS = "-l"
TESTPATH = ""
TESTPROG = "./Lib/test/regrtest.py"
TESTPYTHON = "LD_LIBRARY_PATH=/root/tmp/build-python/Python-2.7.5: ./python -Wd -3 -E -tt"
TESTPYTHONOPTS = ""
THREADOBJ = "Python/thread.o"
TIME_WITH_SYS_TIME = "1"
TKPATH = ":lib-tk"
TM_IN_SYS_TIME = "0"
UNICODE_OBJS = "Objects/unicodeobject.o Objects/unicodectype.o"
UNIVERSALSDK = ""
USE_TOOLBOX_OBJECT_GLUE = "0"
VA_LIST_IS_ARRAY = "0"
VERSION = "2.7"
WANT_SIGFPE_HANDLER = "0"
WANT_WCTYPE_FUNCTIONS = "0"
WINDOW_HAS_FLAGS = "1"
WITH_DOC_STRINGS = "1"
WITH_DYLD = "0"
WITH_LIBINTL = "0"
WITH_NEXT_FRAMEWORK = "0"
WITH_PYMALLOC = "1"
WITH_THREAD = "1"
WITH_TSC = "0"
WITH_VALGRIND = "0"
X87_DOUBLE_ROUNDING = "0"
XMLLIBSUBDIRS = "xml xml/dom xml/etree xml/parsers xml/sax"
abs_builddir = "/root/tmp/build-python/Python-2.7.5"
abs_srcdir = "/root/tmp/build-python/Python-2.7.5"
base = "/usr"
build = "arm-slackware-linux-gnueabi"
datarootdir = "/usr/share"
exec_prefix = "/usr"
host = "arm-slackware-linux-gnueabi"
platbase = "/usr"
prefix = "/usr"
projectbase = "/usr/bin"
py_version = "2.7.5"
py_version_nodot = "27"
py_version_short = "2.7"
srcdir = "."
userbase = "/root/.local"
root@slackpi:~#

@rcordeau
Copy link
Author

rcordeau commented Mar 2, 2016

The only version of grpc that has worked when compiled from source for ARM (for me anyway, with the armel restriction) is 0.11.0b1 (and b0). Newer versions seem to work fine on armhf targets like the Raspberry Pi 2 running Raspian or an Odroid running Ubuntu (both compiled as armhf). It seems that there is trouble in boringssl - like the assembly files (.S files) aren't getting included in the build for the ARM target. Well, it seems that OPENSSL_NO_ASM is defined, so I guess that means no assembly. But still, the functions should still be defined somehow.

@soltanmm
Copy link
Contributor

soltanmm commented Mar 2, 2016

So, the issue may or may not be something a bit stranger for those not familiar with some of the hoops we jumped through to have Linux binary distributions in spite of PyPI disallowing such things. Try pip install . in the source directory with the envvar GRPC_PYTHON_USE_PRECOMPILED_BINARIES=0.

Also what's the output of python -c "import platform; print platform.uname()" and python -c "import sys; print sys.maxunicode" (the information for these is ostensibly in the sysconfig output you just gave me, but let's be paranoid)?

@rcordeau
Copy link
Author

rcordeau commented Mar 2, 2016

root@slackpi:~# python -c "import platform; print platform.uname()"
('Linux', 'slackpi', '3.18.9-v7-arm', '#2 SMP PREEMPT Thu Mar 12 23:53:34 GMT 2015', 'armv7l', '')

root@slackpi:~# python -c "import sys; print sys.maxunicode"
65535

So I don't think I am using the precompiled binaries, because I thought I saw that you don't have one for UCS2 Python builds on ARM. I did do the above mentioned pip install and still it didn't work.

@soltanmm
Copy link
Contributor

soltanmm commented Mar 2, 2016

So much for any of the easy ideas. In all likelihood you're right about the missing parts of BoringSSL, and that could potentially point at us doing something wrong with how we bundle their source and with what compiler flags we're using. It's kind of late where I am... I'll sift through tomorrow and see what comes up.

@soltanmm
Copy link
Contributor

soltanmm commented Mar 2, 2016

Well, so much for tomorrow.

We're using a 3-month old version of BoringSSL (commit 9f897b2) that doesn't yet respect OPENSSL_NO_ASM for the x25519_NEON decldef. So, that's a problem.

@rcordeau
Copy link
Author

rcordeau commented Mar 2, 2016

Yikes! I wonder if that is the same for gcm_gmult_4bit as well. Dude, go to bed. Thank you for digging in to this. Why did you guys choose to go with boringssl over openssl anyway? I thought I read that Google wasn't advising anyone to include boringssl in their projects in case the api changed.

@ctiller
Copy link
Member

ctiller commented Mar 2, 2016

We can move our BoringSSL version (it's been on my TODO list) - although I
might pause it until next week.

We're using BoringSSL because the build system suits us, and we're prepared
for the pain of API tweaks (and because we know those folks pretty well).

On Tue, Mar 1, 2016 at 9:52 PM rcordeau [email protected] wrote:

Yikes! I wonder if that is the same for gcm_gmult_4bit as well. Dude, go
to bed. Thank you for digging in to this. Why did you guys choose to go
with boringssl over openssl anyway? I thought I read that Google wasn't
advising anyone to include boringssl in their projects in case the api
changed.


Reply to this email directly or view it on GitHub
#5497 (comment).

@rcordeau
Copy link
Author

rcordeau commented Mar 2, 2016

Ok, that's cool. Not sure how new you want to get with BoringSSL, but I'll pull from the tip of master for that repo and do a build to see how it does. Thanks Craig.

@ctiller
Copy link
Member

ctiller commented Mar 2, 2016

The plan was to start tracking the chromium-stable branch.

On Tue, Mar 1, 2016 at 10:09 PM rcordeau [email protected] wrote:

Ok, that's cool. Not sure how new you want to get with BoringSSL, but I'll
pull from the tip of master for that repo and do a build to see how it
does. Thanks Craig.


Reply to this email directly or view it on GitHub
#5497 (comment).

@rcordeau
Copy link
Author

rcordeau commented Mar 2, 2016

Ok I'll give that a go.

@pgrosu
Copy link

pgrosu commented Mar 2, 2016

Craig, what's the automatic fixer and what are the planned updates to wait till next week?

Thanks,
~p

@ctiller
Copy link
Member

ctiller commented Mar 2, 2016

The tool in #5494 has a fix option, to automatically make changes to files to ensure the include guards match what we expect (nothing to do with this).

The team is currently in an internal commit freeze to give us a chance to stabilize some tests before the final push for 1.0. That freeze is for this week, so we're avoiding doing anything that might affect the stability of tests already passing.

@pgrosu
Copy link

pgrosu commented Mar 2, 2016

Ok, thanks. I look forward to that merge.

@soltanmm soltanmm changed the title grpc 0.13.0 and 0.14-dev Python import error on ARM (armel, not armhf) Upgrade BoringSSL to pick up OPENSSL_NO_ASM fix against OPENSSL_ARM Mar 2, 2016
@soltanmm soltanmm assigned ctiller and unassigned soltanmm Mar 2, 2016
@gjoliver
Copy link

Hey Guys,

Any update on this bug? I am running into the same issue and is currently blocked continuing my work on an arm computer.
Would really appreciate if we can release an alpha/beta version that has this fixed.
Thanks.

@ctiller
Copy link
Member

ctiller commented Mar 15, 2016

Is there a specific change we want to ensure we're picking up?

I'm looking to get the PR out shortly for the upgrade.

On Mon, Mar 14, 2016 at 11:46 PM gjoliver [email protected] wrote:

Hey Guys,

Any update on this bug? I am running into the same issue and is currently
blocked continuing my work on an arm computer.
Would really appreciate if we can release an alpha/beta version that has
this fixed.
Thanks.


You are receiving this because you were assigned.
Reply to this email directly or view it on GitHub:
#5497 (comment)

@soltanmm
Copy link
Contributor

Anything after commit e6c5402, as far as I can tell.

@boergegrunicke
Copy link

Is the problem fixed? Ich get the same error, aber fix would be very great

@itessier
Copy link
Contributor

itessier commented Apr 21, 2016

@butterklopsi This has been fixed in PR #6232.

@lock lock bot locked as resolved and limited conversation to collaborators Oct 4, 2018
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

No branches or pull requests

9 participants