This is the mail archive of the binutils@sourceware.org mailing list for the binutils project.
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
Other format: | [Raw text] |
+++ Rasmus Villemoes [25/11/19 10:29 +0100]:
cc += binutils ML [on @progbits v %progbits in generic (data only) assembly code] On 22/11/2019 12.44, Masahiro Yamada wrote:On Fri, Nov 22, 2019 at 1:09 AM Jessica Yu <jeyu@kernel.org> wrote:I think this would work, and it feels like the more correct solution especially if arm isn't the only one with the odd progbits char. It might be overkill if it's just arm that's affected though. I leave it to Masahiro to see what he prefers.BTW, is there any reason why not use %progbits all the time? include/linux/init.h hard-codes %progbits #define __INITDATA .section ".init.data","aw",%progbits #define __INITRODATA .section ".init.rodata","a",%progbits So, my understanding is '%' works for all architectures, but it is better to ask 0-day bot to test it.It seems that you're absolutely right. The binutils source has code like + if (*input_line_pointer == '@' || *input_line_pointer == '%') + { + ++input_line_pointer; + if (strncmp (input_line_pointer, "progbits", + sizeof "progbits" - 1) == 0) + { + type = SHT_PROGBITS; + input_line_pointer += sizeof "progbits" - 1; + } + else if (strncmp (input_line_pointer, "nobits", + sizeof "nobits" - 1) == 0) + { + type = SHT_NOBITS; + input_line_pointer += sizeof "nobits" - 1; + }
Yeah, I saw this too while digging. I also came across this commit in the binutils source: commit ecc054c097e7ced281d02ef9632eb0261a410b96 Author: Thomas Preud'homme <thomas.preudhomme@arm.com> Date: Fri Mar 2 11:51:34 2018 +0000 [GDB/testsuite] Use %progbits in watch-loc.c While using @progbits in .pushsection work on some targets, it does not work on arm target where this introduces a comment. This patch replaces its use in gdb.dlang/watch-loc.c and gdb.mi/dw2-ref-missing-frame-func.c by %progbits which should work on all targets since it is used in target-independent elf/section7.s GAS test. 2018-03-02 Thomas Preud'homme <thomas.preudhomme@arm.com> gdb/testsuite/ * gdb.dlang/watch-loc.c: Use %progbits instead of @progbits. * gdb.mi/dw2-ref-missing-frame-func.c: Likewise. So that seems to confirm this theory :-) I'm just surprised it isn't documented anywhere it seems.
The only reason I thought one needed to do it differently on ARM is this from the gas docs: === The optional TYPE argument may contain one of the following constants: '@progbits' section contains data ... Note on targets where the '@' character is the start of a comment (eg ARM) then another character is used instead. For example the ARM port uses the '%' character. === That doesn't suggest the possibility that % or some other character might work on all architectures. Jessica, can you resend using just %progbits to let kbuild chew on that? Please include a comment about the misleading gas documentation.
Yup, sounds good. Thanks! Jessica
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |