On 11/30/06, Bertram Scharpf <[EMAIL PROTECTED]> wrote:
Sorry, the output of '... 2>&1 >myfile' seems not to happen
in the correct order.

Just for future reference, you want ">myfile 2>&1".  The order is
significant, as the command that you ran first redirected stderr to
the same location as stdout, _then_redirected stdout to the file,
leaving stderr pointing at whatever stdout was going to.  Reversing
the order first redirects stdout to the file, then redirects stdout to
the same place.

  http://www.bertram-scharpf.de/tmp/emerge-info
  http://www.bertram-scharpf.de/tmp/emerge-vuD-tetex

Ok, a few things:

1) in your original message, you stated that you had a directory

/usr/lib/gcc/i386-pc-linux-gnu/3.4.6

In fact, based on your emerge --info, you should have:

/usr/lib/gcc/i686-pc-linux-gnu/3.4.6

Was this a typo in your original message, or do you have both i386-
and i686- compilers installed?  (gcc-config -l)

2) Assuming you don't have multiple compilers installed, I don't
understand why you have an i386-pc-linux-g++ command.  Where is this
located (which i386-pc-linux-g++), and what owns it (equery belongs
i386-pc-linux-g++)?

3) It looks like you changed from a i386 CHOST to i686, in addition to
changing compiler versions.  In this case, you need to do:

fix_libtool_files.sh 3.4.5 --oldarch i386-pc-linux-gnu

Just a quick explanation of libtool and why that command is needed:
normally when a program is compiled and linked against dynamic
libraries, the link command must include all dependent libraries as
well.  So if I link "prog" against  liba.so, and liba.so requires
libb.so, I must include both liba and libb on the link command for
prog or I will end up with unresolved symbol errors.

But this is really a nightmare, because liba may only /sometimes/
depend on libb, depending upon what options liba was compiled with.
Determining which systems needs to link against libb and which ones do
not was very problematic.  This is the problem that "libtool" is
intended to solve, and it does it fairly well.

If prog and liba both use libtool, then when liba is compiled and
installed, there is a libtool archive (.la) file that is generated and
installed at the same time.  This archive contains the link options
required to successfully link against liba, including any dependent
libraries.  So when the build process for prog is linked, it uses
libtool, and tells libtool to link prog against liba.  Libtool looks
in the .la file for liba, and sees that linking against libb is also
required, and adds it automatically.

The problem that gcc-upgrades introduce to this system though is that
the libtool files contain references to object (.o) files located in
the gcc installation.  When you upgrade gcc, the directory structure
changes, and the libtool files now reference files that do not exist.

So, fix_libtool_files.sh was created for gentoo systems to correct all
libtool archives.

HTH,
-Richard
--
gentoo-user@gentoo.org mailing list

Reply via email to