Messages in this thread | | | Date | Thu, 21 Nov 2019 16:53:20 +0000 | From | Will Deacon <> | Subject | Re: [PATCH] export.h: reduce __ksymtab_strings string duplication by using "MS" section flags |
| |
Hi Jessica,
On Thu, Nov 21, 2019 at 05:09:20PM +0100, Jessica Yu wrote: > +++ Rasmus Villemoes [21/11/19 11:51 +0100]: > > On 20/11/2019 15.51, Jessica Yu wrote: > > > /* > > > - * note on .section use: @progbits vs %progbits nastiness doesn't matter, > > > - * since we immediately emit into those sections anyway. > > > + * note on .section use: we specify @progbits vs %progbits since usage of > > > + * "M" (SHF_MERGE) section flag requires it. > > > */ > > > + > > > +#ifdef CONFIG_ARM > > > +#define ARCH_PROGBITS %progbits > > > +#else > > > +#define ARCH_PROGBITS @progbits > > > +#endif > > > > Did you figure out a way to determine if ARM is the only odd one? I was > > just going by gas' documentation which mentions ARM as an example, but > > doesn't really provide a way to know what each arch uses. I suppose 0day > > will tell us shortly. > > I *think* so. At least, I was going off of > drivers/base/firmware_loader/builtin/Makefile and > scripts/recordmcount.pl, which were the only other places that I found > that reference the %progbits vs @progbits oddity. They only use > %progbits in the case of CONFIG_ARM and @progbits for other > arches. I wasn't sure about arm64, but I looked at the assembly files > gcc produced and it looked like @progbits was used there. Added some > arm64 people to CC since they would know :-)
The '@' character is a comment delimiter for 32-bit ARM assembly, so that's why you end up having to use a different character there. This isn't the case for arm64, where you need to use standard C/C++ comment delimiters instead and so '@progbits' should work correctly.
Hope that helps,
Will
| |