Den 25/11/2010 kl. 13.08 skrev Erik Cederstrand:

> Symbol tables:
> --------------------
> For example, libstand.a shows up in a diff. Looking with objdump, I see the 
> contained _setjmp.o file has the following symbol table:
> 
> SYMBOL TABLE:
> 00000000 l    df *ABS*  00000000 
> /usr/home/erik/freebsd/head1/src/lib/libstand/i386/_setjmp.S
> 00000000 l    df *ABS*  00000000 ./machine/asm.h
> 00000000 l    df *ABS*  00000000 
> /home/erik/freebsd/obj1/usr/home/erik/freebsd/head1/src/tmp/usr/include/sys/cdefs.h
> 00000000 l    df *ABS*  00000000 ./machine/asm.h
> 00000000 l    df *ABS*  00000000 
> /usr/home/erik/freebsd/head1/src/lib/libstand/i386/_setjmp.S
> 00000000 l    df *ABS*  00000000 <command-line>
> 00000000 l    df *ABS*  00000000 <built-in>
> 00000000 l    df *ABS*  00000000 
> /usr/home/erik/freebsd/head1/src/lib/libstand/i386/_setjmp.S
> 00000000 l    d  .text  00000000 
> 00000000 l    d  .data  00000000 
> 00000000 l    d  .bss   00000000 
> 00000000 g     F .text  0000001d _setjmp
> 00000020 g     F .text  00000024 _longjmp
> 
> There are absolute paths within SRCDIR and OBJDIR. I'm pretty sure 
> libarchive.a will still work at runtime if I blow away those directories. I 
> could really use some help changing the paths to be relative to SRJ/OBJDIR if 
> that makes sense, or even removing them if that's better.

I have an example of this in _umtx_op_err.po contained in libpthread_p.a. The 
object file is created with the following command:

cc -DPROF -O2 -pipe -DPTHREAD_KERNEL 
-I/usr/home/erik/freebsd/head/src/lib/libthr/../libc/include 
-I/usr/home/erik/freebsd/head/src/lib/libthr/thread 
-I/usr/home/erik/freebsd/head/src/lib/libthr/../../include 
-I/usr/home/erik/freebsd/head/src/lib/libthr/arch/amd64/include 
-I/usr/home/erik/freebsd/head/src/lib/libthr/sys 
-I/usr/home/erik/freebsd/head/src/lib/libthr/../../libexec/rtld-elf 
-I/usr/home/erik/freebsd/head/src/lib/libthr/../../libexec/rtld-elf/amd64 
-I/usr/home/erik/freebsd/head/src/lib/libthr/../libthread_db -Winline 
-fexceptions -D_PTHREAD_FORCED_UNWIND -D_PTHREADS_INVARIANTS -DSYSCALL_COMPAT 
-std=gnu99 -Wsystem-headers -Werror -Wall -Wno-format-y2k -W 
-Wno-unused-parameter -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith 
-Wno-uninitialized -Wno-pointer-sign -c 
/usr/home/erik/freebsd/head/src/lib/libthr/arch/amd64/amd64/_umtx_op_err.S -o 
_umtx_op_err.po

This command leaves absolute paths in the symbol table.

Erik

Reply via email to