Project

General

Profile

Bug #3821

UNIXSocket#send_io and multi-arch compiling

Added by kch (Caio Chassot) almost 10 years ago. Updated over 9 years ago.

Status:
Closed
Priority:
Normal
Assignee:
-
Target version:
-
ruby -v:
r29241
Backport:
[ruby-core:32341]

Description

=begin
It seems we have a problem with UNIXSocket#send_io when compiling for multiple archs. It showed up for me when trying to use mod_rails with a universal ruby on the Mac. Here's an excerpt of an exchange I had with the mod_rails guys:

(All on OS X 10.6)

It seems if have ruby compiled for multiple archs, eg:

• ./configure --with-arch=x86_64,i386
• port install ruby19 +universal

And Apache 2 as x86_64 only, passenger will compile mod_passenger.so
as x86_64. Up to here, everything seems reasonable. But then, when
trying to load an app via passengers I'll get errors like this:

*** Exception NotImplementedError in
PhusionPassenger::Rack::ApplicationSpawner (send_io() function is
unimplemented on this machine) (process 31302): …

Reinstalling ruby as x86_64 only fixes it.

UNIXSocket#send_io is a Ruby socket library function and it would
appear that they're not turning it on properly during compile time
when compiling it in universal mode. You should file a bug report.
=end

#1

Updated by nobu (Nobuyoshi Nakada) almost 10 years ago

=begin
Hi,

At Mon, 13 Sep 2010 02:49:33 +0900,
Caio Chassot wrote in [ruby-core:32341]:

(All on OS X 10.6)
(snip)
*** Exception NotImplementedError in
PhusionPassenger::Rack::ApplicationSpawner (send_io() function is
unimplemented on this machine) (process 31302): …

Reinstalling ruby as x86_64 only fixes it.

I had disabled the feature on 64bit darwin due to a bug in the
system header /usr/include/i386/_param.h of darwin 9.8. So it
should not be enabled by just installing as x86_64 only.


r27530 | nobu | 2010-04-28 17:14:18 +0900 (Wed, 28 Apr 2010) | 2 lines

  • ext/socket/extconf.rb: CMSG_ macros are broken on 64bit darwin, because of use of __DARWIN_ALIGN. ------------------------------------------------------------------------

To use this feature, you have to revert this commit at least, and
to run, the system header has to have been fixed already.

--
Nobu Nakada

=end

#2

Updated by nobu (Nobuyoshi Nakada) almost 10 years ago

  • Category set to ext
  • Status changed from Open to Closed
  • ruby -v set to r29241

=begin
Fixed with r29242.
=end

Also available in: Atom PDF