Joel E. Denny wrote:
> Bison version 2.4.2 is now available.  This is primarily a bug-fix
> release.

This bison release does not work on FreeBSD 8-STABLE or FreeBSD 9
(development). Spawning processes is broken in the same way as happened
in the latest GNU m4 release. And apparently results from the same bug
in gnulib (that was fixed on 2 March).

This bison release is likely unusable on all non-Linux systems that
define their own posix_spawn() function and defines. The bug does not
affect systems that use the gnulib replacement function.

A patch is attached. I hope this will be in the next release.


Regards,
Johan
2010-03-02  Bruno Haible  <[email protected]>

	spawn: Don't override the system defined values on FreeBSD 8.
	* lib/spawn.in.h (POSIX_SPAWN_RESETIDS, POSIX_SPAWN_SETPGROUP,
	POSIX_SPAWN_SETSIGDEF, POSIX_SPAWN_SETSIGMASK,
	POSIX_SPAWN_SETSCHEDPARAM, POSIX_SPAWN_SETSCHEDULER): Don't redefine
	if HAVE_POSIX_SPAWN is 1.
	Reported by Johan van Selst <[email protected]> via Eric Blake.

*** lib/spawn.in.h.orig	Tue Mar  2 11:53:02 2010
--- lib/spawn.in.h	Tue Mar  2 11:48:54 2010
***************
*** 110,126 ****
  
  
  /* Flags to be set in the `posix_spawnattr_t'.  */
! #if @REPLACE_POSIX_SPAWN@
  /* Use the values from the system, for better compatibility.  */
  /* But this implementation does not support AIX extensions.  */
! # undef POSIX_SPAWN_FORK_HANDLERS
! #else
! # define POSIX_SPAWN_RESETIDS           0x01
! # define POSIX_SPAWN_SETPGROUP          0x02
! # define POSIX_SPAWN_SETSIGDEF          0x04
! # define POSIX_SPAWN_SETSIGMASK         0x08
! # define POSIX_SPAWN_SETSCHEDPARAM      0x10
! # define POSIX_SPAWN_SETSCHEDULER       0x20
  #endif
  /* A GNU extension.  Use the next free bit position.  */
  #define POSIX_SPAWN_USEVFORK \
--- 110,128 ----
  
  
  /* Flags to be set in the `posix_spawnattr_t'.  */
! #if !...@have_posix_spawn@
! # if @REPLACE_POSIX_SPAWN@
  /* Use the values from the system, for better compatibility.  */
  /* But this implementation does not support AIX extensions.  */
! #  undef POSIX_SPAWN_FORK_HANDLERS
! # else
! #  define POSIX_SPAWN_RESETIDS           0x01
! #  define POSIX_SPAWN_SETPGROUP          0x02
! #  define POSIX_SPAWN_SETSIGDEF          0x04
! #  define POSIX_SPAWN_SETSIGMASK         0x08
! #  define POSIX_SPAWN_SETSCHEDPARAM      0x10
! #  define POSIX_SPAWN_SETSCHEDULER       0x20
! # endif
  #endif
  /* A GNU extension.  Use the next free bit position.  */
  #define POSIX_SPAWN_USEVFORK \

Attachment: pgpHmnaDWVe9d.pgp
Description: PGP signature

Reply via email to