Koji cannot build emacs

Chip Coldwell coldwell at redhat.com
Thu Aug 9 20:03:02 UTC 2007


On Thu, 9 Aug 2007, Roland McGrath wrote:

> > sound.c:1472:51: error: macro "open" requires 3 arguments, but only 1 given
> [...]
> > What should I do ?  Drop "-D_FORTIFY_SOURCE=2" from the CFLAGS?
> 
> Nope.  Fix the program to be POSIX-compliant by not assuming open is not a
> macro.  You can replace open or foo->open with (open) or (foo->open),
> or you can add an #undef open where it's used.  The former is
> better.

This patch works:

--- emacs-22.1/src/sound.c~	2007-03-06 07:14:14.000000000 -0500
+++ emacs-22.1/src/sound.c	2007-08-09 15:54:52.117018000 -0400
@@ -1469,7 +1469,7 @@ Internal use only, use `play-sound' inst
       error ("No usable sound device driver found");
 
   /* Open the device.  */
-  current_sound_device->open (current_sound_device);
+  (current_sound_device->open) (current_sound_device);
 
   /* Play the sound.  */
   current_sound->play (current_sound, current_sound_device);


And I'm happy to build this way, however ...

<rant>

"open" has to be one of the most overloaded names in programming.
Changing the semantics of that name is something that should be done
very carefully and very reluctantly, and I don't care what POSIX says
about it.

</rant>

Chip

-- 
Charles M. "Chip" Coldwell
Senior Software Engineer
Red Hat, Inc
978-392-2426




More information about the Fedora-maintainers mailing list