On Wednesday, September 21, 2005, at 09:13 PM, Jonathan Turkanis wrote:
> Telling users to supply that flag is useless. It is the default.
It's advertised as the default, but the threads I cited in my last
post suggest
The only time that it would matter is when the command line has on it a
flag, such a -fvisibility=hidden, that alters the default. Let me
elaborate. Various build systems (which have nothing to do with gcc)
can alter command lines, insert build flags, alter build flags so so
on. For example, Xcode inserts -fvisibility=hidden. In that
environment, when that flag is passed to gcc, adding
-fvisibility=default does indeed alter the behavior. In this case, the
option is just negating a previous option. I think it makes more sense
to tell people to turn off -fvisibility=hidden in their build
system/Xcode, if that is the real issue.
Give me a break! What am I trying to hide?
You aren't trying to hide anything. But, what we've found is that your
original question didn't contain enough details for us to help you to
our satisfaction. We do really want to help you understand the issues
involved.
What's really going on is that you seem to have assumed I wasn't
really asking
what I plainly was asking.
That's correct. For example, you didn't ask, does Xcode inject
-fvisbility=hidden into some compilations? That answer is yes. Is
that a possibly relevant detail, yes. Might it aide you in
understanding the issue, I'd hope so, which is why I provide the
answer. In short, at times, we feel it is better to understand your
question in detail, so that we may provide you an answer.
> M-x grep VISIBILITY tells you the answer.
What are you grepping?
Why, the source code to gcc of course. This mailing list is for the
developers of gcc.
> Gosh, now we have a hint at the real question.
Now that you have a hint, tell me what it is.
I'm sorry, could you repeat the question.
But the example discussed there used no visibility attributes and no
-fvisibility options.
Prove it. Paste the command line to the compiler from the log file.
Show us the .ii file, the resulting .s file and the command line flags.
When you try, you will discover that something passed it, that, or
during the link, someone crafted an export list that didn't include
`enough' symbols. The preceding answer doesn't take into account
dlopen/bundles complexities. Since no one has yet mentioned those
sorts of things, I'll ignore those issues.
The two A's should be the same unless requested otherwise, no?
Right (given default flags/no funny environment variables, no linker
export lists, no bundles, no dlopens and so on...)
> Do they even have a concept of not exporting the class?
Not exporting is the default, isn't it?
Sorry, I would not want to claim to be a Windows expert. If boost
works across dll boundaries, and it isn't otherwise marked to export,
then, my only guess would be that in fact it did export.