| @@ -0,0 +1,88 @@ | |||
| name: linux-mips-cpu-gcc | |||
| on: [push, pull_request] | |||
| jobs: | |||
| linux-gcc-mipsel: | |||
| runs-on: ubuntu-20.04 | |||
| steps: | |||
| - uses: actions/checkout@v2 | |||
| - name: cache-qemu | |||
| id: cache-qemu | |||
| uses: actions/cache@v1 | |||
| with: | |||
| path: qemu-install | |||
| key: qemu-mipsel-install-1 | |||
| - name: checkout-qemu | |||
| if: steps.cache-qemu.outputs.cache-hit != 'true' | |||
| uses: actions/checkout@v2 | |||
| with: | |||
| repository: qemu/qemu | |||
| path: qemu | |||
| ref: 8746309137ba470d1b2e8f5ce86ac228625db940 | |||
| - name: qemu | |||
| if: steps.cache-qemu.outputs.cache-hit != 'true' | |||
| run: | | |||
| cd qemu | |||
| ./configure --prefix=install --target-list=mipsel-linux-user --disable-system | |||
| make -j2 | |||
| make install | |||
| cp -r mipsel-linux-user/install $GITHUB_WORKSPACE/qemu-install | |||
| - name: mipsel-gnu-toolchain | |||
| run: | | |||
| sudo apt-get update | |||
| sudo apt-get install g++-mipsel-linux-gnu | |||
| - name: configure | |||
| run: mkdir build && cd build && cmake -DCMAKE_TOOLCHAIN_FILE=../toolchains/mipsel-linux-gnu.toolchain.cmake -DNCNN_BUILD_TOOLS=OFF -DNCNN_BUILD_EXAMPLES=OFF .. | |||
| - name: build | |||
| run: cmake --build build -j 2 | |||
| - name: test | |||
| run: | | |||
| export PATH=$GITHUB_WORKSPACE/qemu-install/bin:$PATH | |||
| cd build | |||
| TESTS_EXECUTABLE_LOADER=qemu-mipsel TESTS_EXECUTABLE_LOADER_ARGUMENTS="-L;/usr/mipsel-linux-gnu" ctest --output-on-failure -j 2 | |||
| linux-gcc-mipsisa32r6el: | |||
| runs-on: ubuntu-20.04 | |||
| steps: | |||
| - uses: actions/checkout@v2 | |||
| - name: cache-qemu | |||
| id: cache-qemu | |||
| uses: actions/cache@v1 | |||
| with: | |||
| path: qemu-install | |||
| key: qemu-mipsel-install-1 | |||
| - name: checkout-qemu | |||
| if: steps.cache-qemu.outputs.cache-hit != 'true' | |||
| uses: actions/checkout@v2 | |||
| with: | |||
| repository: qemu/qemu | |||
| path: qemu | |||
| ref: 8746309137ba470d1b2e8f5ce86ac228625db940 | |||
| - name: qemu | |||
| if: steps.cache-qemu.outputs.cache-hit != 'true' | |||
| run: | | |||
| cd qemu | |||
| ./configure --prefix=install --target-list=mipsel-linux-user --disable-system | |||
| make -j2 | |||
| make install | |||
| cp -r mipsel-linux-user/install $GITHUB_WORKSPACE/qemu-install | |||
| - name: mipsisa32r6el-gnu-toolchain | |||
| run: | | |||
| sudo apt-get update | |||
| sudo apt-get install g++-mipsisa32r6el-linux-gnu | |||
| - name: configure | |||
| run: mkdir build && cd build && cmake -DCMAKE_TOOLCHAIN_FILE=../toolchains/mipsisa32r6el-linux-gnu.toolchain.cmake -DNCNN_BUILD_TOOLS=OFF -DNCNN_BUILD_EXAMPLES=OFF .. | |||
| - name: build | |||
| run: cmake --build build -j 2 | |||
| - name: test | |||
| run: | | |||
| export PATH=$GITHUB_WORKSPACE/qemu-install/bin:$PATH | |||
| cd build | |||
| TESTS_EXECUTABLE_LOADER=qemu-mipsel TESTS_EXECUTABLE_LOADER_ARGUMENTS="-L;/usr/mipsisa32r6el-linux-gnu" ctest --output-on-failure -j 2 | |||
| @@ -1,20 +0,0 @@ | |||
| name: linux-mips32-mti | |||
| on: [push, pull_request] | |||
| jobs: | |||
| linux-mips-mti: | |||
| runs-on: ubuntu-latest | |||
| steps: | |||
| - uses: actions/checkout@v2 | |||
| - name: mips-mti-compiler | |||
| continue-on-error: true | |||
| run: | | |||
| wget https://codescape.mips.com/components/toolchain/2019.09-01/Codescape.GNU.Tools.Package.2019.09-01.for.MIPS.MTI.Linux.CentOS-6.x86_64.tar.gz -O mips-mti-linux-gnu.tar.gz | |||
| tar -zxf mips-mti-linux-gnu.tar.gz | |||
| - name: configure | |||
| continue-on-error: true | |||
| run: | | |||
| export PATH=`pwd`/mips-mti-linux-gnu/2019.09-01/bin:$PATH | |||
| mkdir build && cd build && cmake -DCMAKE_TOOLCHAIN_FILE=../toolchains/mips-mti-linux-gnu.toolchain.cmake -DNCNN_BUILD_TOOLS=OFF .. | |||
| - name: build | |||
| continue-on-error: true | |||
| run: cmake --build build -j 2 | |||
| @@ -0,0 +1,88 @@ | |||
| name: linux-mips64-cpu-gcc | |||
| on: [push, pull_request] | |||
| jobs: | |||
| linux-gcc-mips64el: | |||
| runs-on: ubuntu-20.04 | |||
| steps: | |||
| - uses: actions/checkout@v2 | |||
| - name: cache-qemu | |||
| id: cache-qemu | |||
| uses: actions/cache@v1 | |||
| with: | |||
| path: qemu-install | |||
| key: qemu-mips64el-install-1 | |||
| - name: checkout-qemu | |||
| if: steps.cache-qemu.outputs.cache-hit != 'true' | |||
| uses: actions/checkout@v2 | |||
| with: | |||
| repository: qemu/qemu | |||
| path: qemu | |||
| ref: 8746309137ba470d1b2e8f5ce86ac228625db940 | |||
| - name: qemu | |||
| if: steps.cache-qemu.outputs.cache-hit != 'true' | |||
| run: | | |||
| cd qemu | |||
| ./configure --prefix=install --target-list=mips64el-linux-user --disable-system | |||
| make -j2 | |||
| make install | |||
| cp -r mips64el-linux-user/install $GITHUB_WORKSPACE/qemu-install | |||
| - name: mips64el-gnuabi64-toolchain | |||
| run: | | |||
| sudo apt-get update | |||
| sudo apt-get install g++-mips64el-linux-gnuabi64 | |||
| - name: configure | |||
| run: mkdir build && cd build && cmake -DCMAKE_TOOLCHAIN_FILE=../toolchains/mips64el-linux-gnuabi64.toolchain.cmake -DNCNN_BUILD_TOOLS=OFF -DNCNN_BUILD_EXAMPLES=OFF .. | |||
| - name: build | |||
| run: cmake --build build -j 2 | |||
| - name: test | |||
| run: | | |||
| export PATH=$GITHUB_WORKSPACE/qemu-install/bin:$PATH | |||
| cd build | |||
| TESTS_EXECUTABLE_LOADER=qemu-mips64el TESTS_EXECUTABLE_LOADER_ARGUMENTS="-L;/usr/mips64el-linux-gnuabi64" ctest --output-on-failure -j 2 | |||
| linux-gcc-mipsisa64r6el: | |||
| runs-on: ubuntu-20.04 | |||
| steps: | |||
| - uses: actions/checkout@v2 | |||
| - name: cache-qemu | |||
| id: cache-qemu | |||
| uses: actions/cache@v1 | |||
| with: | |||
| path: qemu-install | |||
| key: qemu-mips64el-install-1 | |||
| - name: checkout-qemu | |||
| if: steps.cache-qemu.outputs.cache-hit != 'true' | |||
| uses: actions/checkout@v2 | |||
| with: | |||
| repository: qemu/qemu | |||
| path: qemu | |||
| ref: 8746309137ba470d1b2e8f5ce86ac228625db940 | |||
| - name: qemu | |||
| if: steps.cache-qemu.outputs.cache-hit != 'true' | |||
| run: | | |||
| cd qemu | |||
| ./configure --prefix=install --target-list=mips64el-linux-user --disable-system | |||
| make -j2 | |||
| make install | |||
| cp -r mips64el-linux-user/install $GITHUB_WORKSPACE/qemu-install | |||
| - name: mipsisa64r6el-gnuabi64-toolchain | |||
| run: | | |||
| sudo apt-get update | |||
| sudo apt-get install g++-mipsisa64r6el-linux-gnuabi64 | |||
| - name: configure | |||
| run: mkdir build && cd build && cmake -DCMAKE_TOOLCHAIN_FILE=../toolchains/mipsisa64r6el-linux-gnuabi64.toolchain.cmake -DNCNN_BUILD_TOOLS=OFF -DNCNN_BUILD_EXAMPLES=OFF .. | |||
| - name: build | |||
| run: cmake --build build -j 2 | |||
| - name: test | |||
| run: | | |||
| export PATH=$GITHUB_WORKSPACE/qemu-install/bin:$PATH | |||
| cd build | |||
| TESTS_EXECUTABLE_LOADER=qemu-mips64el TESTS_EXECUTABLE_LOADER_ARGUMENTS="-L;/usr/mipsisa64r6el-linux-gnuabi64" ctest --output-on-failure -j 2 | |||
| @@ -230,3 +230,117 @@ jobs: | |||
| with: | |||
| token: ${{ secrets.CODECOV_TOKEN }} | |||
| file: build/lcov.info | |||
| linux-gcc-mipsisa32r6el: | |||
| runs-on: ubuntu-20.04 | |||
| steps: | |||
| - uses: actions/checkout@v2 | |||
| - name: lcov | |||
| run: sudo apt-get install lcov | |||
| - name: cache-qemu | |||
| id: cache-qemu | |||
| uses: actions/cache@v1 | |||
| with: | |||
| path: qemu-install | |||
| key: qemu-mipsel-install-1 | |||
| - name: checkout-qemu | |||
| if: steps.cache-qemu.outputs.cache-hit != 'true' | |||
| uses: actions/checkout@v2 | |||
| with: | |||
| repository: qemu/qemu | |||
| path: qemu | |||
| ref: 8746309137ba470d1b2e8f5ce86ac228625db940 | |||
| - name: qemu | |||
| if: steps.cache-qemu.outputs.cache-hit != 'true' | |||
| run: | | |||
| cd qemu | |||
| ./configure --prefix=install --target-list=mipsel-linux-user --disable-system | |||
| make -j2 | |||
| make install | |||
| cp -r mipsel-linux-user/install $GITHUB_WORKSPACE/qemu-install | |||
| - name: mipsisa32r6el-gnu-toolchain | |||
| run: | | |||
| sudo apt-get update | |||
| sudo apt-get install g++-mipsisa32r6el-linux-gnu | |||
| - name: configure | |||
| run: mkdir build && cd build && cmake -DCMAKE_TOOLCHAIN_FILE=../toolchains/mipsisa32r6el-linux-gnu.toolchain.cmake -DCMAKE_BUILD_TYPE=debug -DNCNN_COVERAGE=ON -DNCNN_BUILD_TOOLS=OFF -DNCNN_BUILD_EXAMPLES=OFF .. | |||
| - name: build | |||
| run: cmake --build build -j 2 | |||
| - name: test | |||
| run: | | |||
| export PATH=$GITHUB_WORKSPACE/qemu-install/bin:$PATH | |||
| cd build | |||
| TESTS_EXECUTABLE_LOADER=qemu-mipsel TESTS_EXECUTABLE_LOADER_ARGUMENTS="-L;/usr/mipsisa32r6el-linux-gnu" ctest --output-on-failure -j 2 | |||
| - name: lcov-collect | |||
| run: | | |||
| cd build | |||
| lcov -d ./src -c -o lcov.info | |||
| lcov -r lcov.info '/usr/*' -o lcov.info | |||
| lcov --list lcov.info | |||
| - name: codecov | |||
| uses: codecov/codecov-action@v1.0.11 | |||
| with: | |||
| token: ${{ secrets.CODECOV_TOKEN }} | |||
| file: build/lcov.info | |||
| linux-gcc-mipsisa64r6el: | |||
| runs-on: ubuntu-20.04 | |||
| steps: | |||
| - uses: actions/checkout@v2 | |||
| - name: lcov | |||
| run: sudo apt-get install lcov | |||
| - name: cache-qemu | |||
| id: cache-qemu | |||
| uses: actions/cache@v1 | |||
| with: | |||
| path: qemu-install | |||
| key: qemu-mips64el-install-1 | |||
| - name: checkout-qemu | |||
| if: steps.cache-qemu.outputs.cache-hit != 'true' | |||
| uses: actions/checkout@v2 | |||
| with: | |||
| repository: qemu/qemu | |||
| path: qemu | |||
| ref: 8746309137ba470d1b2e8f5ce86ac228625db940 | |||
| - name: qemu | |||
| if: steps.cache-qemu.outputs.cache-hit != 'true' | |||
| run: | | |||
| cd qemu | |||
| ./configure --prefix=install --target-list=mips64el-linux-user --disable-system | |||
| make -j2 | |||
| make install | |||
| cp -r mips64el-linux-user/install $GITHUB_WORKSPACE/qemu-install | |||
| - name: mipsisa64r6el-gnuabi64-toolchain | |||
| run: | | |||
| sudo apt-get update | |||
| sudo apt-get install g++-mipsisa64r6el-linux-gnuabi64 | |||
| - name: configure | |||
| run: mkdir build && cd build && cmake -DCMAKE_TOOLCHAIN_FILE=../toolchains/mipsisa64r6el-linux-gnuabi64.toolchain.cmake -DCMAKE_BUILD_TYPE=debug -DNCNN_COVERAGE=ON -DNCNN_BUILD_TOOLS=OFF -DNCNN_BUILD_EXAMPLES=OFF .. | |||
| - name: build | |||
| run: cmake --build build -j 2 | |||
| - name: test | |||
| run: | | |||
| export PATH=$GITHUB_WORKSPACE/qemu-install/bin:$PATH | |||
| cd build | |||
| TESTS_EXECUTABLE_LOADER=qemu-mips64el TESTS_EXECUTABLE_LOADER_ARGUMENTS="-L;/usr/mipsisa64r6el-linux-gnuabi64" ctest --output-on-failure -j 2 | |||
| - name: lcov-collect | |||
| run: | | |||
| cd build | |||
| lcov -d ./src -c -o lcov.info | |||
| lcov -r lcov.info '/usr/*' -o lcov.info | |||
| lcov --list lcov.info | |||
| - name: codecov | |||
| uses: codecov/codecov-action@v1.0.11 | |||
| with: | |||
| token: ${{ secrets.CODECOV_TOKEN }} | |||
| file: build/lcov.info | |||
| @@ -0,0 +1,16 @@ | |||
| set(CMAKE_SYSTEM_NAME Linux) | |||
| set(CMAKE_SYSTEM_PROCESSOR mips64el) | |||
| set(CMAKE_C_COMPILER "mips64el-linux-gnuabi64-gcc") | |||
| set(CMAKE_CXX_COMPILER "mips64el-linux-gnuabi64-g++") | |||
| 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_FLAGS "-march=mips64") | |||
| set(CMAKE_CXX_FLAGS "-march=mips64") | |||
| # cache flags | |||
| set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS}" CACHE STRING "c flags") | |||
| set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}" CACHE STRING "c++ flags") | |||
| @@ -0,0 +1,16 @@ | |||
| set(CMAKE_SYSTEM_NAME Linux) | |||
| set(CMAKE_SYSTEM_PROCESSOR mipsel) | |||
| set(CMAKE_C_COMPILER "mipsel-linux-gnu-gcc") | |||
| set(CMAKE_CXX_COMPILER "mipsel-linux-gnu-g++") | |||
| 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_FLAGS "-march=mips32") | |||
| set(CMAKE_CXX_FLAGS "-march=mips32") | |||
| # cache flags | |||
| set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS}" CACHE STRING "c flags") | |||
| set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}" CACHE STRING "c++ flags") | |||
| @@ -1,19 +0,0 @@ | |||
| # set cross-compiled system type, it's better not use the type which cmake cannot recognized. | |||
| SET ( CMAKE_SYSTEM_NAME Linux ) | |||
| SET ( CMAKE_SYSTEM_PROCESSOR mips ) | |||
| # make sure mipsisa32r6-linux-gnu-gcc and mipsisa32r6-linux-gnu-g++ can be found in $PATH: | |||
| SET ( CMAKE_C_COMPILER "mipsisa32r6-linux-gnu-gcc" ) | |||
| SET ( CMAKE_CXX_COMPILER "mipsisa32r6-linux-gnu-g++" ) | |||
| # set searching rules for cross-compiler | |||
| 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_FLAGS} and ${CMAKE_CXX_FLAGS}flag for cross-compiled process | |||
| SET ( CMAKE_CXX_FLAGS "-std=c++11 -march=mips32r6 -mmsa -fopenmp ${CMAKE_CXX_FLAGS}" ) | |||
| # other settings | |||
| add_definitions(-D__MIPS_MSA) | |||
| add_definitions(-DLINUX) | |||
| SET ( LINUX true) | |||
| @@ -0,0 +1,16 @@ | |||
| set(CMAKE_SYSTEM_NAME Linux) | |||
| set(CMAKE_SYSTEM_PROCESSOR mipsisa32r6el) | |||
| set(CMAKE_C_COMPILER "mipsisa32r6el-linux-gnu-gcc") | |||
| set(CMAKE_CXX_COMPILER "mipsisa32r6el-linux-gnu-g++") | |||
| 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_FLAGS "-march=mips32r6") | |||
| set(CMAKE_CXX_FLAGS "-march=mips32r6") | |||
| # cache flags | |||
| set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS}" CACHE STRING "c flags") | |||
| set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}" CACHE STRING "c++ flags") | |||
| @@ -0,0 +1,16 @@ | |||
| set(CMAKE_SYSTEM_NAME Linux) | |||
| set(CMAKE_SYSTEM_PROCESSOR mipsisa64r6el) | |||
| set(CMAKE_C_COMPILER "mipsisa64r6el-linux-gnuabi64-gcc") | |||
| set(CMAKE_CXX_COMPILER "mipsisa64r6el-linux-gnuabi64-g++") | |||
| 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_FLAGS "-march=mips64r6 -mmsa -mhard-float -mfp64 -mnan=2008") | |||
| set(CMAKE_CXX_FLAGS "-march=mips64r6 -mmsa -mhard-float -mfp64 -mnan=2008") | |||
| # cache flags | |||
| set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS}" CACHE STRING "c flags") | |||
| set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}" CACHE STRING "c++ flags") | |||