[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: UserModeLinux port on ppc: problem with _SDA_BASE_ on /usr/lib/crt1.o



On Fri, Feb 03, 2006 at 11:34:14AM +0100, Stefano Melchior wrote:
> On Fri, Jan 20, 2006 at 05:31:34PM +0100, Sven Luther wrote:
> Hi all,
> > > /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.
> I tried to find documentation regarding my problem; I found something
> usefull, but not a solution.
> Well I also tried to build a sarge chroot environment, where you have a
> glibc 2.3.2 installed, while on sid you can find 2.3.2 version, and I
> successfully built the kernel as for my wishes.
> 
> I also tried the command:
> 
> from sid:
> stex@monteverdi[~]$ strings $(which ld) |  grep _SDA_BASE_
>     PROVIDE (_SDA_BASE_ = 32768);
>     PROVIDE (_SDA_BASE_ = 32768);
> [...]
> stex@monteverdi[~]$
> 
> from sarge (chrooted):
> monteverdi:/# strings $(which ld) | grep _SDA_BASE_
> _SDA_BASE_
> monteverdi:/#
> 
> I added "PROVIDE (_SDA_BASE_ = 32768);" in the ld.script in the sid
> kernel source repos, but it seems not to work again.

_SDA_BASE is deprecated, you need to add a sda section to the ld script or
something. not sure how, it was some time ago.

Friendly,

Sven Luther



Reply to: