Re: [cairo] Issues with Pango on OSX




On Jul 8, 2010, at 11:04 PM, Alexander Shulgin wrote:

On Thu, Jul 8, 2010 at 18:38, Travis Griggs <tgriggs cincom com> wrote:

The reason I think that, is that when I first starting making calls into it from my program, I start seeing lots of errors on stderr of the nature:

(process:82410): GLib-GObject-CRITICAL **: gtype.c:2711: You forgot to call
g_type_init()
(process:82410): GLib-GObject-WARNING **: invalid cast from `PangoModule' to
`<invalid>'
(process:82410): GLib-GObject-CRITICAL **: gtype.c:2766: You forgot to call
g_type_init()
(process:82410): GLib-GObject-CRITICAL **: g_object_new: assertion
`G_TYPE_IS_OBJECT (object_type)' failed
(process:82410): Pango-WARNING **: Failed to load Pango module
'/Users/travis/CairoPixmanBuild/lib/pango/1.6.0/modules/pango-basic- atsui.so'
for id 'BasicScriptEngineATSUI'
(process:82410): GLib-GObject-WARNING **: cannot register existing type
`PangoEngine'
(process:82410): GLib-GObject-CRITICAL **: g_type_register_static: assertion
`parent_type > 0' failed
(process:82410): GLib-GObject-CRITICAL **: gtype.c:2711: You forgot to call
g_type_init()
(process:82410): GLib-GObject-WARNING **: invalid cast from `PangoModule' to
`<invalid>'
(process:82410): GLib-GObject-CRITICAL **: gtype.c:2766: You forgot to call
g_type_init()
(process:82410): GLib-GObject-WARNING **: plugin '(unknown)' failed to
register type '(null)'

None of that looks very good at all. In particular 5th one down, the one where it can't load the atsui module. The file is indeed at that location. Any idea what gives here? I do not build cairo with xlib or ft/fc, and when
Pango runs it's configure, it says the only backend it is building is
pangocairo.

Thanks for any help you can give on why I'm seeing these errors.

I have no clue about what's causing gtype errors, but with failing .so
you might consider this:

1. On OS X it should be actually .dylib, not .so

2. You can use `otool -L <filename>.dylib' to inspect library
dependencies.  Some of them missing, then this is causing your pango
module load error.

I've used install_name_tool on OS X to break cairo and some other libs
(no pango among them) free of absolute path dependencies.  If you can
show what commands you used, I think I'll be able to pinpoint the
problem (if it is at that stage).

I was able to get this to work, apparently .so's actually work on OSX. The issue was that it was not finding pango.modules, and so not ending up with any .so's that matched the relocated libraries. I applied a patch that Owen Taylor was nice enough to point me at, which makes it so the resolution of pango.modules can be tuned by an environment variable. It can then be tuned, and the .so's can be adjusted using install_name_tool the same as the dylibs.

--
Travis Griggs
Objologist
"No other topic generates more heat and less light than code formatting" --Kent Beck



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]