[CRIU] [V2 4/6] Android NDK: __errno is already defined as a function
Dmitry Safonov
0x7f454c46 at gmail.com
Tue Apr 2 17:45:14 MSK 2019
On Tue, 2 Apr 2019 at 03:44, <ning.a.zhang at intel.com> wrote:
>
> From: Zhang Ning <ning.a.zhang at intel.com>
>
> criu/log.c:356:16: error: called object type 'int' is not a function or function pointer
> int __errno = errno;
> ^~~~~
> /root/android-ndk/toolchains/llvm/prebuilt/linux-x86_64//sysroot/usr/include/errno.h:43:24: note: expanded from macro 'errno'
> ~~~~~~~^
> criu/log.c:391:2: error: called object type 'int' is not a function or function pointer
> errno = __errno;
> ^~~~~
> /root/android-ndk/toolchains/llvm/prebuilt/linux-x86_64//sysroot/usr/include/errno.h:43:24: note: expanded from macro 'errno'
>
> in Android NDK's errno.h:
>
> 42: int* __errno(void) __attribute_const__;
> 43: #define errno (*__errno())
>
> so rename __errno to _errno to pass build
>
> Cc: Chen Hu <hu1.chen at intel.com>
> Signed-off-by: Zhang Ning <ning.a.zhang at intel.com>
> Reviewed-by: Cyrill Gorcunov <gorcunov at gmail.com>
Thanks for the improvement to the message - now we know further
why we shouldn't introduce a new __errno variable and have
a reference on the patch to describe why.
Reviewed-by: Dmitry Safonov <0x7f454c46 at gmail.com>
> ---
> criu/log.c | 4 ++--
> test/zdtm/lib/msg.c | 4 ++--
> 2 files changed, 4 insertions(+), 4 deletions(-)
>
> diff --git a/criu/log.c b/criu/log.c
> index 060d1ee6..edd2511c 100644
> --- a/criu/log.c
> +++ b/criu/log.c
> @@ -353,7 +353,7 @@ static void early_vprint(const char *format, unsigned int loglevel, va_list para
> void vprint_on_level(unsigned int loglevel, const char *format, va_list params)
> {
> int fd, size, ret, off = 0;
> - int __errno = errno;
> + int _errno = errno;
>
> if (unlikely(loglevel == LOG_MSG)) {
> fd = STDOUT_FILENO;
> @@ -388,7 +388,7 @@ void vprint_on_level(unsigned int loglevel, const char *format, va_list params)
> if (loglevel == LOG_ERROR)
> log_note_err(buffer + buf_off);
>
> - errno = __errno;
> + errno = _errno;
> }
>
> void print_on_level(unsigned int loglevel, const char *format, ...)
> diff --git a/test/zdtm/lib/msg.c b/test/zdtm/lib/msg.c
> index 04cd4016..fe099407 100644
> --- a/test/zdtm/lib/msg.c
> +++ b/test/zdtm/lib/msg.c
> @@ -40,7 +40,7 @@ void test_msg(const char *format, ...)
> va_list arg;
> int off = 0;
> char buf[TEST_MSG_BUFFER_SIZE];
> - int __errno = errno;
> + int _errno = errno;
> struct timeval tv;
> struct tm *tm;
>
> @@ -65,5 +65,5 @@ skip:
> va_end(arg);
>
> write(2, buf, off);
> - errno = __errno;
> + errno = _errno;
> }
> --
> 2.20.1
>
> _______________________________________________
> CRIU mailing list
> CRIU at openvz.org
> https://lists.openvz.org/mailman/listinfo/criu
More information about the CRIU
mailing list