Skip to content

procps 4.0.5 fails to link on musl with several "undefined reference to `error'"

I am hitting these linking failures on my amd64 and ppc64 Gentoo musl installs (downstream bug report 947680).

It's also reproducible from git master:

 # git clone https://gitlab.com/procps-ng/procps && cd procps
 # ./autogen.sh && ./configure
 # make
[...]
  CC       library/wchan.lo
  CC       library/uptime.lo
  CCLD     library/libproc2.la
  CCLD     src/ps/pscommand
/usr/lib/gcc/x86_64-pc-linux-musl/14/../../../../x86_64-pc-linux-musl/bin/ld: src/ps/display.o: in function `signal_handler':
/root/builddir/procps/src/ps/display.c:75:(.text+0xba): undefined reference to `error_at_line'
/usr/lib/gcc/x86_64-pc-linux-musl/14/../../../../x86_64-pc-linux-musl/bin/ld: src/ps/display.o: in function `xmalloc':
/root/builddir/procps/./local/xalloc.h:27:(.text+0x344): undefined reference to `error'
/usr/lib/gcc/x86_64-pc-linux-musl/14/../../../../x86_64-pc-linux-musl/bin/ld: src/ps/display.o: in function `xcalloc':
/root/builddir/procps/./local/xalloc.h:45:(.text+0x38c): undefined reference to `error'
/usr/lib/gcc/x86_64-pc-linux-musl/14/../../../../x86_64-pc-linux-musl/bin/ld: src/ps/display.o: in function `xmalloc':
/root/builddir/procps/./local/xalloc.h:27:(.text.startup+0x1638): undefined reference to `error'
/usr/lib/gcc/x86_64-pc-linux-musl/14/../../../../x86_64-pc-linux-musl/bin/ld: src/ps/global.o: in function `xcalloc':
/root/builddir/procps/./local/xalloc.h:45:(.text+0x8fe): undefined reference to `error'
/usr/lib/gcc/x86_64-pc-linux-musl/14/../../../../x86_64-pc-linux-musl/bin/ld: src/ps/global.o: in function `catastrophic_failure':
/root/builddir/procps/src/ps/global.c:655:(.text+0xb3c): undefined reference to `error_at_line'
/usr/lib/gcc/x86_64-pc-linux-musl/14/../../../../x86_64-pc-linux-musl/bin/ld: src/ps/output.o: in function `boot_time':
/root/builddir/procps/src/ps/output.c:104:(.text+0x17c9): undefined reference to `error'
/usr/lib/gcc/x86_64-pc-linux-musl/14/../../../../x86_64-pc-linux-musl/bin/ld: src/ps/output.o: in function `memory_total':
/root/builddir/procps/src/ps/output.c:118:(.text+0x2ed1): undefined reference to `error'
/usr/lib/gcc/x86_64-pc-linux-musl/14/../../../../x86_64-pc-linux-musl/bin/ld: src/ps/parser.o: in function `xcalloc':
/root/builddir/procps/./local/xalloc.h:45:(.text+0x753): undefined reference to `error'
/usr/lib/gcc/x86_64-pc-linux-musl/14/../../../../x86_64-pc-linux-musl/bin/ld: src/ps/parser.o: in function `xstrdup':
/root/builddir/procps/./local/xalloc.h:56:(.text+0x777): undefined reference to `error'
/usr/lib/gcc/x86_64-pc-linux-musl/14/../../../../x86_64-pc-linux-musl/bin/ld: src/ps/parser.o: in function `xmalloc':
/root/builddir/procps/./local/xalloc.h:27:(.text+0x796): undefined reference to `error'
/usr/lib/gcc/x86_64-pc-linux-musl/14/../../../../x86_64-pc-linux-musl/bin/ld: src/ps/parser.o:/root/builddir/procps/./local/xalloc.h:56: more undefined references to `error' follow
collect2: error: ld returned 1 exit status
make[2]: *** [Makefile:1650: src/ps/pscommand] Error 1
make[2]: Leaving directory '/root/builddir/procps'
make[1]: *** [Makefile:2426: all-recursive] Error 1
make[1]: Leaving directory '/root/builddir/procps'
make: *** [Makefile:1243: all] Error 2

Current Gentoo uses musl 1.2.5.

Edited by ernsteiswuerfel