[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: sys_un: New module.
From: |
Bruno Haible |
Subject: |
Re: sys_un: New module. |
Date: |
Fri, 26 Jul 2024 11:19:50 +0200 |
Hi Collin,
> I had assumed GNULIB_NAMESPACE was supposed to be defined in C++ tests.
> Is that incorrect? I don't know C++ namespaces much.
The GNULIB_NAMESPACE is an optional setting, see
https://www.gnu.org/software/gnulib/manual/html_node/A-C_002b_002b-namespace-for-gnulib.html
Since it is optional, some unit tests turn it on while some other unit tests
don't.
Generally, working in C++ without GNULIB_NAMESPACE is more tricky,
because the '#define foo rpl_foo' replacements cause trouble each time
'foo' occurs in another context.
> Here is some expirementation I did. Using the following testdir:
>
> $ gnulib-tool --create-testdir --with-all-tests --dir testdir sys_un
> memchr
>
> Using clang and clang++ on master:
>
> # clang version 18.1.6 (Fedora 18.1.6-3.fc40)
> $ ./configure CC='clang' CXX='clang++'
> $ make
> [...]
> In file included from test-sys_un-c++.cc:24:
> In file included from /usr/include/sys/un.h:38:
> ../gllib/string.h:809:20: error: declaration of 'memchr' has a different
> language linkage
> 809 | _GL_CXXALIASWARN1 (memchr, void *,
> | ^
> /usr/include/string.h:94:1: note: previous definition is here
> 94 | memchr (void *__s, int __c, size_t __n) __THROW
> | ^
> In file included from test-sys_un-c++.cc:24:
> In file included from /usr/include/sys/un.h:38:
> ../gllib/string.h:812:20: error: declaration of 'memchr' has a different
> language linkage
> 812 | _GL_CXXALIASWARN1 (memchr, void const *,
> | ^
> /usr/include/string.h:100:1: note: previous definition is here
> 100 | memchr (const void *__s, int __c, size_t __n) __THROW
> | ^
> 2 errors generated.
> make[4]: *** [Makefile:1958: test-sys_un-c++.o] Error 1
> $ echo $?
> 2
>
> After removing the GNULIB_NAMESPACE definition in
> gltests/test-sys_un-c++.cc:
>
> # clang version 18.1.6 (Fedora 18.1.6-3.fc40)
> $ ./configure CC='clang' CXX='clang++'
> $ make
> [...]
> $ echo $?
> 0
Ah, interesting...
Bruno
- sys_un: New module., Collin Funk, 2024/07/24
- Re: sys_un: New module., Bruno Haible, 2024/07/25
- Re: sys_un: New module., Bruno Haible, 2024/07/25
- Re: sys_un: New module., Collin Funk, 2024/07/25
- Re: sys_un: New module., Bruno Haible, 2024/07/25
- Re: sys_un: New module., Collin Funk, 2024/07/25
- Re: sys_un: New module., Collin Funk, 2024/07/25
- Re: sys_un: New module., Bruno Haible, 2024/07/26
- Re: sys_un: New module., Bruno Haible, 2024/07/26
- Re: sys_un: New module., Collin Funk, 2024/07/26
- Re: sys_un: New module.,
Bruno Haible <=