Closed Bug 358934 Opened 19 years ago Closed 19 years ago

additional cairo headers need to be in config/system-headers

Categories

(Firefox Build System :: General, defect)

x86
Linux
defect
Not set
normal

Tracking

(Not tracked)

RESOLVED FIXED

People

(Reporter: dbaron, Assigned: dbaron)

References

Details

(Keywords: verified1.8.0.9, verified1.8.1.1)

Attachments

(1 file, 1 obsolete file)

When building the 1.8 branch on FC6 x86_64, I hit linker errors due to cairo headers not being in config/system-headers (which is used for wrapping system headers to push/pop visibility). In particular, I think my errors where in nsCanvasRenderingContext2D.cpp and nsSVGCairoCanvas.cpp, and I needed to add (at most) cairo-xlib.h and cairo-xlib-xrender.h . However, I think we may want to add more than those. Based on LXR, I see the following includes from outside of cairo into cairo: cairo-atsui.h cairo-beos.h cairo-ft.h cairo-glitz.h cairo-nquartz.h cairo-os2.h cairo-pdf.h cairo-ps.h cairo-quartz.h cairo-win32.h cairo-xlib.h cairo-xlib-xrender.h
Attached patch patch (obsolete) — Splinter Review
Attachment #244246 - Flags: review?(benjamin)
Is this --with-system-cairo or something? The cairo headers are internal to our tree by default.
No longer blocks: 359275
Blocks: 359275
Even though they're internal to our tree, they're not annotated with __attribute__((visibility("default"))) for public APIs. (Same reason NSS and NSPR headers are in config/system-headers.)
(And we already build cairo with VISIBILITY_FLAGS= because of that.)
ifndef MOZ_ENABLE_LIBXUL, though. So perhaps this change, plus the existing listing of cairo.h, should be #if !defined(MOZ_ENABLE_LIBXUL) || defined(system cairo))
Yes, I think so... not sure how to do that easily :-( perhaps piping it through the Xul preprocessor would work.
Well, it's something we need to figure out for bug 359000 and bug 359001 as well...
(That said, are we sure that the cairo API shouldn't be exported from libxul?)
vlad and I have been arguing about that, but it's a separate issue and has its own bugs already I think. He wants to (in addition to exporting thebes, which makes me even more uncomfortable), but I really want to avoid more ELF exposure than necessary and Darin convinced me a long time ago that it would be very valuable to avoid exposing any nonfrozen symbols from our shared libs.
Attached patch patchSplinter Review
Attachment #244246 - Attachment is obsolete: true
Attachment #244509 - Flags: review?(benjamin)
Attachment #244246 - Flags: review?(benjamin)
Attachment #244509 - Flags: review?(benjamin) → review+
Checked in to trunk.
Status: NEW → RESOLVED
Closed: 19 years ago
Resolution: --- → FIXED
Comment on attachment 244509 [details] [diff] [review] patch This is a low risk patch that will, along with the other dependencies of bug 359275: * allow Linux distros to take advantage of improved load and runtime performance with WRAP_SYSTEM_HEADERS, other performance optimizations (prelinking), and security improvements (SELinux) * make it easier for developers to build on new distributions like Fedora Core 6
Attachment #244509 - Flags: approval1.8.1.1?
Attachment #244509 - Flags: approval1.8.0.9?
Comment on attachment 244509 [details] [diff] [review] patch approved for 1.8/1.8.0 branches, a=dveditz
Attachment #244509 - Flags: approval1.8.1.1?
Attachment #244509 - Flags: approval1.8.1.1+
Attachment #244509 - Flags: approval1.8.0.9?
Attachment #244509 - Flags: approval1.8.0.9+
Fix checked in to MOZILLA_1_8_BRANCH and MOZILLA_1_8_0_BRANCH.
v.fixed on both branches by code and cvs log inspection, and from the lack of any comments regarding new issues or regressions. If dbaron or anyone else can confirm, that will be great!
Product: Core → Firefox Build System
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: