On Wed, Jun 23, 2021 at 4:59 PM Feng Tang <feng.tang@xxxxxxxxx> wrote: > > Add linux-csky list and originally cced people and replace the linux-mm > with linux-kbuild list, which match the discussion better and avoid > email noise for mm people. > > On Tue, Jun 22, 2021 at 05:48:18PM +0800, Tang, Feng wrote: > > On Tue, Jun 22, 2021 at 09:49:05AM +0800, kernel test robot wrote: > > > tree: https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git master > > > head: 889bab4c367a0ef58208fd80fafa74bb6e2dca26 > > > commit: cf536e185869d4815d506e777bcca6edd9966a6e [3665/11714] Makefile: extend 32B aligned debug option to 64B aligned > > > config: csky-randconfig-c024-20210622 (attached as .config) > > > compiler: csky-linux-gcc (GCC) 9.3.0 > > > reproduce (this is a W=1 build): > > > wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross > > > chmod +x ~/bin/make.cross > > > # https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/commit/?id=cf536e185869d4815d506e777bcca6edd9966a6e > > > git remote add linux-next https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git > > > git fetch --no-tags linux-next master > > > git checkout cf536e185869d4815d506e777bcca6edd9966a6e > > > # save the attached .config to linux build tree > > > COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross ARCH=csky > > > Thanks for the report. > > > > I just reproduced the issue locally, with similar log: > > > > CC drivers/target/target_core_sbc.o > > {standard input}: Assembler messages: > > {standard input}:2644: Error: pcrel offset for branch to .LS0015 too far (0x3e) > > {standard input}:2653: Error: pcrel offset for branch to .LS0015 too far (0x34) > > {standard input}:2659: Error: pcrel offset for branch to .LS0015 too far (0x2c) > > make[2]: *** [scripts/Makefile.build:272: drivers/target/target_core_sbc.o] Error 1 > > m > > > > And when I changed the function align option from 64 to 32, the > > compilation did pass, so this looks to be related with the alignment > > option. > > > > I'm not very familiar with compiler, and will try to check more. > > I did some check and found the error info comes from the assembler > for 'csky' in binutils' gas/config/tc-csky.c, and I could hardly > dive deeper into the code as limited by my knowledge. > > > > I know it works on x86_64, but don't know how about other > > architectures, and if 'csky' is the only not working one, one > > workaround I can think of is to add kconfig dependency for !csky > > I reused the 0day's reproduce process, and tried on arm64, powerpc64, > and arc, the kernel compilation all succeeded. So maybe we can > add some dependency for this debug option like: > > diff --git a/lib/Kconfig.debug b/lib/Kconfig.debug > index 3cf48998a374..eb035b31657f 100644 > --- a/lib/Kconfig.debug > +++ b/lib/Kconfig.debug > @@ -415,7 +415,8 @@ config SECTION_MISMATCH_WARN_ONLY > If unsure, say Y. > > config DEBUG_FORCE_FUNCTION_ALIGN_64B > - bool "Force all function address 64B aligned" if EXPERT > + bool "Force all function address 64B aligned" > + depends on EXPERT && (X86_64 || ARM64 || PPC32 || PPC64 || ARC) > help > There are cases that a commit from one domain changes the function > address alignment of other domains, and cause magic performance > > Any comments? thanks! Have tried riscv32? I don't think csky is the only problem. Assembler just follows gcc backend result and also depends on ISA design. Our condition branch seems not far enough. Cc: xianmiao_qu@xxxxxxxxx > > - Feng > > > Thanks, > > Feng > > > > -- Best Regards Guo Ren ML: https://lore.kernel.org/linux-csky/