Messages in this thread |  | | From | Geert Uytterhoeven <> | Date | Fri, 16 Dec 2022 12:28:22 +0100 | Subject | Re: [PATCH v9] kallsyms: Add self-test facility |
| |
Hi Zhen,
On Fri, Dec 16, 2022 at 10:43 AM Leizhen (ThunderTown) <thunder.leizhen@huawei.com> wrote: > On 2022/12/16 15:42, Leizhen (ThunderTown) wrote: > > On 2022/12/15 22:51, Geert Uytterhoeven wrote: > >> On 30f3bb09778de64 with your debug patch v2: > > I've set up the qemu environment, and I'll try to solve it by tomorrow at the latest. > > It seems that the problem is still strcmp(). After I commented strcmp() in > arch/m68k/include/asm/string.h, and force it to use the one in lib/string.c, > it works well.
I can confirm that.
One difference is that the one in lib/string.c always return -1/0/1, while the m68k version can return other negative or positive numbers.
However, adding:
if (res < 0) return -1; if (res > 0) return 1;
to the m68k version doesn't make a difference.
Renaming the m68k version (changed to -1/0/1) to m68k_strcmp(), and the generic version to lib_strcmp(), and adding a wrapper that calls and compares both, shows that both functions do return the same value, and the test succeeds.
Moving the m68k version inside lib/string.c makes the test pass, too. So it must be related to the function being inline, and gcc making (incorrect) assumptions...
Gr{oetje,eeting}s,
Geert
-- Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org
In personal conversations with technical people, I call myself a hacker. But when I'm talking to journalists I just say "programmer" or something like that. -- Linus Torvalds
|  |