1

I am porting a large project for iOS from Windows/Linux. The application heavily leverages ACE and we cannot easily discard it. I have configured my build configuration to specify iOS simulator, and I run make with the following command line argument make IPHONE_TARGET=SIMULATOR

The build chugs along fine until what I believe is the linking stage and fails with a "no such file or directory" error:

/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang++ -Wnon-virtual-dtor -mmacosx-version-min=10.6 -arch i386 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator.sdk -g -fno-strict-aliasing -Wall -W -Wpointer-arith -pipe -DACE_HAS_CUSTOM_EXPORT_MACROS=0   -I/Users/droscoe/Documents/workspace/SW_Library/ACE_wrappers -D__ACE_INLINE__ -I.. -DACE_AS_STATIC_LIBS  -c  -o .obj/WFMO_Reactor.o WFMO_Reactor.cpp
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang++ -Wnon-virtual-dtor -mmacosx-version-min=10.6 -arch i386 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator.sdk -g -fno-strict-aliasing -Wall -W -Wpointer-arith -pipe -DACE_HAS_CUSTOM_EXPORT_MACROS=0   -I/Users/droscoe/Documents/workspace/SW_Library/ACE_wrappers -D__ACE_INLINE__ -I.. -DACE_AS_STATIC_LIBS  -c  -o .obj/WIN32_Asynch_IO.o WIN32_Asynch_IO.cpp
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang++ -Wnon-virtual-dtor -mmacosx-version-min=10.6 -arch i386 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator.sdk -g -fno-strict-aliasing -Wall -W -Wpointer-arith -pipe -DACE_HAS_CUSTOM_EXPORT_MACROS=0   -I/Users/droscoe/Documents/workspace/SW_Library/ACE_wrappers -D__ACE_INLINE__ -I.. -DACE_AS_STATIC_LIBS  -c  -o .obj/WIN32_Proactor.o WIN32_Proactor.cpp
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang++ -Wnon-virtual-dtor -mmacosx-version-min=10.6 -arch i386 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator.sdk -g -fno-strict-aliasing -Wall -W -Wpointer-arith -pipe -DACE_HAS_CUSTOM_EXPORT_MACROS=0   -I/Users/droscoe/Documents/workspace/SW_Library/ACE_wrappers -D__ACE_INLINE__ -I.. -DACE_AS_STATIC_LIBS  -c  -o .obj/XTI_ATM_Mcast.o XTI_ATM_Mcast.cpp
([ "`echo `" != "" ] && echo ; \
    echo .obj/Local_Name_Space.o .obj/Name_Proxy.o .obj/Name_Request_Reply.o .obj/Name_Space.o .obj/Naming_Context.o .obj/Registry_Name_Space.o .obj/Remote_Name_Space.o .obj/NT_Service.o .obj/Codecs.o .obj/Local_Tokens.o .obj/Remote_Tokens.o .obj/Token_Collection.o .obj/Token_Invariants.o .obj/Token_Manager.o .obj/Token_Request_Reply.o .obj/DLL.o .obj/Dynamic_Service_Base.o .obj/Dynamic_Service_Dependency.o .obj/Parse_Node.o .obj/Service_Config.o .obj/Service_Gestalt.o .obj/Service_Manager.o .obj/Service_Object.o .obj/Service_Repository.o .obj/Service_Types.o .obj/Shared_Object.o .obj/Svc_Conf_Lexer.o .obj/Svc_Conf_y.o .obj/Encoding_Converter.o .obj/Encoding_Converter_Factory.o .obj/UTF8_Encoding_Converter.o .obj/UTF16_Encoding_Converter.o .obj/UTF32_Encoding_Converter.o .obj/XML_Svc_Conf.o .obj/UUID.o .obj/Filecache.o .obj/ACE.o .obj/ACE_crc_ccitt.o .obj/ACE_crc32.o .obj/ace_wchar.o .obj/Activation_Queue.o .obj/Active_Map_Manager.o .obj/Addr.o .obj/Argv_Type_Converter.o .obj/Assert.o .obj/Asynch_IO.o .obj/Asynch_IO_Impl.o .obj/Asynch_Pseudo_Task.o .obj/ATM_Acceptor.o .obj/ATM_Addr.o .obj/ATM_Connector.o .obj/ATM_Params.o .obj/ATM_QoS.o .obj/ATM_Stream.o .obj/Atomic_Op.o .obj/Atomic_Op_Sparc.o .obj/Barrier.o .obj/Base_Thread_Adapter.o .obj/Based_Pointer_Repository.o .obj/Basic_Stats.o .obj/Basic_Types.o .obj/Capabilities.o .obj/CDR_Base.o .obj/CDR_Stream.o .obj/CDR_Size.o .obj/Cleanup.o .obj/Codeset_IBM1047.o .obj/Codeset_Registry.o .obj/Codeset_Registry_db.o .obj/Condition_Attributes.o .obj/Condition_Recursive_Thread_Mutex.o .obj/Condition_Thread_Mutex.o .obj/Configuration.o .obj/Configuration_Import_Export.o .obj/Connection_Recycling_Strategy.o .obj/Containers.o .obj/Copy_Disabled.o .obj/Date_Time.o .obj/DEV.o .obj/DEV_Addr.o .obj/DEV_Connector.o .obj/DEV_IO.o .obj/DLL_Manager.o .obj/Dev_Poll_Reactor.o .obj/Dirent.o .obj/Dirent_Selector.o .obj/Dump.o .obj/Dynamic.o .obj/Dynamic_Message_Strategy.o .obj/Event_Base.o .obj/Event_Handler.o .obj/Event_Handler_Handle_Timeout_Upcall.o .obj/FIFO.o .obj/FIFO_Recv.o .obj/FIFO_Recv_Msg.o .obj/FIFO_Send.o .obj/FIFO_Send_Msg.o .obj/FILE.o .obj/FILE_Addr.o .obj/FILE_Connector.o .obj/FILE_IO.o .obj/File_Lock.o .obj/Flag_Manip.o .obj/Framework_Component.o .obj/Functor.o .obj/Functor_String.o .obj/Get_Opt.o .obj/Handle_Ops.o .obj/Handle_Set.o .obj/Hashable.o .obj/High_Res_Timer.o .obj/ICMP_Socket.o .obj/INET_Addr.o .obj/Init_ACE.o .obj/IO_SAP.o .obj/IO_Cntl_Msg.o .obj/IOStream.o .obj/IPC_SAP.o .obj/Lib_Find.o .obj/Local_Memory_Pool.o .obj/Lock.o .obj/Log_Category.o .obj/Log_Msg.o .obj/Log_Msg_Backend.o .obj/Log_Msg_Callback.o .obj/Log_Msg_IPC.o .obj/Log_Msg_NT_Event_Log.o .obj/Log_Msg_UNIX_Syslog.o .obj/Log_Record.o .obj/Logging_Strategy.o .obj/LSOCK.o .obj/LSOCK_Acceptor.o .obj/LSOCK_CODgram.o .obj/LSOCK_Connector.o .obj/LSOCK_Dgram.o .obj/LSOCK_Stream.o .obj/Malloc.o .obj/Malloc_Allocator.o .obj/MEM_Acceptor.o .obj/MEM_Addr.o .obj/MEM_Connector.o .obj/MEM_IO.o .obj/Mem_Map.o .obj/MEM_SAP.o .obj/MEM_Stream.o .obj/Message_Block.o .obj/Message_Queue.o .obj/Message_Queue_NT.o .obj/Message_Queue_Vx.o .obj/Method_Request.o .obj/MMAP_Memory_Pool.o .obj/Msg_WFMO_Reactor.o .obj/Monitor_Admin.o .obj/Monitor_Admin_Manager.o .obj/Monitor_Base.o .obj/Monitor_Point_Registry.o .obj/Monitor_Size.o .obj/Monitor_Control_Types.o .obj/Monitor_Control_Action.o .obj/Monotonic_Time_Policy.o .obj/Multihomed_INET_Addr.o .obj/Mutex.o .obj/Netlink_Addr.o .obj/Notification_Strategy.o .obj/Notification_Queue.o .obj/Obchunk.o .obj/Object_Manager.o .obj/Object_Manager_Base.o .obj/Obstack.o .obj/OS_Errno.o .obj/OS_Log_Msg_Attributes.o .obj/OS_main.o .obj/OS_NS_arpa_inet.o .obj/OS_NS_ctype.o .obj/OS_NS_dirent.o .obj/OS_NS_dlfcn.o .obj/OS_NS_errno.o .obj/OS_NS_fcntl.o .obj/OS_NS_math.o .obj/OS_NS_netdb.o .obj/OS_NS_poll.o .obj/OS_NS_pwd.o .obj/OS_NS_regex.o .obj/OS_NS_signal.o .obj/OS_NS_stdio.o .obj/OS_NS_stdlib.o .obj/OS_NS_string.o .obj/OS_NS_strings.o .obj/OS_NS_stropts.o .obj/OS_NS_sys_mman.o .obj/OS_NS_sys_msg.o .obj/OS_NS_sys_resource.o .obj/OS_NS_sys_select.o .obj/OS_NS_sys_sendfile.o .obj/OS_NS_sys_shm.o .obj/OS_NS_sys_socket.o .obj/OS_NS_sys_stat.o .obj/OS_NS_sys_time.o .obj/OS_NS_sys_uio.o .obj/OS_NS_sys_utsname.o .obj/OS_NS_sys_wait.o .obj/OS_NS_Thread.o .obj/OS_NS_time.o .obj/OS_NS_unistd.o .obj/OS_NS_wchar.o .obj/OS_NS_wctype.o .obj/OS_QoS.o .obj/OS_Thread_Adapter.o .obj/OS_TLI.o .obj/Pagefile_Memory_Pool.o .obj/PI_Malloc.o .obj/Ping_Socket.o .obj/Pipe.o .obj/POSIX_Asynch_IO.o .obj/POSIX_CB_Proactor.o .obj/POSIX_Proactor.o .obj/Priority_Reactor.o .obj/Proactor.o .obj/Proactor_Impl.o .obj/Process.o .obj/Process_Manager.o .obj/Process_Mutex.o .obj/Process_Semaphore.o .obj/Profile_Timer.o .obj/Reactor.o .obj/Reactor_Impl.o .obj/Reactor_Notification_Strategy.o .obj/Reactor_Timer_Interface.o .obj/Read_Buffer.o .obj/Recursive_Thread_Mutex.o .obj/Recyclable.o .obj/Registry.o .obj/Rtems_init.o .obj/RW_Mutex.o .obj/RW_Process_Mutex.o .obj/RW_Thread_Mutex.o .obj/Sample_History.o .obj/Sbrk_Memory_Pool.o .obj/Sched_Params.o .obj/Select_Reactor_Base.o .obj/Semaphore.o .obj/Shared_Memory.o .obj/Shared_Memory_MM.o .obj/Shared_Memory_Pool.o .obj/Shared_Memory_SV.o .obj/Sig_Adapter.o .obj/Sig_Handler.o .obj/Signal.o .obj/SOCK.o .obj/SOCK_Acceptor.o .obj/SOCK_CODgram.o .obj/Sock_Connect.o .obj/SOCK_Connector.o .obj/SOCK_Dgram.o .obj/SOCK_Dgram_Bcast.o .obj/SOCK_Dgram_Mcast.o .obj/SOCK_IO.o .obj/SOCK_Netlink.o .obj/SOCK_SEQPACK_Acceptor.o .obj/SOCK_SEQPACK_Association.o .obj/SOCK_SEQPACK_Connector.o .obj/SOCK_Stream.o .obj/SPIPE.o .obj/SPIPE_Acceptor.o .obj/SPIPE_Addr.o .obj/SPIPE_Connector.o .obj/SPIPE_Stream.o .obj/SString.o .obj/Stack_Trace.o .obj/Stats.o .obj/String_Base_Const.o .obj/SUN_Proactor.o .obj/SV_Message.o .obj/SV_Message_Queue.o .obj/SV_Semaphore_Complex.o .obj/SV_Semaphore_Simple.o .obj/SV_Shared_Memory.o .obj/Synch_Options.o .obj/System_Time.o .obj/Task.o .obj/Thread.o .obj/Thread_Adapter.o .obj/Thread_Control.o .obj/Thread_Exit.o .obj/Thread_Hook.o .obj/Thread_Manager.o .obj/Thread_Mutex.o .obj/Thread_Semaphore.o .obj/Throughput_Stats.o .obj/Time_Policy.o .obj/Time_Value.o .obj/Timeprobe.o .obj/TLI.o .obj/TLI_Acceptor.o .obj/TLI_Connector.o .obj/TLI_Stream.o .obj/Token.o .obj/TP_Reactor.o .obj/Trace.o .obj/TSS_Adapter.o .obj/TTY_IO.o .obj/UNIX_Addr.o .obj/UPIPE_Acceptor.o .obj/UPIPE_Connector.o .obj/UPIPE_Stream.o .obj/WFMO_Reactor.o .obj/WIN32_Asynch_IO.o .obj/WIN32_Proactor.o .obj/XTI_ATM_Mcast.o) | xargs /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin/ar rv libACE.a 
xargs: /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin/ar: No such file or directory
make[1]: *** [libACE.a] Error 127
make: *** [ACE] Error 2

There were no errors prior to this step. Has ANYONE gotten ACE to successfully build for iOS?

Kara
  • 6,115
  • 16
  • 50
  • 57

1 Answers1

0

This is a tool installation issue, not something in ACE. Please check the installation of your compiler toolchain, that should ship the ar utility.

Johnny Willemsen
  • 2,942
  • 1
  • 14
  • 16
  • That's not it. The toolchains are installed with Xcode. I am not unable to build any project, just this one. There are several variables set up by the GNU macros in the makefile that don't physically exist at the locations referenced, yet other projects work. The makefile line I am referring to looks like AR=:/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin/ar, which matches every other makefile I've created for Xcode. there are others such as CPP=: and RANLIB=: that also point to fictitious locations, yet work fine. – Dave Roscoe Jan 29 '15 at 13:07
  • Check the include/makeinclude/platform_macosx_iOS.GNU file, there AR and RANLIB are set, can you check where these utilities are placed in your installation of xcode? – Johnny Willemsen Jan 29 '15 at 13:25
  • I think you may be right after all. I found the ar and ranlib utilities and they are NOT where the ACE GNU macros are specifying. I compared the macro file ACE build is trying to use against another I've used successfully, and there is a difference. Perhaps Xcode moved the location of these utilities in subsequent releases. – Dave Roscoe Jan 29 '15 at 15:29
  • I got the project to build the library file! I get errors at the end of the build, but I believe its the main makefile bootstrapping other makefiles for building the examples and tests. Thanks for your help! Sometimes you look at something so long, you can't see the problem. – Dave Roscoe Jan 29 '15 at 16:16
  • @DaveRoscoe Can you create a pull request on github to correct the mentioned file, see https://github.com/DOCGroup/ATCD. That way the fix will be in the next ATCD release – Johnny Willemsen Jan 29 '15 at 18:46
  • I can do that, but its not the whole story. The fix above will solve the SIMULATOR build but the HARDWARE cross-compile still fails on Ping_Socket.cpp. It's including which is not part of the current SDKs. I had to create a manual link inside the .app package to resolve it. Both builds still fail on building the examples and tests – Dave Roscoe Jan 29 '15 at 19:24
  • I am not familiar with how to use Github. How do I create a pull request? I can see the "create pull request" button, but I don't understand how to set it up – Dave Roscoe Jan 30 '15 at 04:50
  • See https://help.github.com/categories/collaborating/ for all github documentation about pull requests. Probably Apple changed a few things that haven't been updated yet in ACE – Johnny Willemsen Jan 30 '15 at 07:55