pro64-support
[Top] [All Lists]

Undefined symbols

To: pro64-support@xxxxxxxxxxx
Subject: Undefined symbols
From: Uros Prestor <uros@xxxxxxxxxxxxxx>
Date: Thu, 19 Oct 2000 17:06:22 -0700
Organization: Turbolinux Inc.
Sender: owner-pro64-support@xxxxxxxxxxx
I am trying to build the 2.4.0-test9 kernel with Pro64-0.01.0-11
installed on a native IA-64 system (glibc-2.1.3-hjl000629p3, kernel
2.4.0test9-001004-48smp).

Early on (in make dep), the build process tries to compile
arch/ia64/tools/print_offsets.c.  The compilation fails with the
following diagnostics:

     sgicc -D__LP64__ -g -O2 -Wall -D__KERNEL__
     -I/work/BUILD/linux-2.4.0-test9-001004.sgicc/include
     print_offsets.c -o print_offsets
     print_offsets.o(.debug_info+0xc08): undefined reference to
     `dcache_lock'
     print_offsets.o(.debug_info+0x6a72): undefined reference to
     `tqueue_lock'
     print_offsets.o(.debug_info+0x6ead): undefined reference to
     `pidhash'
     print_offsets.o(.debug_info+0x83f2): undefined reference to
     `securebits'
     print_offsets.o(.debug_info+0x840d): undefined reference to
     `nr_running'
     print_offsets.o(.debug_info+0x8425): undefined reference to
     `jiffies'
     print_offsets.o(.debug_info+0x8443): undefined reference to
     `tasklist_lock'
     print_offsets.o(.debug_info+0x845e): undefined reference to
     `nr_threads'
     collect2: ld returned 1 exit status

Looking at the preprocessed file, I see code like this:

     extern spinlock_t dcache_lock;

     static __inline__ void d_drop(struct dentry * dentry)
     {
             (void)( &dcache_lock ) ;
             ....
     }

The rest of the undefined symbols seem to fall in the same category: a
variable is declared extern and used in an __inline__ function which
never gets instantiated.  Gcc handles this code without problems.  How
come sgicc doesn't?

Thanks,
Uros

--
Uros Prestor
uros@xxxxxxxxxxxxxx




<Prev in Thread] Current Thread [Next in Thread>