Hi Fangrui, On Wed, 2 Aug 2023 17:18:46 +0000, Fangrui Song via dmidecode-devel wrote: > Currently ALIGNMENT_WORKAROUND is only defined for __ia64__ and __arm__. > However, -fsanitize=alignment (part of UndefinedBehaviorSanitizer) will > give errors for other architectures like x86. Modern compilers are able > to optimize the memory access, so let's just use unaligned memory > accesses unconditionally.
I'm not sure what qualifies as a "modern compiler" for you, but on my up-to-date openSUSE Leap 15.4 system, gcc 7.5.0 x86_64 builds very different, much larger, and 0.8% slower code with -DALIGNMENT_WORKAROUND: add/remove: 0/0 grow/shrink: 9/0 up/down: 5099/0 (5099) Function old new delta dmi_table_decode 24440 27760 +3320 dmi_decode_oem 8475 9806 +1331 dmi_print_cpuid 434 626 +192 smbios3_decode 369 481 +112 smbios_decode 569 625 +56 legacy_decode 300 348 +48 dmi_processor_family 536 560 +24 dmi_processor_frequency 86 94 +8 dmi_get_cpuid_type.isra 379 387 +8 Total: Before=60630, After=65729, chg +8.41% Therefore I'm not willing to apply your patch. -- Jean Delvare SUSE L3 Support