rubinius / rubinius

The Rubinius Language Platform
https://rubinius.com
Mozilla Public License 2.0
3.06k stars 588 forks source link

stripping vm/vm (rbx) breaks rubinius. #75

Closed zacheryph closed 14 years ago

zacheryph commented 14 years ago

if vm/vm (rbx) is stripped, it no longer works.

liquid:rubinius context$ ./bin/rbx -v rubinius 0.13.0-dev (1.8.7 cde67054 2009-11-06) [x86_64-apple-darwin10.2.0] liquid:rubinius context$ strip vm/vm liquid:rubinius context$ ./bin/rbx -v Fatal error loading runtime kernel:

Unable to find FFI 'ffi_environ' in: this process

0x7fff5fbfd480: #raise in kernel/alpha.rb:160 (+50) 0x7fff5fbfd830: #attach_function in kernel/platform/library.rb:108 (+114) 0x7fff5fbfdc60: Rubinius::EnvironmentAccess.module_init in kernel/platform/env.rb:9 (+87) 0x7fff5fbfdfe0: Rubinius.module_init in kernel/platform/env.rb:2 (+30) 0x7fff5fbfe370: Object#script in kernel/platform/env.rb:1 (+28) Fatal error loading runtime kernel:

Unable to find FFI 'ffi_errno' in: this process

0x7fff5fbfd800: #raise in kernel/alpha.rb:160 (+50) 0x7fff5fbfdbb0: #attach_function in kernel/platform/library.rb:108 (+114) 0x7fff5fbfdfe0: FFI::Platform::POSIX.module_init in kernel/platform/posix.rb:8 (+27) 0x7fff5fbfe370: Object#script in kernel/platform/posix.rb:4 (+32) Fatal error loading runtime kernel:

Unable to send 'malloc' on 'FFI::Platform::POSIX' (Module)

0x7fff5fbfcd00: #raise in kernel/alpha.rb:160 (+50) 0x7fff5fbfd0b0: #malloc in kernel/alpha.rb:186 (+41) 0x7fff5fbfd490: MemoryPointer.new in kernel/platform/memorypointer.rb:64 (+104) 0x7fff5fbfd890: FFI::Struct#initialize in kernel/platform/struct.rb:70 (+62) 0x7fff5fbfdc40: Class#new in kernel/alpha.rb:100 (+16) 0x7fff5fbfdfe0: File::Stat.class_init in kernel/common/file.rb:838 (+60) 0x7fff5fbfe370: Object#script in kernel/common/file.rb:831 (+126) Fatal error loading runtime kernel:

Unable to send 'isatty' on 'FFI::Platform::POSIX' (Module)

0x7fff5fbfd4f0: #raise in kernel/alpha.rb:160 (+50) 0x7fff5fbfd8a0: #isatty in kernel/alpha.rb:186 (+41) 0x7fff5fbfdc80: IO#tty? in kernel/common/io.rb:1446 (+17) 0x7fff5fbfdff0: Rubinius.module_init in kernel/delta/rubinius.rb:2 (+10) 0x7fff5fbfe370: Object#script in kernel/delta/rubinius.rb:1 (+28) exception detected at toplevel: No method 'add_reader' on Rubinius (Module) (NoMethodError) kernel/delta/kernel.rb:47 kernel/delta/module.rb:110 kernel/bootstrap/array.rb:156 kernel/delta/module.rb:110 kernel/delta/options.rb:8 kernel/delta/options.rb:7 kernel/delta/options.rb:4 kernel/delta/options.rb:1 Unknown VM exception detected. 2 rbx 0x00000001000523a5 rubinius::event::Write::~Write() + 4149 3 rbx 0x0000000100052480 rubinius::event::Write::~Write() + 4368 4 rbx 0x000000010004dd7b std::_Rb_tree<std::string, std::pair<std::string const, rubinius::ConfigParser::Entry>, std::_Select1st<std::pair<std::string const, rubinius::ConfigParser::Entry> >, std::lessstd::string, std::allocator<std::pair<std::string const, rubinius::ConfigParser::Entry> > >::_M_erase(std::_Rb_tree_node<std::pair<std::string const, rubinius::ConfigParser::Entry> >_) + 6507 5 rbx 0x000000010004e440 std::_Rbtree<std::string, std::pair<std::string const, rubinius::ConfigParser::Entry>, std::_Select1st<std::pair<std::string const, rubinius::ConfigParser::Entry> >, std::lessstd::string, std::allocator<std::pair<std::string const, rubinius::ConfigParser::Entry> > >::_M_erase(std::_Rb_treenode<std::pair<std::string const, rubinius::ConfigParser::Entry*> >) + 8240 6 rbx 0x0000000100179f10 std::right(std::ios_base&) + 832 7 rbx 0x000000010017a610 std::right(std::iosbase&) + 2624 8 rbx 0x0000000100011498 llvm::cl::ValuesClass llvm::cl::values(char const, int, char const*, ...) + 6296 9 ??? 0x0000000000000002 0x0 + 2

brixen commented 14 years ago

FFI depends on loading symbols in the binary.

brixen commented 14 years ago

I guess we're going to fix this actually.

evanphx commented 14 years ago

This is not supported.