summaryrefslogtreecommitdiff
path: root/gnulib/import/stdlib.in.h
diff options
context:
space:
mode:
authorSimon Marchi <simon.marchi@efficios.com>2022-04-29 08:39:24 -0400
committerSimon Marchi <simon.marchi@efficios.com>2022-05-02 10:54:19 -0400
commitb318629fe742b2d9595eee1a2c35e81149ba33b2 (patch)
tree85d50305df309bea98f5b6065e42721bf709c039 /gnulib/import/stdlib.in.h
parent73a7911e8e5f77145f93cfc5f6596aead79f6fee (diff)
downloadbinutils-gdb-b318629fe742b2d9595eee1a2c35e81149ba33b2.tar.gz
gnulib: update to bd11400942d6
Update the gnulib import to fixes these issues: - GDB build with clang + glibc < 2.33. https://git.savannah.gnu.org/cgit/gnulib.git/commit/?id=d6a07b4dc21b3118727743142c678858df442853 https://lists.gnu.org/archive/html/bug-gnulib/2022-04/msg00072.html With glibc < 2.33, gnulib (since relatively recently) enables a replacement for free (see gnulib/import/m4/free.m4). In that path, clang shows this error: make[2]: Entering directory '/home/smarchi/build/binutils-gdb-clang/gdbsupport' CXX agent.o In file included from /home/smarchi/src/binutils-gdb/gdbsupport/agent.cc:20: In file included from /home/smarchi/src/binutils-gdb/gdbsupport/common-defs.h:95: ../gnulib/import/string.h:636:19: error: exception specification in declaration does not match previous declaration _GL_EXTERN_C void free (void *) throw (); ^ ../gnulib/import/stdlib.h:737:17: note: expanded from macro 'free' # define free rpl_free ^ ../gnulib/import/stdlib.h:739:1: note: previous declaration is here _GL_FUNCDECL_RPL (free, void, (void *ptr)); ^ ../gnulib/import/sys/select.h:251:23: note: expanded from macro '_GL_FUNCDECL_RPL' _GL_FUNCDECL_RPL_1 (rpl_##func, rettype, parameters_and_attributes) ^ <scratch space>:139:1: note: expanded from here rpl_free ^ The gnulib commit mentioned fixes the exception specification of `free`. - GDB build on RHEL 7: CC libgnu_a-openat-proc.o In file included from /usr/include/string.h:633, from ./string.h:41, from ../../../binutils-gdb/gnulib/import/openat-proc.c:30: ./string.h:1105:1: error: expected identifier or '(' before '__extension__' 1105 | _GL_FUNCDECL_SYS (strndup, char *, | ^~~~~~~~~~~~~~~~ https://git.savannah.gnu.org/cgit/gnulib.git/commit/?id=84863a1c4dc8cca8fb0f6f670f67779cdd2d543b https://lists.gnu.org/archive/html/bug-gnulib/2022-04/msg00075.html Change-Id: Ibd51302feece6f385d0c53e0d08921b5d95e2776
Diffstat (limited to 'gnulib/import/stdlib.in.h')
-rw-r--r--gnulib/import/stdlib.in.h4
1 files changed, 4 insertions, 0 deletions
diff --git a/gnulib/import/stdlib.in.h b/gnulib/import/stdlib.in.h
index d52c2f79638..a86643c3ca3 100644
--- a/gnulib/import/stdlib.in.h
+++ b/gnulib/import/stdlib.in.h
@@ -184,7 +184,11 @@ _GL_WARN_ON_USE (_Exit, "_Exit is unportable - "
# undef free
# define free rpl_free
# endif
+# if defined __cplusplus && (__GLIBC__ + (__GLIBC_MINOR__ >= 14) > 2)
+_GL_FUNCDECL_RPL (free, void, (void *ptr) throw ());
+# else
_GL_FUNCDECL_RPL (free, void, (void *ptr));
+# endif
_GL_CXXALIAS_RPL (free, void, (void *ptr));
# else
_GL_CXXALIAS_SYS (free, void, (void *ptr));