Bug 213803

Summary: G5 kernel build (v5.14-rc2) fails at linking stage - ld: arch/powerpc/mm/pgtable.o: in function `.__ptep_set_access_flags': /usr/src/linux-stable/./arch/powerpc/include/asm/book3s/64/pgtable.h:824: undefined reference to `.radix__ptep_set_access_flags'
Product: Platform Specific/Hardware Reporter: Erhard F. (erhard_f)
Component: PPC-64Assignee: platform_ppc-64
Status: RESOLVED CODE_FIX    
Severity: normal CC: linux353
Priority: P1    
Hardware: PPC-64   
OS: Linux   
Kernel Version: 5.14-rc2 Subsystem:
Regression: No Bisected commit-id:
Attachments: kernel .config (5.14-rc2, PowerMac G5 11,2)

Description Erhard F. 2021-07-20 23:53:28 UTC
Created attachment 297967 [details]
kernel .config (5.14-rc2, PowerMac G5 11,2)

[...]
  CHK     include/generated/autoksyms.h
  GEN     .version
  CHK     include/generated/compile.h
  UPD     include/generated/compile.h
  CC      init/version.o
  AR      init/built-in.a
  LD      vmlinux.o
  MODPOST vmlinux.symvers
  MODINFO modules.builtin.modinfo
  GEN     modules.builtin
  LD      .tmp_vmlinux.kallsyms1
ld: arch/powerpc/mm/pgtable.o: in function `.__ptep_set_access_flags':
/usr/src/linux-stable/./arch/powerpc/include/asm/book3s/64/pgtable.h:824: undefined reference to `.radix__ptep_set_access_flags'
ld: arch/powerpc/mm/pageattr.o: in function `.change_page_attr':
/usr/src/linux-stable/./arch/powerpc/include/asm/book3s/64/tlbflush.h:80: undefined reference to `.radix__flush_tlb_kernel_range'
ld: arch/powerpc/mm/pageattr.o: in function `.set_page_attr':
/usr/src/linux-stable/./arch/powerpc/include/asm/book3s/64/tlbflush.h:80: undefined reference to `.radix__flush_tlb_kernel_range'
ld: arch/powerpc/mm/book3s64/mmu_context.o:(.toc+0x0): undefined reference to `mmu_pid_bits'
ld: arch/powerpc/mm/book3s64/mmu_context.o:(.toc+0x8): undefined reference to `mmu_base_pid'
ld: arch/powerpc/mm/book3s64/pgtable.o: in function `.pmd_hugepage_update':
/usr/src/linux-stable/./arch/powerpc/include/asm/book3s/64/pgtable.h:1197: undefined reference to `.radix__pmd_hugepage_update'
ld: arch/powerpc/mm/book3s64/pgtable.o: in function `.do_serialize':
/usr/src/linux-stable/arch/powerpc/mm/book3s64/pgtable.c:89: undefined reference to `.exit_lazy_flush_tlb'
ld: arch/powerpc/mm/book3s64/pgtable.o: in function `.pmdp_set_access_flags':
/usr/src/linux-stable/./arch/powerpc/include/asm/book3s/64/pgtable.h:824: undefined reference to `.radix__ptep_set_access_flags'
ld: arch/powerpc/mm/book3s64/pgtable.o: in function `.pmdp_invalidate':
/usr/src/linux-stable/./arch/powerpc/include/asm/book3s/64/tlbflush.h:54: undefined reference to `.radix__flush_pmd_tlb_range'
ld: arch/powerpc/mm/book3s64/pgtable.o: in function `.pmdp_huge_get_and_clear_full':
/usr/src/linux-stable/./arch/powerpc/include/asm/book3s/64/pgtable.h:1300: undefined reference to `.radix__pmdp_huge_get_and_clear'
ld: arch/powerpc/mm/book3s64/pgtable.o: in function `.pmdp_huge_get_and_clear_full':
/usr/src/linux-stable/./arch/powerpc/include/asm/book3s/64/tlbflush.h:54: undefined reference to `.radix__flush_pmd_tlb_range'
ld: arch/powerpc/mm/book3s64/pgtable.o: in function `.mmu_cleanup_all':
/usr/src/linux-stable/arch/powerpc/mm/book3s64/pgtable.c:179: undefined reference to `.radix__mmu_cleanup_all'
ld: arch/powerpc/mm/book3s64/pgtable.o: in function `.ptep_modify_prot_commit':
/usr/src/linux-stable/arch/powerpc/mm/book3s64/pgtable.c:457: undefined reference to `.radix__ptep_modify_prot_commit'
ld: arch/powerpc/lib/code-patching.o: in function `.patch_instruction':
/usr/src/linux-stable/./arch/powerpc/include/asm/book3s/64/pgtable.h:1080: undefined reference to `.radix__map_kernel_page'
ld: arch/powerpc/lib/code-patching.o: in function `.patch_instruction':
/usr/src/linux-stable/./arch/powerpc/include/asm/book3s/64/tlbflush.h:80: undefined reference to `.radix__flush_tlb_kernel_range'
ld: kernel/fork.o: in function `.dup_mm':
/usr/src/linux-stable/./arch/powerpc/include/asm/book3s/64/tlbflush.h:117: undefined reference to `.radix__flush_tlb_mm'
ld: mm/memory.o: in function `.unmap_page_range':
/usr/src/linux-stable/./arch/powerpc/include/asm/book3s/64/tlbflush.h:109: undefined reference to `.radix__tlb_flush'
ld: mm/memory.o: in function `.do_wp_page':
/usr/src/linux-stable/./arch/powerpc/include/asm/book3s/64/tlbflush.h:125: undefined reference to `.radix__flush_tlb_page'
ld: mm/memory.o: in function `.do_set_pmd':
/usr/src/linux-stable/./arch/powerpc/include/asm/book3s/64/pgtable.h:1323: undefined reference to `.radix__pgtable_trans_huge_deposit'
ld: mm/memory.o: in function `.__handle_mm_fault':
/usr/src/linux-stable/./arch/powerpc/include/asm/book3s/64/tlbflush.h:125: undefined reference to `.radix__flush_tlb_page'
ld: mm/mprotect.o: in function `.change_protection':
/usr/src/linux-stable/./arch/powerpc/include/asm/book3s/64/tlbflush.h:72: undefined reference to `.radix__flush_tlb_range'
ld: mm/mremap.o: in function `.flush_tlb_range':
/usr/src/linux-stable/./arch/powerpc/include/asm/book3s/64/tlbflush.h:72: undefined reference to `.radix__flush_tlb_range'
ld: mm/pgtable-generic.o: in function `.ptep_clear_flush':
/usr/src/linux-stable/./arch/powerpc/include/asm/book3s/64/tlbflush.h:125: undefined reference to `.radix__flush_tlb_page'
ld: mm/pgtable-generic.o: in function `.pmdp_huge_clear_flush':
/usr/src/linux-stable/./arch/powerpc/include/asm/book3s/64/pgtable.h:1300: undefined reference to `.radix__pmdp_huge_get_and_clear'
ld: mm/pgtable-generic.o: in function `.pmdp_huge_clear_flush':
/usr/src/linux-stable/./arch/powerpc/include/asm/book3s/64/tlbflush.h:54: undefined reference to `.radix__flush_pmd_tlb_range'
ld: mm/rmap.o: in function `.try_to_unmap_one':
/usr/src/linux-stable/./arch/powerpc/include/asm/book3s/64/tlbflush.h:72: undefined reference to `.radix__flush_tlb_range'
ld: mm/rmap.o: in function `.try_to_migrate_one':
/usr/src/linux-stable/./arch/powerpc/include/asm/book3s/64/tlbflush.h:72: undefined reference to `.radix__flush_tlb_range'
ld: mm/vmalloc.o: in function `.flush_tlb_kernel_range':
/usr/src/linux-stable/./arch/powerpc/include/asm/book3s/64/tlbflush.h:80: undefined reference to `.radix__flush_tlb_kernel_range'
ld: mm/hugetlb.o: in function `.hugetlb_cow':
/usr/src/linux-stable/./arch/powerpc/include/asm/book3s/64/hugetlb.h:91: undefined reference to `.radix__flush_hugetlb_page'
ld: mm/hugetlb.o: in function `.hugetlb_change_protection':
/usr/src/linux-stable/./arch/powerpc/include/asm/book3s/64/tlbflush.h:64: undefined reference to `.radix__flush_hugetlb_tlb_range'
ld: mm/hugetlb.o: in function `.hugetlb_unshare_all_pmds':
/usr/src/linux-stable/./arch/powerpc/include/asm/book3s/64/tlbflush.h:64: undefined reference to `.radix__flush_hugetlb_tlb_range'
ld: mm/huge_memory.o: in function `.pgtable_trans_huge_deposit':
/usr/src/linux-stable/./arch/powerpc/include/asm/book3s/64/pgtable.h:1323: undefined reference to `.radix__pgtable_trans_huge_deposit'
ld: mm/huge_memory.o: in function `.pgtable_trans_huge_withdraw':
/usr/src/linux-stable/./arch/powerpc/include/asm/book3s/64/pgtable.h:1332: undefined reference to `.radix__pgtable_trans_huge_withdraw'
ld: mm/huge_memory.o: in function `.pmd_hugepage_update.isra.0':
/usr/src/linux-stable/./arch/powerpc/include/asm/book3s/64/pgtable.h:1197: undefined reference to `.radix__pmd_hugepage_update'
ld: mm/huge_memory.o: in function `.do_huge_pmd_numa_page':
/usr/src/linux-stable/./arch/powerpc/include/asm/book3s/64/tlbflush.h:72: undefined reference to `.radix__flush_tlb_range'
ld: mm/huge_memory.o: in function `.move_huge_pmd':
/usr/src/linux-stable/./arch/powerpc/include/asm/book3s/64/pgtable.h:1300: undefined reference to `.radix__pmdp_huge_get_and_clear'
ld: mm/huge_memory.o: in function `.move_huge_pmd':
/usr/src/linux-stable/./arch/powerpc/include/asm/book3s/64/tlbflush.h:72: undefined reference to `.radix__flush_tlb_range'
ld: mm/khugepaged.o: in function `.pmdp_collapse_flush':
/usr/src/linux-stable/./arch/powerpc/include/asm/book3s/64/pgtable.h:1308: undefined reference to `.radix__pmdp_collapse_flush'
ld: mm/khugepaged.o: in function `.khugepaged':
/usr/src/linux-stable/./arch/powerpc/include/asm/book3s/64/pgtable.h:1323: undefined reference to `.radix__pgtable_trans_huge_deposit'
ld: fs/proc/task_mmu.o: in function `.clear_refs_write':
/usr/src/linux-stable/./arch/powerpc/include/asm/book3s/64/tlbflush.h:117: undefined reference to `.radix__flush_tlb_mm'
ld: warning: creating DT_TEXTREL in a PIE
Comment 1 Erhard F. 2021-08-02 22:07:36 UTC
Still a problem in v5.14-rc4.
Comment 2 Erhard F. 2021-09-20 16:20:34 UTC
The fix went into v5.15-rc2.
Comment 3 papirosa 2024-07-28 11:24:48 UTC
Still present in linux-5.4.281 on Debian ppc (BE port)

 LD [M]  drivers/net/wireless/realtek/rtw88/rtw88.o
  AR      drivers/net/wireless/built-in.a
  AR      drivers/net/built-in.a
  AR      drivers/built-in.a
  GEN     .version
  CHK     include/generated/compile.h
  LD      vmlinux.o
  MODPOST vmlinux.o
  MODINFO modules.builtin.modinfo
  LD      .tmp_vmlinux.kallsyms1
ld: arch/powerpc/platforms/pseries/lpar.o:(.toc+0x0): undefined reference to `mmu_pid_bits'
make[3]: *** [Makefile:1116: vmlinux] Errore 1
make[2]: *** [debian/rules:6: build] Errore 2
dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2
make[1]: *** [scripts/Makefile.package:83: bindeb-pkg] Errore 2
make: *** [Makefile:1485: bindeb-pkg] Errore 2