diff mbox

package/opentyrian: fix build on bfin

Message ID 1424390438-2398-1-git-send-email-romain.naour@openwide.fr
State Accepted
Headers show

Commit Message

Romain Naour Feb. 20, 2015, midnight UTC
There is a conflict with the _strchrnul symbole from mingw_fixes.c
and the one from uClibc.

Add a guard around strchrnul function for unix systems.

Fixes:
http://autobuild.buildroot.net/results/a08/a085fb55269971e3c7b8ae8c167e7330c3c042a5/

Signed-off-by: Romain Naour <romain.naour@openwide.fr>
---
 ...-don-t-redefine-strchrnul-for-unix-system.patch | 42 ++++++++++++++++++++++
 1 file changed, 42 insertions(+)
 create mode 100644 package/opentyrian/0001-mingw_fixes-don-t-redefine-strchrnul-for-unix-system.patch

Comments

Thomas Petazzoni Feb. 20, 2015, 8:24 a.m. UTC | #1
Dear Romain Naour,

On Fri, 20 Feb 2015 01:00:38 +0100, Romain Naour wrote:
> There is a conflict with the _strchrnul symbole from mingw_fixes.c
> and the one from uClibc.
> 
> Add a guard around strchrnul function for unix systems.
> 
> Fixes:
> http://autobuild.buildroot.net/results/a08/a085fb55269971e3c7b8ae8c167e7330c3c042a5/
> 
> Signed-off-by: Romain Naour <romain.naour@openwide.fr>
> ---
>  ...-don-t-redefine-strchrnul-for-unix-system.patch | 42 ++++++++++++++++++++++
>  1 file changed, 42 insertions(+)
>  create mode 100644 package/opentyrian/0001-mingw_fixes-don-t-redefine-strchrnul-for-unix-system.patch

Applied to master, thanks.

Though one may wonder why this mingw_fixes.c file gets compiled at all
on Unix platforms. Maybe this is what should be fixed instead :)

Seems like Opentyrian is still active upstream:
https://code.google.com/p/opentyrian/source/list.

Best regards,

Thomas
Julien Boibessot Feb. 24, 2015, 8:24 a.m. UTC | #2
Dear Thomas,

On 02/20/2015 09:24 AM, Thomas Petazzoni wrote:
> Dear Romain Naour,
>
> On Fri, 20 Feb 2015 01:00:38 +0100, Romain Naour wrote:
>> There is a conflict with the _strchrnul symbole from mingw_fixes.c
>> and the one from uClibc.
>>
>> Add a guard around strchrnul function for unix systems.
>>
>> Fixes:
>> http://autobuild.buildroot.net/results/a08/a085fb55269971e3c7b8ae8c167e7330c3c042a5/
>>
>> Signed-off-by: Romain Naour <romain.naour@openwide.fr>
>> ---
>>  ...-don-t-redefine-strchrnul-for-unix-system.patch | 42 ++++++++++++++++++++++
>>  1 file changed, 42 insertions(+)
>>  create mode 100644 package/opentyrian/0001-mingw_fixes-don-t-redefine-strchrnul-for-unix-system.patch
> Applied to master, thanks.
>
> Though one may wonder why this mingw_fixes.c file gets compiled at all
> on Unix platforms. Maybe this is what should be fixed instead :)
>
> Seems like Opentyrian is still active upstream:
> https://code.google.com/p/opentyrian/source/list.

I reported the problem to Tyrian upstream, quite at the same time Romain
was fixing it in BR and we missed each other.
They choose a different way to fix it and I will send a patch ASAP to
bump Tyrian to latest version (if you prefer not keeping patches in BR).

Best regards,
Julien
diff mbox

Patch

diff --git a/package/opentyrian/0001-mingw_fixes-don-t-redefine-strchrnul-for-unix-system.patch b/package/opentyrian/0001-mingw_fixes-don-t-redefine-strchrnul-for-unix-system.patch
new file mode 100644
index 0000000..e20ab00
--- /dev/null
+++ b/package/opentyrian/0001-mingw_fixes-don-t-redefine-strchrnul-for-unix-system.patch
@@ -0,0 +1,42 @@ 
+From 1c64c2d103c9356750a3d3b559068329bb0c7e3c Mon Sep 17 00:00:00 2001
+From: Romain Naour <romain.naour@openwide.fr>
+Date: Fri, 20 Feb 2015 00:29:47 +0100
+Subject: [PATCH] mingw_fixes: don't redefine strchrnul for unix system
+
+On bfin architecture all symbols are prefixed with a underscore '_', hence a
+conflict with the _strchrnul symbole from mingw_fixes.c and the one from uClibc.
+
+Path/to/sysroot/usr/lib/libc.a(strchrnul.o): In function `*___GI_strchrnul':
+Path/to/uClibc/libc/string/generic/strchrnul.c:33: multiple definition of `_strchrnul'
+obj/mingw_fixes.o:src/mingw_fixes.c:(.text+0x0): first defined here
+
+Since mingw_fixes.c is intended for WIN32 system, add a guard around strchrnul function
+and use the one defined from string.h.
+
+Fixes:
+http://autobuild.buildroot.net/results/a08/a085fb55269971e3c7b8ae8c167e7330c3c042a5/
+
+Signed-off-by: Romain Naour <romain.naour@openwide.fr>
+---
+ src/mingw_fixes.c | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/src/mingw_fixes.c b/src/mingw_fixes.c
+index d734438..2f4069e 100644
+--- a/src/mingw_fixes.c
++++ b/src/mingw_fixes.c
+@@ -18,9 +18,11 @@
+  */
+ #include "mingw_fixes.h"
+ 
++#ifndef TARGET_UNIX
+ char *strchrnul( const char *s, int c )
+ {
+ 	for (; *s != c && *s != '\0'; ++s)
+ 		;
+ 	return (char *)s;
+ }
++#endif
+-- 
+1.9.3
+