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

Re: Building crossdevel tools

On Tue, Nov 23, 1999 at 11:08:19AM +0100, Radim Gelner wrote:
> I decided to build all the tools by myself, just to see what is going on.
> I followed instructions on http://lena.fnet.fr/build.html. My i386
> development machine is running Slink. I unpacked sources of
> binutils- and gcc- I configured binutils using
> ./configure --target=mipsel-linuxelf and have build them without any
> problems. Instructions for configuring gcc are the same, but gcc's config
> apparently doesn't know target mipsel-linuxelf, but works with
> mips-mipsel-linuxelf. Is that right?

These are two versions which are currently unsupported. Stay with
the version mentioned on http://decstation.unix-ag.org
which is binutils-2.8.1 and egcs 1.0.3a ... For these versions there
are patches available because both of them (gcc/egcs and binutils)
still wont work without any patches. (Even the CVS Versions)

> Also, I do not know, what package of binutils from ftp.rfc822.org should I
> use if I want to avoid doing the above build. And what 'symbol versioning'
> stands for?

glibc 2.1 introduced a way of dynamic linking where the glibc can
contain two or more versions of the same symbols/function. This might sound
stupid but is essential for easy evolution of glibc. This
means that a binary linking against the glibc at runtime (ld.so)
tells the Dynamic Linker which version of the "symbol" or function
it would like to have and gets linked against that specific version.

The binutils part of the symbol versioning (Binarys must contain
version for their symbol they offer or like to link to ..) seems
to be done. The Glibc 2.1 part is more complicated as i already mentioned
in my previous mail.

If you want to have a look at that try a 

objdump --dynamic-syms -x /lib/libc.so.6

on a glibc 2.1 (Any potato system except m68k)

You will find something like 

Version definitions:
1 0x01 0x0865f4e6 libc.so.6
2 0x00 0x0d696910 GLIBC_2.0
3 0x00 0x0d696911 GLIBC_2.1
4 0x00 0x09691f71 GLIBC_2.1.1
5 0x00 0x09691f72 GLIBC_2.1.2

Which are the different possible symbol versions ...

0005821c  w   DF .text  00000018  GLIBC_2.0   mbsinit
0009b090 g    DF .text  0000003a  GLIBC_2.0   getsockname
00049210  w   DF .text  00000090  GLIBC_2.1   fopen64
000a1d90 g    DF .text  00000096  GLIBC_2.0   wctrans
00097190 g    DF .text  0000004c  GLIBC_2.1   ftruncate64

Here you can see that glibc 2.1 introduced 2 new functions
called "fopen64" and "ftruncate64"

Florian Lohoff		flo@rfc822.org		      	+49-5241-470566
  ...  The failure can be random; however, when it does occur, it is
  catastrophic and is repeatable  ...             Cisco Field Notice

Reply to: