m68k-unknown-elf-ar: ../stdlib/lib.a: No such file or directory

Josef Wolf jw@raven.inka.de
Wed Jul 17 10:04:32 GMT 2024


On Tue, Jul 16, 2024 at 11:05:59AM +0200, Josef Wolf wrote:
>   /var/tmp/builds/crossgcc/src/newlib-3.1.0/newlib/libc/stdlib/system.c: In function '_system_r':
>   /var/tmp/builds/crossgcc/src/newlib-3.1.0/newlib/libc/stdlib/system.c:64:10: error: implicit declaration of function '_system'; did you mean 'system'? [-Wimplicit-function-declaration]
>      64 |   return _system (s);
>         |          ^~~~~~~
>         |          system
>   make[8]: *** [Makefile:1364: lib_a-system.o] Error 1

This failure is caused by

  diff --git a/newlib/configure.host b/newlib/configure.host
  index 60eec0e14..2c2afeff3 100644
  --- a/newlib/configure.host
  +++ b/newlib/configure.host
  @@ -602,6 +602,10 @@ case "${host}" in
     m68hc11-*-*|m6811-*-*|m68hc12-*-*|m6812-*-*)
           newlib_cflags="${newlib_cflags} -DNO_EXEC -DABORT_PROVIDED -DSMALL_MEMORY -DMISSING_SYSCALL_NAMES"
           ;;
  +  m68k-unknown-elf)
  +       newlib_cflags="${newlib_cflags} -DHAVE_RENAME -DHAVE_SYSTEM -DMISSING_SYSCALL_NAMES"
  +       syscall_dir=
  +       ;;
     mcore-*-*)
          syscall_dir=syscalls
          ;;

which was introduced by c023e783e91748c9f1a8d6d19d98130c55389a3c

The assumption here seems to be that elf is an OS

My understanding is: elf is a file format, which happens to be introduced
in the early days of linux. But it works perfectly on bare metal. I am
using it for dacades on bare metal. I have no idea why this commit has
not hit me before.

Can anybody bring in some enlightenment into this?

-- 
Josef Wolf
jw@raven.inka.de


More information about the Newlib mailing list