Ruby 1.9.3 doesn't build on m68k due to alignment of structs
I'd built Ruby 1.8 without any problems, but 1.9.3 shows up an issue with Ruby due to alignment checking.
When executing Init_var_tables(), we execute....
We end up, in rb_intern3() and use the RString struct to pass into rb_enc_associate() which checks alignment with SPECIAL_CONST_P(x) via IMMEDIATE(x) and uses the RUBY_IMMEDIATE_MASK which is defined as 0x03.
This can fail on m68k as structs can be aligned on 16bit boundaries. I had to change....
struct RString fake_str;
struct RString fake_str attribute ((aligned (4)));
To get miniruby to build, but I'm not sure of other lurkers and whether this strict use of IMMEDIATE(x) is really valid.
- include/ruby/ruby.h (RBasic): to be aligned on a VALUE size boundary. [Bug #7647]
#1 Updated by Nobuyoshi Nakada over 2 years ago
- Status changed from Open to Closed
- % Done changed from 0 to 100