lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <aINJh-WFKHhxZ3fW@J2N7QTR9R3>
Date: Fri, 25 Jul 2025 10:08:23 +0100
From: Mark Rutland <mark.rutland@....com>
To: Arnd Bergmann <arnd@...db.de>
Cc: Jeff Johnson <jeff.johnson@....qualcomm.com>,
	linux-kernel@...r.kernel.org, Peter Zijlstra <peterz@...radead.org>,
	Josh Poimboeuf <jpoimboe@...nel.org>
Subject: Re: build failure with crosstools gcc 15.1.0

On Thu, Jul 24, 2025 at 05:37:11PM +0200, Arnd Bergmann wrote:
> On Thu, Jul 24, 2025, at 12:44, Mark Rutland wrote:
> > On Fri, Jul 04, 2025 at 03:25:49PM +0200, Arnd Bergmann wrote:
> >> On Mon, Jun 23, 2025, at 21:52, Jeff Johnson wrote:
> >> > vmlinux.o: warning: objtool: ncsi_process_next_channel() falls through 
> >> > to next function ncsi_channel_monitor.cold()
> >> > vmlinux.o: error: objtool [elf.c:1360]: elf_write: elf_update failed: 
> >> 
> >> Sorry for the late reply, have you figured it out in the meantime?
> >> 
> >> I couldn't immediately reproduce it, so it may already be fixed
> >> in linux-next.
> >
> > $ git clean -fdx
> > $ usekorg 15.1.0 make ARCH=x86_64 CROSS_COMPILE=x86_64-linux- defconfig
> > $ usekorg 15.1.0 make ARCH=x86_64 CROSS_COMPILE=x86_64-linux- -j56
> 
> This is very close to what I use. I assume you are also on an arm64
> host here?

Nope, this was on an x86-64 host running Debian 11.10.

I *DON'T* see this when building on an arm64 host running Debain 12.11,
using the (arm64 builds of) the GCC 15.1.0 binaries from kernel.org.

That suggests this is down to something on the build host. Given that
the failure is seen at a call to elf_update() (which is part of libelf):

	/* Write all changes to the file. */
	if (elf_update(elf->elf, ELF_C_WRITE) < 0) {
		ERROR_ELF("elf_update");
		return -1;
	}

... I suspect the version of libelf might have something to do with it.

The x86 host has libelf-dev 0.183-1 whereas the arm64 host has
libelf-dev 0.188-2.1, so maybe there's something added or fixed between
those versions.

Otherwise, looking at the resulting .config files, the only differences
are:

* The x86 host has:

  CONFIG_PAHOLE_VERSION=120
  CONFIG_CC_HAS_MARCH_NATIVE=y
  # CONFIG_X86_NATIVE_CPU is not set

* The arm64 host has:

  CONFIG_PAHOLE_VERSION=124

... and otherwise everything else is the same.

AFAICT, pahole shouldn't affect the build since none of the BTF options
are selected.

Mark.

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ