[cfe-dev] linking with libclang for ios
Anton Smirnov
dev at antonsmirnov.name
Sat Jul 5 22:23:52 PDT 2014
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>:
> 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.
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-dev/attachments/20140706/ab74449c/attachment.html>
More information about the cfe-dev
mailing list