diff mbox

package/mono: fixing multiple definition of vasprintf

Message ID 1438775932-24858-1-git-send-email-angelo.compagnucci@gmail.com
State Accepted
Headers show

Commit Message

Angelo Compagnucci Aug. 5, 2015, 11:58 a.m. UTC
This patch fixes the detection of an available
vasprintf function, this way the internal vasprintf
function is not compiled.

Fixes http://autobuild.buildroot.net/results/3ab2b8667e5657bf07f55dd04dd857167ab4c62a/
      http://autobuild.buildroot.net/results/3ab2b8667e5657bf07f55dd04dd857167ab4c62a/ 

Signed-off-by: Angelo Compagnucci <angelo.compagnucci@gmail.com>
---

This patch was submitted upstream and merged here:
https://github.com/mono/mono/commit/40c171799b671718969ee28a02f92884d7fd181e

I submitted here to fix the bug till a new version will be released.

 ...4-fixing-initialization-of-have-vasprintf.patch | 23 ++++++++++++++++++++++
 1 file changed, 23 insertions(+)
 create mode 100644 package/mono/0004-fixing-initialization-of-have-vasprintf.patch

Comments

Thomas Petazzoni Aug. 6, 2015, 6:34 a.m. UTC | #1
Dear Angelo Compagnucci,

On Wed,  5 Aug 2015 13:58:52 +0200, Angelo Compagnucci wrote:
> This patch fixes the detection of an available
> vasprintf function, this way the internal vasprintf
> function is not compiled.
> 
> Fixes http://autobuild.buildroot.net/results/3ab2b8667e5657bf07f55dd04dd857167ab4c62a/
>       http://autobuild.buildroot.net/results/3ab2b8667e5657bf07f55dd04dd857167ab4c62a/ 
> 
> Signed-off-by: Angelo Compagnucci <angelo.compagnucci@gmail.com>

I've applied, but...

> ---
> 
> This patch was submitted upstream and merged here:
> https://github.com/mono/mono/commit/40c171799b671718969ee28a02f92884d7fd181e

... this should have been mentioned in the patch itself.

And your SoB was missing in the patch itself.

> +diff --git a/eglib/configure.ac b/eglib/configure.ac
> +index 5281419..4bf91e5 100644
> +--- a/eglib/configure.ac
> ++++ b/eglib/configure.ac
> +@@ -135,6 +135,7 @@ AC_CHECK_SIZEOF(void *)
> + AC_CHECK_SIZEOF(long)
> + AC_CHECK_SIZEOF(long long)
> + AC_CHECK_FUNCS(strlcpy stpcpy strtok_r rewinddir vasprintf)
> ++AC_CHECK_FUNC(vasprintf, have_vasprintf=yes)

And this is clearly not a very clean solution. The AC_CHECK_FUNCS()
macro already checks for vasprintf availability, so with this new line,
you're checking two times for the same function.

And AC_CHECK_FUNCS already defines ac_cv_func_<function>=yes when the
function is available. So a better change would be to rely on
ac_cv_func_vasprintf=yes rather than defining this additional
have_vasprintf=yes variable.

That being said, since the patch has been accepted upstream, I've
applied.

Thanks,

Thomas
Angelo Compagnucci Aug. 6, 2015, 7:28 a.m. UTC | #2
Dear Thomas Petazzoni,

2015-08-06 8:34 GMT+02:00 Thomas Petazzoni
<thomas.petazzoni@free-electrons.com>:
> Dear Angelo Compagnucci,
>
> On Wed,  5 Aug 2015 13:58:52 +0200, Angelo Compagnucci wrote:
>> This patch fixes the detection of an available
>> vasprintf function, this way the internal vasprintf
>> function is not compiled.
>>
>> Fixes http://autobuild.buildroot.net/results/3ab2b8667e5657bf07f55dd04dd857167ab4c62a/
>>       http://autobuild.buildroot.net/results/3ab2b8667e5657bf07f55dd04dd857167ab4c62a/
>>
>> Signed-off-by: Angelo Compagnucci <angelo.compagnucci@gmail.com>
>
> I've applied, but...
>
>> ---
>>
>> This patch was submitted upstream and merged here:
>> https://github.com/mono/mono/commit/40c171799b671718969ee28a02f92884d7fd181e
>
> ... this should have been mentioned in the patch itself.

I will keep in mind for the next time.

> And your SoB was missing in the patch itself.

Ops, sorry!

>> +diff --git a/eglib/configure.ac b/eglib/configure.ac
>> +index 5281419..4bf91e5 100644
>> +--- a/eglib/configure.ac
>> ++++ b/eglib/configure.ac
>> +@@ -135,6 +135,7 @@ AC_CHECK_SIZEOF(void *)
>> + AC_CHECK_SIZEOF(long)
>> + AC_CHECK_SIZEOF(long long)
>> + AC_CHECK_FUNCS(strlcpy stpcpy strtok_r rewinddir vasprintf)
>> ++AC_CHECK_FUNC(vasprintf, have_vasprintf=yes)
>
> And this is clearly not a very clean solution. The AC_CHECK_FUNCS()
> macro already checks for vasprintf availability, so with this new line,
> you're checking two times for the same function.
>
> And AC_CHECK_FUNCS already defines ac_cv_func_<function>=yes when the
> function is available. So a better change would be to rely on
> ac_cv_func_vasprintf=yes rather than defining this additional
> have_vasprintf=yes variable.

Yes, I know, but the configure was using that variable and thought
that creating that variable was better than chenging the variable
name. I will propose a better patch upstream!

> That being said, since the patch has been accepted upstream, I've
> applied.
>
> Thanks,
>
> Thomas
> --
> Thomas Petazzoni, CTO, Free Electrons
> Embedded Linux, Kernel and Android engineering
> http://free-electrons.com
diff mbox

Patch

diff --git a/package/mono/0004-fixing-initialization-of-have-vasprintf.patch b/package/mono/0004-fixing-initialization-of-have-vasprintf.patch
new file mode 100644
index 0000000..e01a6f0
--- /dev/null
+++ b/package/mono/0004-fixing-initialization-of-have-vasprintf.patch
@@ -0,0 +1,23 @@ 
+From 1c3d615d93b20d10c2729478d5104977dd9af23f Mon Sep 17 00:00:00 2001
+From: Angelo Compagnucci <angelo.compagnucci@gmail.com>
+Date: Wed, 5 Aug 2015 12:59:45 +0200
+Subject: [PATCH] Fixing initialization of have_vasprintf
+
+This patch initialize properly have_vasprintf in case vasprint function is found.
+Solves multiple definition of `vasprintf' error in case vasprint is not properly detected.
+---
+ eglib/configure.ac | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/eglib/configure.ac b/eglib/configure.ac
+index 5281419..4bf91e5 100644
+--- a/eglib/configure.ac
++++ b/eglib/configure.ac
+@@ -135,6 +135,7 @@ AC_CHECK_SIZEOF(void *)
+ AC_CHECK_SIZEOF(long)
+ AC_CHECK_SIZEOF(long long)
+ AC_CHECK_FUNCS(strlcpy stpcpy strtok_r rewinddir vasprintf)
++AC_CHECK_FUNC(vasprintf, have_vasprintf=yes)
+ AC_CHECK_FUNCS(getrlimit)
+ 
+ #