[Libguestfs] [nbdkit] [filter/nozero] large binary size with GCC 9

Thomas Weißschuh thomas at weissschuh.net
Thu Jul 4 18:38:07 UTC 2019


Hi all,

It seems GCC 9 does not put read-only zero-initialized variables into the BSS
section anymore; instead it is put into RODATA.
(See the thread at [0], especially [1])

In filter/nozero a 64M large, static, zeroed, read-only array is declared.
The new behavior of GCC puts this array as-is into the binary inflating the
size by a factor of around 10000.

(Clang 8 and older GCCs work "correctly")

It would be possible to remove the "const" qualifier or use some compiler
attribute trickery to get the previous behavior back.

Thanks,
Thomas

[0] https://gcc.gnu.org/ml/gcc/2019-04/msg00034.html
[1] https://gcc.gnu.org/ml/gcc/2019-04/msg00049.html




More information about the Libguestfs mailing list