On Wed, Dec 17, 2008 at 12:08:55PM +0100, Peter TB Brett wrote: > On Wednesday 17 December 2008 09:37:01 Peter Clifton wrote: > > On Wed, 2008-12-17 at 10:26 +0100, Gabriel Paubert wrote: > > > Aprt from that, I am the only one still compiling on non-x86 > > > machines? > > > > > > On a machine where char are unsigned by default, there is a > > > bug with spectacular side effects (burst of error messages > > > ending with segmentation fault) due to a char parameter in > > > s_basic_new_object(). When the first parameter is -1, it ends > > > up being converted to 255 and stored as such in the object > > > structure (where the type is int). > > > > -1 was OBJ_HEAD IIRC. And actually, it is gone in git HEAD. Try building > > from the HEAD now, and see if the bug manifests anywhere else. > > > > in any case, OBJECT's "type" member is an integer, so I agree that we > > should be passing the object type as int. > > > > Thanks for the patch. Someone should apply it (I will if I remember, but > > if someone else with commit access wants to, please do - as I'll not get > > to it today). > > > > Rejected for 1.4.x stable, because it breaks the library ABI.
Well, I'm not sure that it affects 1.4.x since I exclusively use tip of git repository and the failure is not that old. Besides that there is another solution which is to cast the incoming char parameter to a signed char before is is passed as an int to s_basic_init_object(), but I see it as uglier. However, looking at 1.4 with gitweb, it seems that s_basic_new_object was only introduced after 1.5.0, on August 13th, in commit 0db6ea2341ce7cc8c631df75c4d3c30390590b29. What amazes me is that I did not catch this earlier since I thought I compiled a fresh geda every two weeks or so (ok I was on holiday the second half of August, but even then). Gabriel _______________________________________________ geda-dev mailing list geda-dev@moria.seul.org http://www.seul.org/cgi-bin/mailman/listinfo/geda-dev