>>>>> On Mon, 18 Apr 2005 13:38:08 -0600, dann frazier <[EMAIL PROTECTED]> 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 PROTECTED]> 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: Dann> http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=304437 >> Looks like this has already been taken care of. Good. ;-) Dann> Well, it gets you to the next bug: Dann> http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=304708 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 evolution-data-server1.2: 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. --david <--- check-implicit-pointer-function --> #!/usr/bin/env python # # Copyright (c) 2004 Hewlett-Packard Development Company, L.P. # David Mosberger <[EMAIL PROTECTED]> # # 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 # crashes. # import re import sys implicit_pattern = re.compile("([^:]*):(\d+): warning: implicit declaration " + "of function `([^']*)'") pointer_pattern = re.compile( "([^:]*):(\d+): warning: " + "(" + "(assignment" + "|initialization" + "|return" + "|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 = "" while True: line = sys.stdin.readline() if line == '': break m = implicit_pattern.match(line) if m: last_implicit_filename = m.group(1) last_implicit_linenum = int(m.group(2)) last_implicit_func = m.group(3) else: m = pointer_pattern.match(line) if m: 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, last_implicit_linenum) -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]

