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

Reply via email to