Closed Bug 328082 Opened 19 years ago Closed 19 years ago

rename cairo functions

Categories

(Core :: Graphics, defect, P1)

x86
Linux
defect

Tracking

()

RESOLVED FIXED
mozilla1.9alpha1

People

(Reporter: Biesinger, Assigned: Biesinger)

Details

Attachments

(1 file, 2 obsolete files)

to avoid conflicts with the system cairo, the functions of the in-tree cairo should be renamed, because if they aren't, I crash: #0 0xb78cf4c8 in cairo_surface_reference () from /usr/lib/libcairo.so.2 #1 0xb5dc378f in _cairo_gstate_init_copy (gstate=0x828a240, other=0x82ab4d0) at /home/chb/mozilla/gfx/cairo/cairo/src/cairo-gstate.c:173 #2 0xb5dc39ad in _cairo_gstate_clone (other=0x82ab4d0) at /home/chb/mozilla/gfx/cairo/cairo/src/cairo-gstate.c:246 ...
Attached patch patch (obsolete) — Splinter Review
this was generated by looking at the exported functions from my libthebes. it therefore doesn't include win- or mac-specific functions. but as there is not usually a system cairo there, this should be fine.
Attachment #212629 - Flags: review?(vladimir)
Comment on attachment 212629 [details] [diff] [review] patch So we should only rename if we're building with a system cairo, IMO, or we should rename all public functions (including win32, etc.)... otherwise debugging will be a pain, since some functions will be cairo_* and some will be _moz_cairo_*. I'd prefer just renaming everything always.
Status: NEW → ASSIGNED
Priority: -- → P1
Target Milestone: --- → mozilla1.9alpha
Attached patch patch v2 (obsolete) — Splinter Review
Rename all cairo_public functions.
Attachment #212629 - Attachment is obsolete: true
Attachment #212966 - Flags: review?(vladimir)
Attachment #212629 - Flags: review?(vladimir)
why does libthebes export cairo symbols at all? why aren't they all statically linked as hidden symbols into libthebes? you should be able to write a linker script to prevent them from being visible at least. is renaming really necessary?
(In reply to comment #4) > why does libthebes export cairo symbols at all? why aren't they all statically > linked as hidden symbols into libthebes? you should be able to write a linker > script to prevent them from being visible at least. is renaming really > necessary? It exports them because of SVG and Canvas -- canvas has already been rewritten for thebes, but I can't land it until we make the switch on linux at least (because landing it would mean disabling canvas on non-thebes builds). I'm not sure what SVG's plans are for switching to thebes, but they'll have to come along for the ride soon... Doing the renaming seems like a reasonable interim fix, and we'll need it on the 1.8.1 branch anyway, for linux -- pango/gtk will be using cairo, and so will svg/canvas, and we don't want to run into symbol issues there.
ah, makes perfect sense. sorry for the drive-by.
Attached patch patch v2Splinter Review
includes a makefile target to regenerate the file
Attachment #212966 - Attachment is obsolete: true
Attachment #215182 - Flags: review?(vladimir)
Attachment #212966 - Flags: review?(vladimir)
Patch v2 can no longer be applied to pixman-remap.h. Current version 1.6, patched version 1.3
Comment on attachment 215182 [details] [diff] [review] patch v2 Updated with discussion from IRC; I'll check in with those.
Attachment #215182 - Flags: review?(vladimir) → review+
Checked in.
Status: ASSIGNED → RESOLVED
Closed: 19 years ago
Resolution: --- → FIXED
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: