[PATCH] Don't emit vendor attribute section if there is no attribute need to emit.

Kito Cheng kito.cheng@gmail.com
Wed Jan 9 14:13:00 GMT 2019


This patch will make vendor specific attribute section won't emit if
there is no attribute.

It seems doesn't matter for emit an empty vendor specific attribute
section, but in readelf, it will cause a problem, readelf will treat
it as an corrupt file.

15571                   /* PR binutils/17531: Safe handling of corrupt
files.  */
15572                   if (attr_len < 6)
15573                     {
15574                       error (_("Unused bytes at end of section\n"));
15575                       res = FALSE;
15576                       section_len = 0;
15577                       break;
15578                     }

So here is two direction to fix this this problem, fix readelf or do
not emit attribute section if it's empty, this patch is the second
one.

This patch has 2 pre-requirement patch for the testcase[1, 2],
configure with --target=riscv32-unknown-linux-gnu or
riscv32-unknown-elf can test that.

ChangeLog:
bfd/
        * elf-attrs.c (vendor_obj_attr_size): Return 0 if size is 0 even
        for OBJ_ATTR_PROC.

gas/
        * testsuite/gas/riscv/attribute-empty.d: New.

[1] https://sourceware.org/ml/binutils/2019-01/msg00042.html
[2] https://sourceware.org/ml/binutils/2019-01/msg00041.html



More information about the Binutils mailing list