Re: dlz-bdbhpt-dynamic - a dlopen bdbhpt DLZ driver

Jan-Piet Mens <[email protected]> Mon, 16 Jul 2012 11:16:03 +0200
Newsgroups gmane.network.dns.bind9.dlz
Message-ID <[email protected]>
Mark,

> The missing symbols your linker is complaining about are internal ones
> generated by the compiler?  Those particular symbols appear to be ones
> within the source proceeded by _.

> I suspect this is coming about because I'm building the shared object in
> one go, and not building the plain object file first.

No, it's not the Makefile.

Looking into this a bit deeper, the DLZ example from BIND -9.9.1 contrib
doesn't call dns_sdlz_putrr() directly. (Neither do I because I swiped
that code from the example.) E.g.:

        result = state->putrr(lookup, "TXT", 0, buf);

which results in (what's it called?: LAZY_LOADING) ?

Your code calls the function explicitly:

        result = dns_sdlz_putrr(lookup, pd.type, pd.ttl, pd.data);

and the linker, at least here, can't find that symbol.

If I add the following huge pile of libs, I can get it to link:

        $(CC) $(CFLAGS) -shared -o dlz_bdbhpt_dynamic.so dlz_bdbhpt_dynamic.o \
                $(BDB_LIBS) \
                -lisc -ldns -lssl \             # ISC stuff 
                -lcrypto -lkrb5 -lxml2          # required for above

Just wanted to get that off to you. I'll test a bit now.

        -JP

------------------------------------------------------------------------------
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/