Re: [linux-next:master 7116/7122] init/main.c:613:(.init.text+0x358): relocation truncated to fit: R_RISCV_GPREL_I against symbol `__setup_start' defined in .init.rodata section in .tmp_vmlinux.kallsyms1

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Sun, Apr 21, 2024 at 10:10:26AM +0800, kernel test robot wrote:
> tree:   https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git master
> head:   a35e92ef04c07bd473404b9b73d489aea19a60a8
> commit: 603cac6a968ab44e179e820fc0e2ca3ac2e1d829 [7116/7122] Merge branch 'sysctl-next' of git://git.kernel.org/pub/scm/linux/kernel/git/sysctl/sysctl.git
> config: riscv-randconfig-001-20231020 (https://download.01.org/0day-ci/archive/20240421/202404211031.J6l2AfJk-lkp@xxxxxxxxx/config)
> compiler: riscv64-linux-gcc (GCC) 13.2.0
> reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20240421/202404211031.J6l2AfJk-lkp@xxxxxxxxx/reproduce)
> 
> If you fix the issue in a separate patch/commit (i.e. not just a new version of
> the same patch/commit), kindly add following tags
> | Reported-by: kernel test robot <lkp@xxxxxxxxx>
> | Closes: https://lore.kernel.org/oe-kbuild-all/202404211031.J6l2AfJk-lkp@xxxxxxxxx/
> 
> All errors (new ones prefixed by >>):
> 
>    riscv64-linux-ld: section .data LMA [000000000099b000,0000000001424de7] overlaps section .text LMA [0000000000104040,000000000213c543]
>    riscv64-linux-ld: section .data..percpu LMA [00000000024e2000,00000000026b46e7] overlaps section .rodata LMA [000000000213c580,000000000292d0dd]
>    riscv64-linux-ld: section .rodata VMA [ffffffff8213c580,ffffffff8292d0dd] overlaps section .data VMA [ffffffff82000000,ffffffff82a89de7]
>    init/main.o: in function `rdinit_setup':
> >> init/main.c:613:(.init.text+0x358): relocation truncated to fit: R_RISCV_GPREL_I against symbol `__setup_start' defined in .init.rodata section in .tmp_vmlinux.kallsyms1
>    net/ipv4/ipconfig.o: in function `ic_dhcp_init_options':
>    net/ipv4/ipconfig.c:682:(.init.text+0x9b4): relocation truncated to fit: R_RISCV_GPREL_I against `ic_bootp_cookie'
>    net/sunrpc/auth_gss/gss_krb5_mech.o: in function `gss_krb5_prepare_enctype_priority_list':
> >> net/sunrpc/auth_gss/gss_krb5_mech.c:213:(.text.gss_krb5_prepare_enctype_priority_list+0x9c): relocation truncated to fit: R_RISCV_GPREL_I against `gss_krb5_enctypes.0'
>    lib/maple_tree.o: in function `mas_leaf_max_gap':
> >> lib/maple_tree.c:1512:(.text.mas_leaf_max_gap+0x2b8): relocation truncated to fit: R_RISCV_GPREL_I against `mt_pivots'
>    lib/maple_tree.o: in function `ma_dead_node':
> >> lib/maple_tree.c:560:(.text.mas_data_end+0x110): relocation truncated to fit: R_RISCV_GPREL_I against `mt_pivots'
>    lib/maple_tree.o: in function `mas_extend_spanning_null':
> >> lib/maple_tree.c:3662:(.text.mas_extend_spanning_null+0x69c): relocation truncated to fit: R_RISCV_GPREL_I against `mt_pivots'
>    lib/maple_tree.o: in function `mas_mab_cp':
> >> lib/maple_tree.c:1943:(.text.mas_mab_cp+0x248): relocation truncated to fit: R_RISCV_GPREL_I against `mt_pivots'
>    lib/maple_tree.o: in function `mab_mas_cp':
> >> lib/maple_tree.c:2000:(.text.mab_mas_cp+0x15c): relocation truncated to fit: R_RISCV_GPREL_I against `mt_pivots'
>    lib/maple_tree.o: in function `mas_reuse_node':
> >> lib/maple_tree.c:3416:(.text.mas_reuse_node+0x17c): relocation truncated to fit: R_RISCV_GPREL_I against `mt_slots'
>    lib/maple_tree.o: in function `mt_free_walk':
> >> lib/maple_tree.c:5238:(.text.mt_free_walk+0x15c): relocation truncated to fit: R_RISCV_GPREL_I against `mt_slots'
>    lib/maple_tree.o: in function `mtree_lookup_walk':
>    lib/maple_tree.c:3700:(.text.mtree_lookup_walk+0x94): additional relocation overflows omitted from the output
> 
I cross compiled this locally and I believe that the error is *NOT*
introduced by our sysctl-next changes because I get the same 3 errors
before and after:
1. .data overlaps .text
2. .data overlaps .rodata
3. .rodata overlaps .data

The errors are the same type but not exactly the same. I believe that
they change as code gets modified. So before the sysctl-next changes
went in, the error was expressed somewhere else. This is consistent with
the way that the bot shows the "new" errors; since they always change as
code is changed, they will always detect a "new" error.

Another commonality is that reason for reallocation: in my tests its
always due to R_RISCV_GPREL_I.

Here are my results (I modified them slightly for readability).

# Before sysctl change:

  ~/s/linux-next (29b0937 ◼) ❯❯❯ COMPILER_INSTALL_PATH=/home/joel/toolchains/0day_riscv COMPILER=gcc-13.2.0 /home/joel/src/lkp-tests/kbuild/make.cross W=1 O=briscv ARCH=riscv SHELL=/bin/bash
  ...
  /home/joel/toolchains/0day_riscv/gcc-13.2.0-nolibc/riscv64-linux/bin/riscv64-linux-ld: section .data LMA [000000000098c000,0000000001416fa7] overlaps section .text LMA [0000000000104040,000000000213c503]
  /home/joel/toolchains/0day_riscv/gcc-13.2.0-nolibc/riscv64-linux/bin/riscv64-linux-ld: section .data..percpu LMA [00000000024d5000,00000000026a76e7] overlaps section .rodata LMA [000000000213c540,000000000291e3dd]
  /home/joel/toolchains/0day_riscv/gcc-13.2.0-nolibc/riscv64-linux/bin/riscv64-linux-ld: section .rodata VMA [ffffffff8213c540,ffffffff8291e3dd] overlaps section .data VMA [ffffffff82000000,ffffffff82a8afa7]
  mm/vmscan.o: in function `folio_nr_pages':
  /home/joel/src/linux-next/briscv/../include/linux/mm.h:2078:(.text.pageout+0x184): relocation truncated to fit: R_RISCV_GPREL_I against `__func__.9'
  kernel/profile.o: in function `profile_setup':
  /home/joel/src/linux-next/briscv/../kernel/profile.c:58:(.text.profile_setup+0x90): relocation truncated to fit: R_RISCV_GPREL_I against `sleepstr.2'
  mm/show_mem.o: in function `show_free_areas':
  /home/joel/src/linux-next/briscv/../mm/show_mem.c:381:(.text.show_free_areas+0x1f54): relocation truncated to fit: R_RISCV_GPREL_I against `types.0'
  fs/fs_types.o: in function `fs_ftype_to_dtype':
  /home/joel/src/linux-next/briscv/../fs/fs_types.c:38:(.text.fs_ftype_to_dtype+0x44): relocation truncated to fit: R_RISCV_GPREL_I against `fs_dtype_by_ftype'
  fs/fs_types.o: in function `fs_umode_to_dtype':
  /home/joel/src/linux-next/briscv/../fs/fs_types.c:103:(.text.fs_umode_to_dtype+0x94): relocation truncated to fit: R_RISCV_GPREL_I against `fs_dtype_by_ftype'
  security/keys/keyctl.o: in function `keyctl_capabilities':
  /home/joel/src/linux-next/briscv/../security/keys/keyctl.c:1855:(.text.keyctl_capabilities+0x40): relocation truncated to fit: R_RISCV_GPREL_I against `keyrings_capabilities'
  make[3]: *** [../scripts/Makefile.vmlinux:37: vmlinux] Error 1
  make[3]: Target '__default' not remade because of errors.
  make[2]: *** [/home/joel/src/linux-next/Makefile:1165: vmlinux] Error 2
  make[2]: Target '__all' not remade because of errors.
  make[1]: *** [/home/joel/src/linux-next/Makefile:240: __sub-make] Error 2
  make[1]: Target '__all' not remade because of errors.
  make[1]: Leaving directory '/home/joel/src/linux-next/briscv'
  make: *** [Makefile:240: __sub-make] Error 2
  make: Target '__all' not remade because of errors.

# After sysctl change:

  ~/s/linux-next (603cac6 ◼) ❯❯❯ COMPILER_INSTALL_PATH=/home/joel/toolchains/0day_riscv COMPILER=gcc-13.2.0 /home/joel/src/lkp-tests/kbuild/make.cross W=1 O=briscv ARCH=riscv SHELL=/bin/bash
  ...
  /home/joel/toolchains/0day_riscv/gcc-13.2.0-nolibc/riscv64-linux/bin/riscv64-linux-ld: section .data LMA [000000000098c000,0000000001415de7] overlaps section .text LMA [0000000000104000,000000000213c603]
  /home/joel/toolchains/0day_riscv/gcc-13.2.0-nolibc/riscv64-linux/bin/riscv64-linux-ld: section .data..percpu LMA [00000000024d3000,00000000026a56e7] overlaps section .rodata LMA [000000000213c640,000000000291e2fd]
  /home/joel/toolchains/0day_riscv/gcc-13.2.0-nolibc/riscv64-linux/bin/riscv64-linux-ld: section .rodata VMA [ffffffff8213c640,ffffffff8291e2fd] overlaps section .data VMA [ffffffff82000000,ffffffff82a89de7]
  init/main.o: in function `.L0 ':
  /home/joel/src/linux-next/briscv/../init/main.c:769:(.init.text+0x2388): relocation truncated to fit: R_RISCV_GPREL_I against symbol `__stop___param' defined in __param section in .tmp_vmlinux.kallsyms1
  kernel/extable.o:(.init.text+0x2c): relocation truncated to fit: R_RISCV_GPREL_I against symbol `__start___ex_table' defined in __ex_table section in .tmp_vmlinux.kallsyms1
  kernel/extable.o:(.text.search_exception_tables+0x14): relocation truncated to fit: R_RISCV_GPREL_I against symbol `__start___ex_table' defined in __ex_table section in .tmp_vmlinux.kallsyms1
  kernel/params.o: in function `param_sysfs_builtin':
  /home/joel/src/linux-next/briscv/../kernel/params.c:836:(.init.text+0x354): relocation truncated to fit: R_RISCV_GPREL_I against symbol `__stop___param' defined in __param section in .tmp_vmlinux.kallsyms1
  make[3]: *** [../scripts/Makefile.vmlinux:37: vmlinux] Error 1
  make[3]: Target '__default' not remade because of errors.
  make[2]: *** [/home/joel/src/linux-next/Makefile:1165: vmlinux] Error 2
  make[2]: Target '__all' not remade because of errors.
  make[1]: *** [/home/joel/src/linux-next/Makefile:240: __sub-make] Error 2
  make[1]: Target '__all' not remade because of errors.
  make[1]: Leaving directory '/home/joel/src/linux-next/briscv'
  make: *** [Makefile:240: __sub-make] Error 2
  make: Target '__all' not remade because of errors.

If you see any flaw in this analysis, please let me know.

Best

-- 

Joel Granados

Attachment: signature.asc
Description: PGP signature


[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Bugtraq]     [Linux OMAP]     [Linux MIPS]     [eCos]     [Asterisk Internet PBX]     [Linux API]

  Powered by Linux