Bug 33417

Summary: No mutex implementation found. Cairo will not work with multiple threads.
Product: cairo Reporter: Charles Doutriaux <doutriaux1>
Component: generalAssignee: Carl Worth <cworth>
Status: RESOLVED DUPLICATE QA Contact: cairo-bugs mailing list <cairo-bugs>
Severity: blocker    
Priority: medium CC: freedesktop
Version: 1.10.2   
Hardware: Other   
OS: Mac OS X (All)   
Whiteboard:
i915 platform: i915 features:
Attachments: cairo build log file
config.log file
new config log
new build log

Description Charles Doutriaux 2011-01-24 10:06:20 UTC
Created attachment 42388 [details]
cairo build log file

Build fails on snow-leopard, complains about "No mutex implementation found"

I do need mutli-threaded environement so I can't set CAIRO_NO_MUTEX to 1 as suggested by error message.

Attaching the build log (bzipped 2)

1.9.2 works fine, 1.11.2 has same issue as 1.10.2

Thanks,

C.
Comment 1 Andrea Canciani 2011-01-24 10:12:53 UTC
It looks like the detection of pthread failed.
Can you please provide your config.log?
Comment 2 Charles Doutriaux 2011-01-24 10:25:40 UTC
Created attachment 42389 [details]
config.log file
Comment 3 Andrea Canciani 2011-01-24 10:31:05 UTC
You are using an invalid environment:

"ld: warning: directory '/lgm/cdat/Qt/lib' following -L not found"

Can you please check if removing "-L/lgm/cdat/Qt/Externals/lib" makes the build succeed?
Comment 4 Behdad Esfahbod 2011-01-24 10:35:31 UTC
(In reply to comment #1)
> It looks like the detection of pthread failed.

I reported this six months ago:

  http://lists.freedesktop.org/archives/cairo/2010-August/020466.html

behdad

> Can you please provide your config.log?
Comment 5 Charles Doutriaux 2011-01-24 13:49:47 UTC
Behdad, would turning off gobject solve this? I don't"think" I need gobject, do I?
Comment 6 Behdad Esfahbod 2011-01-24 13:52:04 UTC
(In reply to comment #5)
> Behdad, would turning off gobject solve this? I don't"think" I need gobject, do
> I?

I don't think so.  Looks like turning the Qt backend off may temporarily fix your problem though.
Comment 7 Andrea Canciani 2011-01-24 13:55:28 UTC
(In reply to comment #5)
> Behdad, would turning off gobject solve this? I don't"think" I need gobject, do
> I?

Did the compilation fail after changing the CFLAGS as I suggested?
Can you post the new config.log?
Comment 8 Charles Doutriaux 2011-01-24 14:10:12 UTC
Created attachment 42408 [details]
new config log

new config.log with gobject and qt disabled. Alsoremoved warningsabout kissing path
Comment 9 Charles Doutriaux 2011-01-24 14:11:11 UTC
Created attachment 42409 [details]
new build log

new build log with qt and gobjects offf and no warnings about missing path.
Comment 10 Charles Doutriaux 2011-01-24 14:11:49 UTC
ld warnings removed, no change. Turning off gobject and Qt, no changes.
Comment 11 Andrea Canciani 2011-01-24 14:15:12 UTC
(In reply to comment #10)
> ld warnings removed, no change. Turning off gobject and Qt, no changes.

The new config.log still reports warnings.
The new build log indicates:
CFLAGS="-I/lgm/cdat/Qt/Externals/NetCDF/include -I/lgm/cdat/Qt/Externals/include  -L/lgm/cdat/Qt/Externals/lib  -g -O2 -arch x86_64 -pipe -Xarch_x86_64 -mmacosx-version-min=10.5 ";

So it looks like you forgot to remove the "-L/lgm/cdat/Qt/Externals/lib".

Please try using
CFLAGS="-I/lgm/cdat/Qt/Externals/NetCDF/include -I/lgm/cdat/Qt/Externals/include -g -O2 -arch x86_64 -pipe -Xarch_x86_64 -mmacosx-version-min=10.5 "
Comment 12 Charles Doutriaux 2011-01-25 11:41:01 UTC
Removed the extra LD WARNING still same failure, do you really want me to post the log files?
Comment 13 Charles Doutriaux 2011-01-25 11:42:31 UTC
Removed the extra LD WARNING still same failure, do you really want me to post the log files?
What bother (In reply to comment #6)
> (In reply to comment #5)
> > Behdad, would turning off gobject solve this? I don't"think" I need gobject, do
> > I?
> 
> I don't think so.  Looks like turning the Qt backend off may temporarily fix
> your problem though.

Unfortunately it doesn't seem to help... Any suggestion, can I "hack" the configure script for now?
Comment 14 Andrea Canciani 2011-01-25 12:00:51 UTC
(In reply to comment #12)
> Removed the extra LD WARNING still same failure, do you really want me to post
> the log files?

Please don't post them again unless you actually fixed the ld warning.
You can check if it is fixed by running:

  grep 'ld: warning:' config.log

On https://bugs.freedesktop.org/attachment.cgi?id=42408
(the "new config log" attachment) it reports:

ld: warning: directory '/lgm/cdat/Qt/lib' following -L not found
(repeated 86 times)

So it looks like in that build you didn't fix it.

Did you manage to actually fix it and get a config.log without ld warnings?
In this case, please post the new config.log and build log files.
Otherwise please fix your environment and try again.
Comment 15 Charles Doutriaux 2011-01-25 13:55:41 UTC
Ok I still don't understand why, but creating /lgm/cdat/Qt/lib as an empty directory seems to have fixed it!
I still think it shouldn't matter, but he... Good enough for me at that point!
Thanks for the help!
C.

(In reply to comment #14)
> (In reply to comment #12)
> > Removed the extra LD WARNING still same failure, do you really want me to post
> > the log files?
> 
> Please don't post them again unless you actually fixed the ld warning.
> You can check if it is fixed by running:
> 
>   grep 'ld: warning:' config.log
> 
> On https://bugs.freedesktop.org/attachment.cgi?id=42408
> (the "new config log" attachment) it reports:
> 
> ld: warning: directory '/lgm/cdat/Qt/lib' following -L not found
> (repeated 86 times)
> 
> So it looks like in that build you didn't fix it.
> 
> Did you manage to actually fix it and get a config.log without ld warnings?
> In this case, please post the new config.log and build log files.
> Otherwise please fix your environment and try again.
Comment 16 Andrea Canciani 2011-01-25 14:01:49 UTC

*** This bug has been marked as a duplicate of bug 30910 ***

Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.