Re: evolution broken in sid
>>>>> On Mon, 18 Apr 2005 13:38:08 -0600, dann frazier <firstname.lastname@example.org> said:
Dann> On Mon, 2005-04-18 at 11:56 -0700, David Mosberger wrote:
>> >>>>> On Wed, 13 Apr 2005 09:57:53 -0600, dann frazier
>> <email@example.com> said:
Dann> Just a warning, the new evolution in sid is broken, and I
Dann> haven't found the appropriate set of packages to downgrade to
Dann> fix it yet:
>> Looks like this has already been taken care of. Good. ;-)
Dann> Well, it gets you to the next bug:
It's the same old Bohr bugs: failing to declare a function returning a
pointer. The bugs causing the "reply" to crash are actually hiding in
Function `camel_pstring_strdup' implicitly converted to pointer at camel-groupwise-folder.c:769
Function `gtk_cell_renderer_text_new' implicitly converted to pointer at e-name-selector-dialog.c:141
Function `gtk_hbox_new' implicitly converted to pointer at e-name-selector-dialog.c:415
but there is a similar bug in evolution-2.2 itself, which causes a
crash when clicking on "Tasks":
Function `e_categories_get_list' implicitly converted to pointer at e-tasks.c:603
Needless to say, ALL of these can be found trivially by running the
attached script on the build log. So much time could be saved if only
Debian did this automatically (if only for 64-bit platforms)...
I'll send the patches to fix the crashes in separate mail.
<--- check-implicit-pointer-function -->
# Copyright (c) 2004 Hewlett-Packard Development Company, L.P.
# David Mosberger <firstname.lastname@example.org>
# Scan standard input for GCC warning messages that are likely to
# source of real 64-bit problems. In particular, see whether there
# are any implicitly declared functions whose return values are later
# interpreted as pointers. Those are almost guaranteed to cause
implicit_pattern = re.compile("([^:]*):(\d+): warning: implicit declaration "
+ "of function `([^']*)'")
pointer_pattern = re.compile(
"([^:]*):(\d+): warning: "
+ "|passing arg \d+ of `[^']*'"
+ "|passing arg \d+ of pointer to function"
+ ") makes pointer from integer without a cast"
+ "cast to pointer from integer of different size)")
last_implicit_filename = ""
last_implicit_linenum = -1
last_implicit_func = ""
line = sys.stdin.readline()
if line == '':
m = implicit_pattern.match(line)
last_implicit_filename = m.group(1)
last_implicit_linenum = int(m.group(2))
last_implicit_func = m.group(3)
m = pointer_pattern.match(line)
pointer_filename = m.group(1)
pointer_linenum = int(m.group(2))
if (last_implicit_filename == pointer_filename
and last_implicit_linenum == pointer_linenum):
print "Function `%s' implicitly converted to pointer at " \
"%s:%d" % (last_implicit_func, last_implicit_filename,