# git gc Expanding reachable commits in commit graph: 92649 Expanding reachable commits in commit graph: 193815 Expanding reachable commits in commit graph: 294681 Expanding reachable commits in commit graph: 401724 Expanding reachable commits in commit graph: 511846 Expanding reachable commits in commit graph: 613694 Expanding reachable commits in commit graph: 730563 Expanding reachable commits in commit graph: 850077 Expanding reachable commits in commit graph: 972000 Expanding reachable commits in commit graph: 1073165 Expanding reachable commits in commit graph: 1205936 Expanding reachable commits in commit graph: 1296184, done. Writing out commit graph in 4 passes: 59% (3093689/5184736) Writing out commit graph in 4 passes: 60% (3110842/5184736) Writing out commit graph in 4 passes: 61% (3162689/5184736) Writing out commit graph in 4 passes: 62% (3214537/5184736) Writing out commit graph in 4 passes: 63% (3266384/5184736) Writing out commit graph in 4 passes: 64% (3318232/5184736) Writing out commit graph in 4 passes: 65% (3370079/5184736) Writing out commit graph in 4 passes: 66% (3421926/5184736) Writing out commit graph in 4 passes: 67% (3473774/5184736) Writing out commit graph in 4 passes: 68% (3525621/5184736) Writing out commit graph in 4 passes: 69% (3577468/5184736) Writing out commit graph in 4 passes: 70% (3629316/5184736) Writing out commit graph in 4 passes: 71% (3681163/5184736) Writing out commit graph in 4 passes: 71% (3709293/5184736) Writing out commit graph in 4 passes: 72% (3733010/5184736) Writing out commit graph in 4 passes: 73% (3784858/5184736) Writing out commit graph in 4 passes: 74% (3836705/5184736) Writing out commit graph in 4 passes: 75% (3888552/5184736) Writing out commit graph in 4 passes: 76% (3940400/5184736) Writing out commit graph in 4 passes: 77% (3992247/5184736) Writing out commit graph in 4 passes: 78% (4044095/5184736) Writing out commit graph in 4 passes: 79% (4095942/5184736) Writing out commit graph in 4 passes: 80% (4147789/5184736) Writing out commit graph in 4 passes: 81% (4199637/5184736) Writing out commit graph in 4 passes: 82% (4251484/5184736) Writing out commit graph in 4 passes: 83% (4303331/5184736) Writing out commit graph in 4 passes: 84% (4355179/5184736) Writing out commit graph in 4 passes: 85% (4407026/5184736) Writing out commit graph in 4 passes: 86% (4458873/5184736) Writing out commit graph in 4 passes: 87% (4510721/5184736) Writing out commit graph in 4 passes: 88% (4562568/5184736) Writing out commit graph in 4 passes: 89% (4614416/5184736) Writing out commit graph in 4 passes: 90% (4666263/5184736) Writing out commit graph in 4 passes: 91% (4718110/5184736) Writing out commit graph in 4 passes: 92% (4769958/5184736) Writing out commit graph in 4 passes: 93% (4821805/5184736) Writing out commit graph in 4 passes: 94% (4873652/5184736) Writing out commit graph in 4 passes: 95% (4925500/5184736) Writing out commit graph in 4 passes: 96% (4977347/5184736) Writing out commit graph in 4 passes: 97% (5029194/5184736) Writing out commit graph in 4 passes: 98% (5081042/5184736) Writing out commit graph in 4 passes: 99% (5132889/5184736) Writing out commit graph in 4 passes: 100% (5184736/5184736) Writing out commit graph in 4 passes: 100% (5184736/5184736), done. # git rev-parse -q --verify f8eb5bd9a818cc5f2a1e50b22b0091830b28cc36^{commit} # git fetch -q -n -f git://fs.ozlabs.ibm.com/kernel/linus master # git rev-parse -q --verify f8eb5bd9a818cc5f2a1e50b22b0091830b28cc36^{commit} f8eb5bd9a818cc5f2a1e50b22b0091830b28cc36 # git checkout -q -f -B kisskb f8eb5bd9a818cc5f2a1e50b22b0091830b28cc36 # git clean -qxdf # < git log -1 # commit f8eb5bd9a818cc5f2a1e50b22b0091830b28cc36 # Author: Linus Torvalds # Date: Mon Sep 23 08:58:31 2024 -0700 # # mm: fix build on 32-bit targets without MAX_PHYSMEM_BITS # # The merge resolution to deal with the conflict between commits # ea72ce5da228 ("x86/kaslr: Expose and use the end of the physical memory # address space") and 99185c10d5d9 ("resource, kunit: add test case for # region_intersects()") ended up being broken in configurations didn't # define a MAX_PHYSMEM_BITS and that had a 32-bit 'phys_addr_t'. # # The fallback to using all bits set (ie "(-1ULL)") ended up causing a # build error: # # kernel/resource.c: In function ‘gfr_start’: # include/linux/minmax.h:93:30: error: conversion from ‘long long unsigned int’ to ‘resource_size_t’ {aka ‘unsigned int’} changes value from ‘18446744073709551615’ to ‘4294967295’ [-Werror=overflow] # # this was reported by Geert for m68k, but he points out that it happens # on other 32-bit architectures too, eg mips, xtensa, parisc, and powerpc. # # Limiting 'PHYSMEM_END' to a 'phys_addr_t' (which is the same as # 'resource_size_t') fixes the build, but Geert points out that it will # then cause a silent overflow in mm/sparse.c: # # unsigned long max_sparsemem_pfn = (PHYSMEM_END + 1) >> PAGE_SHIFT; # # so we actually do want PHYSMEM_END to be defined a 64-bit type - just # not all ones, and not larger than 'phys_addr_t'. # # The proper fix is probably to not have some kind of default fallback at # all, but just make sure every architecture has a valid MAX_PHYSMEM_BITS. # But in the meantime, this just applies the rule that PHYSMEM_END is the # largest value that fits in a 'phys_addr_t', but does not have the high # bit set in 64 bits. # # Ugly, ugly. # # Reported-by: Geert Uytterhoeven # Cc: Andrew Morton # Cc: Huang Ying # Cc: Thomas Gleixner # Signed-off-by: Linus Torvalds # < /opt/cross/kisskb/korg/gcc-13.1.0-nolibc/sparc64-linux/bin/sparc64-linux-gcc --version # < /opt/cross/kisskb/korg/gcc-13.1.0-nolibc/sparc64-linux/bin/sparc64-linux-ld --version # < git log --format=%s --max-count=1 f8eb5bd9a818cc5f2a1e50b22b0091830b28cc36 # make -s -j 32 ARCH=sparc64 O=/kisskb/build/linus_defconfig_sparc64-gcc13 CROSS_COMPILE=/opt/cross/kisskb/korg/gcc-13.1.0-nolibc/sparc64-linux/bin/sparc64-linux- defconfig # < make -s -j 32 ARCH=sparc64 O=/kisskb/build/linus_defconfig_sparc64-gcc13 CROSS_COMPILE=/opt/cross/kisskb/korg/gcc-13.1.0-nolibc/sparc64-linux/bin/sparc64-linux- help # make -s -j 32 ARCH=sparc64 O=/kisskb/build/linus_defconfig_sparc64-gcc13 CROSS_COMPILE=/opt/cross/kisskb/korg/gcc-13.1.0-nolibc/sparc64-linux/bin/sparc64-linux- olddefconfig # make -s -j 32 ARCH=sparc64 O=/kisskb/build/linus_defconfig_sparc64-gcc13 CROSS_COMPILE=/opt/cross/kisskb/korg/gcc-13.1.0-nolibc/sparc64-linux/bin/sparc64-linux- :1519:2: warning: #warning syscall clone3 not implemented [-Wcpp] /kisskb/src/arch/sparc/vdso/vclock_gettime.c:254:1: warning: no previous prototype for '__vdso_clock_gettime' [-Wmissing-prototypes] 254 | __vdso_clock_gettime(clockid_t clock, struct __kernel_old_timespec *ts) | ^~~~~~~~~~~~~~~~~~~~ /kisskb/src/arch/sparc/vdso/vclock_gettime.c:282:1: warning: no previous prototype for '__vdso_clock_gettime_stick' [-Wmissing-prototypes] 282 | __vdso_clock_gettime_stick(clockid_t clock, struct __kernel_old_timespec *ts) | ^~~~~~~~~~~~~~~~~~~~~~~~~~ /kisskb/src/arch/sparc/vdso/vclock_gettime.c:307:1: warning: no previous prototype for '__vdso_gettimeofday' [-Wmissing-prototypes] 307 | __vdso_gettimeofday(struct __kernel_old_timeval *tv, struct timezone *tz) | ^~~~~~~~~~~~~~~~~~~ /kisskb/src/arch/sparc/vdso/vclock_gettime.c:343:1: warning: no previous prototype for '__vdso_gettimeofday_stick' [-Wmissing-prototypes] 343 | __vdso_gettimeofday_stick(struct __kernel_old_timeval *tv, struct timezone *tz) | ^~~~~~~~~~~~~~~~~~~~~~~~~ /opt/cross/kisskb/korg/gcc-13.1.0-nolibc/sparc64-linux/bin/sparc64-linux-ld: warning: arch/sparc/vdso/vdso-note.o: missing .note.GNU-stack section implies executable stack /opt/cross/kisskb/korg/gcc-13.1.0-nolibc/sparc64-linux/bin/sparc64-linux-ld: NOTE: This behaviour is deprecated and will be removed in a future version of the linker In file included from /kisskb/src/arch/sparc/vdso/vdso32/vclock_gettime.c:22: /kisskb/src/arch/sparc/vdso/vdso32/../vclock_gettime.c:254:1: warning: no previous prototype for '__vdso_clock_gettime' [-Wmissing-prototypes] 254 | __vdso_clock_gettime(clockid_t clock, struct __kernel_old_timespec *ts) | ^~~~~~~~~~~~~~~~~~~~ /kisskb/src/arch/sparc/vdso/vdso32/../vclock_gettime.c:282:1: warning: no previous prototype for '__vdso_clock_gettime_stick' [-Wmissing-prototypes] 282 | __vdso_clock_gettime_stick(clockid_t clock, struct __kernel_old_timespec *ts) | ^~~~~~~~~~~~~~~~~~~~~~~~~~ /kisskb/src/arch/sparc/vdso/vdso32/../vclock_gettime.c:307:1: warning: no previous prototype for '__vdso_gettimeofday' [-Wmissing-prototypes] 307 | __vdso_gettimeofday(struct __kernel_old_timeval *tv, struct timezone *tz) | ^~~~~~~~~~~~~~~~~~~ /kisskb/src/arch/sparc/vdso/vdso32/../vclock_gettime.c:343:1: warning: no previous prototype for '__vdso_gettimeofday_stick' [-Wmissing-prototypes] 343 | __vdso_gettimeofday_stick(struct __kernel_old_timeval *tv, struct timezone *tz) | ^~~~~~~~~~~~~~~~~~~~~~~~~ /opt/cross/kisskb/korg/gcc-13.1.0-nolibc/sparc64-linux/bin/sparc64-linux-ld: warning: arch/sparc/vdso/vdso32/vdso-note.o: missing .note.GNU-stack section implies executable stack /opt/cross/kisskb/korg/gcc-13.1.0-nolibc/sparc64-linux/bin/sparc64-linux-ld: NOTE: This behaviour is deprecated and will be removed in a future version of the linker /kisskb/src/kernel/fork.c: In function '__do_sys_clone3': /kisskb/src/kernel/fork.c:3078:2: warning: #warning clone3() entry point is missing, please fix [-Wcpp] 3078 | #warning clone3() entry point is missing, please fix | ^~~~~~~ /kisskb/src/kernel/fork.c:3078:2: warning: #warning clone3() entry point is missing, please fix [-Wcpp] 3078 | #warning clone3() entry point is missing, please fix | ^~~~~~~ WARNING: modpost: EXPORT symbol "_mcount" [vmlinux] version generation failed, symbol will not be versioned. Is "_mcount" prototyped in ? Completed OK # rm -rf /kisskb/build/linus_defconfig_sparc64-gcc13 # Build took: 0:05:09.413085