This is the mail archive of the
systemtap@sourceware.org
mailing list for the systemtap project.
Re: Compilation error on 2.6.29-rc1
- From: Masami Hiramatsu <mhiramat at redhat dot com>
- To: wenji dot huang at oracle dot com
- Cc: SystemTAP <systemtap at sources dot redhat dot com>
- Date: Mon, 12 Jan 2009 14:37:46 -0500
- Subject: Re: Compilation error on 2.6.29-rc1
- References: <496ADBCE.90603@oracle.com> <496AF4B4.60308@oracle.com>
Wenji Huang wrote:
> Need similar update on runtime code.
Ack.
Thank you, that is a same error I've got on the latest -mm tree.
> diff --git a/runtime/transport/symbols.c b/runtime/transport/symbols.c
> index 6e3bef1..72f9ad8 100644
> --- a/runtime/transport/symbols.c
> +++ b/runtime/transport/symbols.c
> @@ -92,8 +92,8 @@ static void generic_swap(void *a, void *b, int size)
> * @base: pointer to data to sort
> * @num: number of elements
> * @size: size of each element
> - * @cmp: pointer to comparison function
> - * @swap: pointer to swap function or NULL
> + * @cmp_func: pointer to comparison function
> + * @swap_func: pointer to swap function or NULL
> *
> * This function does a heapsort on the given array. You may provide a
> * swap function optimized to your element type.
> @@ -104,37 +104,37 @@ static void generic_swap(void *a, void *b, int size)
> * it less suitable for kernel use.
> */
> void _stp_sort(void *_base, size_t num, size_t size,
> - int (*cmp) (const void *, const void *), void (*swap)
> (void *, void *, int size))
> + int (*cmp_func) (const void *, const void *), void
> (*swap_func) (void *, void *, int size))
> {
> char *base = (char*) _base;
> /* pre-scale counters for performance */
> int i = (num / 2 - 1) * size, n = num * size, c, r;
>
> - if (!swap)
> - swap = (size == 4 ? u32_swap : generic_swap);
> + if (!swap_func)
> + swap_func = (size == 4 ? u32_swap : generic_swap);
>
> /* heapify */
> for (; i >= 0; i -= size) {
> for (r = i; r * 2 + size < n; r = c) {
> c = r * 2 + size;
> - if (c < n - size && cmp(base + c, base + c +
> size) < 0)
> + if (c < n - size && cmp_func(base + c, base + c
> + size) < 0)
> c += size;
> - if (cmp(base + r, base + c) >= 0)
> + if (cmp_func(base + r, base + c) >= 0)
> break;
> - swap(base + r, base + c, size);
> + swap_func(base + r, base + c, size);
> }
> }
>
> /* sort */
> for (i = n - size; i >= 0; i -= size) {
> - swap(base, base + i, size);
> + swap_func(base, base + i, size);
> for (r = 0; r * 2 + size < i; r = c) {
> c = r * 2 + size;
> - if (c < i - size && cmp(base + c, base + c +
> size) < 0)
> + if (c < i - size && cmp_func(base + c, base + c
> + size) < 0)
> c += size;
> - if (cmp(base + r, base + c) >= 0)
> + if (cmp_func(base + r, base + c) >= 0)
> break;
> - swap(base + r, base + c, size);
> + swap_func(base + r, base + c, size);
> }
> }
> }
>
> It works well on 2.6.29/26.
>
> Regards,
> Wenji
--
Masami Hiramatsu
Software Engineer
Hitachi Computer Products (America) Inc.
Software Solutions Division
e-mail: mhiramat@redhat.com