Closed traversaro closed 4 months ago
Very likely you need https://github.com/DOCGroup/ACE_TAO/pull/1737 which will be part of ACE 7.0.6. There are some CI builds for MacOSX but very minimal, no idea whether it works. Cross compilation hasn't been tried as far as I know, so very likely you need to make some enhancements to ACE
Thanks @jwillemsen !
I would recommend to just try ACE with arm64 and report patches upstream
ACE 7.0.6 is now available, see https://github.com/conda-forge/ace-feedstock/pull/30
Could #40 maybe be because -m64 is used by our make files?
What was the error when attempting to cross-compile ACE?
I can't find a log from the CI that has the error, maybe you can add here how you invoke the cross compiler in your build so that someone can compare that at some point @mitza-oci ? As far as I remember it appears to build a x64 version with the cross compiler. Maybe you can also paste your platform_macros.GNU here for the cross compile @mitza-oci ?
I just restarted the CI on https://github.com/conda-forge/ace-feedstock/pull/45, so we should be able to see the cross-compilation logs.
The compiler invocation from conda-forge, I think -m64
could be maybe be the issue
clang++ -Wnon-virtual-dtor -std=c++11 -g -m64 -Wall -Wextra -Wpointer-arith -D_FORTIFY_SOURCE=2 -isystem $PREFIX/include -mmacosx-version-min=11.0 -DACE_HAS_CUSTOM_EXPORT_MACROS=0 -I$SRC_DIR -D__ACE_INLINE__ -I.. -DACE_BUILD_DLL -c -o arm64/.shobj/ace_wchar.o $SRC_DIR/ace/ace_wchar.cpp
clang++ -dynamiclib -install_name @rpath/libACE.dylib -o arm64/libACE.dylib arm64/.shobj/ACE.o arm64/.shobj/ACE_crc32.o arm64/.shobj/ACE_crc_ccitt.o arm64/.shobj/ATM_Acceptor.o arm64/.shobj/ATM_Addr.o arm64/.shobj/ATM_Connector.o arm64/.shobj/ATM_Params.o arm64/.shobj/ATM_QoS.o arm64/.shobj/ATM_Stream.o arm64/.shobj/Activation_Queue.o arm64/.shobj/Active_Map_Manager.o arm64/.shobj/Addr.o arm64/.shobj/Argv_Type_Converter.o arm64/.shobj/Assert.o arm64/.shobj/Asynch_IO.o arm64/.shobj/Asynch_IO_Impl.o arm64/.shobj/Asynch_Pseudo_Task.o arm64/.shobj/Atomic_Op.o arm64/.shobj/Atomic_Op_Sparc.o arm64/.shobj/Barrier.o arm64/.shobj/Base_Thread_Adapter.o arm64/.shobj/Based_Pointer_Repository.o arm64/.shobj/Basic_Stats.o arm64/.shobj/Basic_Types.o arm64/.shobj/CDR_Base.o arm64/.shobj/CDR_Size.o arm64/.shobj/CDR_Stream.o arm64/.shobj/Capabilities.o arm64/.shobj/Cleanup.o arm64/.shobj/Codecs.o arm64/.shobj/Codeset_IBM1047.o arm64/.shobj/Codeset_Registry.o arm64/.shobj/Codeset_Registry_db.o arm64/.shobj/Condition_Attributes.o arm64/.shobj/Condition_Recursive_Thread_Mutex.o arm64/.shobj/Condition_Thread_Mutex.o arm64/.shobj/Configuration.o arm64/.shobj/Configuration_Import_Export.o arm64/.shobj/Connection_Recycling_Strategy.o arm64/.shobj/Containers.o arm64/.shobj/Copy_Disabled.o arm64/.shobj/DEV.o arm64/.shobj/DEV_Addr.o arm64/.shobj/DEV_Connector.o arm64/.shobj/DEV_IO.o arm64/.shobj/DLL.o arm64/.shobj/DLL_Manager.o arm64/.shobj/Date_Time.o arm64/.shobj/Dev_Poll_Reactor.o arm64/.shobj/Dirent.o arm64/.shobj/Dirent_Selector.o arm64/.shobj/Dump.o arm64/.shobj/Dynamic.o arm64/.shobj/Dynamic_Message_Strategy.o arm64/.shobj/Dynamic_Service_Base.o arm64/.shobj/Dynamic_Service_Dependency.o arm64/.shobj/Encoding_Converter.o arm64/.shobj/Encoding_Converter_Factory.o arm64/.shobj/Event_Base.o arm64/.shobj/Event_Handler.o arm64/.shobj/Event_Handler_Handle_Timeout_Upcall.o arm64/.shobj/FIFO.o arm64/.shobj/FIFO_Recv.o arm64/.shobj/FIFO_Recv_Msg.o arm64/.shobj/FIFO_Send.o arm64/.shobj/FIFO_Send_Msg.o arm64/.shobj/FILE.o arm64/.shobj/FILE_Addr.o arm64/.shobj/FILE_Connector.o arm64/.shobj/FILE_IO.o arm64/.shobj/File_Lock.o arm64/.shobj/Filecache.o arm64/.shobj/Flag_Manip.o arm64/.shobj/Framework_Component.o arm64/.shobj/Functor.o arm64/.shobj/Functor_String.o arm64/.shobj/Get_Opt.o arm64/.shobj/Handle_Ops.o arm64/.shobj/Handle_Set.o arm64/.shobj/Hashable.o arm64/.shobj/High_Res_Timer.o arm64/.shobj/ICMP_Socket.o arm64/.shobj/INET_Addr.o arm64/.shobj/IOStream.o arm64/.shobj/IO_Cntl_Msg.o arm64/.shobj/IO_SAP.o arm64/.shobj/IPC_SAP.o arm64/.shobj/Init_ACE.o arm64/.shobj/LSOCK.o arm64/.shobj/LSOCK_Acceptor.o arm64/.shobj/LSOCK_CODgram.o arm64/.shobj/LSOCK_Connector.o arm64/.shobj/LSOCK_Dgram.o arm64/.shobj/LSOCK_Stream.o arm64/.shobj/Lib_Find.o arm64/.shobj/Local_Memory_Pool.o arm64/.shobj/Local_Name_Space.o arm64/.shobj/Local_Tokens.o arm64/.shobj/Lock.o arm64/.shobj/Log_Category.o arm64/.shobj/Log_Msg.o arm64/.shobj/Log_Msg_Android_Logcat.o arm64/.shobj/Log_Msg_Backend.o arm64/.shobj/Log_Msg_Callback.o arm64/.shobj/Log_Msg_IPC.o arm64/.shobj/Log_Msg_NT_Event_Log.o arm64/.shobj/Log_Msg_UNIX_Syslog.o arm64/.shobj/Log_Record.o arm64/.shobj/Logging_Strategy.o arm64/.shobj/MEM_Acceptor.o arm64/.shobj/MEM_Addr.o arm64/.shobj/MEM_Connector.o arm64/.shobj/MEM_IO.o arm64/.shobj/MEM_SAP.o arm64/.shobj/MEM_Stream.o arm64/.shobj/MMAP_Memory_Pool.o arm64/.shobj/MQX_Filesystem.o arm64/.shobj/Malloc.o arm64/.shobj/Malloc_Allocator.o arm64/.shobj/Mem_Map.o arm64/.shobj/Message_Block.o arm64/.shobj/Message_Queue.o arm64/.shobj/Message_Queue_NT.o arm64/.shobj/Message_Queue_Vx.o arm64/.shobj/Method_Request.o arm64/.shobj/Monitor_Admin.o arm64/.shobj/Monitor_Admin_Manager.o arm64/.shobj/Monitor_Base.o arm64/.shobj/Monitor_Control_Action.o arm64/.shobj/Monitor_Control_Types.o arm64/.shobj/Monitor_Point_Registry.o arm64/.shobj/Monitor_Size.o arm64/.shobj/Monotonic_Time_Policy.o arm64/.shobj/Msg_WFMO_Reactor.o arm64/.shobj/Multihomed_INET_Addr.o arm64/.shobj/Mutex.o arm64/.shobj/NT_Service.o arm64/.shobj/Name_Proxy.o arm64/.shobj/Name_Request_Reply.o arm64/.shobj/Name_Space.o arm64/.shobj/Naming_Context.o arm64/.shobj/Netlink_Addr.o arm64/.shobj/Notification_Queue.o arm64/.shobj/Notification_Strategy.o arm64/.shobj/Null_Mutex.o arm64/.shobj/OS_Errno.o arm64/.shobj/OS_Log_Msg_Attributes.o arm64/.shobj/OS_NS_Thread.o arm64/.shobj/OS_NS_arpa_inet.o arm64/.shobj/OS_NS_ctype.o arm64/.shobj/OS_NS_devctl.o arm64/.shobj/OS_NS_dirent.o arm64/.shobj/OS_NS_dlfcn.o arm64/.shobj/OS_NS_errno.o arm64/.shobj/OS_NS_fcntl.o arm64/.shobj/OS_NS_math.o arm64/.shobj/OS_NS_netdb.o arm64/.shobj/OS_NS_poll.o arm64/.shobj/OS_NS_pwd.o arm64/.shobj/OS_NS_regex.o arm64/.shobj/OS_NS_signal.o arm64/.shobj/OS_NS_stdio.o arm64/.shobj/OS_NS_stdlib.o arm64/.shobj/OS_NS_string.o arm64/.shobj/OS_NS_strings.o arm64/.shobj/OS_NS_stropts.o arm64/.shobj/OS_NS_sys_mman.o arm64/.shobj/OS_NS_sys_msg.o arm64/.shobj/OS_NS_sys_resource.o arm64/.shobj/OS_NS_sys_select.o arm64/.shobj/OS_NS_sys_sendfile.o arm64/.shobj/OS_NS_sys_shm.o arm64/.shobj/OS_NS_sys_socket.o arm64/.shobj/OS_NS_sys_stat.o arm64/.shobj/OS_NS_sys_time.o arm64/.shobj/OS_NS_sys_uio.o arm64/.shobj/OS_NS_sys_utsname.o arm64/.shobj/OS_NS_sys_wait.o arm64/.shobj/OS_NS_time.o arm64/.shobj/OS_NS_unistd.o arm64/.shobj/OS_NS_wchar.o arm64/.shobj/OS_NS_wctype.o arm64/.shobj/OS_QoS.o arm64/.shobj/OS_TLI.o arm64/.shobj/OS_Thread_Adapter.o arm64/.shobj/OS_main.o arm64/.shobj/Obchunk.o arm64/.shobj/Object_Manager.o arm64/.shobj/Object_Manager_Base.o arm64/.shobj/Obstack.o arm64/.shobj/PI_Malloc.o arm64/.shobj/POSIX_Asynch_IO.o arm64/.shobj/POSIX_CB_Proactor.o arm64/.shobj/POSIX_Proactor.o arm64/.shobj/Pagefile_Memory_Pool.o arm64/.shobj/Parse_Node.o arm64/.shobj/Ping_Socket.o arm64/.shobj/Pipe.o arm64/.shobj/Priority_Reactor.o arm64/.shobj/Proactor.o arm64/.shobj/Proactor_Impl.o arm64/.shobj/Process.o arm64/.shobj/Process_Manager.o arm64/.shobj/Process_Mutex.o arm64/.shobj/Process_Semaphore.o arm64/.shobj/Profile_Timer.o arm64/.shobj/RW_Mutex.o arm64/.shobj/RW_Process_Mutex.o arm64/.shobj/RW_Thread_Mutex.o arm64/.shobj/Reactor.o arm64/.shobj/Reactor_Impl.o arm64/.shobj/Reactor_Notification_Strategy.o arm64/.shobj/Reactor_Timer_Interface.o arm64/.shobj/Read_Buffer.o arm64/.shobj/Recursive_Thread_Mutex.o arm64/.shobj/Recyclable.o arm64/.shobj/Registry.o arm64/.shobj/Registry_Name_Space.o arm64/.shobj/Remote_Name_Space.o arm64/.shobj/Remote_Tokens.o arm64/.shobj/Rtems_init.o arm64/.shobj/SOCK.o arm64/.shobj/SOCK_Acceptor.o arm64/.shobj/SOCK_CODgram.o arm64/.shobj/SOCK_Connector.o arm64/.shobj/SOCK_Dgram.o arm64/.shobj/SOCK_Dgram_Bcast.o arm64/.shobj/SOCK_Dgram_Mcast.o arm64/.shobj/SOCK_IO.o arm64/.shobj/SOCK_Netlink.o arm64/.shobj/SOCK_SEQPACK_Acceptor.o arm64/.shobj/SOCK_SEQPACK_Association.o arm64/.shobj/SOCK_SEQPACK_Connector.o arm64/.shobj/SOCK_Stream.o arm64/.shobj/SPIPE.o arm64/.shobj/SPIPE_Acceptor.o arm64/.shobj/SPIPE_Addr.o arm64/.shobj/SPIPE_Connector.o arm64/.shobj/SPIPE_Stream.o arm64/.shobj/SString.o arm64/.shobj/SUN_Proactor.o arm64/.shobj/SV_Message.o arm64/.shobj/SV_Message_Queue.o arm64/.shobj/SV_Semaphore_Complex.o arm64/.shobj/SV_Semaphore_Simple.o arm64/.shobj/SV_Shared_Memory.o arm64/.shobj/Sample_History.o arm64/.shobj/Sbrk_Memory_Pool.o arm64/.shobj/Sched_Params.o arm64/.shobj/Select_Reactor_Base.o arm64/.shobj/Semaphore.o arm64/.shobj/Service_Config.o arm64/.shobj/Service_Gestalt.o arm64/.shobj/Service_Manager.o arm64/.shobj/Service_Object.o arm64/.shobj/Service_Repository.o arm64/.shobj/Service_Types.o arm64/.shobj/Shared_Memory.o arm64/.shobj/Shared_Memory_MM.o arm64/.shobj/Shared_Memory_Pool.o arm64/.shobj/Shared_Memory_SV.o arm64/.shobj/Shared_Object.o arm64/.shobj/Sig_Adapter.o arm64/.shobj/Sig_Handler.o arm64/.shobj/Signal.o arm64/.shobj/Sock_Connect.o arm64/.shobj/Stack_Trace.o arm64/.shobj/Stats.o arm64/.shobj/String_Base_Const.o arm64/.shobj/Svc_Conf_Lexer.o arm64/.shobj/Svc_Conf_y.o arm64/.shobj/Synch_Options.o arm64/.shobj/System_Time.o arm64/.shobj/TLI.o arm64/.shobj/TLI_Acceptor.o arm64/.shobj/TLI_Connector.o arm64/.shobj/TLI_Stream.o arm64/.shobj/TP_Reactor.o arm64/.shobj/TSS_Adapter.o arm64/.shobj/TTY_IO.o arm64/.shobj/Task.o arm64/.shobj/Thread.o arm64/.shobj/Thread_Adapter.o arm64/.shobj/Thread_Control.o arm64/.shobj/Thread_Exit.o arm64/.shobj/Thread_Hook.o arm64/.shobj/Thread_Manager.o arm64/.shobj/Thread_Mutex.o arm64/.shobj/Thread_Semaphore.o arm64/.shobj/Throughput_Stats.o arm64/.shobj/Time_Policy.o arm64/.shobj/Time_Value.o arm64/.shobj/Timeprobe.o arm64/.shobj/Token.o arm64/.shobj/Token_Collection.o arm64/.shobj/Token_Invariants.o arm64/.shobj/Token_Manager.o arm64/.shobj/Token_Request_Reply.o arm64/.shobj/Trace.o arm64/.shobj/UNIX_Addr.o arm64/.shobj/UPIPE_Acceptor.o arm64/.shobj/UPIPE_Connector.o arm64/.shobj/UPIPE_Stream.o arm64/.shobj/UTF16_Encoding_Converter.o arm64/.shobj/UTF32_Encoding_Converter.o arm64/.shobj/UTF8_Encoding_Converter.o arm64/.shobj/UUID.o arm64/.shobj/WFMO_Reactor.o arm64/.shobj/WIN32_Asynch_IO.o arm64/.shobj/WIN32_Proactor.o arm64/.shobj/XML_Svc_Conf.o arm64/.shobj/XTI_ATM_Mcast.o arm64/.shobj/ace_wchar.o -Wl,-pie -Wl,-headerpad_max_install_names -Wl,-dead_strip_dylibs -Wl,-rpath,$PREFIX/lib -L$PREFIX/lib -m64 -flat_namespace -rpath @executable_path/. -rpath @executable_path/"../lib" -L../lib/arm64 -L. -L./arm64 -L../lib -L../lib/arm64 -Wl,-rpath,$PREFIX/lib
ld: warning: -pie being ignored. It is only used when linking a main executable
ld: warning: ignoring file /Users/runner/miniforge3/conda-bld/ace_1676881526911/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_place/lib/libc++.dylib, building for macOS-x86_64 but attempting to link with file built for macOS-arm64
Undefined symbols for architecture x86_64:
I have -m64
and it works. I'll try adding it to GitHub Actions.
clang++ -g -target arm64-apple-macos -m64 -W -Wall -Wno-deprecated-declarations -Wno-deprecated-register -DACE_HAS_CUSTOM_EXPORT_MACROS=0 -I/Users/taoadmin/arm-target/OpenDDS/build/target/ACE_wrappers -D__ACE_INLINE__ -I.. -DACE_BUILD_DLL -c -o .shobj/Local_Name_Space.o Local_Name_Space.cpp
clang++ -dynamiclib -install_name @rpath/libACE.dylib -o libACE.dylib .shobj/Local_Name_Space.o [... all .o files ...] -target arm64-apple-macos -m64 -flat_namespace -rpath @executable_path/. -rpath @executable_path/"../lib" -L../lib -L. -L../lib
Ok, but on conda-forget -target arm64-apple-macos
seems to be lacking
Unfortunately native osx-arm64 are still missing. Let's try to get cross-compilation to work again.
I think https://github.com/conda-forge/ace-feedstock/pull/59 should be a good solution.
In IIT, we are investigating support for building packages for osx-arm64 (see https://github.com/robotology/robotology-superbuild/issues/916), and a dependency for this is ace. For doing this here, we need to:
osx-arm64
@jwillemsen do you have any insight on this? Thanks in advance!