[cfe-dev] linking with libclang for ios
Alp Toker
alp at nuanti.com
Sat Jul 5 23:03:29 PDT 2014
Did you try building with LLVM_ENABLE_THREADS off?
Also consider trying ToT to get the latest fixes.
Alp.
On 06/07/2014 08:23, Anton Smirnov wrote:
> I've found Mutex.cpp file in llvm sources and it seems it's not the
> first mutex-related call in constructor.
> This makes me think it's really absent method in system libs:
>
> // Construct a Mutex using pthread calls
>
> MutexImpl::MutexImpl( bool recursive)
>
> : data_(0)
>
> {
>
> // Declare the pthread_mutex data structures
>
> pthread_mutex_t* mutex =
>
> static_cast<pthread_mutex_t*>(malloc(sizeof(pthread_mutex_t)));
>
> pthread_mutexattr_t attr;
>
>
> // Initialize the mutex attributes
>
> int errorcode = pthread_mutexattr_init(&attr);
>
> assert(errorcode == 0); (void)errorcode;
>
>
> // Initialize the mutex as a recursive mutex, if requested, or normal
>
> // otherwise.
>
> int kind = ( recursive ? PTHREAD_MUTEX_RECURSIVE :
> PTHREAD_MUTEX_NORMAL );
>
> errorcode = pthread_mutexattr_settype(&attr, kind);
>
> assert(errorcode == 0);
>
>
> #if !defined(__FreeBSD__) && !defined(__OpenBSD__) &&
> !defined(__NetBSD__) && \
>
> !defined(__DragonFly__) && !defined(__Bitrig__)
>
> // Make it a process local mutex
>
> errorcode = pthread_mutexattr_setpshared(&attr,
> PTHREAD_PROCESS_PRIVATE);
>
> assert(errorcode == 0);
>
> #endif
>
>
> // Initialize the mutex
>
> errorcode = pthread_mutex_init(mutex, &attr);
>
> assert(errorcode == 0);
>
>
> // Destroy the attributes
>
> errorcode = pthread_mutexattr_destroy(&attr); // fails here
>
> assert(errorcode == 0);
>
> // Assign the data member
> data_ = mutex;
>
> }
>
> I've marked where it fails.
> How can that be that previous mutex-related methods success and this
> one fails?
> What can i do to fix it?
>
> Regards, Anton.
>
>
> 2014-07-05 19:31 GMT+06:00 Anton Smirnov <dev at antonsmirnov.name
> <mailto:dev at antonsmirnov.name>>:
>
> Hi.
>
> I was able to cross-compile llvm/clang for i386 and i'm trying to
> use it in my ios app.
> Also i was able to add headers and static libs (both libLLVM*.a
> and libclang*.a) and compile/link the project with no errors.
>
> But when trying to run simple app i'm getting error:
>
> *Detected an attempt to call a symbol in system libraries that is
> not present on the iPhone:*
>
> *pthread_mutexattr_destroy$UNIX2003 called from function
> _ZN4llvm3sys9MutexImplC2Eb in image LibClangUsageDemo3.*
>
>
> What can i do in order to fix it?
>
> Is it llvm/clang issue or i'm doing smth wrong?
>
> Regards, Anton.
>
>
>
>
> _______________________________________________
> cfe-dev mailing list
> cfe-dev at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev
--
http://www.nuanti.com
the browser experts
More information about the cfe-dev
mailing list