cvs commit: ports/Mk bsd.ruby.mk ports/lang/ruby18 Makefile ports/lang/ruby18/files patch-gc.c patch-main.c

Stanislav Sedov stas at FreeBSD.org
Mon Oct 12 13:15:51 UTC 2009


stas        2009-10-12 13:15:50 UTC

  FreeBSD ports repository

  Modified files:
    Mk                   bsd.ruby.mk 
    lang/ruby18          Makefile 
    lang/ruby18/files    patch-gc.c 
  Added files:
    lang/ruby18/files    patch-main.c 
  Log:
  - Don't build ruby with threads support on FreeBSD versions before 7.2
  - On FreeBSD >= 7.2 allocate the new thread with adequate amount of stack
    space to run the main ruby code in.  This allows to mitigate problem
    when too low stack space available for ruby when running with pthreads
    enabled.
  - Bump portrevision.
  
  The long version.  Before this change we used to link ruby against pthreads
  uncoditionally on all versions of FreeBSD.  This is indispensable in order
  to load the threaded shared objects withing ruby.  However, this causes a
  dramatic decrease in the stack space available as pthreads only allows
  up to several megabytes of stack space for the main application threads.
  The only solution to this is to create the new thread immediately after
  the program start with rigth stack size attributes set.  Nonetheless this
  scheme won't work for us on FreeBSD version before 7.2 as malloc implementation
  in these versions was not threaded fork safe (i.e. this is impossible to
  fork from the threaded program and expect malloc/free functions to work).
  Thus the only solution for now can be to disable pthreads entirely on
  FreeBSD <= 7.2.  This won't cause any performance/usability problems for
  users as Ruby 1.8 uses green threads, however it may prevent <= 7.2
  users to load shared libraries linked agains pthreads.
  
  Reported by:    "François Montel" <seanmullen at gmail.com>
  Tested by:      Sean Mullen <seanmullen at gmail.com>
  
  Revision  Changes    Path
  1.187     +2 -2      ports/Mk/bsd.ruby.mk
  1.145     +7 -0      ports/lang/ruby18/Makefile
  1.5       +57 -18    ports/lang/ruby18/files/patch-gc.c
  1.1       +86 -0     ports/lang/ruby18/files/patch-main.c (new)


More information about the cvs-all mailing list