[Xfce4-commits] <xfce4-dev-tools:master> Don't set the default visibility in XDT_FEATURE_VISIBILITY.
Brian J. Tarricone
brian at tarricone.org
Fri Oct 23 18:54:08 CEST 2009
On Fri, Oct 23, 2009 at 00:45, Nick Schermer <nickschermer at gmail.com> wrote:
> 2009/10/23 Brian J. Tarricone <brian at tarricone.org>:
>> I don't think I quite understand. Why are the atomic ops not declared
>> visible with -fvisibility=hidden?
> They are not real functions and same for internal variables
> (exo_version_*), there the alias code is not suitable too. So, the
> visibility macro is nice for xfconf because it only has a simple
> library with public functions only, everything else in Xfce needs to
> adapt with crapy visibility code.
That doesn't really make sense. The exo_atomic_* functions are inline
where supported, so those will always work. Where not supported,
they're just preprocessor defines for the g_atomic_* equivalents. The
alias stuff shouldn't affect them at all. If it does, exo is broken.
(Why do the atomic ops in exo exist anyway? What's wrong with the
ones in glib?)
For the exo_version_* variables, IIRC the visibility attributes can
apply to them, too. You might need to change the aliasdef generation
script, though, since I'm pretty sure it assumes all symbols in the
.symbols file are functions.
>>> I can also see how we could make it useful and more flexible by adding
>>> a parameter to it (e.g. a compiler flag variable), like you suggested
>>> on bugzilla.xfce.org. For aliasing, libraries need HAVE_GNUC_VISIBILITY
>>> but they may or may not want -fvisibility=hidden.
>> Right, that's a reasonable change that keeps the current default but
>> makes it flexible enough for other use.
> Well I think that has not real purpose too. So commit reverted and
> thanks for the unusable macro. I'll add the normal visibility code to
> all the other libraries.
Fine, if you want to be obstinate and not want to try to work it out,
that's your choice. I made some suggestions how we can make it more
useful and flexible, but I guess you aren't interested in actual
More information about the Xfce4-dev