[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#1014594: marked as done (muse: FTBFS on riscv64)



Your message dated Sun, 17 Sep 2023 16:21:09 +0000
with message-id <E1qhuWD-003HVK-8Z@fasolo.debian.org>
and subject line Bug#1014594: fixed in muse 4.2.0-1
has caused the Debian Bug report #1014594,
regarding muse: FTBFS on riscv64
to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact owner@bugs.debian.org
immediately.)


-- 
1014594: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1014594
Debian Bug Tracking System
Contact owner@bugs.debian.org with problems
--- Begin Message ---
Source: muse
Version: 4.1.0-1
Severity: normal
Tags: ftbfs, patch, upstream
User: debian-riscv@lists.debian.org
Usertags: riscv64
X-Debbugs-Cc: debian-riscv@lists.debian.org

Dear maintainer,

The package muse, version 4.1.0-1, has a FTFBS issue for riscv.

[100%] Linking CXX executable muse
cd /<<PKGBUILDDIR>>/obj-riscv64-linux-gnu/muse && /usr/bin/cmake -E cmake_link_script CMakeFiles/muse.dir/link.txt --verbose=1
/usr/bin/c++ -Werror=format-security -Wextra -Winvalid-pch -fexceptions -Wall -fPIC -Wl,-z,relro -Wl,-z,now CMakeFiles/muse.dir/main.cpp.o CMakeFiles/muse.dir/qrc_resources.cpp.o -o muse  -Wl,-rpath,/usr/lib/muse/modules libmuse_core.so midiedit/libmuse_midiedit.so ctrl/libmuse_ctrl.so function_dialogs/libmuse_widgets_functiondialogs.so ../al/libmuse_al.so arranger/libmuse_arranger.so cliplist/libmuse_cliplist.so driver/libmuse_driver.so -lasound -L/usr/lib/riscv64-linux-gnu -ljack -ljack -lrtaudio instruments/libmuse_instruments.so libmuse_latency_compensator_module.so liste/libmuse_liste.so marker/libmuse_marker.so master/libmuse_master.so mixer/libmuse_mixer.so mplugins/libmuse_mplugins.so ../libs/string/libmuse_string.so ../libs/plugin/libmuse_plugin_cache_writer_module.so ../libs/plugin/libmuse_plugin_rdf_module.so ../libs/plugin/libmuse_plugin_cache_reader_module.so ../libs/plugin/libmuse_plugin_list_module.so ../libs/plugin/libmuse_plugin_scan_module.so ../synti/libsynti/libmuse_synti.so ../libs/wave/libmuse_wave_module.so ../audio_convert/libaudio_converter_plugin.so ../libs/time_stretch/libmuse_time_stretch_module.so waveedit/libmuse_waveedit.so libmuse_wavepreview_module.so components/libmuse_components.so libmuse_icons.so widgets/libmuse_widgets.so -lsndfile -lsamplerate -llo -lpthread libmuse_lv2host_module.so ../libs/midnam/libmuse_midnam_module.so ../libs/midi_controller/libmuse_midi_controller_module.so ../libs/mpevent/libmuse_mpevent_module.so ../libs/evdata/libmuse_evdata_module.so ../libs/memory/libmuse_memory_module.so ../libs/sysex_helper/libmuse_sysex_helper_module.so ../libs/xml/libmuse_xml_module.so /usr/lib/riscv64-linux-gnu/libQt5UiTools.a -lpthread /usr/lib/riscv64-linux-gnu//libQt5Widgets.so /usr/lib/riscv64-linux-gnu//libQt5Gui.so /usr/lib/riscv64-linux-gnu//libQt5Core.so /usr/lib/riscv64-linux-gnu//libQt5Widgets.so /usr/lib/riscv64-linux-gnu//libQt5Gui.so /usr/lib/riscv64-linux-gnu//libQt5Core.so /usr/lib/riscv64-linux-gnu/libGL.so /usr/lib/riscv64-linux-gnu/libQt5Xml.so.5.15.2 /usr/lib/riscv64-linux-gnu/libQt5Svg.so.5.15.2 /usr/lib/riscv64-linux-gnu/libQt5Widgets.so.5.15.2 /usr/lib/riscv64-linux-gnu/libQt5Gui.so.5.15.2 /usr/lib/riscv64-linux-gnu/libQt5Core.so.5.15.2 -llilv-0 -ldl -lsratom-0 -lsord-0 -lserd-0
/usr/bin/ld: libmuse_lv2host_module.so: undefined reference to `__atomic_fetch_sub_2'
/usr/bin/ld: libmuse_lv2host_module.so: undefined reference to `__atomic_fetch_add_2'
collect2: error: ld returned 1 exit status
make[3]: *** [muse/CMakeFiles/muse.dir/build.make:384: muse/muse] Error 1
make[3]: Leaving directory '/<<PKGBUILDDIR>>/obj-riscv64-linux-gnu'
make[2]: *** [CMakeFiles/Makefile2:2203: muse/CMakeFiles/muse.dir/all] Error 2
make[2]: Leaving directory '/<<PKGBUILDDIR>>/obj-riscv64-linux-gnu'
make[1]: *** [Makefile:159: all] Error 2
make[1]: Leaving directory '/<<PKGBUILDDIR>>/obj-riscv64-linux-gnu'
dh_auto_build: error: cd obj-riscv64-linux-gnu && make -j4 "INSTALL=install --strip-program=true" VERBOSE=1 returned exit code 2
make: *** [debian/rules:6: binary-arch] Error 25
dpkg-buildpackage: error: debian/rules binary-arch subprocess returned exit status 2

The attached patch fixes the issue, and I will create a merge request on the salsa repo at https://salsa.debian.org/multimedia-team/muse.

Ileana Dumitrescu
From: Ileana Dumitrescu <ileanadumi95@protonmail.com>
Date: Fri, 8 Jul 2022 16:10:14 +0300
Subject: [PATCH] link with libatomic if needed

---
 src/CMakeLists.txt          |  1 +
 src/cmake/CheckAtomic.cmake | 78 +++++++++++++++++++++++++++++++++++++
 src/muse/CMakeLists.txt     |  6 ++-
 3 files changed, 84 insertions(+), 1 deletion(-)
 create mode 100644 src/cmake/CheckAtomic.cmake

diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index 1f861f7..0bd53f1 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -30,6 +30,7 @@ include(CheckIncludeFiles)
 include (CheckCSourceCompiles)
 include(cmake/Summary.cmake)
 include(CheckCXXSymbolExists)
+include(cmake/CheckAtomic.cmake)
 
 CMAKE_MINIMUM_REQUIRED(VERSION 3.10.2)
 if (COMMAND cmake_policy)
diff --git a/src/cmake/CheckAtomic.cmake b/src/cmake/CheckAtomic.cmake
new file mode 100644
index 0000000..eaf801f
--- /dev/null
+++ b/src/cmake/CheckAtomic.cmake
@@ -0,0 +1,78 @@
+# atomic builtins are required for threading support.
+
+INCLUDE(CheckCXXSourceCompiles)
+INCLUDE(CheckLibraryExists)
+
+# Sometimes linking against libatomic is required for atomic ops, if
+# the platform doesn't support lock-free atomics.
+
+function(check_working_cxx_atomics varname)
+  set(OLD_CMAKE_REQUIRED_FLAGS ${CMAKE_REQUIRED_FLAGS})
+  set(CMAKE_REQUIRED_FLAGS "${CMAKE_REQUIRED_FLAGS} -std=c++11")
+  CHECK_CXX_SOURCE_COMPILES("
+#include <atomic>
+std::atomic<int> x;
+int main() {
+  return x;
+}
+" ${varname})
+  set(CMAKE_REQUIRED_FLAGS ${OLD_CMAKE_REQUIRED_FLAGS})
+endfunction(check_working_cxx_atomics)
+
+function(check_working_cxx_atomics64 varname)
+  set(OLD_CMAKE_REQUIRED_FLAGS ${CMAKE_REQUIRED_FLAGS})
+  set(CMAKE_REQUIRED_FLAGS "-std=c++11 ${CMAKE_REQUIRED_FLAGS}")
+  CHECK_CXX_SOURCE_COMPILES("
+#include <atomic>
+#include <cstdint>
+std::atomic<uint64_t> x (0);
+int main() {
+  uint64_t i = x.load(std::memory_order_relaxed);
+  return 0;
+}
+" ${varname})
+  set(CMAKE_REQUIRED_FLAGS ${OLD_CMAKE_REQUIRED_FLAGS})
+endfunction(check_working_cxx_atomics64)
+
+
+# This isn't necessary on MSVC, so avoid command-line switch annoyance
+# by only running on GCC-like hosts.
+if (LLVM_COMPILER_IS_GCC_COMPATIBLE)
+  # First check if atomics work without the library.
+  check_working_cxx_atomics(HAVE_CXX_ATOMICS_WITHOUT_LIB)
+  # If not, check if the library exists, and atomics work with it.
+  if(NOT HAVE_CXX_ATOMICS_WITHOUT_LIB)
+    check_library_exists(atomic __atomic_fetch_add_4 "" HAVE_LIBATOMIC)
+    if( HAVE_LIBATOMIC )
+      list(APPEND CMAKE_REQUIRED_LIBRARIES "atomic")
+      check_working_cxx_atomics(HAVE_CXX_ATOMICS_WITH_LIB)
+      if (NOT HAVE_CXX_ATOMICS_WITH_LIB)
+	message(FATAL_ERROR "Host compiler must support std::atomic!")
+      endif()
+    else()
+      message(FATAL_ERROR "Host compiler appears to require libatomic, but cannot find it.")
+    endif()
+  endif()
+endif()
+
+# Check for 64 bit atomic operations.
+if(MSVC)
+  set(HAVE_CXX_ATOMICS64_WITHOUT_LIB True)
+else()
+  check_working_cxx_atomics64(HAVE_CXX_ATOMICS64_WITHOUT_LIB)
+endif()
+
+# If not, check if the library exists, and atomics work with it.
+if(NOT HAVE_CXX_ATOMICS64_WITHOUT_LIB)
+  check_library_exists(atomic __atomic_load_8 "" HAVE_CXX_LIBATOMICS64)
+  if(HAVE_CXX_LIBATOMICS64)
+    list(APPEND CMAKE_REQUIRED_LIBRARIES "atomic")
+    check_working_cxx_atomics64(HAVE_CXX_ATOMICS64_WITH_LIB)
+    if (NOT HAVE_CXX_ATOMICS64_WITH_LIB)
+      message(FATAL_ERROR "Host compiler must support 64-bit std::atomic!")
+    endif()
+  else()
+    message(FATAL_ERROR "Host compiler appears to require libatomic for 64-bit operations, but cannot find it.")
+  endif()
+endif()
+
diff --git a/src/muse/CMakeLists.txt b/src/muse/CMakeLists.txt
index 52cdaeb..4f6b166 100644
--- a/src/muse/CMakeLists.txt
+++ b/src/muse/CMakeLists.txt
@@ -355,7 +355,11 @@ if(LV2_SUPPORT)
             PROPERTIES COMPILE_FLAGS "-Wno-error"
             OUTPUT_NAME muse_lv2host_module
             )
-            
+      
+      if(NOT HAVE_CXX_ATOMICS_WITHOUT_LIB)
+	    target_link_libraries(lv2host_module atomic)
+      endif()
+
       target_link_libraries(lv2host_module ${LILV_LIBRARIES})
       target_link_libraries(lv2host_module ${SORD_LIBRARIES})
       target_link_libraries(lv2host_module ${LV2_LIBRARIES})
-- 
2.35.2


--- End Message ---
--- Begin Message ---
Source: muse
Source-Version: 4.2.0-1
Done: Dennis Braun <snd@debian.org>

We believe that the bug you reported is fixed in the latest version of
muse, which is due to be installed in the Debian FTP archive.

A summary of the changes between this version and the previous one is
attached.

Thank you for reporting the bug, which will now be closed.  If you
have further comments please address them to 1014594@bugs.debian.org,
and the maintainer will reopen the bug report if appropriate.

Debian distribution maintenance software
pp.
Dennis Braun <snd@debian.org> (supplier of updated muse package)

(This message was generated automatically at their request; if you
believe that there is a problem with it please contact the archive
administrators by mailing ftpmaster@ftp-master.debian.org)


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA512

Format: 1.8
Date: Sun, 17 Sep 2023 17:51:14 +0200
Source: muse
Architecture: source
Version: 4.2.0-1
Distribution: unstable
Urgency: medium
Maintainer: Debian Multimedia Maintainers <debian-multimedia@lists.debian.org>
Changed-By: Dennis Braun <snd@debian.org>
Closes: 1014594 1032810 1051555
Changes:
 muse (4.2.0-1) unstable; urgency=medium
 .
   [ Debian Janitor ]
   * Remove constraints unnecessary since buster
 .
   [ Dennis Braun ]
   * New upstream version 4.2.0
     - Fix FTBFS with RtAudio 6 (Closes: #1051555)
     - Fix FTBFS on riscv64 (Closes: #1014594)
       Thanks to Ileana Dumitrescu!
   * Add romanian translation (Closes: #1032810)
     Thanks to Remus-Gabriel Chelu!
   * Bump Standards Version to 4.6.2
   * Add extra-cmake-modules to B-Ds
   * Add libjack-jackd2-dev as optional B-D
   * Change my email address
   * Bump d/copyright years
   * Refresh lintian-overrides
   * Refresh patchset with gbp pq
    - Drop desktop patch, applied by upstream
Checksums-Sha1:
 e19c787c38f4566da2e41744918cb7295718e894 2315 muse_4.2.0-1.dsc
 72440c7687b11b2b0947ace9fd43400f957d469d 12509254 muse_4.2.0.orig.tar.gz
 6518a7a74d8ed6169cda92af522d0b06df626cb0 28892 muse_4.2.0-1.debian.tar.xz
 0754443714065609cefc91e598680760597baf7a 6573 muse_4.2.0-1_source.buildinfo
Checksums-Sha256:
 4f777165bd5acc57d96cda234b8e3ea051d3c7fcd1ec9e8226a22ca9fe90c064 2315 muse_4.2.0-1.dsc
 f8f05b16c4471ab66ad32d94f4ac796090e11387e9e26fdd9aeb518294a3d413 12509254 muse_4.2.0.orig.tar.gz
 87e91216a5a7853d167d2bd87fbdf23664953e06df6def8ae3480c1790a963ea 28892 muse_4.2.0-1.debian.tar.xz
 c6e8d492a4ee1641ae40893782c1a783b7dacd55f519e394461a107a7b487390 6573 muse_4.2.0-1_source.buildinfo
Files:
 7098354a91c87caa5b882355a15616b0 2315 sound optional muse_4.2.0-1.dsc
 3ec22eaf281388c4a855de3f4c2bfbb3 12509254 sound optional muse_4.2.0.orig.tar.gz
 6eff4c366c1c257ec12270bac5376e86 28892 sound optional muse_4.2.0-1.debian.tar.xz
 6a1c9ba6a414ab88ef9791cce8b86bb4 6573 sound optional muse_4.2.0-1_source.buildinfo

-----BEGIN PGP SIGNATURE-----

iQJDBAEBCgAtFiEEPLfDAq+1fmGoxhfdY06lXZArmDYFAmUHIKwPHHNuZEBkZWJp
YW4ub3JnAAoJEGNOpV2QK5g2LnAQAKYHmfJrXfoeWDgN7NEDYwpWjk/Tk5i6KSf0
lIVUhlYhmv+l7VX+Wckj/PB2WoJRYY9mD5mJ9lyfG+bBj9y8o8rtyStyFL2u9p+Y
vuKRH3XqDLrPYm9wt85T1krAnJPemAtP30scqF0cfDpFjybsFEksPHvpPZpEjYn/
rZ2j9J4grmdwJIOUzt/ctxNV3YuTJSfyjXS4ha6TbuFvRvSBCK+tyuRdNe9D3r3g
48FBWNtdhCyTAiVY5gLri+cPtUw6CiiAV3UI1McbUUQ8EDjwKl5xQpMFozAmzKbe
eMO5rezupYPhyCFZeAqgDFqElI61v01v2moGy8aCeV8r5iSKmLOqlKY/cvf6ikzl
h1BPi4lyOnpjkkWFIhe4WyBsocid8JN7BWuK4Tg1qJqq1e3O0EOkzpuYWXWxJTbL
badpnKBrNKxEUkdcY92g3QSxbG1tX7va8OPg2O7vngX1L/46WW0TPrmcEAaY/QVb
2Qjllv42pF/JPHatXyJPDzgkBONOEyTBxsqiKSrhhH031DIO/T1JO83ddn++Af7A
JlBgk0AV4n+yZjO3PY+zqhwEzUu+6VL11u4irbiFTZjVlfUU1TKR8JBFfKIUyG+X
Hnq51BXkYV2UNjtbImEU7r3+4N95SjZmbYfsMHRxMJIw41RpmprJ2rZAdep9094j
wA24VEnz
=0dyN
-----END PGP SIGNATURE-----

--- End Message ---

Reply to: