El Lun, 23 de Febrero de 2009, 14:01, Thomas Adam escribió: > 2009/2/23 Jesús Guerrero <[email protected]>: > >>> Index: modules/FvwmButtons/button.c >>> =================================================================== >>> RCS file: /home/cvs/fvwm/fvwm/modules/FvwmButtons/button.c,v >>> retrieving revision 1.40 diff -u -r1.40 button.c --- >>> modules/FvwmButtons/button.c 22 Feb 2009 21:24:48 -0000 1.40 >>> +++ >>> modules/FvwmButtons/button.c 23 Feb 2009 11:51:06 -0000 @@ -489,6 >>> +489,7 >>> @@ >>> /* needed to prevent a gcc -O3 bug */ >>> volatile int old; >>> >>> + old = ub->c->allocated_buttons; >>> if(num>=ub->c->allocated_buttons) { if(num<old || old>(old+32)) /* test >>> for num<old or for signed overflow */ >> >> This indeed seems to work with the old config file. >> > > ... and hence I assume you can happily invoke FvwmButtons -g blah > SomeAlias? >
Yes. I have undone the changes to my config file. I removed the Geometry option and I've reverted to the -g parameter when invoking the module. Previously, this caused the segfault, but after patching FvwmButtons.c it now works. I wonder however what triggered this problem. It has been working for years without a problem and I don't see any recent reference to FvwmButtons.c in the Changelog nor in the CHANGES file in the FvwmButtons directory. If the volatile variable wasn't correctly initialized maybe this can be due to a recent glibc update and the way that the memory is mapped now or something like that, I updated glibc some days ago. It's the only thing I can think of. -- Jesús Guerrero
