From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 1643) id EE2CE3858D33; Sat, 23 Dec 2023 09:31:16 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org EE2CE3858D33 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1703323876; bh=fil+2OHkcB0USjAa7P09TpkhD/7exGkr8B6dSTQUxcw=; h=From:To:Subject:Date:From; b=IIEZ8ETxy1l4MTod1uOhrKceCXRe/pT/CTs07QLzS6pF4W7ye7JrFq2zbzIdE4mFu qRbUn+1kNFTIzJHxDj9pTUMi/vunCjb3zcslAn6thu3qXgxnZZ+SP+dGjdIyOY8Gmq EYzmDOftyFb7vm2oJ1jzpKJ+cO0UIJht+572jR7I= Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable From: Thomas Schwinge To: newlib-cvs@sourceware.org Subject: [newlib-cygwin/main] GCN: Implement '_exit' instead of 'exit' X-Act-Checkin: newlib-cygwin X-Git-Author: Thomas Schwinge X-Git-Refname: refs/heads/main X-Git-Oldrev: 1df8f9f09b0999e04bc0bbd7170ac7dbfa278213 X-Git-Newrev: 1a177610d8e181d09206a5a8ce2d873822751657 Message-Id: <20231223093116.EE2CE3858D33@sourceware.org> Date: Sat, 23 Dec 2023 09:31:16 +0000 (GMT) List-Id: https://sourceware.org/git/gitweb.cgi?p=3Dnewlib-cygwin.git;h=3D1a177610d8e= 181d09206a5a8ce2d873822751657 commit 1a177610d8e181d09206a5a8ce2d873822751657 Author: Thomas Schwinge Date: Mon Nov 6 16:48:20 2023 +0100 GCN: Implement '_exit' instead of 'exit' =20 ... so that all of 'exit', '_exit', '_Exit' work. 'exit' thus becomes = the standard 'newlib/libc/stdlib/exit.c'. (Getting 'atexit' functional nee= ds further work elsewhere.) =20 See also commit 5841b2f6a4208682264d03e3edfa0a09881932a6 "nvptx: Implement '_exit' instead of 'exit'". Diff: --- newlib/Makefile.in | 40 +++++++++++++---------= ---- newlib/libc/machine/amdgcn/Makefile.inc | 2 +- newlib/libc/machine/amdgcn/{exit.c =3D> _exit.c} | 4 +-- newlib/libc/machine/amdgcn/atexit.c | 3 +- 4 files changed, 24 insertions(+), 25 deletions(-) diff --git a/newlib/Makefile.in b/newlib/Makefile.in index 99a29465a..9a32646ab 100644 --- a/newlib/Makefile.in +++ b/newlib/Makefile.in @@ -630,8 +630,8 @@ check_PROGRAMS =3D @HAVE_LIBC_MACHINE_AARCH64_TRUE@ libc/machine/aarch64/strrchr.S =20 @HAVE_LIBC_MACHINE_AMDGCN_TRUE@am__append_67 =3D \ +@HAVE_LIBC_MACHINE_AMDGCN_TRUE@ libc/machine/amdgcn/_exit.c \ @HAVE_LIBC_MACHINE_AMDGCN_TRUE@ libc/machine/amdgcn/abort.c \ -@HAVE_LIBC_MACHINE_AMDGCN_TRUE@ libc/machine/amdgcn/exit.c \ @HAVE_LIBC_MACHINE_AMDGCN_TRUE@ libc/machine/amdgcn/atexit.c \ @HAVE_LIBC_MACHINE_AMDGCN_TRUE@ libc/machine/amdgcn/mlock.c \ @HAVE_LIBC_MACHINE_AMDGCN_TRUE@ libc/machine/amdgcn/getreent.c \ @@ -1892,8 +1892,8 @@ am__objects_51 =3D libc/ssp/libc_a-chk_fail.$(OBJEXT)= \ @HAVE_LIBC_MACHINE_AARCH64_TRUE@ libc/machine/aarch64/libc_a-strnlen.$(OBJ= EXT) \ @HAVE_LIBC_MACHINE_AARCH64_TRUE@ libc/machine/aarch64/libc_a-strrchr-stub.= $(OBJEXT) \ @HAVE_LIBC_MACHINE_AARCH64_TRUE@ libc/machine/aarch64/libc_a-strrchr.$(OBJ= EXT) -@HAVE_LIBC_MACHINE_AMDGCN_TRUE@am__objects_78 =3D libc/machine/amdgcn/libc= _a-abort.$(OBJEXT) \ -@HAVE_LIBC_MACHINE_AMDGCN_TRUE@ libc/machine/amdgcn/libc_a-exit.$(OBJEXT) \ +@HAVE_LIBC_MACHINE_AMDGCN_TRUE@am__objects_78 =3D libc/machine/amdgcn/libc= _a-_exit.$(OBJEXT) \ +@HAVE_LIBC_MACHINE_AMDGCN_TRUE@ libc/machine/amdgcn/libc_a-abort.$(OBJEXT)= \ @HAVE_LIBC_MACHINE_AMDGCN_TRUE@ libc/machine/amdgcn/libc_a-atexit.$(OBJEXT= ) \ @HAVE_LIBC_MACHINE_AMDGCN_TRUE@ libc/machine/amdgcn/libc_a-mlock.$(OBJEXT)= \ @HAVE_LIBC_MACHINE_AMDGCN_TRUE@ libc/machine/amdgcn/libc_a-getreent.$(OBJE= XT) \ @@ -8161,10 +8161,10 @@ libc/machine/amdgcn/$(am__dirstamp): libc/machine/amdgcn/$(DEPDIR)/$(am__dirstamp): @$(MKDIR_P) libc/machine/amdgcn/$(DEPDIR) @: > libc/machine/amdgcn/$(DEPDIR)/$(am__dirstamp) -libc/machine/amdgcn/libc_a-abort.$(OBJEXT): \ +libc/machine/amdgcn/libc_a-_exit.$(OBJEXT): \ libc/machine/amdgcn/$(am__dirstamp) \ libc/machine/amdgcn/$(DEPDIR)/$(am__dirstamp) -libc/machine/amdgcn/libc_a-exit.$(OBJEXT): \ +libc/machine/amdgcn/libc_a-abort.$(OBJEXT): \ libc/machine/amdgcn/$(am__dirstamp) \ libc/machine/amdgcn/$(DEPDIR)/$(am__dirstamp) libc/machine/amdgcn/libc_a-atexit.$(OBJEXT): \ @@ -12816,9 +12816,9 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@libc/machine/aarch64/$(DEPDIR)/libc_a= -strnlen.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@libc/machine/aarch64/$(DEPDIR)/libc_a= -strrchr-stub.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@libc/machine/aarch64/$(DEPDIR)/libc_a= -strrchr.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@libc/machine/amdgcn/$(DEPDIR)/libc_a-= _exit.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@libc/machine/amdgcn/$(DEPDIR)/libc_a-= abort.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@libc/machine/amdgcn/$(DEPDIR)/libc_a-= atexit.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libc/machine/amdgcn/$(DEPDIR)/libc_a-= exit.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@libc/machine/amdgcn/$(DEPDIR)/libc_a-= getreent.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@libc/machine/amdgcn/$(DEPDIR)/libc_a-= mlock.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@libc/machine/amdgcn/$(DEPDIR)/libc_a-= signal.Po@am__quote@ @@ -33347,6 +33347,20 @@ libc/machine/aarch64/libc_a-strrchr-stub.obj: libc= /machine/aarch64/strrchr-stub. @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=3D$(DEPDIR) $(CCDEPMODE) $(depcom= p) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDE= S) $(INCLUDES) $(libc_a_CPPFLAGS) $(CPPFLAGS) $(libc_a_CFLAGS) $(CFLAGS) -c= -o libc/machine/aarch64/libc_a-strrchr-stub.obj `if test -f 'libc/machine/= aarch64/strrchr-stub.c'; then $(CYGPATH_W) 'libc/machine/aarch64/strrchr-st= ub.c'; else $(CYGPATH_W) '$(srcdir)/libc/machine/aarch64/strrchr-stub.c'; f= i` =20 +libc/machine/amdgcn/libc_a-_exit.o: libc/machine/amdgcn/_exit.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDE= S) $(libc_a_CPPFLAGS) $(CPPFLAGS) $(libc_a_CFLAGS) $(CFLAGS) -MT libc/machi= ne/amdgcn/libc_a-_exit.o -MD -MP -MF libc/machine/amdgcn/$(DEPDIR)/libc_a-_= exit.Tpo -c -o libc/machine/amdgcn/libc_a-_exit.o `test -f 'libc/machine/am= dgcn/_exit.c' || echo '$(srcdir)/'`libc/machine/amdgcn/_exit.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libc/machine/amdgcn/$(DEPDIR)/lib= c_a-_exit.Tpo libc/machine/amdgcn/$(DEPDIR)/libc_a-_exit.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source=3D'libc/machine/amdgcn/= _exit.c' object=3D'libc/machine/amdgcn/libc_a-_exit.o' libtool=3Dno @AMDEPB= ACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=3D$(DEPDIR) $(CCDEPMODE) $(depcom= p) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDE= S) $(INCLUDES) $(libc_a_CPPFLAGS) $(CPPFLAGS) $(libc_a_CFLAGS) $(CFLAGS) -c= -o libc/machine/amdgcn/libc_a-_exit.o `test -f 'libc/machine/amdgcn/_exit.= c' || echo '$(srcdir)/'`libc/machine/amdgcn/_exit.c + +libc/machine/amdgcn/libc_a-_exit.obj: libc/machine/amdgcn/_exit.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDE= S) $(libc_a_CPPFLAGS) $(CPPFLAGS) $(libc_a_CFLAGS) $(CFLAGS) -MT libc/machi= ne/amdgcn/libc_a-_exit.obj -MD -MP -MF libc/machine/amdgcn/$(DEPDIR)/libc_a= -_exit.Tpo -c -o libc/machine/amdgcn/libc_a-_exit.obj `if test -f 'libc/mac= hine/amdgcn/_exit.c'; then $(CYGPATH_W) 'libc/machine/amdgcn/_exit.c'; else= $(CYGPATH_W) '$(srcdir)/libc/machine/amdgcn/_exit.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libc/machine/amdgcn/$(DEPDIR)/lib= c_a-_exit.Tpo libc/machine/amdgcn/$(DEPDIR)/libc_a-_exit.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source=3D'libc/machine/amdgcn/= _exit.c' object=3D'libc/machine/amdgcn/libc_a-_exit.obj' libtool=3Dno @AMDE= PBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=3D$(DEPDIR) $(CCDEPMODE) $(depcom= p) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDE= S) $(INCLUDES) $(libc_a_CPPFLAGS) $(CPPFLAGS) $(libc_a_CFLAGS) $(CFLAGS) -c= -o libc/machine/amdgcn/libc_a-_exit.obj `if test -f 'libc/machine/amdgcn/_= exit.c'; then $(CYGPATH_W) 'libc/machine/amdgcn/_exit.c'; else $(CYGPATH_W)= '$(srcdir)/libc/machine/amdgcn/_exit.c'; fi` + libc/machine/amdgcn/libc_a-abort.o: libc/machine/amdgcn/abort.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDE= S) $(libc_a_CPPFLAGS) $(CPPFLAGS) $(libc_a_CFLAGS) $(CFLAGS) -MT libc/machi= ne/amdgcn/libc_a-abort.o -MD -MP -MF libc/machine/amdgcn/$(DEPDIR)/libc_a-a= bort.Tpo -c -o libc/machine/amdgcn/libc_a-abort.o `test -f 'libc/machine/am= dgcn/abort.c' || echo '$(srcdir)/'`libc/machine/amdgcn/abort.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libc/machine/amdgcn/$(DEPDIR)/lib= c_a-abort.Tpo libc/machine/amdgcn/$(DEPDIR)/libc_a-abort.Po @@ -33361,20 +33375,6 @@ libc/machine/amdgcn/libc_a-abort.obj: libc/machine= /amdgcn/abort.c @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=3D$(DEPDIR) $(CCDEPMODE) $(depcom= p) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDE= S) $(INCLUDES) $(libc_a_CPPFLAGS) $(CPPFLAGS) $(libc_a_CFLAGS) $(CFLAGS) -c= -o libc/machine/amdgcn/libc_a-abort.obj `if test -f 'libc/machine/amdgcn/a= bort.c'; then $(CYGPATH_W) 'libc/machine/amdgcn/abort.c'; else $(CYGPATH_W)= '$(srcdir)/libc/machine/amdgcn/abort.c'; fi` =20 -libc/machine/amdgcn/libc_a-exit.o: libc/machine/amdgcn/exit.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDE= S) $(libc_a_CPPFLAGS) $(CPPFLAGS) $(libc_a_CFLAGS) $(CFLAGS) -MT libc/machi= ne/amdgcn/libc_a-exit.o -MD -MP -MF libc/machine/amdgcn/$(DEPDIR)/libc_a-ex= it.Tpo -c -o libc/machine/amdgcn/libc_a-exit.o `test -f 'libc/machine/amdgc= n/exit.c' || echo '$(srcdir)/'`libc/machine/amdgcn/exit.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libc/machine/amdgcn/$(DEPDIR)/lib= c_a-exit.Tpo libc/machine/amdgcn/$(DEPDIR)/libc_a-exit.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source=3D'libc/machine/amdgcn/= exit.c' object=3D'libc/machine/amdgcn/libc_a-exit.o' libtool=3Dno @AMDEPBAC= KSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=3D$(DEPDIR) $(CCDEPMODE) $(depcom= p) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDE= S) $(INCLUDES) $(libc_a_CPPFLAGS) $(CPPFLAGS) $(libc_a_CFLAGS) $(CFLAGS) -c= -o libc/machine/amdgcn/libc_a-exit.o `test -f 'libc/machine/amdgcn/exit.c'= || echo '$(srcdir)/'`libc/machine/amdgcn/exit.c - -libc/machine/amdgcn/libc_a-exit.obj: libc/machine/amdgcn/exit.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDE= S) $(libc_a_CPPFLAGS) $(CPPFLAGS) $(libc_a_CFLAGS) $(CFLAGS) -MT libc/machi= ne/amdgcn/libc_a-exit.obj -MD -MP -MF libc/machine/amdgcn/$(DEPDIR)/libc_a-= exit.Tpo -c -o libc/machine/amdgcn/libc_a-exit.obj `if test -f 'libc/machin= e/amdgcn/exit.c'; then $(CYGPATH_W) 'libc/machine/amdgcn/exit.c'; else $(CY= GPATH_W) '$(srcdir)/libc/machine/amdgcn/exit.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libc/machine/amdgcn/$(DEPDIR)/lib= c_a-exit.Tpo libc/machine/amdgcn/$(DEPDIR)/libc_a-exit.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source=3D'libc/machine/amdgcn/= exit.c' object=3D'libc/machine/amdgcn/libc_a-exit.obj' libtool=3Dno @AMDEPB= ACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=3D$(DEPDIR) $(CCDEPMODE) $(depcom= p) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDE= S) $(INCLUDES) $(libc_a_CPPFLAGS) $(CPPFLAGS) $(libc_a_CFLAGS) $(CFLAGS) -c= -o libc/machine/amdgcn/libc_a-exit.obj `if test -f 'libc/machine/amdgcn/ex= it.c'; then $(CYGPATH_W) 'libc/machine/amdgcn/exit.c'; else $(CYGPATH_W) '$= (srcdir)/libc/machine/amdgcn/exit.c'; fi` - libc/machine/amdgcn/libc_a-atexit.o: libc/machine/amdgcn/atexit.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDE= S) $(libc_a_CPPFLAGS) $(CPPFLAGS) $(libc_a_CFLAGS) $(CFLAGS) -MT libc/machi= ne/amdgcn/libc_a-atexit.o -MD -MP -MF libc/machine/amdgcn/$(DEPDIR)/libc_a-= atexit.Tpo -c -o libc/machine/amdgcn/libc_a-atexit.o `test -f 'libc/machine= /amdgcn/atexit.c' || echo '$(srcdir)/'`libc/machine/amdgcn/atexit.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libc/machine/amdgcn/$(DEPDIR)/lib= c_a-atexit.Tpo libc/machine/amdgcn/$(DEPDIR)/libc_a-atexit.Po diff --git a/newlib/libc/machine/amdgcn/Makefile.inc b/newlib/libc/machine/= amdgcn/Makefile.inc index d26603aa8..e1fc5ae4d 100644 --- a/newlib/libc/machine/amdgcn/Makefile.inc +++ b/newlib/libc/machine/amdgcn/Makefile.inc @@ -1,6 +1,6 @@ libc_a_SOURCES +=3D \ + %D%/_exit.c \ %D%/abort.c \ - %D%/exit.c \ %D%/atexit.c \ %D%/mlock.c \ %D%/getreent.c \ diff --git a/newlib/libc/machine/amdgcn/exit.c b/newlib/libc/machine/amdgcn= /_exit.c similarity index 95% rename from newlib/libc/machine/amdgcn/exit.c rename to newlib/libc/machine/amdgcn/_exit.c index bdd532edd..82171aff9 100644 --- a/newlib/libc/machine/amdgcn/exit.c +++ b/newlib/libc/machine/amdgcn/_exit.c @@ -13,11 +13,11 @@ * they apply. */ =20 -#include +#include #include "exit-value.h" =20 void __attribute__((noreturn)) -exit (int val) +_exit (int val) { exit_with_status_and_signal (val, 0); } diff --git a/newlib/libc/machine/amdgcn/atexit.c b/newlib/libc/machine/amdg= cn/atexit.c index 674571435..8ddd92cfa 100644 --- a/newlib/libc/machine/amdgcn/atexit.c +++ b/newlib/libc/machine/amdgcn/atexit.c @@ -18,8 +18,7 @@ int atexit (void (*function)(void)) { - /* Our current implementation of exit does not run functions registered = with - atexit, so fail here. */ + /* Fail here. */ abort (); return 1; }