Subject: Re: where are my symbols?
From: "Gerrit P. Haase" <[email-masked]>
To: Danny Smith <[email-masked]>
Cc: Cygwin <[email-masked]>
Date: Sun, 3 Oct 2004 23:51:59 +0200

Danny wrote:
> Gerrit wrote:

>> Hello,
>>
>> I see the following:
>>
>> I link four objects togehter in a DLL:
>> gcc -shared -o .libs/cyggconfbackend-oldxml.dll      \
>>  -Wl,--out-implib,.libs/libgconfbackend-oldxml.dll.a \
>>  .libs/xml-cache.o .libs/xml-dir.o .libs/xml-entry.o  \
>>  .libs/xml-backend.o ${LIBS}
>>
>> Now I get this in the import library:
>> $ nm  .libs/libgconfbackend-oldxml.dll.a | grep ' T '
>> 00000000 T _gconf_backend_get_vtable
>> 00000000 T _g_module_check_init
>>
>   < snip >
>>
>> It seems that only the symbols from the fourth object have arrived in
>> the library.  What is going on here and how can I track this down?
>>

> Are the two symbols in fourth object marked as dllexport.  This will
> override
> --export-all, so you may need to add that switch explicitly.

Yep, correct:

G_MODULE_EXPORT const gchar*
g_module_check_init (GModule *module)
{
  gconf_log(GCL_DEBUG, _("Initializing XML backend module"));

  LIBXML_TEST_VERSION;
  xmlKeepBlanksDefault(1);

  return NULL;
}

G_MODULE_EXPORT GConfBackendVTable* 
gconf_backend_get_vtable(void)
{
  return &xml_vtable;
}

Thank you,
Gerrit
-- 
=^..^=

--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Problem reports:       http://cygwin.com/problems.html
Documentation:         http://cygwin.com/docs.html
FAQ:                   http://cygwin.com/faq/