From: Robert Yang <liezhi.yang@windriver.com>
To: Paul Barker <paul@paulbarker.me.uk>
Cc: openembedded-core <openembedded-core@lists.openembedded.org>
Subject: Re: [PATCH 1/1] util-linux-native: fix qsort_r for CentOS 5.10
Date: Tue, 1 Apr 2014 09:34:40 +0800 [thread overview]
Message-ID: <533A17B0.5080108@windriver.com> (raw)
In-Reply-To: <CANyK_8dNLRkz68AzGTQhOCx_rX=rzJhAjiRfKbyzHjkA28=UQA@mail.gmail.com>
On 04/01/2014 05:22 AM, Paul Barker wrote:
> On 26 March 2014 07:01, Robert Yang <liezhi.yang@windriver.com> wrote:
>> The qsort_r() was added to glibc in version 2.8, so there is no qsort_r() on
>> the host like CentOS 5.x, use qsort() to fix it since they are nearly
>> identical.
>>
>> Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
>> ---
>> .../util-linux/util-linux-native-qsort.patch | 34 ++++++++++++++++++++
>> meta/recipes-core/util-linux/util-linux_2.24.1.bb | 4 ++-
>> 2 files changed, 37 insertions(+), 1 deletion(-)
>> create mode 100644 meta/recipes-core/util-linux/util-linux/util-linux-native-qsort.patch
>>
>> diff --git a/meta/recipes-core/util-linux/util-linux/util-linux-native-qsort.patch b/meta/recipes-core/util-linux/util-linux/util-linux-native-qsort.patch
>> new file mode 100644
>> index 0000000..1707683
>> --- /dev/null
>> +++ b/meta/recipes-core/util-linux/util-linux/util-linux-native-qsort.patch
>> @@ -0,0 +1,34 @@
>> +From f220d809be1baa654503bf6ff52f3630b0d7015c Mon Sep 17 00:00:00 2001
>> +From: Robert Yang <liezhi.yang@windriver.com>
>> +Date: Wed, 26 Mar 2014 01:30:29 +0000
>> +Subject: [PATCH] sun.c: use qsort() to instead of qsort_r()
>> +
>> +qsort_r() was added to glibc in version 2.8, so there is no qsort_r() on
>> +the host like CentOS 5.x.
>> +
>> +Upstream-Status: Inappropriate [Other]
>> +
>> +Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
>> +---
>> + libfdisk/src/sun.c | 5 ++---
>> + 1 file changed, 2 insertions(+), 3 deletions(-)
>> +
>> +diff --git a/libfdisk/src/sun.c b/libfdisk/src/sun.c
>> +index e73c701..f7899ec 100644
>> +--- a/libfdisk/src/sun.c
>> ++++ b/libfdisk/src/sun.c
>> +@@ -427,9 +427,8 @@ static int sun_verify_disklabel(struct fdisk_context *cxt)
>> + else
>> + array[i] = -1;
>> + }
>> +- qsort_r(array,ARRAY_SIZE(array),sizeof(array[0]),
>> +- (int (*)(const void *,const void *,void *)) verify_sun_cmp,
>> +- verify_sun_starts);
>> ++ qsort(array,ARRAY_SIZE(array),sizeof(array[0]),
>> ++ (int (*)(const void *,const void *)) verify_sun_cmp);
>
> I've just been looking at this for building util-linux on top of musl
> (as musl-libc doesn't implement qsort_r)
> and my solution was to import a qsort_r implementation from ccl
> (https://ccl.googlecode.com/svn/trunk/qsort_r.c).
>
Maybe we can do it in YP 1.7.
> Are you sure this solution works? verify_sun_cmp takes 3 parameters
> not 2 and it uses the 3rd parameter (data). From reading this I'd
> imagine a segfault is likely to occur in verify_sun_cmp if qsort is
> used instead of qsort_r.
>
I think it works well since there is a similar patch before we upgrade
the util-linux-native, I will verify later.
// Robert
>> +
>> + if (array[0] == -1) {
>> + fdisk_info(cxt, _("No partitions defined."));
>> +--
>> +1.8.2.1
>> +
>> diff --git a/meta/recipes-core/util-linux/util-linux_2.24.1.bb b/meta/recipes-core/util-linux/util-linux_2.24.1.bb
>> index aa98b65..ab80ab6 100644
>> --- a/meta/recipes-core/util-linux/util-linux_2.24.1.bb
>> +++ b/meta/recipes-core/util-linux/util-linux_2.24.1.bb
>> @@ -4,7 +4,9 @@ require util-linux.inc
>> # To support older hosts, we need to patch and/or revert
>> # some upstream changes. Only do this for native packages.
>> OLDHOST = ""
>> -OLDHOST_class-native = "file://util-linux-native.patch"
>> +OLDHOST_class-native = "file://util-linux-native.patch \
>> + file://util-linux-native-qsort.patch \
>> + "
>>
>> SRC_URI += "file://util-linux-ng-replace-siginterrupt.patch \
>> file://util-linux-ng-2.16-mount_lock_path.patch \
>> --
>> 1.7.10.4
>>
>> --
>> _______________________________________________
>> Openembedded-core mailing list
>> Openembedded-core@lists.openembedded.org
>> http://lists.openembedded.org/mailman/listinfo/openembedded-core
>
> Thanks,
>
next prev parent reply other threads:[~2014-04-01 1:34 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-03-26 7:01 [PATCH 0/1] util-linux-native: fix qsort_r for CentOS 5.10 Robert Yang
2014-03-26 7:01 ` [PATCH 1/1] " Robert Yang
2014-03-31 21:22 ` Paul Barker
2014-04-01 1:34 ` Robert Yang [this message]
2014-04-01 11:41 ` Paul Barker
2014-04-01 12:31 ` Phil Blundell
2014-04-01 12:34 ` Paul Barker
2014-04-01 13:48 ` Robert Yang
2014-04-02 17:31 ` Paul Barker
2014-04-03 2:31 ` Robert Yang
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=533A17B0.5080108@windriver.com \
--to=liezhi.yang@windriver.com \
--cc=openembedded-core@lists.openembedded.org \
--cc=paul@paulbarker.me.uk \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.