uclibc(1.0.12) mq_send return value and errno issue

Submitted by Waldemar Brodkorb on Nov. 24, 2016, 3:27 a.m.

Details

Message ID 20161124032727.GC27313@waldemar-brodkorb.de
State New
Headers show

Commit Message

Waldemar Brodkorb Nov. 24, 2016, 3:27 a.m.
Hi Frank,
Frank Liu wrote,

> Please see the attached sample code. 
> 
> If I  turn READERS and WRITERS to 0, the test works fine. 
> 
> Adding another thread in the process by setting a non-zero number to either READERS or WRITER, the test program crashes due to the assertion at line 99. 

I think I found the reason for the problem.

Try attached patch,

best regards
 Waldemar

Comments

Frank Liu Nov. 25, 2016, 3:52 a.m.
Hi Waldemar,

Thanks for the patchset. I can confirm it fixed my issue.

Regards
Frank

-----Original Message-----
From: Waldemar Brodkorb [mailto:wbx@uclibc-ng.org] 
Sent: Thursday, November 24, 2016 2:27 PM
To: Frank Liu
Cc: Waldemar Brodkorb; 'uclibc@uclibc.org'; Dushara Jayasinghe (dushara@successful.com.au); devel@uclibc-ng.org
Subject: Re: uclibc(1.0.12) mq_send return value and errno issue

Hi Frank,
Frank Liu wrote,

> Please see the attached sample code. 
> 
> If I  turn READERS and WRITERS to 0, the test works fine. 
> 
> Adding another thread in the process by setting a non-zero number to either READERS or WRITER, the test program crashes due to the assertion at line 99. 

I think I found the reason for the problem.

Try attached patch,

best regards
 Waldemar

Patch hide | download patch | download mbox

From 650e6cbd0fccf8d20efc0844582934eae8da1f58 Mon Sep 17 00:00:00 2001
From: Waldemar Brodkorb <wbx@openadk.org>
Date: Thu, 24 Nov 2016 04:14:20 +0100
Subject: [PATCH 1/2] arm: use common ret_ERRVAL

Signed-off-by: Waldemar Brodkorb <wbx@openadk.org>
---
 libc/sysdeps/linux/arm/sysdep.h | 3 ---
 1 file changed, 3 deletions(-)

diff --git a/libc/sysdeps/linux/arm/sysdep.h b/libc/sysdeps/linux/arm/sysdep.h
index 80bf9ec..8813f8e 100644
--- a/libc/sysdeps/linux/arm/sysdep.h
+++ b/libc/sysdeps/linux/arm/sysdep.h
@@ -137,9 +137,6 @@ 
 #define	PSEUDO_END_ERRVAL(name) \
   END (name)
 
-#undef ret_ERRVAL
-#define ret_ERRVAL PSEUDO_RET_NOERRNO
-
 #if defined NOT_IN_libc
 # define SYSCALL_ERROR __local_syscall_error
 #  define SYSCALL_ERROR_HANDLER					\
-- 
2.1.4