From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 1643) id 5D4933858D1E; Thu, 22 Dec 2022 11:52:30 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 5D4933858D1E DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1671709950; bh=1i6t3y+cJWI6mzi4IzRNPDhubAWzMuPGatNZZ2rDTTI=; h=From:To:Subject:Date:From; b=HiA78gu0tNzS9+4+FC9IqfTISi+BBlJXFeJOsP2AWTWjiDJ5SY/0+W+rZuD3b1j2H FubgpFK5scHfIcgjZ/QEsByfKyVAFRVxicpslCyQcAu2YiXEMRH6nQpIyL2G16CRLF ccuUCkhpQjRaA5vjD8nsmkQaqtSDL/sZz5bR+xxw= 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] nvptx: Implement '_exit' instead of 'exit' X-Act-Checkin: newlib-cygwin X-Git-Author: Thomas Schwinge X-Git-Refname: refs/heads/master X-Git-Oldrev: f6e4e98d3071c8e41f50773ec3c7683fb104b3ab X-Git-Newrev: 5841b2f6a4208682264d03e3edfa0a09881932a6 Message-Id: <20221222115230.5D4933858D1E@sourceware.org> Date: Thu, 22 Dec 2022 11:52:30 +0000 (GMT) List-Id: https://sourceware.org/git/gitweb.cgi?p=3Dnewlib-cygwin.git;h=3D5841b2f6a42= 08682264d03e3edfa0a09881932a6 commit 5841b2f6a4208682264d03e3edfa0a09881932a6 Author: Thomas Schwinge Date: Thu Nov 24 12:45:15 2022 +0100 nvptx: Implement '_exit' instead of 'exit' =20 ... so that all of 'exit', '_exit', '_Exit' work. 'exit' thus becomes = the standard 'newlib/libc/stdlib/exit.c' -- and functions registered via 'a= texit' are now called at return from 'main' or manual 'exit' invocation. Diff: --- newlib/Makefile.in | 43 ++++++++++++++---------= ---- newlib/libc/machine/nvptx/Makefile.inc | 3 +- newlib/libc/machine/nvptx/{exit.c =3D> _exit.c} | 4 +-- 3 files changed, 26 insertions(+), 24 deletions(-) diff --git a/newlib/Makefile.in b/newlib/Makefile.in index cb7b69327..2d8bfaded 100644 --- a/newlib/Makefile.in +++ b/newlib/Makefile.in @@ -761,9 +761,10 @@ check_PROGRAMS =3D @HAVE_LIBC_MACHINE_NECV70_TRUE@am__append_105 =3D libc/machine/necv70/fast= math.S libc/machine/necv70/setjmp.S @HAVE_LIBC_MACHINE_NIOS2_TRUE@am__append_106 =3D libc/machine/nios2/setjmp= .s @HAVE_LIBC_MACHINE_NVPTX_TRUE@am__append_107 =3D \ +@HAVE_LIBC_MACHINE_NVPTX_TRUE@ libc/machine/nvptx/_exit.c \ @HAVE_LIBC_MACHINE_NVPTX_TRUE@ libc/machine/nvptx/calloc.c libc/machine/nv= ptx/callocr.c libc/machine/nvptx/malloc.c libc/machine/nvptx/mallocr.c libc= /machine/nvptx/realloc.c libc/machine/nvptx/reallocr.c \ @HAVE_LIBC_MACHINE_NVPTX_TRUE@ libc/machine/nvptx/free.c libc/machine/nvpt= x/write.c libc/machine/nvptx/assert.c libc/machine/nvptx/puts.c libc/machin= e/nvptx/putchar.c libc/machine/nvptx/printf.c libc/machine/nvptx/abort.c \ -@HAVE_LIBC_MACHINE_NVPTX_TRUE@ libc/machine/nvptx/exit.c libc/machine/nvpt= x/misc.c libc/machine/nvptx/clock.c +@HAVE_LIBC_MACHINE_NVPTX_TRUE@ libc/machine/nvptx/misc.c libc/machine/nvpt= x/clock.c =20 @HAVE_LIBC_MACHINE_OR1K_TRUE@am__append_108 =3D libc/machine/or1k/setjmp.S @HAVE_LIBC_MACHINE_POWERPC_TRUE@am__append_109 =3D libc/machine/powerpc/se= tjmp.S @@ -2024,7 +2025,8 @@ am__objects_51 =3D libc/ssp/libc_a-chk_fail.$(OBJEXT)= \ @HAVE_LIBC_MACHINE_NECV70_TRUE@am__objects_115 =3D libc/machine/necv70/lib= c_a-fastmath.$(OBJEXT) \ @HAVE_LIBC_MACHINE_NECV70_TRUE@ libc/machine/necv70/libc_a-setjmp.$(OBJEXT) @HAVE_LIBC_MACHINE_NIOS2_TRUE@am__objects_116 =3D libc/machine/nios2/libc_= a-setjmp.$(OBJEXT) -@HAVE_LIBC_MACHINE_NVPTX_TRUE@am__objects_117 =3D libc/machine/nvptx/libc_= a-calloc.$(OBJEXT) \ +@HAVE_LIBC_MACHINE_NVPTX_TRUE@am__objects_117 =3D libc/machine/nvptx/libc_= a-_exit.$(OBJEXT) \ +@HAVE_LIBC_MACHINE_NVPTX_TRUE@ libc/machine/nvptx/libc_a-calloc.$(OBJEXT) \ @HAVE_LIBC_MACHINE_NVPTX_TRUE@ libc/machine/nvptx/libc_a-callocr.$(OBJEXT)= \ @HAVE_LIBC_MACHINE_NVPTX_TRUE@ libc/machine/nvptx/libc_a-malloc.$(OBJEXT) \ @HAVE_LIBC_MACHINE_NVPTX_TRUE@ libc/machine/nvptx/libc_a-mallocr.$(OBJEXT)= \ @@ -2037,7 +2039,6 @@ am__objects_51 =3D libc/ssp/libc_a-chk_fail.$(OBJEXT)= \ @HAVE_LIBC_MACHINE_NVPTX_TRUE@ libc/machine/nvptx/libc_a-putchar.$(OBJEXT)= \ @HAVE_LIBC_MACHINE_NVPTX_TRUE@ libc/machine/nvptx/libc_a-printf.$(OBJEXT) \ @HAVE_LIBC_MACHINE_NVPTX_TRUE@ libc/machine/nvptx/libc_a-abort.$(OBJEXT) \ -@HAVE_LIBC_MACHINE_NVPTX_TRUE@ libc/machine/nvptx/libc_a-exit.$(OBJEXT) \ @HAVE_LIBC_MACHINE_NVPTX_TRUE@ libc/machine/nvptx/libc_a-misc.$(OBJEXT) \ @HAVE_LIBC_MACHINE_NVPTX_TRUE@ libc/machine/nvptx/libc_a-clock.$(OBJEXT) @HAVE_LIBC_MACHINE_OR1K_TRUE@am__objects_118 =3D libc/machine/or1k/libc_a-= setjmp.$(OBJEXT) @@ -8447,6 +8448,9 @@ libc/machine/nvptx/$(am__dirstamp): libc/machine/nvptx/$(DEPDIR)/$(am__dirstamp): @$(MKDIR_P) libc/machine/nvptx/$(DEPDIR) @: > libc/machine/nvptx/$(DEPDIR)/$(am__dirstamp) +libc/machine/nvptx/libc_a-_exit.$(OBJEXT): \ + libc/machine/nvptx/$(am__dirstamp) \ + libc/machine/nvptx/$(DEPDIR)/$(am__dirstamp) libc/machine/nvptx/libc_a-calloc.$(OBJEXT): \ libc/machine/nvptx/$(am__dirstamp) \ libc/machine/nvptx/$(DEPDIR)/$(am__dirstamp) @@ -8486,9 +8490,6 @@ libc/machine/nvptx/libc_a-printf.$(OBJEXT): \ libc/machine/nvptx/libc_a-abort.$(OBJEXT): \ libc/machine/nvptx/$(am__dirstamp) \ libc/machine/nvptx/$(DEPDIR)/$(am__dirstamp) -libc/machine/nvptx/libc_a-exit.$(OBJEXT): \ - libc/machine/nvptx/$(am__dirstamp) \ - libc/machine/nvptx/$(DEPDIR)/$(am__dirstamp) libc/machine/nvptx/libc_a-misc.$(OBJEXT): \ libc/machine/nvptx/$(am__dirstamp) \ libc/machine/nvptx/$(DEPDIR)/$(am__dirstamp) @@ -12016,12 +12017,12 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@libc/machine/nds32/$(DEPDIR)/libc_a-s= trcpy.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@libc/machine/necv70/$(DEPDIR)/libc_a-= fastmath.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@libc/machine/necv70/$(DEPDIR)/libc_a-= setjmp.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@libc/machine/nvptx/$(DEPDIR)/libc_a-_= exit.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@libc/machine/nvptx/$(DEPDIR)/libc_a-a= bort.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@libc/machine/nvptx/$(DEPDIR)/libc_a-a= ssert.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@libc/machine/nvptx/$(DEPDIR)/libc_a-c= alloc.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@libc/machine/nvptx/$(DEPDIR)/libc_a-c= allocr.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@libc/machine/nvptx/$(DEPDIR)/libc_a-c= lock.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@libc/machine/nvptx/$(DEPDIR)/libc_a-e= xit.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@libc/machine/nvptx/$(DEPDIR)/libc_a-f= ree.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@libc/machine/nvptx/$(DEPDIR)/libc_a-m= alloc.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@libc/machine/nvptx/$(DEPDIR)/libc_a-m= allocr.Po@am__quote@ @@ -32486,6 +32487,20 @@ libc/machine/nds32/libc_a-abort.obj: libc/machine/= nds32/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/nds32/libc_a-abort.obj `if test -f 'libc/machine/nds32/abo= rt.c'; then $(CYGPATH_W) 'libc/machine/nds32/abort.c'; else $(CYGPATH_W) '$= (srcdir)/libc/machine/nds32/abort.c'; fi` =20 +libc/machine/nvptx/libc_a-_exit.o: libc/machine/nvptx/_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/nvptx/libc_a-_exit.o -MD -MP -MF libc/machine/nvptx/$(DEPDIR)/libc_a-_ex= it.Tpo -c -o libc/machine/nvptx/libc_a-_exit.o `test -f 'libc/machine/nvptx= /_exit.c' || echo '$(srcdir)/'`libc/machine/nvptx/_exit.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libc/machine/nvptx/$(DEPDIR)/libc= _a-_exit.Tpo libc/machine/nvptx/$(DEPDIR)/libc_a-_exit.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source=3D'libc/machine/nvptx/_= exit.c' object=3D'libc/machine/nvptx/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/nvptx/libc_a-_exit.o `test -f 'libc/machine/nvptx/_exit.c'= || echo '$(srcdir)/'`libc/machine/nvptx/_exit.c + +libc/machine/nvptx/libc_a-_exit.obj: libc/machine/nvptx/_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/nvptx/libc_a-_exit.obj -MD -MP -MF libc/machine/nvptx/$(DEPDIR)/libc_a-_= exit.Tpo -c -o libc/machine/nvptx/libc_a-_exit.obj `if test -f 'libc/machin= e/nvptx/_exit.c'; then $(CYGPATH_W) 'libc/machine/nvptx/_exit.c'; else $(CY= GPATH_W) '$(srcdir)/libc/machine/nvptx/_exit.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libc/machine/nvptx/$(DEPDIR)/libc= _a-_exit.Tpo libc/machine/nvptx/$(DEPDIR)/libc_a-_exit.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source=3D'libc/machine/nvptx/_= exit.c' object=3D'libc/machine/nvptx/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/nvptx/libc_a-_exit.obj `if test -f 'libc/machine/nvptx/_ex= it.c'; then $(CYGPATH_W) 'libc/machine/nvptx/_exit.c'; else $(CYGPATH_W) '$= (srcdir)/libc/machine/nvptx/_exit.c'; fi` + libc/machine/nvptx/libc_a-calloc.o: libc/machine/nvptx/calloc.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/nvptx/libc_a-calloc.o -MD -MP -MF libc/machine/nvptx/$(DEPDIR)/libc_a-ca= lloc.Tpo -c -o libc/machine/nvptx/libc_a-calloc.o `test -f 'libc/machine/nv= ptx/calloc.c' || echo '$(srcdir)/'`libc/machine/nvptx/calloc.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libc/machine/nvptx/$(DEPDIR)/libc= _a-calloc.Tpo libc/machine/nvptx/$(DEPDIR)/libc_a-calloc.Po @@ -32668,20 +32683,6 @@ libc/machine/nvptx/libc_a-abort.obj: libc/machine/= nvptx/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/nvptx/libc_a-abort.obj `if test -f 'libc/machine/nvptx/abo= rt.c'; then $(CYGPATH_W) 'libc/machine/nvptx/abort.c'; else $(CYGPATH_W) '$= (srcdir)/libc/machine/nvptx/abort.c'; fi` =20 -libc/machine/nvptx/libc_a-exit.o: libc/machine/nvptx/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/nvptx/libc_a-exit.o -MD -MP -MF libc/machine/nvptx/$(DEPDIR)/libc_a-exit= .Tpo -c -o libc/machine/nvptx/libc_a-exit.o `test -f 'libc/machine/nvptx/ex= it.c' || echo '$(srcdir)/'`libc/machine/nvptx/exit.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libc/machine/nvptx/$(DEPDIR)/libc= _a-exit.Tpo libc/machine/nvptx/$(DEPDIR)/libc_a-exit.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source=3D'libc/machine/nvptx/e= xit.c' object=3D'libc/machine/nvptx/libc_a-exit.o' libtool=3Dno @AMDEPBACKS= LASH@ -@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/nvptx/libc_a-exit.o `test -f 'libc/machine/nvptx/exit.c' |= | echo '$(srcdir)/'`libc/machine/nvptx/exit.c - -libc/machine/nvptx/libc_a-exit.obj: libc/machine/nvptx/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/nvptx/libc_a-exit.obj -MD -MP -MF libc/machine/nvptx/$(DEPDIR)/libc_a-ex= it.Tpo -c -o libc/machine/nvptx/libc_a-exit.obj `if test -f 'libc/machine/n= vptx/exit.c'; then $(CYGPATH_W) 'libc/machine/nvptx/exit.c'; else $(CYGPATH= _W) '$(srcdir)/libc/machine/nvptx/exit.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libc/machine/nvptx/$(DEPDIR)/libc= _a-exit.Tpo libc/machine/nvptx/$(DEPDIR)/libc_a-exit.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source=3D'libc/machine/nvptx/e= xit.c' object=3D'libc/machine/nvptx/libc_a-exit.obj' 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/nvptx/libc_a-exit.obj `if test -f 'libc/machine/nvptx/exit= .c'; then $(CYGPATH_W) 'libc/machine/nvptx/exit.c'; else $(CYGPATH_W) '$(sr= cdir)/libc/machine/nvptx/exit.c'; fi` - libc/machine/nvptx/libc_a-misc.o: libc/machine/nvptx/misc.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/nvptx/libc_a-misc.o -MD -MP -MF libc/machine/nvptx/$(DEPDIR)/libc_a-misc= .Tpo -c -o libc/machine/nvptx/libc_a-misc.o `test -f 'libc/machine/nvptx/mi= sc.c' || echo '$(srcdir)/'`libc/machine/nvptx/misc.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libc/machine/nvptx/$(DEPDIR)/libc= _a-misc.Tpo libc/machine/nvptx/$(DEPDIR)/libc_a-misc.Po diff --git a/newlib/libc/machine/nvptx/Makefile.inc b/newlib/libc/machine/n= vptx/Makefile.inc index c4c3a5cb3..9dc50dc34 100644 --- a/newlib/libc/machine/nvptx/Makefile.inc +++ b/newlib/libc/machine/nvptx/Makefile.inc @@ -1,4 +1,5 @@ libc_a_SOURCES +=3D \ + %D%/_exit.c \ %D%/calloc.c %D%/callocr.c %D%/malloc.c %D%/mallocr.c %D%/realloc.c %D%/r= eallocr.c \ %D%/free.c %D%/write.c %D%/assert.c %D%/puts.c %D%/putchar.c %D%/printf.c= %D%/abort.c \ - %D%/exit.c %D%/misc.c %D%/clock.c + %D%/misc.c %D%/clock.c diff --git a/newlib/libc/machine/nvptx/exit.c b/newlib/libc/machine/nvptx/_= exit.c similarity index 96% rename from newlib/libc/machine/nvptx/exit.c rename to newlib/libc/machine/nvptx/_exit.c index de82bf384..ae434c930 100644 --- a/newlib/libc/machine/nvptx/exit.c +++ b/newlib/libc/machine/nvptx/_exit.c @@ -13,7 +13,7 @@ * they apply. */ =20 -#include +#include =20 /* Sadly, PTX doesn't support weak declarations, only weak definitions. Weakly define it here in case we're not using crt0 @@ -23,7 +23,7 @@ int *__attribute((weak)) __exitval_ptr; =20 void __attribute__((noreturn)) -exit (int status) +_exit (int status) { if (__exitval_ptr) *__exitval_ptr =3D status;