2008-06-14 23:12:06

by Zhaohui Wang

[permalink] [raw]
Subject: how to find when a symbol introduced into the kernel



Hi all

To write multiple kernel version compatible programs, I need to know when a specific symbol (a struct or a function)were introduced in to the kernel tree

Binary search against multiple kernel sources is a way,but is still slow.Is there any fast way to use modern git technology to make my life easier?

Many thanks.

Best Regards
Zhaohui Wang



2008-06-15 08:08:16

by Ben Nizette

[permalink] [raw]
Subject: Re: how to find when a symbol introduced into the kernel


On Sat, 2008-06-14 at 18:11 -0400, Zhaohui Wang wrote:
>
> Hi all
>
> To write multiple kernel version compatible programs, I need to know when a specific symbol (a struct or a function)were introduced in to the kernel tree
>
> Binary search against multiple kernel sources is a way,but is still slow.Is there any fast way to use modern git technology to make my life easier?
>

You can see the last time a line in a file was touched with git-blame;
that might help.

--Ben.

2008-06-15 13:37:46

by Calvin Walton

[permalink] [raw]
Subject: Re: how to find when a symbol introduced into the kernel

On Sat, 2008-06-14 at 18:11 -0400, Zhaohui Wang wrote:
>
> Hi all
>
> To write multiple kernel version compatible programs, I need to know when a specific symbol (a struct or a function)were introduced in to the kernel tree
>
> Binary search against multiple kernel sources is a way,but is still slow.Is there any fast way to use modern git technology to make my life easier?
>
> Many thanks.

You're probably looking for the command
git log -S functionname
a.k.a. the git pickaxe.

That will show you all of the commits that added or removed a line
containing the name you're interested in, and you can then check just
those changes to see what compatibility may have changed.

To find out what kernel release one of those commits went into, you can
use
git describe <sha1-hash>
and it will report the last tagged kernel version before that commit was
added.

Hope that helps!

--
Calvin Walton <[email protected]>