Opened 11 years ago
Closed 10 years ago
#43346 closed defect (fixed)
glib2 @2.40.0 issues a "Got weird mach timebase info" error when running Inkscape 0.48.4 r9939
Reported by: | udbraumann | Owned by: | ryandesign (Ryan Carsten Schmidt) |
---|---|---|---|
Priority: | Normal | Milestone: | |
Component: | ports | Version: | 2.2.1 |
Keywords: | leopard ppc | Cc: | |
Port: | glib2 |
Description
I managed to smoothly install my beloved inkscape
on a 10.5.8. PPC.
However, during the startup of the GUI it crashes, probably due to a problem with glib2
:
$ inkscape (inkscape:99961): GLib-GObject-WARNING **: gvalue.c:181: cannot initialize GValue with type 'guint', the value has already been initialized as '-g-type-private--IFaceHolder' (inkscape:99961): GLib-GObject-WARNING **: unable to set property 'digits' of type 'guint' from value of type 'guint' (inkscape:99961): GLib-ERROR **: Got weird mach timebase info of 1000000000/33329426. Please file a bug against GLib. Trace/BPT trap
Any hints or ideas?
Attachments (2)
Change History (8)
Changed 11 years ago by udbraumann
Attachment: | inkscape_2014-04-13-142737_Macintosh-2.crash added |
---|
comment:1 Changed 11 years ago by ryandesign (Ryan Carsten Schmidt)
Cc: | ryandesign@… removed |
---|---|
Owner: | changed from macports-tickets@… to ryandesign@… |
I don't know. I would file a bug against GLib, like it says.
comment:2 follow-up: 3 Changed 11 years ago by ccorn@…
The cause is in glib/gmain.c
in function g_get_monotonic_time()
. When called for the first time, the function sets timebase_info
which is a fraction giving the mach tick period in nanoseconds. That value is divided by 1000 to give microseconds. The current code requires the resulting fraction to be representable as 1/denominator because the author did not feel the need for risking integer overflows when multiplying. However, on PPC a representation as 1/denominator would not be exact, and the code errs out. I have replaced the code with a long double
computation that should be accurate enough. I do not mind whether that's faster or slower than the previous 64-bit integer division. Feel free to try it for the time being until a proper fix is provided upstream.
Changed 11 years ago by ccorn@…
Attachment: | patch-glib-gmain-c.diff added |
---|
Patch to get g_get_monotonic_time
working on MACH/PPC
comment:3 Changed 11 years ago by udbraumann
Replying to ccorn@…:
The cause is in
glib/gmain.c
in functiong_get_monotonic_time()
. ...
Meanwhile a substantial debate on this issue has been started upstream: https://bugzilla.gnome.org/show_bug.cgi?id=728123 As it appears, the problem not only occurs for PowerPC processors, but also for ARMs. Moreover, it is being speculated that the problem (mach_timebase_info_data_t should be capable to also carry non-1/1 numerator/denominator ratios, such as 1000000000/33329426) might affect future Intel Macs.
https://bug728123.bugzilla-attachments.gnome.org/attachment.cgi?id=274897 proposes a reasonable patch for glib/gmain.c, but still the glib2 developer seem to hesitate to adopt it.
comment:4 follow-up: 5 Changed 11 years ago by josephsacco
This bug also rears its ugly head when building gstreamer1 @1.24 on a PPC running OS X 10.5.8. Rebuilding glib2 with patch-glib-gmain-c.diff resolves the problem.
Good work!!!
-Joseph
comment:5 Changed 11 years ago by udbraumann
Could successfully apply a patch proposed upstream under https://bug728123.bugzilla-attachments.gnome.org/attachment.cgi?id=275596
comment:6 Changed 10 years ago by ryandesign (Ryan Carsten Schmidt)
Resolution: | → fixed |
---|---|
Status: | new → closed |
corresponding crash report found under ~/Library/Logs/CrashReporter