diff options
author | Sergey Ignatov <sergign60@mail.ru> | 2017-02-01 19:56:19 +0300 |
---|---|---|
committer | Sergey Ignatov <sergign60@mail.ru> | 2017-02-06 15:29:42 +0300 |
commit | f0dcb80f7b60f1f14d1efe3780c36d09e9b0b29f (patch) | |
tree | 84c10bcf59a1558572bbda21ea79004a13c8adfa | |
parent | e6ff5433da6027767eb87d7e0891bacddd87645a (diff) |
Added armel building
-rwxr-xr-x | buildscripts/build-native.sh | 36 | ||||
-rwxr-xr-x | buildscripts/buildvars-setup.sh | 9 | ||||
-rw-r--r-- | src/Native/CMakeLists.txt | 7 |
3 files changed, 49 insertions, 3 deletions
diff --git a/buildscripts/build-native.sh b/buildscripts/build-native.sh index ab861f493..47ba3d0ec 100755 --- a/buildscripts/build-native.sh +++ b/buildscripts/build-native.sh @@ -76,9 +76,45 @@ build_native_corert() popd } +initHostDistroRid() +{ + if [ "$__HostOS" == "Linux" ]; then + if [ ! -e /etc/os-release ]; then + echo "WARNING: Can not determine runtime id for current distro." + __HostDistroRid="" + else + source /etc/os-release + __HostDistroRid="$ID.$VERSION_ID-$__HostArch" + fi + fi +} + +initTargetDistroRid() +{ + if [ $__CrossBuild == 1 ]; then + if [ "$__BuildOS" == "Linux" ]; then + if [ ! -e $ROOTFS_DIR/etc/os-release ]; then + echo "WARNING: Can not determine runtime id for current distro." + export __DistroRid="" + else + source $ROOTFS_DIR/etc/os-release + export __DistroRid="$ID.$VERSION_ID-$__BuildArch" + fi + fi + else + export __DistroRid="$__HostDistroRid" + fi +} + if $__buildnative; then + # init the host distro name + initHostDistroRid + + # init the target distro name + initTargetDistroRid + # Check prereqs. check_native_prereqs diff --git a/buildscripts/buildvars-setup.sh b/buildscripts/buildvars-setup.sh index 588bcd626..59dd405e2 100755 --- a/buildscripts/buildvars-setup.sh +++ b/buildscripts/buildvars-setup.sh @@ -6,7 +6,7 @@ usage() echo "managed - optional argument to build the managed code" echo "native - optional argument to build the native code" echo "The following arguments affect native builds only:" - echo "BuildArch can be: x64, x86, arm, arm64" + echo "BuildArch can be: x64, x86, arm, arm64, armel" echo "BuildType can be: Debug, Release" echo "clean - optional argument to force a clean build." echo "verbose - optional argument to enable verbose build output." @@ -178,6 +178,11 @@ while [ "$1" != "" ]; do arm64) export __BuildArch=arm64 ;; + armel) + export __BuildArch=armel + export __ClangMajorVersion=3 + export __ClangMinorVersion=5 + ;; debug) export __BuildType=Debug ;; @@ -264,4 +269,4 @@ fi setup_dirs export BUILDERRORLEVEL=0 -export BUILDVARS_DONE=1
\ No newline at end of file +export BUILDVARS_DONE=1 diff --git a/src/Native/CMakeLists.txt b/src/Native/CMakeLists.txt index 0ed106efb..81ab1c1a1 100644 --- a/src/Native/CMakeLists.txt +++ b/src/Native/CMakeLists.txt @@ -22,7 +22,7 @@ function(clr_unknown_arch) if (WIN32) message(FATAL_ERROR "Only AMD64 and I386 are supported") else() - message(FATAL_ERROR "Only AMD64, ARM64 and ARM are supported") + message(FATAL_ERROR "Only AMD64, ARM64 ARM and ARMEL are supported") endif() endfunction() @@ -32,7 +32,12 @@ elseif (CMAKE_SYSTEM_PROCESSOR STREQUAL armv7l) add_definitions(-DBIT32=1) # Because we don't use CMAKE_C_COMPILER/CMAKE_CXX_COMPILER to use clang # we have to set the triple by adding a compiler argument + if(TOOLCHAIN STREQUAL arm-linux-gnueabi) + add_compile_options(-target armv7-linux-gnueabi) + add_compile_options(-mfloat-abi=softfp) + else () add_compile_options(-target armv7-linux-gnueabihf) + endif () add_compile_options(-mthumb) add_compile_options(-mfpu=vfpv3) elseif (CMAKE_SYSTEM_PROCESSOR STREQUAL aarch64) |