On 1/16/25 11:10, Ben Collins wrote:
On Thu, Jan 16, 2025 at 09:48:53AM -0500, Chris Knadle wrote:
Greetings.

I have a situation with mumble where the build is breaking on armel
architecture. Upstream has identified that this bug is due to the mumble
"link" plugin containing atomic memory operations. I would like to
conditionally patch the source plugins/CMakeLists.txt file based on
architecutre to not build that one plugin for armel. CDBS apparently has a
way of doing this [1] and I would like to find a solution for doing this
with debhelper. I've been searching and haven't found anything quite
fitting.
Can the patched code just look like:

#ifdef __ARMEL__
        // Patched code
#else
        // original code with atomic memory ops
#endif

Thank you. From this good hint I found an additional [1] piece that may get the rest of the way [And, ironic that this particular post on stackoverflow only received downvotes.]

----------------------

# Store in CMAKE_DEB_HOST_ARCH var the current build architecture
# (Note: See link [2] below for details for this section)
execute_process(COMMAND
  dpkg-architecture
    -qDEB_HOST_ARCH
  OUTPUT_VARIABLE
    CMAKE_DEB_HOST_ARCH
  OUTPUT_STRIP_TRAILING_WHITESPACE
)

#And use that information later in CMakeLists

if(${CMAKE_DEB_HOST_ARCH} MATCHES "armhf")
  ...
elseif(${CMAKE_DEB_HOST_ARCH} MATCHES "i386")
  ...
else()
  ...
endif()

----------------------

Looking at the manpage for dpkg-architecture, the variable I may want to conditionally build upon might be DEB_TARGET_ARCH rather than DEB_HOST_ARCH.

[1] https://stackoverflow.com/questions/11944060/how-to-detect-target-architecture-using-cmake

[2] https://cmake.org/cmake/help/latest/command/execute_process.html

   -- Chris

--
Chris Knadle
chris.kna...@coredump.us

Reply via email to