>From 24446f2dda800d854142d5bab5c980e6fa3326d4 Mon Sep 17 00:00:00 2001 From: Bruno Haible Date: Sun, 31 Jan 2021 12:42:47 +0100 Subject: [PATCH 6/6] relocatable-prog-wrapper: Update after recent changes. * lib/relocwrapper.c: Update comments. * modules/relocatable-prog-wrapper (Files): Add lib/scratch_buffer.h, lib/malloc/scratch_buffer*, lib/malloc.c, lib/realloc.c, lib/free.c, lib/mempcpy.c, lib/rawmemchr.c, m4/lstat.m4. Remove lib/lstat.c. (Depends-on): Add c99, eloop-threshold, fcntl-h, idx, intprops, libc-config, stddef, sys_stat. Remove alloca-opt. (configure.ac): Invoke gl_FUNC_MALLOC_POSIX, gl_FUNC_REALLOC_POSIX, gl_FUNC_FREE, gl_FUNC_MEMPCPY, gl_FUNC_RAWMEMCHR. * lib/canonicalize-lgpl.c (memmove): Undefine in the relocwrapper. * build-aux/install-reloc (func_create_wrapper): Compile also malloc/scratch_buffer_*.c, malloc.c, realloc.c, free.c, mempcpy.c, rawmemchr.c. Don't compile lstat.c. --- ChangeLog | 14 ++++++++++++++ build-aux/install-reloc | 19 +++++++++++++++++-- lib/canonicalize-lgpl.c | 6 ++++++ lib/relocwrapper.c | 20 ++++++++++++++++++-- modules/relocatable-prog-wrapper | 31 +++++++++++++++++++++++++++---- 5 files changed, 82 insertions(+), 8 deletions(-) diff --git a/ChangeLog b/ChangeLog index 3af98a9..2bf4088 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,19 @@ 2021-01-31 Bruno Haible + relocatable-prog-wrapper: Update after recent changes. + * lib/relocwrapper.c: Update comments. + * modules/relocatable-prog-wrapper (Files): Add lib/scratch_buffer.h, + lib/malloc/scratch_buffer*, lib/malloc.c, lib/realloc.c, lib/free.c, + lib/mempcpy.c, lib/rawmemchr.c, m4/lstat.m4. Remove lib/lstat.c. + (Depends-on): Add c99, eloop-threshold, fcntl-h, idx, intprops, + libc-config, stddef, sys_stat. Remove alloca-opt. + (configure.ac): Invoke gl_FUNC_MALLOC_POSIX, gl_FUNC_REALLOC_POSIX, + gl_FUNC_FREE, gl_FUNC_MEMPCPY, gl_FUNC_RAWMEMCHR. + * lib/canonicalize-lgpl.c (memmove): Undefine in the relocwrapper. + * build-aux/install-reloc (func_create_wrapper): Compile also + malloc/scratch_buffer_*.c, malloc.c, realloc.c, free.c, mempcpy.c, + rawmemchr.c. Don't compile lstat.c. + Make it possible to compile rawmemchr.c separately, unconditionally. * lib/rawmemchr.c: Don't define rawmemchr if not needed. diff --git a/build-aux/install-reloc b/build-aux/install-reloc index bb43e5d..e74f02d 100755 --- a/build-aux/install-reloc +++ b/build-aux/install-reloc @@ -237,8 +237,16 @@ func_create_wrapper () "$srcdir"/readlink.c \ "$srcdir"/stat.c \ "$srcdir"/canonicalize-lgpl.c \ + "$srcdir"/malloc/scratch_buffer_dupfree.c \ + "$srcdir"/malloc/scratch_buffer_grow.c \ + "$srcdir"/malloc/scratch_buffer_grow_preserve.c \ + "$srcdir"/malloc/scratch_buffer_set_array_size.c \ + "$srcdir"/malloc.c \ + "$srcdir"/realloc.c \ + "$srcdir"/free.c \ + "$srcdir"/mempcpy.c \ + "$srcdir"/rawmemchr.c \ "$srcdir"/malloca.c \ - "$srcdir"/lstat.c \ "$srcdir"/relocatable.c \ "$srcdir"/setenv.c \ "$srcdir"/c-ctype.c \ @@ -255,8 +263,15 @@ func_create_wrapper () readlink.o \ stat.o \ canonicalize-lgpl.o \ + scratch_buffer_dupfree.o \ + scratch_buffer_grow.o \ + scratch_buffer_grow_preserve.o \ + scratch_buffer_set_array_size.o \ + malloc.o \ + realloc.o \ + mempcpy.o \ + rawmemchr.o \ malloca.o \ - lstat.o \ relocatable.o \ setenv.o \ c-ctype.o diff --git a/lib/canonicalize-lgpl.c b/lib/canonicalize-lgpl.c index 5a280c6..c6fef17 100644 --- a/lib/canonicalize-lgpl.c +++ b/lib/canonicalize-lgpl.c @@ -75,6 +75,12 @@ # define __rawmemchr rawmemchr # define __readlink readlink # define __stat stat +# if IN_RELOCWRAPPER + /* When building the relocatable program wrapper, use the system's memmove + function, not the gnulib override, otherwise we would get a link error. + */ +# undef memmove +# endif #endif /* Suppress bogus GCC -Wmaybe-uninitialized warnings. */ diff --git a/lib/relocwrapper.c b/lib/relocwrapper.c index 0624bd9..771da89 100644 --- a/lib/relocwrapper.c +++ b/lib/relocwrapper.c @@ -29,10 +29,26 @@ -> readlink -> stat -> canonicalize-lgpl + -> libc-config + -> errno + -> fcntl-h + -> stdbool + -> sys_stat + -> unistd + -> eloop-threshold -> filename - -> malloca - -> lstat + -> idx + -> intprops + -> scratch_buffer + -> malloc-posix + -> realloc-posix + -> free-posix + -> pathmax + -> mempcpy + -> rawmemchr -> readlink + -> stat + -> double-slash-root -> relocatable -> setenv -> malloca diff --git a/modules/relocatable-prog-wrapper b/modules/relocatable-prog-wrapper index f97fdae..da9ad30 100644 --- a/modules/relocatable-prog-wrapper +++ b/modules/relocatable-prog-wrapper @@ -17,9 +17,19 @@ lib/allocator.c lib/readlink.c lib/stat.c lib/canonicalize-lgpl.c +lib/scratch_buffer.h +lib/malloc/scratch_buffer.h +lib/malloc/scratch_buffer_dupfree.c +lib/malloc/scratch_buffer_grow.c +lib/malloc/scratch_buffer_grow_preserve.c +lib/malloc/scratch_buffer_set_array_size.c +lib/malloc.c +lib/realloc.c +lib/free.c +lib/mempcpy.c +lib/rawmemchr.c lib/malloca.h lib/malloca.c -lib/lstat.c lib/relocatable.h lib/relocatable.c lib/setenv.c @@ -28,6 +38,7 @@ lib/c-ctype.c m4/largefile.m4 m4/malloca.m4 m4/canonicalize.m4 +m4/lstat.m4 m4/eealloc.m4 m4/environ.m4 m4/readlink.m4 @@ -35,19 +46,26 @@ m4/relocatable-lib.m4 m4/setenv.m4 Depends-on: -alloca-opt +c99 double-slash-root +eloop-threshold +environ errno +fcntl-h filename +idx +intprops largefile +libc-config pathmax ssize_t stdbool +stddef stdint stdlib -unistd -environ string +sys_stat +unistd verify xalloc-oversized @@ -58,6 +76,11 @@ configure.ac: AC_REQUIRE([AC_C_RESTRICT]) gl_FUNC_READLINK_SEPARATE gl_CANONICALIZE_LGPL_SEPARATE +gl_FUNC_MALLOC_POSIX +gl_FUNC_REALLOC_POSIX +gl_FUNC_FREE +gl_FUNC_MEMPCPY +gl_FUNC_RAWMEMCHR gl_MALLOCA gl_RELOCATABLE_LIBRARY gl_FUNC_SETENV_SEPARATE -- 2.7.4