[OpenAFS] tasklist_lock undefined Linux 2.6.18, OpenAFS 1.4.2
Jeffrey Hutzelman
jhutz@cmu.edu
Fri, 27 Oct 2006 18:46:38 -0400
On Friday, October 27, 2006 03:53:23 PM -0400 "Peter N. Schweitzer"
<pschweitzer@usgs.gov> wrote:
># nm afs_osi.o | grep tasklist_lock
> U tasklist_lock
OK; this is the one we're looking for. That, combined with Stefaan's
comment about not having the problem if keyring support is enabled, makes
me think the compiler is doing something bogus here, like not correctly
handling the 'weak' attribute on an extern symbol not declared in global
scope.
Try the following patch:
--- src/afs/afs_osi.c.orig 2006-10-27 18:45:35.000000000 -0400
+++ src/afs/afs_osi.c 2006-10-27 18:45:43.000000000 -0400
@@ -805,11 +805,11 @@
#endif
#if defined(AFS_LINUX22_ENV)
+extern rwlock_t tasklist_lock __attribute__((weak));
void
afs_osi_TraverseProcTable()
{
#if !defined(LINUX_KEYRING_SUPPORT)
- extern rwlock_t tasklist_lock __attribute__((weak));
struct task_struct *p;
if (&tasklist_lock)
> I'm still thinking there's some kernel feature that I should have enabled
> but didn't know I needed.
No; the symbol really isn't exported in recent kernels; this is not about
kernel configuration.