Re: [pcre-dev] [Bug 664] ABI breakage in PCRE 7.6

Top Page
Delete this message
Author: Craig Silverstein
Date:  
To: 664
CC: pcre-dev
Subject: Re: [pcre-dev] [Bug 664] ABI breakage in PCRE 7.6
} dyld: Symbol not found: __ZN7pcrecpp6no_argE
} Referenced from:
} /sw/src/fink.build/pcre-7.6-3/pcre-7.6/.libs/libpcrecpp.0.dylib
} Expected in: dynamic lookup
}
} The symbol __ZN7pcrecpp6no_argE gets created, but is marked undefined in the
} symbol table. But I guess that's kind of the point of weak symbols. :)
} Something has to actually define it at runtime.

Hmm, it *is* defined (in pcrecpp.o) -- this error message is strange
to me. I think the issue is that the mac (or mach-o?) uses a slightly
different mangling scheme than elf. Looking at pcrecpp.o on a mach-o
system, I see the symbol is called
__ZN7pcrecpp2RE6no_argE
-- note the extra underscore at the beginning.

Try changing the line to this
extern Arg no_arg __attribute__((weak, alias("__ZN7pcrecpp2RE6no_argE")));

and see if it works for you now. If so, I'll try to figure out
exactly when to use one leading _ and when to use two, and send out a
patch.

craig