Hi! On 2022-12-20T09:03:51+0100, I wrote: > Minor change in the attached > "nvptx: Support global constructors/destructors via 'collect2'": for > 'atexit', add '#include <stdlib.h>' to 'libgcc/config/nvptx/crt0.c'.
Turns out, it's not that easy. ;-) Pushed to devel/omp/gcc-12 branch commit d90a8a5685c8bd3657892feac01739fe87a457a5 "Make 'libgcc/config/nvptx/crt0.c' build '--without-headers'", see attached. Please consider that one 'fixup'ed into the GCC master branch submission. Grüße Thomas > --- a/libgcc/config/nvptx/crt0.c > +++ b/libgcc/config/nvptx/crt0.c > @@ -19,6 +19,9 @@ > see the files COPYING3 and COPYING.RUNTIME respectively. If not, see > <http://www.gnu.org/licenses/>. */ > > +#include <stdlib.h> > +#include "gbl-ctors.h" > + > int *__exitval_ptr; > > extern void __attribute__((noreturn)) exit (int status); > @@ -47,5 +50,8 @@ __main (int *rval_ptr, int argc, void **argv) > __nvptx_stacks[0] = stack + sizeof stack; > __nvptx_uni[0] = 0; > > + __do_global_ctors (); > + atexit (__do_global_dtors); > + > exit (main (argc, argv)); > } ----------------- Siemens Electronic Design Automation GmbH; Anschrift: Arnulfstraße 201, 80634 München; Gesellschaft mit beschränkter Haftung; Geschäftsführer: Thomas Heurung, Frank Thürauf; Sitz der Gesellschaft: München; Registergericht München, HRB 106955
>From d90a8a5685c8bd3657892feac01739fe87a457a5 Mon Sep 17 00:00:00 2001 From: Thomas Schwinge <tho...@codesourcery.com> Date: Tue, 24 Jan 2023 09:49:34 +0100 Subject: [PATCH] Make 'libgcc/config/nvptx/crt0.c' build '--without-headers' ..., where it currently fails: [...]/libgcc/config/nvptx/crt0.c:22:10: fatal error: stdlib.h: No such file or directory 22 | #include <stdlib.h> | ^~~~~~~~~~ Fix-up for "nvptx: Support global constructors/destructors via 'collect2'". libgcc/ * config/nvptx/crt0.c [!HAVE_STDLIB_H]: Don't '#include <stdlib.h>'. (atexit): Prototype. --- libgcc/ChangeLog.omp | 5 +++++ libgcc/config/nvptx/crt0.c | 7 ++++++- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/libgcc/ChangeLog.omp b/libgcc/ChangeLog.omp index c46f49bf5b7..cf509a70d61 100644 --- a/libgcc/ChangeLog.omp +++ b/libgcc/ChangeLog.omp @@ -1,3 +1,8 @@ +2023-01-24 Thomas Schwinge <tho...@codesourcery.com> + + * config/nvptx/crt0.c [!HAVE_STDLIB_H]: Don't '#include <stdlib.h>'. + (atexit): Prototype. + 2023-01-20 Thomas Schwinge <tho...@codesourcery.com> Andrew Stubbs <a...@codesourcery.com> diff --git a/libgcc/config/nvptx/crt0.c b/libgcc/config/nvptx/crt0.c index 860e2bfacad..02648bef84b 100644 --- a/libgcc/config/nvptx/crt0.c +++ b/libgcc/config/nvptx/crt0.c @@ -19,11 +19,16 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see <http://www.gnu.org/licenses/>. */ -#include <stdlib.h> +#include "auto-target.h" + +#ifdef HAVE_STDLIB_H +# include <stdlib.h> +#endif #include "gbl-ctors.h" int *__exitval_ptr; +extern int atexit (void (*function) (void)); extern void __attribute__((noreturn)) exit (int status); extern int main (int, void **); -- 2.25.1