diff options
| author | Nobuyoshi Nakada <nobu@ruby-lang.org> | 2025-04-06 12:24:23 +0900 |
|---|---|---|
| committer | Nobuyoshi Nakada <nobu@ruby-lang.org> | 2025-04-06 12:24:23 +0900 |
| commit | e25889951f39aff6e3c16ecee10e678912454e69 (patch) | |
| tree | e221c92e4e7723014807c683ca3a20cd8b4dad4e /template | |
| parent | b5ac483d9546f5e3bc8d72ef3efb8c90c9452069 (diff) | |
Ensure builtin binaries are aligned to ibf_header
Since IBF result string size should be multiple of 4, this should not
increase the binary size actually.
Notes
Notes:
Merged: https://github.com/ruby/ruby/pull/13075
Diffstat (limited to 'template')
| -rw-r--r-- | template/builtin_binary.inc.tmpl | 15 |
1 files changed, 10 insertions, 5 deletions
diff --git a/template/builtin_binary.inc.tmpl b/template/builtin_binary.inc.tmpl index 2c2f071705..1e3fc63680 100644 --- a/template/builtin_binary.inc.tmpl +++ b/template/builtin_binary.inc.tmpl @@ -5,19 +5,24 @@ % unless ARGV.include?('--cross=yes') % ary = RubyVM.enum_for(:each_builtin).to_a % ary.each{|feature, iseq| +% bin = iseq.to_binary -static const unsigned char <%= feature %>_bin[] = { -% iseq \ -% . to_binary \ +static const union { + unsigned char binary[<%= bin.bytesize %>]; + uint32_t align_as_ibf_header; +} <%= feature %>_builtin = { + .binary = { +% bin \ % . each_byte \ % . each_slice(12) {|a| - <%= a.map{ '0x%02x,' % _1 }.join(' ') %> + <%= a.map{ '0x%02x,' % _1 }.join(' ') %> % } + } }; % } #define BUILTIN_BIN(feature) \ - { #feature, feature ## _bin, sizeof(feature ## _bin), } + { #feature, feature ## _builtin.binary, sizeof(feature ## _builtin.binary), } static const struct builtin_binary builtin_binary[] = { % ary.each{|feature, | BUILTIN_BIN(<%= feature %>), |
