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

This commit is contained in:
t1amak
2026-03-19 12:03:20 +01:00
parent f92e2e0151
commit e86c822ebb
5 changed files with 17 additions and 19 deletions

View File

@@ -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)"

View File

@@ -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")

View File

@@ -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

View File

@@ -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

View File

@@ -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