Merge pull request #713 from majestrate/fix-arm-cross-compile

Fix arm cross compile
pull/716/head
Jeff 5 years ago committed by GitHub
commit 8751d106d6
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -0,0 +1,58 @@
# Cross Compile
Currently supported targets:
Tier 1:
* Linux (arm/x86)
* Windows (32 and 64 bit x86)
* FreeBSD (amd64)
Tier 2:
* Mac OSX (> 10.10)
* Android (arm/x86)
* Apple IOS
* Linux PPC64 (little endian)
Tier 3:
* Big Endian Linux
* NetBSD
* OpenBSD
Unsupported (feel free to support this yourself)
* AIX
* zOS
## For Windows
To cross compile for windows on non windows platforms run:
$ make windows
## For Other Linux
## deps
this setup assumes ubuntu
first you need to cross compile and install libuv:
$ git clone https://github.com/libuv/libuv
$ mkdir -p build && cd build
$ export TOOLCHAIN=arm-linux-gnueabihf # or whatever your compiler is
$ cmake -DCMAKE_C_COMPILER=$(TOOLCHAIN)-gcc-8 -DCMAKE_INSTALL_PREFIX=/usr/$(TOOLCHAIN)
$ make
$ sudo make install
## build
To cross compile on linux for another archietecture:
# for rpi 3
$ make CROSS=ON TOOLCHAIN=contrib/armhf.toolchain.cmake
# for ppc64le
$ make CROSS=ON TOOLCHAIN=contrib/ppc64le.toolchain.cmake

@ -53,6 +53,8 @@ ANDROID_LOCAL_PROPS=$(ANDROID_DIR)/local.properties
GRADLE ?= gradle
JAVA_HOME ?= /usr/lib/jvm/default-java
TOOLCHAIN ?=
# native avx2 code
AVX2 ?= OFF
# non x86 target
@ -120,7 +122,8 @@ clean:
debug-configure:
mkdir -p '$(BUILD_ROOT)'
$(CONFIG_CMD) -DCMAKE_BUILD_TYPE=$(BUILD_TYPE) -DCMAKE_C_FLAGS='$(CFLAGS)' -DCMAKE_CXX_FLAGS='$(CXXFLAGS)'
(test x$(TOOLCHAIN) = x && $(CONFIG_CMD) -DCMAKE_BUILD_TYPE=$(BUILD_TYPE) -DCMAKE_C_FLAGS='$(CFLAGS)' -DCMAKE_CXX_FLAGS='$(CXXFLAGS)') || (test x$(TOOLCHAIN) != x && $(CONFIG_CMD) -DCMAKE_BUILD_TYPE=$(BUILD_TYPE) -DCMAKE_C_FLAGS='$(CFLAGS)' -DCMAKE_CXX_FLAGS='$(CXXFLAGS)' -DCMAKE_TOOLCHAIN_FILE=$(TOOLCHAIN) )
release-configure: clean
mkdir -p '$(BUILD_ROOT)'

@ -0,0 +1,12 @@
set(CMAKE_SYSTEM_NAME Linux)
set(TOOLCHAIN_PREFIX arm-linux-gnueabihf)
set(TOOLCHAIN_SUFFIX -8)
set(CMAKE_FIND_ROOT_PATH /usr/${TOOLCHAIN_PREFIX})
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
set(CMAKE_C_COMPILER ${TOOLCHAIN_PREFIX}-gcc${TOOLCHAIN_SUFFIX})
set(CMAKE_CXX_COMPILER ${TOOLCHAIN_PREFIX}-g++${TOOLCHAIN_SUFFIX})

@ -0,0 +1,12 @@
set(CMAKE_SYSTEM_NAME Linux)
set(TOOLCHAIN_PREFIX powerpc64le-linux-gnu)
set(TOOLCHAIN_SUFFIX -8)
set(CMAKE_FIND_ROOT_PATH /usr/${TOOLCHAIN_PREFIX})
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
set(CMAKE_C_COMPILER ${TOOLCHAIN_PREFIX}-gcc${TOOLCHAIN_SUFFIX})
set(CMAKE_CXX_COMPILER ${TOOLCHAIN_PREFIX}-g++${TOOLCHAIN_SUFFIX})

@ -1,6 +1,4 @@
#if defined(ANDROID) || defined(RPI)
#else
#if __SSE2__
#include <stdint.h>
#include <stdlib.h>
#include <string.h>

@ -3,7 +3,7 @@
#include "../stream_salsa20.h"
#include <sodium/crypto_stream_salsa20.h>
#ifndef ANDROID
#if __SSE2__
extern struct crypto_stream_salsa20_implementation
crypto_stream_salsa20_xmm6int_sse2_implementation;
#endif

@ -105,9 +105,6 @@ if(${CMAKE_SYSTEM_NAME} MATCHES "Linux")
if(NON_PC_TARGET)
add_import_library(rt)
target_link_libraries(${PLATFORM_LIB} PUBLIC rt)
else()
add_import_library(cap)
target_link_libraries(${PLATFORM_LIB} PUBLIC cap)
endif()
endif()

Loading…
Cancel
Save