Re: UserModeLinux port on ppc: problem with _SDA_BASE_ on /usr/lib/crt1.o
On Fri, Jan 20, 2006 at 11:44:36AM +0100, Stefano Melchior wrote:
> Hi list,
> I have worked on the porting of UML, User Mode Linux, on ppc arch and I
> encountered a big stop, since I can not find the way out of this issue:
>
> [...]
> /usr/bin/make ARCH=um \
> vmlinux
> make[1]: Entering directory `/usr/src/linux-2.6.13.5'
> CHK include/linux/version.h
> SPLIT include/linux/autoconf.h -> include/config/*
> CHK arch/um/user-offsets.h
> make[2]: `arch/um/sys-ppc/util/mk_sc' is up to date.
> CHK arch/um/include/sysdep-ppc/sc.h
> CHK arch/um/include/uml-config.h
> UPD arch/um/include/uml-config.h
> CHK arch/um/include/user_constants.h
> gcc -Wall -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing
> -fno-common -ffreestanding -O2 -fomit-frame-pointer -D__arch_um__
> -DSUBARCH=\"ppc\" -Iarch/um/include
> -I/usr/src/linux-2.6.13.5/arch/um/kernel/tt/include -Dvmap=kernel_vmap
> -Derrno=kernel_errno -Dsigpro
> cmask=kernel_sigprocmask -fno-unit-at-a-time -U__powerpc__ -Upowerpc
> -D__UM_PPC__ -D_LARGEFILE64_SOURCE -Wdeclaration-after-statement -Wn
> o-pointer-sign -nostdinc -isystem
> /usr/lib/gcc/powerpc-linux-gnu/4.0.3/include -D__KERNEL__ -Iinclude -S -o
> arch/um/kernel-offsets.s ar
> ch/um/sys-ppc/kernel-offsets.c
> CHK arch/um/kernel-offsets.h
> make[2]: `arch/um/sys-ppc/util/mk_thread' is up to date.
> CHK arch/um/include/task.h
> CHK arch/um/include/kern_constants.h
> CHK include/linux/compile.h
> CHK usr/initramfs_list
> QUOTE arch/um/kernel/config.tmp
> QUOTE arch/um/kernel/config.c
> CC arch/um/kernel/config.o
> LD arch/um/kernel/built-in.o
> GZIP kernel/config_data.gz
> IKCFG kernel/config_data.h
> CC kernel/configs.o
> LD kernel/built-in.o
> GEN .version
> CHK include/linux/compile.h
> UPD include/linux/compile.h
> CC init/version.o
> LD init/built-in.o
> LD .tmp_vmlinux1
> /usr/lib/gcc/powerpc-linux-gnu/4.0.3/../../../../lib/crt1.o:(.rodata+0x0):
> undefined reference to `_SDA_BASE_'
> collect2: ld returned 1 exit status
> KSYM .tmp_kallsyms1.S
> nm: '.tmp_vmlinux1': No such file
> No valid symbol.
> make[1]: *** [.tmp_kallsyms1.S] Error 1
> make[1]: Leaving directory `/usr/src/linux-2.6.13.5'
> make: *** [debian/stamp-build-kernel] Error 2
> monteverdi:/usr/src/linux-2.6.13.5#
>
> I use:
>
> - 2.6.13 kernel from http://www.kernel.org;
> - an experimental UML patch;
>
> but it seems that the problem is neither the kernel nor the patch, because
> it refers to external reference error on linker and in particular on
> /usr/lib/crt1.o .
> Referring to the following doc from IBM, you can have an idea of what
> _SDAx_BASE_ mean (page 7):
Please look in the archive of debian-powerpc, i fixed something such in the
past, don't remember what though. it is a toolchain change which means a
source change. Don't remember 2.6.13, but i fixed it some time back for PReP
or something. I think the difference was that you had to add some section to
the arch/ppc/ld.script file or something.
Friendly,
Sven Luther
Reply to: