[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Bug ld/1396] New: prohibited cross reference to a local symbol.
From: |
etienne dot lorrain at masroudeau dot com |
Subject: |
[Bug ld/1396] New: prohibited cross reference to a local symbol. |
Date: |
30 Sep 2005 10:17:57 -0000 |
LD is trying to link to the wrong (local) memcpy symbol when executing
those commands:
address@hidden:~$ cat /proc/version
Linux version 2.6.12-1-k7 (address@hidden) (gcc version 4.0.2 20050821
(prerelease) (Debian 4.0.1-6)) #1 Tue Sep 6 16:28:10 UTC 2005
address@hidden:~$ ld --version
GNU ld version 2.16.91 20050902 Debian GNU/Linux
Copyright 2005 Free Software Foundation, Inc.
This program is free software; you may redistribute it under the terms of
the GNU General Public License. This program has absolutely no warranty.
address@hidden:~$ mkdir tmp
address@hidden:~$ cd tmp
address@hidden:~/tmp$ wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-
2.6.13.2.tar.bz2
address@hidden:~/tmp$ wget 'http://marc.theaimsgroup.com/?l=linux-
kernel&m=112557274910448&q=p3' -O patch2613-1
address@hidden:~/tmp$ wget 'http://marc.theaimsgroup.com/?l=linux-
kernel&m=112557274923346&q=p3' -O patch2613-2
# NOTE: the previous patches have been produced with RedHat Fedora Core 3
# and so lack a newline at end of the file, it will apply cleanly on
# Fedora core 3 but not on Debian, so just do:
address@hidden:~/tmp$ echo >> patch2613-1
address@hidden:~/tmp$ echo >> patch2613-2
address@hidden:~/tmp$ tar xjf linux-2.6.13.2.tar.bz2
address@hidden:~/tmp$ cd linux-2.6.13.2
address@hidden:~/tmp/linux-2.6.13.2$ patch -p1 < ../patch2613-1
address@hidden:~/tmp/linux-2.6.13.2$ patch -p1 < ../patch2613-2
address@hidden:~/tmp/linux-2.6.13.2$ make defconfig
address@hidden:~/tmp/linux-2.6.13.2$ make vmlinux > log
.....
arch/i386/kernel/built-in.o: In function `smp_store_cpu_info':
: prohibited cross reference from .text to `memcpy' in .realmode
make: *** [.tmp_vmlinux1] Error 1
address@hidden:~/tmp/linux-2.6.13.2$ readelf -s arch/i386/kernel/built-in.o |
grep memcpy
351: 00000000 65 FUNC LOCAL DEFAULT 12 memcpy
1077: 00000000 0 NOTYPE GLOBAL DEFAULT UND memcpy
1720: 00000000 65 FUNC GLOBAL DEFAULT 12 code16_memcpy
address@hidden:~/tmp/linux-2.6.13.2$ make vmlinux
CHK include/linux/version.h
make[1]: `arch/i386/kernel/asm-offsets.s' is up to date.
CHK include/linux/compile.h
CHK usr/initramfs_list
GEN .version
CHK include/linux/compile.h
UPD include/linux/compile.h
CC init/version.o
LD init/built-in.o
LD .tmp_vmlinux1
arch/i386/kernel/built-in.o: In function `smp_store_cpu_info':
: prohibited cross reference from .text to `memcpy' in .realmode
make: *** [.tmp_vmlinux1] Error 1
# NOTE: line extracted from a verbose build: " make vmlinux V=1 "
# and add manually the -y memcpy
address@hidden:~/tmp/linux-2.6.13.2$ ld -m elf_i386 -m elf_i386 \
-o .tmp_vmlinux1 -T arch/i386/kernel/vmlinux.lds \
arch/i386/kernel/head.o arch/i386/kernel/init_task.o \
init/built-in.o --start-group usr/built-in.o \
arch/i386/kernel/built-in.o arch/i386/mm/built-in.o \
arch/i386/mach-default/built-in.o arch/i386/crypto/built-in.o \
kernel/built-in.o mm/built-in.o fs/built-in.o ipc/built-in.o \
security/built-in.o crypto/built-in.o lib/lib.a \
arch/i386/lib/lib.a lib/built-in.o arch/i386/lib/built-in.o \
drivers/built-in.o sound/built-in.o arch/i386/pci/built-in.o \
arch/i386/oprofile/built-in.o arch/i386/power/built-in.o \
net/built-in.o --end-group -y memcpy
arch/i386/kernel/built-in.o: reference to memcpy
kernel/built-in.o: reference to memcpy
mm/built-in.o: reference to memcpy
fs/built-in.o: reference to memcpy
arch/i386/lib/lib.a(memcpy.o): definition of memcpy
drivers/built-in.o: reference to memcpy
sound/built-in.o: reference to memcpy
net/built-in.o: reference to memcpy
arch/i386/kernel/built-in.o: In function `smp_store_cpu_info':
: prohibited cross reference from .text to `memcpy' in .realmode
Thanks,
Etienne.
--
Summary: prohibited cross reference to a local symbol.
Product: binutils
Version: 2.16
Status: NEW
Severity: normal
Priority: P2
Component: ld
AssignedTo: unassigned at sources dot redhat dot com
ReportedBy: etienne dot lorrain at masroudeau dot com
CC: bug-binutils at gnu dot org
GCC build triplet: i486-linux-gnu
GCC host triplet: i486-linux-gnu
GCC target triplet: i486-linux-gnu
http://sourceware.org/bugzilla/show_bug.cgi?id=1396
------- You are receiving this mail because: -------
You are on the CC list for the bug, or are watching someone who is.
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Bug ld/1396] New: prohibited cross reference to a local symbol.,
etienne dot lorrain at masroudeau dot com <=