Closed
Bug 409640
Opened 17 years ago
Closed 16 years ago
Enable hidden-visibility support in Camino build's Development configuration
Categories
(Camino Graveyard :: General, defect)
Tracking
(Not tracked)
RESOLVED
FIXED
People
(Reporter: mark, Assigned: mark)
Details
Attachments
(3 files, 5 obsolete files)
|
5.18 KB,
text/plain
|
Details | |
|
11.52 KB,
text/plain
|
Details | |
|
714 bytes,
patch
|
stuart.morgan+bugzilla
:
superreview+
|
Details | Diff | Splinter Review |
Spinoff from bug 408959. See bug 408959 comment 6 and bug 408959 attachment 294404 [details].
Following bug 408959 comment 8: I don't see any more visibility warnings at all during a 1.8 branch nonstatic build, i386 10.5.1 Xc3.0 gcc4.0 using 10.4u.
mark@crack bash$ grep "has different visibility" ../build/camino/make.out
mark@crack bash$
I'm doing a non-debug build. Looks like your log snippet is from a debug build. That's what's happening. The core always enables hidden visibility support, but the Xcode project only turns it on in the Deployment configuration. See how the warnings are reversed compared to comment 0? Your snippet's warnings say that there's a mismatch between core visibility (1) and Camino (2).
We should turn on the visibility stuff in the project file (trunk and branch both) for the Development configuration too, to match the core.
| Assignee | ||
Comment 1•17 years ago
|
||
This enables -fvisibility=hidden in Debug.xcconfig for the core development configuration, and in the project file for each of the preference panes' development configurations. (We don't have separate PrefPaneDebug.xcconfig and PrefPaneRelease.xcconfig files.)
Before checking this in on the branch, we should verify that explicitly specifying this doesn't do evil things to the gcc 3.3 build. gcc 3.3 doesn't support hidden visibility.
Comment on attachment 294438 [details] [diff] [review]
Patch
This works great on trunk. Well, it spews some new errors because of your use of # instead of // for the comments in the .xcconfig ;)
However, either it does not work on branch, or I screwed up backporting it to branch, or my branch debug build (Intel) is horked. I'm not really sure which :-(
| Assignee | ||
Comment 3•17 years ago
|
||
Comment fix!
Attachment #294438 -
Attachment is obsolete: true
Attachment #294442 -
Flags: review?(alqahira)
Attachment #294438 -
Flags: review?(alqahira)
| Assignee | ||
Comment 4•17 years ago
|
||
This backport works for me.
Attachment #294443 -
Flags: review?(alqahira)
| Assignee | ||
Comment 5•17 years ago
|
||
Attachment #294442 -
Attachment is obsolete: true
Attachment #294444 -
Flags: review?(alqahira)
Attachment #294442 -
Flags: review?(alqahira)
| Assignee | ||
Comment 6•17 years ago
|
||
Attachment #294443 -
Attachment is obsolete: true
Attachment #294445 -
Flags: review?(alqahira)
Attachment #294443 -
Flags: review?(alqahira)
| Assignee | ||
Updated•17 years ago
|
Attachment #294444 -
Attachment is obsolete: true
Attachment #294444 -
Flags: review?(alqahira)
| Assignee | ||
Updated•17 years ago
|
Attachment #294445 -
Attachment is obsolete: true
Attachment #294445 -
Flags: review?(alqahira)
| Assignee | ||
Comment 7•17 years ago
|
||
Xcode automatically turns off hidden visibility when fix-and-continue is enabled. If both are enabled, fix-and-continue takes precedence.
The original patch fixed this by chance because the syntax error in the xcconfig caused the entire xcconfig to be rejected, which turned off fix-and-continue.
If we want to resolve this by turning off fix-and-continue, the correct solution is to remove GCC_ENABLE_FIX_AND_CONTINUE (or set it to NO). In that case, we wouldn't need an explicit setting for GCC_SYMBOLS_PRIVATE_EXTERN.
This is true as of Xcode 3.0. It's possible that 2.5/2.4.1 behave differently, test attachment 294444 [details] [diff] [review] or 294445 to verify. Neither has the desired effect with Xcode 3.0, as they leave GCC_ENABLE_FIX_AND_CONTINUE on.
Comment 8•17 years ago
|
||
Fix-and-continue is garbage; we should disable it everywhere.
So, turning off fix-and-continue (and Xcode automatically turning on hidden visibility) is not sufficient to eliminate all visibility warnings with Xcode 3.
I verified that each of the object files in Camino is built with -fvisibility=hidden and that GCC_SYMBOLS_PRIVATE_EXTERN is YES when we export all those variables for script phases :P
It does, however, cut the number of warnings by about 2/3 (compare this log and subsequent log). Beyond that, the warnings we're left with have switched directions again; the mismatches are between "core (2) and Camino (1)".
This basically updates mento's patch to the current state of things; it's possible to just modify the xcconfig and have all the targets inherit these settings.
While this patch doesn't eliminate all of the warnings, it does reduce them significantly and fix this bug "as summarized" (as well as turn off the "garbage" in our own targets).
Attachment #379511 -
Flags: superreview?(stuart.morgan+bugzilla)
Updated•16 years ago
|
Attachment #379511 -
Flags: superreview?(stuart.morgan+bugzilla) → superreview+
Comment 12•16 years ago
|
||
Comment on attachment 379511 [details] [diff] [review]
Trunk patch, circa 2009
sr=smorgan
Landed the latest patch. This bug as summarized is fixed (hidden-visibility support is now on, and fix-and-continue is now off), though there are some remaining visibility warnings from ld; I think they should get their own bug, and let's call this one FIXED, 1.5 years later ;)
Status: ASSIGNED → RESOLVED
Closed: 16 years ago
Resolution: --- → FIXED
You need to log in
before you can comment on or make changes to this bug.
Description
•