Project

General

Profile

Bug #7647

Ruby 1.9.3 doesn't build on m68k due to alignment of structs

Added by alanh (Alan Hourihane) almost 5 years ago. Updated almost 5 years ago.

Status:
Closed
Priority:
Normal
Assignee:
-
Target version:
-
ruby -v:
0
[ruby-core:51224]

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.

Associated revisions

Revision 38741
Added by nobu (Nobuyoshi Nakada) almost 5 years ago

ruby.h: align

  • include/ruby/ruby.h (RBasic): to be aligned on a VALUE size boundary. [Bug #7647]

Revision 38741
Added by nobu (Nobuyoshi Nakada) almost 5 years ago

ruby.h: align

  • include/ruby/ruby.h (RBasic): to be aligned on a VALUE size boundary. [Bug #7647]

Revision 38741
Added by nobu (Nobuyoshi Nakada) almost 5 years ago

ruby.h: align

  • include/ruby/ruby.h (RBasic): to be aligned on a VALUE size boundary. [Bug #7647]

Revision 38741
Added by nobu (Nobuyoshi Nakada) almost 5 years ago

ruby.h: align

  • include/ruby/ruby.h (RBasic): to be aligned on a VALUE size boundary. [Bug #7647]

History

#1 Updated by nobu (Nobuyoshi Nakada) almost 5 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]

Also available in: Atom PDF