`readelf -S` and `objdump -h` print exactly the table you are building here, and the GNU linker ld relies on sh_flags to decide which sections get merged, loaded, or discarded during linking. Reverse engineers scan section flags first when triaging an unfamiliar binary, since an executable .data section is a classic self-modifying-code or shellcode red flag.