From 14c66b6a8dc3067922568501617ea765f96b6597 Mon Sep 17 00:00:00 2001 From: Jason Mobarak Date: Thu, 21 Dec 2017 20:22:11 -0800 Subject: [PATCH 1/3] Add support for building both archs again --- .travis.yml | 1 + build.bash | 27 ++++++++++----------------- 2 files changed, 11 insertions(+), 17 deletions(-) diff --git a/.travis.yml b/.travis.yml index eb9beb2..69086e9 100644 --- a/.travis.yml +++ b/.travis.yml @@ -46,3 +46,4 @@ env: matrix: - ARCH=x86 - ARCH=arm + - ARCH=x86,arm diff --git a/build.bash b/build.bash index f650df4..77eaa04 100755 --- a/build.bash +++ b/build.bash @@ -22,23 +22,16 @@ NO_TTY= while [[ $# -gt 0 ]]; do case $1 in - --verbose) - VERBOSE="-v" - shift - ;; - --arch=x86) - ARCH="X86" - shift - ;; - --arch=arm) - ARCH="ARM" - shift - ;; - --no-tty) - NO_TTY=--no-tty - shift - ;; - *) shift ;; + + --arch=x86) ARCH="X86"; shift ;; + --arch=arm) ARCH="ARM"; shift ;; + --arch=arm,x86) ARCH="ARM\\;X86"; shift ;; + --arch=x86,arm) ARCH="X86\\;ARM"; shift ;; + + --verbose) VERBOSE="-v"; shift ;; + --no-tty) NO_TTY=--no-tty; shift ;; + + *) shift ;; esac done From 0b29013f4afea0000f866b974958c3feba1ec8b9 Mon Sep 17 00:00:00 2001 From: Jason Mobarak Date: Thu, 21 Dec 2017 20:27:44 -0800 Subject: [PATCH 2/3] Removing separated archs for now --- .travis.yml | 2 -- 1 file changed, 2 deletions(-) diff --git a/.travis.yml b/.travis.yml index 69086e9..1aef6fb 100644 --- a/.travis.yml +++ b/.travis.yml @@ -44,6 +44,4 @@ env: # DOCKER_PASS - secure: "qEmUT+mBsHjLkrBYMZWiLl8+ZXq9UAv+DyMDww+N74hPtGiZxMqLuVIFq94qR/WhiI9zd7k+tjhy6TcgD8rpKoQnQSGXcotFGq6typ3UWEV0ekt40IMV5nBqopqGGIBVIHNfXjq0OTeYTF2eGncpNnznJHAQi8Dvj7vD99y5GA5RoZGSdsiqTyxBGMvZ0cE0QApkb1MH3lBVRzBuh6dotpa1RBlGR+i2xbcH3nAqy5RB38wZgMedAPnlUfg+uB+IQiF8+hbuSmHzADiabNLBkkB/UCOz59k/JkaeN+2gnyP6/so+SpOe1BKfpxKBcN74O4n056ZLDBRjTod2YSc49dKqxhZhQijwNJfFi3Tt5iNrFYdU3KPeqqfNLoQKmbBTKjGXbxHHXm3lnUuCTZH0Yd9QGKSAwn5kxDRy6DuyNMUGwFtu8YxzirwTJiQR6ayodMCMWjZCXuxUc0I5I2Y64CsofRWkuMbznjE4wJwptVPzTwIxkZnMt+aWVoQTXBtZVpiHf4CTJb65dyLDXeMOwhYnKzwLUrvvHHpOm7GygvAbbeDAzHumTDvt7s5nl2VwHNLmTK3TizvvpQCucIjG8M8dEd7iu4VRZh/rxGxV9MJ2qUNETa6hnfX+Z2xaLTcgYAG5z7p60sThPfFfYLopdJL1dO5eA/EncPzuQuh087w=" matrix: - - ARCH=x86 - - ARCH=arm - ARCH=x86,arm From 5de9d74bee644d0afe4cb20a48612ce3c840df98 Mon Sep 17 00:00:00 2001 From: Jason Mobarak Date: Thu, 21 Dec 2017 20:53:59 -0800 Subject: [PATCH 3/3] Add a toolchain file for cmake --- stage_sysroot.bash | 3 +++ toolchainfile.cmake | 64 +++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 67 insertions(+) create mode 100644 toolchainfile.cmake diff --git a/stage_sysroot.bash b/stage_sysroot.bash index da34e48..91035be 100755 --- a/stage_sysroot.bash +++ b/stage_sysroot.bash @@ -84,6 +84,9 @@ stage_sysroot() { cp -v "$BINTOOL" "${OUT}/usr/bin/" done + mkdir -p "${OUT}/buildroot" + cp -v /this_dir/toolchainfile.cmake "${OUT}/buildroot" + #### ## Disable this for Ubuntu 14.04, it doesn't seem to be present #### diff --git a/toolchainfile.cmake b/toolchainfile.cmake new file mode 100644 index 0000000..685173d --- /dev/null +++ b/toolchainfile.cmake @@ -0,0 +1,64 @@ +# +# Automatically generated file; DO NOT EDIT. +# CMake toolchain file for Buildroot +# + +# In order to allow the toolchain to be relocated, we calculate the +# HOST_DIR based on this file's location: $(HOST_DIR)/usr/share/buildroot +# and store it in RELOCATED_HOST_DIR. +# All the other variables that need to refer to HOST_DIR will use the +# RELOCATED_HOST_DIR variable. +string(REPLACE "/opt/llvm-obfuscator/buildroot" "" RELOCATED_HOST_DIR ${CMAKE_CURRENT_LIST_DIR}) + +set(CMAKE_SYSTEM_NAME Linux) +set(CMAKE_SYSTEM_PROCESSOR armv7l) + +# Set the {C,CXX}FLAGS appended by CMake depending on the build type +# defined by Buildroot. CMake defaults these variables with -g and/or +# -O options, and they are appended at the end of the argument list, +# so the Buildroot options are overridden. Therefore these variables +# have to be cleared, so that the options passed in CMAKE_C_FLAGS do +# apply. +# +# Note: +# if the project forces some of these flag variables, Buildroot is +# screwed up and there is nothing Buildroot can do about that :( +set(CMAKE_C_FLAGS_DEBUG "" CACHE STRING "Debug CFLAGS") +set(CMAKE_CXX_FLAGS_DEBUG "" CACHE STRING "Debug CXXFLAGS") +set(CMAKE_C_FLAGS_RELEASE " -DNDEBUG" CACHE STRING "Release CFLAGS") +set(CMAKE_CXX_FLAGS_RELEASE " -DNDEBUG" CACHE STRING "Release CXXFLAGS") + +# Build type from the Buildroot configuration +set(CMAKE_BUILD_TYPE Release CACHE STRING "Buildroot build configuration") + +# Buildroot defaults flags. +# If you are using this toolchainfile.cmake file outside of Buildroot and +# want to customize the compiler/linker flags, then: +# * set them all on the cmake command line, e.g.: +# cmake -DCMAKE_C_FLAGS="-D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Os -Dsome_custom_flag" ... +# * and make sure the project's CMake code extends them like this if needed: +# set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Dsome_definitions") +set(CMAKE_C_FLAGS "-D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Os" CACHE STRING "Buildroot CFLAGS") +set(CMAKE_CXX_FLAGS "-D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Os" CACHE STRING "Buildroot CXXFLAGS") +set(CMAKE_EXE_LINKER_FLAGS "" CACHE STRING "Buildroot LDFLAGS for executables") + +set(CMAKE_INSTALL_SO_NO_EXE 0) + +set(CMAKE_PROGRAM_PATH "${RELOCATED_HOST_DIR}/opt/llvm-obfuscator/bin") +set(CMAKE_SYSROOT "${RELOCATED_HOST_DIR}/opt/llvm-obfuscator/sysroot") +set(CMAKE_FIND_ROOT_PATH "${RELOCATED_HOST_DIR}/opt/llvm-obfuscator/sysroot") +set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER) +set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY) +set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY) +set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY) +set(ENV{PKG_CONFIG_SYSROOT_DIR} "${RELOCATED_HOST_DIR}/opt/llvm-obfuscator/sysroot") + +# This toolchain file can be used both inside and outside Buildroot. +set(CMAKE_C_COMPILER "${RELOCATED_HOST_DIR}/opt/llvm-obfuscator/wrappers/bin/arm-linux-gnueabihf-clang") +set(CMAKE_CXX_COMPILER "${RELOCATED_HOST_DIR}/opt/llvm-obfuscator/wrappers/bin/arm-linux-gnueabihf-clang++") +#if(1) +# set(CMAKE_Fortran_FLAGS_DEBUG "" CACHE STRING "Debug Fortran FLAGS") +# set(CMAKE_Fortran_FLAGS_RELEASE " -DNDEBUG" CACHE STRING "Release Fortran FLAGS") +# set(CMAKE_Fortran_FLAGS "-Os" CACHE STRING "Buildroot FCFLAGS") +# set(CMAKE_Fortran_COMPILER "${RELOCATED_HOST_DIR}/usr/bin/arm-linux-gnueabihf-gfortran") +#endif()