Fix remaining cross-build portability issues
Some checks failed
build / ARM v8 (push) Has been cancelled
build / ARM v7 (push) Has been cancelled
build / i686 Linux (push) Has been cancelled
build / i686 Win (push) Has been cancelled
build / RISCV 64bit (push) Has been cancelled
build / Cross-Mac x86_64 (push) Has been cancelled
build / x86_64 Linux (push) Has been cancelled
build / x86_64 Freebsd (push) Has been cancelled
build / Win64 (push) Has been cancelled
build / Cross-Mac aarch64 (push) Has been cancelled
Some checks failed
build / ARM v8 (push) Has been cancelled
build / ARM v7 (push) Has been cancelled
build / i686 Linux (push) Has been cancelled
build / i686 Win (push) Has been cancelled
build / RISCV 64bit (push) Has been cancelled
build / Cross-Mac x86_64 (push) Has been cancelled
build / x86_64 Linux (push) Has been cancelled
build / x86_64 Freebsd (push) Has been cancelled
build / Win64 (push) Has been cancelled
build / Cross-Mac aarch64 (push) Has been cancelled
This commit is contained in:
@@ -56,7 +56,7 @@ jobs:
|
||||
package_artifact: true
|
||||
- name: x86_64 Freebsd
|
||||
host: x86_64-unknown-freebsd
|
||||
packages: clang-8 gperf cmake python3-zmq libdbus-1-dev libharfbuzz-dev
|
||||
packages: gperf cmake python3-zmq libdbus-1-dev libharfbuzz-dev
|
||||
package_artifact: false
|
||||
|
||||
steps:
|
||||
@@ -91,12 +91,6 @@ jobs:
|
||||
sudo update-alternatives --set ${{ matrix.toolchain.host }}-g++ "$(which ${{ matrix.toolchain.host }}-g++-posix)"
|
||||
sudo update-alternatives --set ${{ matrix.toolchain.host }}-gcc "$(which ${{ matrix.toolchain.host }}-gcc-posix)"
|
||||
|
||||
- name: Prepare FreeBSD clang aliases
|
||||
if: ${{ matrix.toolchain.host == 'x86_64-unknown-freebsd' }}
|
||||
run: |
|
||||
sudo ln -sf "$(which clang)" /usr/local/bin/clang-8
|
||||
sudo ln -sf "$(which clang++)" /usr/local/bin/clang++-8
|
||||
|
||||
- name: Build
|
||||
run: |
|
||||
make depends target=${{ matrix.toolchain.host }} -j"$(nproc)"
|
||||
|
||||
@@ -951,25 +951,27 @@ else()
|
||||
endif(ARM6)
|
||||
|
||||
if(ARM7)
|
||||
if(CXX_ACCEPTS_VFP3_D16 AND NOT CXX_ACCEPTS_VFP4)
|
||||
if(DEPENDS AND CMAKE_SYSTEM_NAME STREQUAL "Linux")
|
||||
message(STATUS "Using Debian armhf baseline flags for ARMv7 cross-build")
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -mfpu=vfp3-d16 -mfloat-abi=hard")
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mfpu=vfp3-d16 -mfloat-abi=hard")
|
||||
elseif(CXX_ACCEPTS_VFP3_D16 AND NOT CXX_ACCEPTS_VFP4)
|
||||
message(STATUS "Selecting VFP3 for ARMv7")
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -mfpu=vfp3-d16")
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mfpu=vfp3-d16")
|
||||
endif()
|
||||
|
||||
if(CXX_ACCEPTS_VFP4)
|
||||
elseif(CXX_ACCEPTS_VFP4)
|
||||
message(STATUS "Selecting VFP4 for ARMv7")
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -mfpu=vfp4")
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mfpu=vfp4")
|
||||
endif()
|
||||
|
||||
if(CXX_ACCEPTS_MFLOAT_HARD)
|
||||
if(NOT (DEPENDS AND CMAKE_SYSTEM_NAME STREQUAL "Linux") AND CXX_ACCEPTS_MFLOAT_HARD)
|
||||
message(STATUS "Setting Hardware ABI for Floating Point")
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -mfloat-abi=hard")
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mfloat-abi=hard")
|
||||
endif()
|
||||
|
||||
if(CXX_ACCEPTS_MFLOAT_SOFTFP AND NOT CXX_ACCEPTS_MFLOAT_HARD)
|
||||
if(NOT (DEPENDS AND CMAKE_SYSTEM_NAME STREQUAL "Linux") AND CXX_ACCEPTS_MFLOAT_SOFTFP AND NOT CXX_ACCEPTS_MFLOAT_HARD)
|
||||
message(STATUS "Setting Software ABI for Floating Point")
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -mfloat-abi=softfp")
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mfloat-abi=softfp")
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
freebsd_CC=clang-8
|
||||
freebsd_CXX=clang++-8
|
||||
freebsd_CC=clang
|
||||
freebsd_CXX=clang++
|
||||
freebsd_AR=ar
|
||||
freebsd_RANLIB=ranlib
|
||||
freebsd_NM=nm
|
||||
|
||||
@@ -12,8 +12,8 @@ endef
|
||||
|
||||
define $(package)_build_cmds
|
||||
mkdir bin &&\
|
||||
echo "#!/bin/sh\n\nexec /usr/bin/clang-8 -target x86_64-unknown-freebsd$($(package)_version) --sysroot=$(host_prefix)/native $$$$""@" > bin/clang-8 &&\
|
||||
echo "#!/bin/sh\n\nexec /usr/bin/clang++-8 -target x86_64-unknown-freebsd$($(package)_version) --sysroot=$(host_prefix)/native $$$$""@" > bin/clang++-8 &&\
|
||||
echo "#!/bin/sh\n\nexec /usr/bin/clang -target x86_64-unknown-freebsd$($(package)_version) --sysroot=$(host_prefix)/native $$$$""@" > bin/clang &&\
|
||||
echo "#!/bin/sh\n\nexec /usr/bin/clang++ -target x86_64-unknown-freebsd$($(package)_version) --sysroot=$(host_prefix)/native $$$$""@" > bin/clang++ &&\
|
||||
chmod 755 bin/*
|
||||
endef
|
||||
|
||||
|
||||
@@ -1,11 +1,13 @@
|
||||
#pragma once
|
||||
|
||||
#if defined(__x86_64__)
|
||||
#if defined(__x86_64__) || defined(__i386__)
|
||||
#define DEBUG_BREAK() asm volatile("int $3")
|
||||
#elif defined(__aarch64__)
|
||||
#define DEBUG_BREAK() asm volatile("brk #0xf000")
|
||||
#elif defined(__arm__)
|
||||
#define DEBUG_BREAK() asm volatile(".inst 0xe7f001f0") // Encoding for bkpt #0xf01, common for ARM32
|
||||
#elif defined(__riscv)
|
||||
#define DEBUG_BREAK() asm volatile("ebreak")
|
||||
#else
|
||||
#error "Unsupported architecture for DEBUG_BREAK"
|
||||
#define DEBUG_BREAK() __builtin_trap()
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user