Yuck, but I've made that change. I also added wiredtiger_version to the
extension API while I was there.

I suspect that the pack/unpack APIs that aren't currently exposed in the
extension API will suffer from the same problem. Let's solve that
separately though.


On Wed, Feb 26, 2014 at 9:58 AM, Michael Cahill <notifications@github.com>wrote:

> In ext/datasources/helium/helium.c:
>
> > @@ -2164,23 +2166,28 @@
> >  		if ((ret = master_uri_get(wtds, session, uri, &value)) != 0)
> >  			goto err;
> >
> > -		if ((ret = wtext->config_strget(
> > -		    wtext, session, value, "key_format", &v)) != 0)
> > +		if ((ret = wiredtiger_config_parser_open(
>
> The problem may be that if the application is statically linked, the
> linker notices that there are no calls to wiredtiger_config_parser_openand omits it from the binary. Then when the extension is loaded, the symbol
> is missing.
>
> If that is what's going on, the cleanest solution is probably to include
> an entry in the extension API for all functions in the public API that an
> extension could conceivably call. I don't want extensions to have to link
> against wiredtiger: that's a nightmare waiting to happen.
>
> --
> Reply to this email directly or view it on GitHub<https://github.com/wiredtiger/wiredtiger/pull/873/files#r10060832>
> .
>