Hi Ralf, Ralf Wildenhues wrote: > Hi Peter, > > * Peter O'Gorman wrote on Tue, May 19, 2009 at 02:26:04AM CEST: >> Ralf Wildenhues wrote: >>> * Akim Demaille wrote on Mon, May 18, 2009 at 02:22:56PM CEST: >>>> I have two dlopen-modules that use a common convenience library. If I'm >>>> unlucky, libtool will try to extract the objects from the convenience >>>> library at the same moment, which ar does not seem to like. >>> Wow. What in the world does Darwin's ar do to a library that it is >>> extracting from? >> It flock()'s it. >> http://opensource.apple.com/source/cctools/cctools-698.1/ar/archive.c >> >> Will file a bug later. > > Thanks; has anything come from that yet?
Won't hear back until it's fixed, but I doubt that it will ever be fixed for current OSes. > > Anyway; what about this patch? Please note that the patch requires that > the second argument to func_extract_an_archive has an absolute path; not > sure whether that is universally true. > > Thanks, > Ralf > > Fix concurrent extraction of convenience libraries on Darwin. > > * libltdl/m4/libtool.m4 (_LT_CMD_OLD_ARCHIVE): New libtool > variable `lock_old_archive_extraction', set to `yes' on darwin. > * doc/libtool.texi (libtool script contents): Document it. > * libltdl/config/ltmain.m4sh (func_extract_an_archive): Lock > `ar x' invocation if `lock_old_archive_extraction' is yes. > * tests/darwin.at (darwin concurrent library extraction): New > test. > * NEWS: Update. > Report by Akim Demaille. I wonder if the archive for the test could be a little larger. When I applied the test suite change without the other changes, I found that it passed 2 of the 4 times I ran the test, ar completes unpacking that small archive pretty fast, it would take a bit longer if the archive were significantly larger. Otherwise, this is ok. Peter -- Peter O'Gorman http://pogma.com
