From: Bruno Haible <bruno@clisp.org>
Date: Sun, 31 Jan 2021 11:42:47 +0000 (+0100)
Subject: relocatable-prog-wrapper: Update after recent changes.
X-Git-Tag: v1.0~3108
X-Git-Url: https://gitweb.git.savannah.gnu.org/gitweb/?a=commitdiff_plain;h=24446f2dda800d854142d5bab5c980e6fa3326d4;p=gnulib.git

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.
---

diff --git a/ChangeLog b/ChangeLog
index 3af98a992f..2bf40888b8 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,19 @@
 2021-01-31  Bruno Haible  <bruno@clisp.org>
 
+	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 bb43e5df76..e74f02d946 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 5a280c6fc1..c6fef174c4 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 0624bd9e87..771da8905d 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 f97fdae656..da9ad30c83 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