* Kernel symbol version history
@ 2007-12-05 16:17 David H. Lynch Jr.
2007-12-05 16:49 ` Grant Likely
` (2 more replies)
0 siblings, 3 replies; 5+ messages in thread
From: David H. Lynch Jr. @ 2007-12-05 16:17 UTC (permalink / raw)
To: linuxppc-embedded
This might be slightly OT here, but would anyone know where there
might be a reference that indicates at precisely what version a given
symbol either appeared or disappeared within the Linux kernel ?
As an example if a driver is supposed to work for 2.6 and 2.4 and
uses sysfs, or cdev, or alloc_chr_dev_region or ...
How can one tell at what point that api or symbol appeared so that
the proper conditionals appear within the driver.
The last one that bit me was I made a collection of casting changes
to address 64bit vs. 32bit targets, and found that using the C99 fixed
size types - uint32_t, ... made life much more pleasant, after putting
them I nobody else could build because uintptr_t did not appear until
2.6.24, and I still have not figured out exactly when uint32_t etc.
appeared.
I would think there ought to be some resource besides group memory
to look this up ?
Is there a way to use git to look back through the history of a
symbol rather than a file.
--
Dave Lynch DLA Systems
Software Development: Embedded Linux
717.627.3770 dhlii@dlasys.net http://www.dlasys.net
fax: 1.253.369.9244 Cell: 1.717.587.7774
Over 25 years' experience in platforms, languages, and technologies too numerous to list.
"Any intelligent fool can make things bigger and more complex... It takes a touch of genius - and a lot of courage to move in the opposite direction."
Albert Einstein
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: Kernel symbol version history
2007-12-05 16:17 Kernel symbol version history David H. Lynch Jr.
@ 2007-12-05 16:49 ` Grant Likely
2007-12-05 17:07 ` Jean-Christophe Dubois
2007-12-06 13:08 ` David Woodhouse
2 siblings, 0 replies; 5+ messages in thread
From: Grant Likely @ 2007-12-05 16:49 UTC (permalink / raw)
To: David H. Lynch Jr.; +Cc: linuxppc-embedded
On 12/5/07, David H. Lynch Jr. <dhlii@dlasys.net> wrote:
> This might be slightly OT here, but would anyone know where there
> might be a reference that indicates at precisely what version a given
> symbol either appeared or disappeared within the Linux kernel ?
>
> As an example if a driver is supposed to work for 2.6 and 2.4 and
> uses sysfs, or cdev, or alloc_chr_dev_region or ...
> How can one tell at what point that api or symbol appeared so that
> the proper conditionals appear within the driver.
the 'gitk' tool allows you to search for the addition or removal of a
string. You
>
> The last one that bit me was I made a collection of casting changes
> to address 64bit vs. 32bit targets, and found that using the C99 fixed
> size types - uint32_t, ... made life much more pleasant, after putting
> them I nobody else could build because uintptr_t did not appear until
> 2.6.24, and I still have not figured out exactly when uint32_t etc.
> appeared.
>
> I would think there ought to be some resource besides group memory
> to look this up ?
> Is there a way to use git to look back through the history of a
> symbol rather than a file.
grant@trillian:~/hacking/linux-2.6$ grep "uint32_t" include/* -r | grep typedef
include/linux/types.h:typedef __u32 uint32_t;
grant@trillian:~/hacking/linux-2.6$ git log -p include/linux/types.h | vim -
(Search for the string uint32_t)
Looks like it was there before Linus started using git.
>
>
>
> --
> Dave Lynch DLA Systems
> Software Development: Embedded Linux
> 717.627.3770 dhlii@dlasys.net http://www.dlasys.net
> fax: 1.253.369.9244 Cell: 1.717.587.7774
> Over 25 years' experience in platforms, languages, and technologies too numerous to list.
>
> "Any intelligent fool can make things bigger and more complex... It takes a touch of genius - and a lot of courage to move in the opposite direction."
> Albert Einstein
>
> _______________________________________________
> Linuxppc-embedded mailing list
> Linuxppc-embedded@ozlabs.org
> https://ozlabs.org/mailman/listinfo/linuxppc-embedded
>
--
Grant Likely, B.Sc., P.Eng.
Secret Lab Technologies Ltd.
grant.likely@secretlab.ca
(403) 399-0195
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: Kernel symbol version history
2007-12-05 16:17 Kernel symbol version history David H. Lynch Jr.
2007-12-05 16:49 ` Grant Likely
@ 2007-12-05 17:07 ` Jean-Christophe Dubois
2007-12-09 16:41 ` David H. Lynch Jr.
2007-12-06 13:08 ` David Woodhouse
2 siblings, 1 reply; 5+ messages in thread
From: Jean-Christophe Dubois @ 2007-12-05 17:07 UTC (permalink / raw)
To: linuxppc-embedded
Hi David,
You could try the various "linux cross reference" web site out there. It is
not necessarily complete (some linux version might be missing) but it can be
usefull to lookup if some symbols/define/typedef were available in a
particular Linux version.
Have a look there.
http://free-electrons.com/community/kernel/lxr
Regards
JC
On Wednesday 05 December 2007 17:17:25 David H. Lynch Jr. wrote:
> This might be slightly OT here, but would anyone know where there
> might be a reference that indicates at precisely what version a given
> symbol either appeared or disappeared within the Linux kernel ?
>
> As an example if a driver is supposed to work for 2.6 and 2.4 and
> uses sysfs, or cdev, or alloc_chr_dev_region or ...
> How can one tell at what point that api or symbol appeared so that
> the proper conditionals appear within the driver.
>
> The last one that bit me was I made a collection of casting changes
> to address 64bit vs. 32bit targets, and found that using the C99 fixed
> size types - uint32_t, ... made life much more pleasant, after putting
> them I nobody else could build because uintptr_t did not appear until
> 2.6.24, and I still have not figured out exactly when uint32_t etc.
> appeared.
>
> I would think there ought to be some resource besides group memory
> to look this up ?
> Is there a way to use git to look back through the history of a
> symbol rather than a file.
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: Kernel symbol version history
2007-12-05 16:17 Kernel symbol version history David H. Lynch Jr.
2007-12-05 16:49 ` Grant Likely
2007-12-05 17:07 ` Jean-Christophe Dubois
@ 2007-12-06 13:08 ` David Woodhouse
2 siblings, 0 replies; 5+ messages in thread
From: David Woodhouse @ 2007-12-06 13:08 UTC (permalink / raw)
To: David H. Lynch Jr.; +Cc: linuxppc-embedded
On Wed, 2007-12-05 at 11:17 -0500, David H. Lynch Jr. wrote:
> This might be slightly OT here, but would anyone know where there
> might be a reference that indicates at precisely what version a given
> symbol either appeared or disappeared within the Linux kernel ?
>
> As an example if a driver is supposed to work for 2.6 and 2.4 and
> uses sysfs, or cdev, or alloc_chr_dev_region or ...
> How can one tell at what point that api or symbol appeared so that
> the proper conditionals appear within the driver.
>
> The last one that bit me was I made a collection of casting changes
> to address 64bit vs. 32bit targets, and found that using the C99 fixed
> size types - uint32_t, ... made life much more pleasant, after putting
> them I nobody else could build because uintptr_t did not appear until
> 2.6.24, and I still have not figured out exactly when uint32_t etc.
> appeared.
I believe the standard C99 types like uint32_t have been there for ever,
basically. Maybe not in Linux 1.0, but as far back as anyone might ever
sensibly care.
That doesn't include uintptr_t though. For that we usually use 'unsigned
long'. If ever there is an architecture where 'unsigned long' isn't big
enough for a pointer, Linux is going to break :)
> I would think there ought to be some resource besides group memory
> to look this up ?
> Is there a way to use git to look back through the history of a
> symbol rather than a file.
pmac /pmac/git/libertas-2.6 $ git-annotate include/linux/types.h | grep uintptr_t
142956af ( Al Viro 2007-10-29 05:11:28 +0000 40)typedef unsigned long uintptr_t;
pmac /pmac/git/libertas-2.6 $ git-show 142956af
commit 142956af525002c5378e7d91d81a01189841a785
Author: Al Viro <viro@ftp.linux.org.uk>
Date: Mon Oct 29 05:11:28 2007 +0000
fix abuses of ptrdiff_t
Use of ptrdiff_t in places like
- if (!access_ok(VERIFY_WRITE, u_tmp->rx_buf, u_tmp->len))
+ if (!access_ok(VERIFY_WRITE, (u8 __user *)
+ (ptrdiff_t) u_tmp->rx_buf,
+ u_tmp->len))
is wrong; for one thing, it's a bad C (it's what uintptr_t is for; in general
we are not even promised that ptrdiff_t is large enough to hold a pointer,
just enough to hold a difference between two pointers within the same object).
For another, it confuses the fsck out of sparse.
Use unsigned long or uintptr_t instead. There are several places misusing
ptrdiff_t; fixed.
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
--
dwmw2
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: Kernel symbol version history
2007-12-05 17:07 ` Jean-Christophe Dubois
@ 2007-12-09 16:41 ` David H. Lynch Jr.
0 siblings, 0 replies; 5+ messages in thread
From: David H. Lynch Jr. @ 2007-12-09 16:41 UTC (permalink / raw)
Cc: linuxppc-embedded
Thank you.
I made use of one of the linux cross reference sites.
Though unless I don't know how to effectively use them trying to
track the history of a function, typdef, define, ..
is not particularly easy using lxr.
Grant's sugestion with git was closer to what I was looking for -
except that in some instances
needed to go back farther than it would take me..
Jean-Christophe Dubois wrote:
> Hi David,
>
> You could try the various "linux cross reference" web site out there. It is
> not necessarily complete (some linux version might be missing) but it can be
> usefull to lookup if some symbols/define/typedef were available in a
> particular Linux version.
>
> Have a look there.
>
> http://free-electrons.com/community/kernel/lxr
>
> Regards
>
> JC
>
> On Wednesday 05 December 2007 17:17:25 David H. Lynch Jr. wrote:
>
>> This might be slightly OT here, but would anyone know where there
>> might be a reference that indicates at precisely what version a given
>> symbol either appeared or disappeared within the Linux kernel ?
>>
>> As an example if a driver is supposed to work for 2.6 and 2.4 and
>> uses sysfs, or cdev, or alloc_chr_dev_region or ...
>> How can one tell at what point that api or symbol appeared so that
>> the proper conditionals appear within the driver.
>>
>> The last one that bit me was I made a collection of casting changes
>> to address 64bit vs. 32bit targets, and found that using the C99 fixed
>> size types - uint32_t, ... made life much more pleasant, after putting
>> them I nobody else could build because uintptr_t did not appear until
>> 2.6.24, and I still have not figured out exactly when uint32_t etc.
>> appeared.
>>
>> I would think there ought to be some resource besides group memory
>> to look this up ?
>> Is there a way to use git to look back through the history of a
>> symbol rather than a file.
>>
>
>
>
--
Dave Lynch DLA Systems
Software Development: Embedded Linux
717.627.3770 dhlii@dlasys.net http://www.dlasys.net
fax: 1.253.369.9244 Cell: 1.717.587.7774
Over 25 years' experience in platforms, languages, and technologies too numerous to list.
"Any intelligent fool can make things bigger and more complex... It takes a touch of genius - and a lot of courage to move in the opposite direction."
Albert Einstein
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2007-12-09 16:47 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2007-12-05 16:17 Kernel symbol version history David H. Lynch Jr.
2007-12-05 16:49 ` Grant Likely
2007-12-05 17:07 ` Jean-Christophe Dubois
2007-12-09 16:41 ` David H. Lynch Jr.
2007-12-06 13:08 ` David Woodhouse
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).