Building binutils fails when I compile an image

Recently, when I go to build a x86/64 image, I get a build failure of toolchain/binutils. The only way to get the build to succeed is make distclean and rebuild the toolchain fresh. Interestingly, I can build the binutils like this and it completes successfully, but when I go to build my image, again, the build systems tries to build it and fails. Any thoughts are welcomed.

% make toolchain/binutils
make: 'toolchain/binutils' is up to date.

% make
WARNING: Makefile 'package/feeds/packages/mqttled/Makefile' has a dependency on 'python3-netifaces', which does not exist
make[2]: Entering directory '/scratch/union/scripts/config'
make[2]: 'conf' is up to date.
make[2]: Leaving directory '/scratch/union/scripts/config'
 make[1] world
 make[2] package/cleanup
 make[2] toolchain/compile
 make[3] -C toolchain/gdb compile
 make[3] -C toolchain/binutils compile
 make[3] -C toolchain/nasm compile
 make[3] -C toolchain/fortify-headers compile
    ERROR: toolchain/binutils failed to build.
make -r world: build failed. Please re-run make with -j1 V=s or V=sc for a higher verbosity level to see what's going on
make: *** [/scratch/union/include/toplevel.mk:233: world] Error 1

Here is verbose output

% make -j1 V=s
WARNING: Makefile 'package/feeds/packages/mqttled/Makefile' has a dependency on 'python3-netifaces', which does not exist
make[2]: Entering directory '/scratch/union/scripts/config'
make[2]: 'conf' is up to date.
make[2]: Leaving directory '/scratch/union/scripts/config'
make[1]: Entering directory '/scratch/union'
make[2]: Entering directory '/scratch/union'
+ mkdir -p /scratch/union/staging_dir/target-x86_64_musl
+ cd /scratch/union/staging_dir/target-x86_64_musl
+ mkdir -p bin lib stamp usr/include usr/lib
mkdir -p /scratch/union/build_dir/target-x86_64_musl/stamp
touch /scratch/union/staging_dir/target-x86_64_musl/.prepared
make[3]: Entering directory '/scratch/union/toolchain/gdb'
make[3]: Nothing to be done for 'compile'.
make[3]: Leaving directory '/scratch/union/toolchain/gdb'
time: toolchain/gdb/compile#0.01#0.00#0.02
make[3]: Entering directory '/scratch/union/toolchain/binutils'
make  -C /scratch/union/build_dir/toolchain-x86_64_gcc-14.3.0_musl/binutils-2.43.1 all
make[4]: Entering directory '/scratch/union/build_dir/toolchain-x86_64_gcc-14.3.0_musl/binutils-2.43.1'
make[5]: Entering directory '/scratch/union/build_dir/toolchain-x86_64_gcc-14.3.0_musl/binutils-2.43.1'
make[6]: Entering directory '/scratch/union/build_dir/toolchain-x86_64_gcc-14.3.0_musl/binutils-2.43.1/libiberty'
make[7]: Entering directory '/scratch/union/build_dir/toolchain-x86_64_gcc-14.3.0_musl/binutils-2.43.1/libiberty/testsuite'
make[7]: Nothing to be done for 'all'.
make[7]: Leaving directory '/scratch/union/build_dir/toolchain-x86_64_gcc-14.3.0_musl/binutils-2.43.1/libiberty/testsuite'
make[6]: Leaving directory '/scratch/union/build_dir/toolchain-x86_64_gcc-14.3.0_musl/binutils-2.43.1/libiberty'
make[6]: Entering directory '/scratch/union/build_dir/toolchain-x86_64_gcc-14.3.0_musl/binutils-2.43.1/libsframe'
make  all-am
make[7]: Entering directory '/scratch/union/build_dir/toolchain-x86_64_gcc-14.3.0_musl/binutils-2.43.1/libsframe'
make[7]: Leaving directory '/scratch/union/build_dir/toolchain-x86_64_gcc-14.3.0_musl/binutils-2.43.1/libsframe'
make[6]: Leaving directory '/scratch/union/build_dir/toolchain-x86_64_gcc-14.3.0_musl/binutils-2.43.1/libsframe'
make[6]: Entering directory '/scratch/union/build_dir/toolchain-x86_64_gcc-14.3.0_musl/binutils-2.43.1/bfd'
Making info in po
make[7]: Entering directory '/scratch/union/build_dir/toolchain-x86_64_gcc-14.3.0_musl/binutils-2.43.1/bfd/po'
make[7]: Nothing to be done for 'info'.
make[7]: Leaving directory '/scratch/union/build_dir/toolchain-x86_64_gcc-14.3.0_musl/binutils-2.43.1/bfd/po'
make[7]: Entering directory '/scratch/union/build_dir/toolchain-x86_64_gcc-14.3.0_musl/binutils-2.43.1/bfd'
make[7]: Circular doc/bfd.stamp <- doc/bfd.texi dependency dropped.
make[7]: Leaving directory '/scratch/union/build_dir/toolchain-x86_64_gcc-14.3.0_musl/binutils-2.43.1/bfd'
make  all-recursive
make[7]: Entering directory '/scratch/union/build_dir/toolchain-x86_64_gcc-14.3.0_musl/binutils-2.43.1/bfd'
Making all in po
make[8]: Entering directory '/scratch/union/build_dir/toolchain-x86_64_gcc-14.3.0_musl/binutils-2.43.1/bfd/po'
make[8]: Nothing to be done for 'all'.
make[8]: Leaving directory '/scratch/union/build_dir/toolchain-x86_64_gcc-14.3.0_musl/binutils-2.43.1/bfd/po'
make[8]: Entering directory '/scratch/union/build_dir/toolchain-x86_64_gcc-14.3.0_musl/binutils-2.43.1/bfd'
make[8]: Circular doc/bfd.stamp <- doc/bfd.texi dependency dropped.
/usr/bin/env bash ./libtool  --tag=CC   --mode=compile /scratch/union/staging_dir/host/bin/gcc -DHAVE_CONFIG_H -I.  -DBINDIR='"/scratch/union/staging_dir/toolchain-x86_64_gcc-14.3.0_musl/bin"' -DLIBDIR='"/scratch/union/staging_dir/toolchain-x86_64_gcc-14.3.0_musl/lib"' -I. -I. -I./../include  -DHAVE_x86_64_elf64_vec -DHAVE_i386_elf32_vec -DHAVE_iamcu_elf32_vec -DHAVE_x86_64_elf32_vec -DHAVE_i386_pei_vec -DHAVE_x86_64_pe_vec -DHAVE_x86_64_pei_vec -DHAVE_elf64_le_vec -DHAVE_elf64_be_vec -DHAVE_elf32_le_vec -DHAVE_elf32_be_vec   -W -Wall -Wstrict-prototypes -Wmissing-prototypes -Wshadow -Wstack-usage=262144  -I/scratch/union/staging_dir/toolchain-x86_64_gcc-14.3.0_musl/include -pthread -O2 -I/scratch/union/staging_dir/host/include     -MT bfdio.lo -MD -MP -MF .deps/bfdio.Tpo -c -o bfdio.lo bfdio.c
libtool: compile:  /scratch/union/staging_dir/host/bin/gcc -DHAVE_CONFIG_H -I. -DBINDIR=\"/scratch/union/staging_dir/toolchain-x86_64_gcc-14.3.0_musl/bin\" -DLIBDIR=\"/scratch/union/staging_dir/toolchain-x86_64_gcc-14.3.0_musl/lib\" -I. -I. -I./../include -DHAVE_x86_64_elf64_vec -DHAVE_i386_elf32_vec -DHAVE_iamcu_elf32_vec -DHAVE_x86_64_elf32_vec -DHAVE_i386_pei_vec -DHAVE_x86_64_pe_vec -DHAVE_x86_64_pei_vec -DHAVE_elf64_le_vec -DHAVE_elf64_be_vec -DHAVE_elf32_le_vec -DHAVE_elf32_be_vec -W -Wall -Wstrict-prototypes -Wmissing-prototypes -Wshadow -Wstack-usage=262144 -I/scratch/union/staging_dir/toolchain-x86_64_gcc-14.3.0_musl/include -pthread -O2 -I/scratch/union/staging_dir/host/include -MT bfdio.lo -MD -MP -MF .deps/bfdio.Tpo -c bfdio.c -o bfdio.o
In file included from /scratch/union/staging_dir/toolchain-x86_64_gcc-14.3.0_musl/include/sys/types.h:70,
                 from sysdep.h:33,
                 from bfdio.c:24:
/scratch/union/staging_dir/toolchain-x86_64_gcc-14.3.0_musl/include/endian.h: In function '__bswap32':
/scratch/union/staging_dir/toolchain-x86_64_gcc-14.3.0_musl/include/endian.h:26:32: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses]
   26 |         return __x>>24 | __x>>8&0xff00 | __x<<8&0xff0000 | __x<<24;
      |                          ~~~~~~^~~~~~~
/scratch/union/staging_dir/toolchain-x86_64_gcc-14.3.0_musl/include/endian.h:26:48: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses]
   26 |         return __x>>24 | __x>>8&0xff00 | __x<<8&0xff0000 | __x<<24;
      |                                          ~~~~~~^~~~~~~~~
/scratch/union/staging_dir/toolchain-x86_64_gcc-14.3.0_musl/include/endian.h: In function '__bswap64':
/scratch/union/staging_dir/toolchain-x86_64_gcc-14.3.0_musl/include/endian.h:31:30: warning: suggest parentheses around '+' inside '<<' [-Wparentheses]
   31 |         return __bswap32(__x)+0ULL<<32 | __bswap32(__x>>32);
      |                ~~~~~~~~~~~~~~^~~~~
bfdio.c: In function '_bfd_real_ftell':
bfdio.c:52:10: error: implicit declaration of function 'ftello64'; did you mean 'ftello'? [-Wimplicit-function-declaration]
   52 |   return ftello64 (file);
      |          ^~~~~~~~
      |          ftello
bfdio.c: In function '_bfd_real_fseek':
bfdio.c:64:10: error: implicit declaration of function 'fseeko64'; did you mean 'fseeko'? [-Wimplicit-function-declaration]
   64 |   return fseeko64 (file, offset, whence);
      |          ^~~~~~~~
      |          fseeko
bfdio.c: In function '_bfd_real_fopen':
bfdio.c:256:25: error: implicit declaration of function 'fopen64'; did you mean 'fopen'? [-Wimplicit-function-declaration]
  256 |   return close_on_exec (fopen64 (filename, modes));
      |                         ^~~~~~~
      |                         fopen
bfdio.c:256:25: error: passing argument 1 of 'close_on_exec' makes pointer from integer without a cast [-Wint-conversion]
  256 |   return close_on_exec (fopen64 (filename, modes));
      |                         ^~~~~~~~~~~~~~~~~~~~~~~~~
      |                         |
      |                         int
bfdio.c:75:22: note: expected 'FILE *' {aka 'struct _IO_FILE *'} but argument is of type 'int'
   75 | close_on_exec (FILE *file)
      |                ~~~~~~^~~~
make[8]: *** [Makefile:1768: bfdio.lo] Error 1
make[8]: Leaving directory '/scratch/union/build_dir/toolchain-x86_64_gcc-14.3.0_musl/binutils-2.43.1/bfd'
make[7]: *** [Makefile:1948: all-recursive] Error 1
make[7]: Leaving directory '/scratch/union/build_dir/toolchain-x86_64_gcc-14.3.0_musl/binutils-2.43.1/bfd'
make[6]: *** [Makefile:1332: all] Error 2
make[6]: Leaving directory '/scratch/union/build_dir/toolchain-x86_64_gcc-14.3.0_musl/binutils-2.43.1/bfd'
make[5]: *** [Makefile:3113: all-bfd] Error 2
make[5]: Leaving directory '/scratch/union/build_dir/toolchain-x86_64_gcc-14.3.0_musl/binutils-2.43.1'
make[4]: *** [Makefile:1028: all] Error 2
make[4]: Leaving directory '/scratch/union/build_dir/toolchain-x86_64_gcc-14.3.0_musl/binutils-2.43.1'
make[3]: *** [Makefile:104: /scratch/union/build_dir/toolchain-x86_64_gcc-14.3.0_musl/binutils-2.43.1/.built] Error 2
make[3]: Leaving directory '/scratch/union/toolchain/binutils'
time: toolchain/binutils/compile#0.15#0.04#0.19
    ERROR: toolchain/binutils failed to build.
make[2]: *** [toolchain/Makefile:93: toolchain/binutils/compile] Error 1
make[2]: Leaving directory '/scratch/union'
make[1]: *** [toolchain/Makefile:89: /scratch/union/staging_dir/toolchain-x86_64_gcc-14.3.0_musl/stamp/.toolchain_compile] Error 2
make[1]: Leaving directory '/scratch/union'
make: *** [/scratch/union/include/toplevel.mk:233: world] Error 2

darksky,

Did you changed something in your build environment? Changed kernel / updated that machine?

Do you have 'python3-netifaces' installed on your build machine?
The 1st warning message in both of your lists.

For which version OpenWrt are you trying to build binutils?
If it is for the latest 24.10, try updating environment first i.e.

./scripts/feeds update -a
./scripts/feeds install -a

And try again.

Regards, DGdodo.