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.
This commit is contained in:
Nobuyoshi Nakada 2025-04-06 12:24:23 +09:00
parent b5ac483d95
commit e25889951f
No known key found for this signature in database
GPG Key ID: 3582D74E1FEE4465
Notes: git 2025-04-06 05:32:39 +00:00

View File

@ -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 %>),