The only in-kernel user of "memmem" is scripts/kallsyms.c and it only uses it to find tokens that are 2 bytes in size. It is trivial to replace it with a simple function that finds 2-byte tokens. This should help users from systems that don't have the memmem GNU extension available. Signed-off-by: Paulo Marques <pmarques@grupopie.com> -- Paulo Marques - www.grupopie.com "667: The neighbor of the beast."
sorry for not getting back to you in the previous thread ... this is a much= =20 nicer patch than what i proposed and works for me :) Acked-by: Mike Frysinger <vapier@gentoo.org> =2Dmike
Hi, So we could remove the "#define _GNU_SOURCE" at the top of scripts/kallsyms.c too, presumably? If not (i.e. if there are more GNUisms left in that file anyway), then I'm not sure if we really gain by the change. Satyam -
I only tried in on x86 with my toolchain and it works, but I don't know if it is worth the risk of breaking someone's setup for virtually no gain... -- Paulo Marques - www.grupopie.com "God is real, unless declared integer." -
With the memmem() removed, the code builds (and works) fine on several non-GNU systems. It should be perfectly safe to remove the _GNU_SOURCE. Perhaps you should replace it with the proper POSIX_ define so it won't be broken again? Segher -
You're right. I went back in history and it was me who introduced the _GNU_SOURCE when I added the memmem too (shame on me). So, if it worked fine before, there is no reason to not work now that memmem is removed. So I can: - send an incremental patch with just that line removed - send a replacement patch - just leave it for now and wait until I work on kallsyms again to silently remove that line together with other changes Andrew, what would you prefer? -- Paulo Marques - www.grupopie.com "All I ask is a chance to prove that money can't make me happy." -
Please send a replacement patch to me. I will carry it in the kbuild tree. Sam -
Please add a comment describing why it's there so that it's not ripped out again by the first janitor looking over the code. -
I don't see why it would seem a good idea to replace a simple find_token function that searches for 2 byte tokens with a call to memmem. So, I think this is not something a janitor would do. The call to memmem was actually a left-over from a previous algorithm that used variable sized tokens. With fixed size, 2 byte tokens, having a specialized function is probably more efficient anyway. -- Paulo Marques - www.grupopie.com "Nostalgia isn't what it used to be." -
