rtomayko / posix-spawn

Ruby process spawning library
Other
520 stars 52 forks source link

Fix build when SIZEOF_INT == SIZEOF_LONG #83

Closed pterjan closed 6 years ago

pterjan commented 7 years ago

Fixes #78

andreasbaumann commented 6 years ago

Blocks building gitlab on Archlinux32. Upvoting this one. :-)

NgrNxk commented 6 years ago

Yeah, I haven't been able to build the last 4 releases of gitlab :(. Please fix this one.

yrzr commented 6 years ago

I met the same problem #84 . Thought it was about ARM. Now it's clear that it affects all 32bit platforms.

Upvoting this one. 👍

limansky commented 6 years ago

Same problem on Gentoo x86

tmm1 commented 6 years ago

ping @rtomayko

rtomayko commented 6 years ago

This generates warnings and fails on my crappy Mac Ruby (2.0.0). Do we care?

$ ruby --version
ruby 2.0.0p648 (2015-12-16 revision 53162) [universal.x86_64-darwin16]
$ rake build
cd tmp/universal.x86_64-darwin16/posix_spawn_ext/2.0.0
make
compiling ../../../../ext/posix-spawn.c
../../../../ext/posix-spawn.c:64:9: warning: implicit declaration of function 'RB_FIX2INT' is invalid in C99 [-Wimplicit-function-declaration]
                        fd = RB_FIX2INT(obj);
                             ^
1 warning generated.
../../../../ext/posix-spawn.c:64:9: warning: implicit declaration of function 'RB_FIX2INT' is invalid in C99 [-Wimplicit-function-declaration]
                        fd = RB_FIX2INT(obj);
                             ^
1 warning generated.
linking shared-object posix_spawn_ext.bundle
cd -
cp tmp/universal.x86_64-darwin16/posix_spawn_ext/2.0.0/posix_spawn_ext.bundle lib/posix_spawn_ext.bundle
$ rake test
dyld: lazy symbol binding failed: Symbol not found: _RB_FIX2INT
  Referenced from: /Users/rtomayko/git/posix-spawn/lib/posix_spawn_ext.bundle
  Expected in: flat namespace

dyld: Symbol not found: _RB_FIX2INT
  Referenced from: /Users/rtomayko/git/posix-spawn/lib/posix_spawn_ext.bundle
  Expected in: flat namespace

rake aborted!
SignalException: SIGIOT
/Library/Ruby/Gems/2.0.0/gems/rake-12.3.0/exe/rake:27:in `<top (required)>'
Tasks: TOP => test
(See full trace by running task with --trace)
rtomayko commented 6 years ago

Works great on Mac 2.4.1:

$ ruby --version
ruby 2.4.1p111 (2017-03-22 revision 58053) [x86_64-darwin16]
$ rake build
mkdir -p tmp/x86_64-darwin16/posix_spawn_ext/2.4.1
cd tmp/x86_64-darwin16/posix_spawn_ext/2.4.1
/opt/rubies/2.4.1/bin/ruby -I. ../../../../ext/extconf.rb
creating Makefile
cd -
cd tmp/x86_64-darwin16/posix_spawn_ext/2.4.1
make
compiling ../../../../ext/posix-spawn.c
linking shared-object posix_spawn_ext.bundle
cd -
cp tmp/x86_64-darwin16/posix_spawn_ext/2.4.1/posix_spawn_ext.bundle lib/posix_spawn_ext.bundle
$ rake test
...
149 runs, 478 assertions, 0 failures, 0 errors, 0 skips

I'm :+1: to merge. Anyone worried about standard Mac environments?

tmm1 commented 6 years ago

It's worth keeping compat. I can take a look tomorrow- should be possible to detect the method via extconf.rb

Can you add me to the repo?

rtomayko commented 6 years ago

@tmm1 You have collab. @brianmario and @piki are the other committers. We should open an issue looking for a maintainer. I haven't messed with this for a couple years and I'm not sure GitHub is maintaining?

limansky commented 6 years ago

BTW, I've checked this fix on x86 with Ruby 2.3.5. It works.