Adding -latomic to cmake

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

 



Hi,

I'm maintaining Ceph in Debian. That's probably the only distro where we
have a mips64el port. And it fails there:

https://buildd.debian.org/status/package.php?p=ceph&suite=experimental

(click on the "Build-Attempted" to see the build log in front of mips64el)

This CPU doesn't support atomic operations, so it must use the emulation
provided by the lib atomic. So "-latomic" should be added to the command
line.

I've first tried to add in debian/rules:

DEB_LDFLAGS_MAINT_APPEND=-latomic

but this puts -latomic at the beginning of the command line, before the
Ceph internal .so, which fails.

So I tried another approach which was to patch the CMakeLists.txt:

--- ceph-16.2.6+ds.orig/src/tools/rbd_mirror/CMakeLists.txt
+++ ceph-16.2.6+ds/src/tools/rbd_mirror/CMakeLists.txt
@@ -71,6 +71,7 @@ add_library(rbd_mirror_internal STATIC
 add_executable(rbd-mirror
   main.cc)
 target_link_libraries(rbd-mirror
+  atomic
   rbd_mirror_internal
   rbd_mirror_types
   rbd_api
--- a/src/mgr/CMakeLists.txt    2021-11-03 11:57:18.576976453 +0100
+++ b/src/mgr/CMakeLists.txt    2021-11-21 22:46:46.353082042 +0100
@@ -37,7 +37,8 @@
     osdc client heap_profiler
     global-static ceph-common
     Boost::python${MGR_PYTHON_VERSION_MAJOR}${MGR_PYTHON_VERSION_MINOR}
-    Python3::Python ${CMAKE_DL_LIBS} ${GSSAPI_LIBRARIES})
+    Python3::Python ${CMAKE_DL_LIBS} ${GSSAPI_LIBRARIES}
+    atomic)
   set_target_properties(ceph-mgr PROPERTIES
     POSITION_INDEPENDENT_CODE ${EXE_LINKER_USE_PIE})
   install(TARGETS ceph-mgr DESTINATION bin)

This worked for the libs, but failed when building rbd_mirror binary.

So my question is: what's the best way, for a Debian package, to make
Ceph add -latomic *AT THE END* of the command line?

As for the mipsel arch, the error is:
virtual memory exhausted: Cannot allocate memory

so I'd need to save some memory at build time, somehow. Tips would be
appreciated.

For armel, the issue is:
/tmp/cc3CvITT.s:2594: Error: selected processor does not support `yield'
in ARM mode

Does anyone know how to fix that?
Thanks in advance for anyone who will help,

Cheers,

Thomas Goirand (zigo)
_______________________________________________
Dev mailing list -- dev@xxxxxxx
To unsubscribe send an email to dev-leave@xxxxxxx



[Index of Archives]     [CEPH Users]     [Ceph Devel]     [Ceph Large]     [Information on CEPH]     [Linux BTRFS]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux