Wireshark-dev: Re: [Wireshark-dev] Duplicate symbol warnings on Solaris
Date: Wed, 12 Mar 2014 03:22:07 -0500
On Wed, Mar 12, 2014 at 12:24:35AM -0700, Guy Harris wrote:
> 
> On Mar 11, 2014, at 1:55 PM, Albert Chin <wireshark-dev@xxxxxxxxxxxxxxxxxxxxxxxxx> wrote:
> 
> > The issue is with array variables declared as:
> >  epan/dissectors/packet-dcom.h:
> >    WS_DLL_PUBLIC const value_string dcom_hresult_vals[];
> >    WS_DLL_PUBLIC const value_string dcom_variant_type_vals[];
> >  epan/etypes.h:
> >    WS_DLL_PUBLIC const value_string etype_vals[];
> > 
> > Are these empty variable declarations legal?
> 
> If WS_DLL_PUBLIC expands to something including "extern", they're
> declarations, and, therefore, *are* legal, even though they're
> empty.
> 
> If it doesn't expand to something including "extern", they're
> *definitions*, and, therefore, *aren't* legal because they're empty
> and aren't initialized.

Ok, thanks.

> If it's not expanding to something that includes "extern" in 1.10.5,
> try the current top of the 1.10 branch; it should expand to
> something that includes "extern" there.

It is not expanding to "extern". However, in
epan/dissectors/packet-dcom.h, you have:
  WS_DLL_PUBLIC const value_string dcom_hresult_vals[];
  WS_DLL_PUBLIC const value_string dcom_variant_type_vals[];
  extern const value_string dcom_protseq_vals[];

If WS_DLL_PUBLIC should expand to "extern", why isn't
dcom_protseq_vals WS_DLL_PUBLIC rather than "extern"?

Anyway, I'll check top of 1.10.

-- 
albert chin (china@xxxxxxxxxxxxxxxxxx)