Bug #7647
closedRuby 1.9.3 doesn't build on m68k due to alignment of structs
Description
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....
CONST_ID(autoload, "autoload");
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;
to
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.
Updated by nobu (Nobuyoshi Nakada) about 11 years ago
- Status changed from Open to Closed
- % Done changed from 0 to 100
This issue was solved with changeset r38741.
Alan, thank you for reporting this issue.
Your contribution to Ruby is greatly appreciated.
May Ruby be with you.
ruby.h: align
- include/ruby/ruby.h (RBasic): to be aligned on a VALUE size
boundary. [Bug #7647]