Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 6 May 1999 21:36:53 +0100
From:      Mark Ovens <marko@uk.radan.com>
To:        Doug White <dwhite@resnet.uoregon.edu>
Cc:        FreeBSD-questions <questions@FreeBSD.ORG>
Subject:   Re: gcc differences between aout & ELF
Message-ID:  <19990506213653.B255@marder-1>
In-Reply-To: <Pine.BSF.4.03.9905061058240.25986-100000@resnet.uoregon.edu>; from Doug White on Thu, May 06, 1999 at 10:59:37AM -0700
References:  <19990505235002.C2189@marder-1> <Pine.BSF.4.03.9905061058240.25986-100000@resnet.uoregon.edu>

next in thread | previous in thread | raw e-mail | index | archive | help
On Thu, May 06, 1999 at 10:59:37AM -0700, Doug White wrote:
> On Wed, 5 May 1999, Mark Ovens wrote:
> 
> > On Wed, May 05, 1999 at 02:15:41PM -0700, Doug White wrote:
> > > 
> > > Why don't you rebuild the required libraries to ELF?
> > 
> > Why should I have too? This system was installed from scratch, it's
> > all ELF (I've file(1)'d all the libs I can find and they're all
> > ELF, except the aout compat stuff).
> 
> Because you can't link aout libs into an elf binary.
> 

Thanks for all the help. However you're beginning to confuse me ;-)

I realize that you can't link aout libs into an elf binary, but I
have ELF *and* aout versions ('cos I installed the compat22 dist):

marder-1:/{58}% file /usr/lib/libm.so.2
/usr/lib/libm.so.2: ELF 32-bit LSB shared object, Intel 80386, version 1 (FreeBSD), not stripped

marder-1:/{59}% file /usr/lib/compat/aout/libm.so.2.0
/usr/lib/compat/aout/libm.so.2.0: FreeBSD/i386 compact demand paged shared library not stripped

So why rebuild them as ELF when ELF versions already exist? The
libs created by for my program *are* being rebuilt and are ELF:

> > I think I may know what I've screwed up. Before I installed gcc-2.8.1
> > I tried egcs-1.1.1. That gave more errors, so I then installed
> > gcc-2.8.1. I've since read some docs at Cygnus' website that mention
> > that egcs includes a new libstdc++ (?) whereas gcc-2.8.1 doesn't.
> > Also pkg_info -v egcs-1.1.1 mentioned something about moving some
> > libs "to avoid conflict with the stock compiler". I've pkg_deleted
> > both egcs and gcc and the re-installed gcc. I'm now re-compiling
> > my job (it'll take about 1-1/4 hours to compile the ~6000 source
> > files) so I'm keeping my fingers crossed that it'll work this time.
> 
> Yeah, stdc++ will muck things up badly.  They're still playing with it on
> -CURRENT.
> 

:-(
Having looked more closely at the output I realize that it's the
linker that is erroring, not the compiler (I mistakenly thought
that the compiler and linker were a matched pair, i.e. gcc-2.8.1
came with it's own linker, - not so)

The problem is that symbols defined in libstdc++ are being redefined
in libgcc. This is the sort of output I'm getting (the linker is
run from a script, not a Makefile):

linking PCOMPILE for OPL/autopcc
/usr/local/lib/gcc-lib/i386-unknown-freebsd3.0/2.8.1/libgcc.a(exception.o): In function `bad_cast type_info function':

/tmp/usr/ports/lang/gcc28/work/gcc-2.8.1/./cp/exception.cc(.text+0x0): multiple definition of `terminate(void)'

/usr/lib/libstdc++.a(exceptioni.o)(.text+0x128): first defined here

/usr/libexec/elf/ld: Warning: size of symbol `terminate__Fv' changed from 65 to 12 in exception.o

and:

/usr/marko/libopt/libutc.a(utc_string.o): In function `UTC_String::operator<<(short const &)':
utc_string.o(.text+0x13d5): undefined reference to `ios virtual table'
utc_string.o(.text+0x1427): undefined reference to `ostream::ios virtual table'
utc_string.o(.text+0x1431): undefined reference to `ostrstream::ios virtual table'

libutc.a is an archive built during the compile process.

Does any of the above tell you anything? and, more importantly,
can you suggest a fix?

> Doug White
> Internet:  dwhite@resnet.uoregon.edu
| FreeBSD: The Power to Serve > http://gladstone.uoregon.edu/~dwhite
| www.freebsd.org > >

-- 
      FreeBSD - The Power To Serve http://www.freebsd.org
      My Webpage http://www.users.globalnet.co.uk/~markov
_______________________________________________________________
Mark Ovens, CNC Apps Engineer, Radan Computational Ltd. Bath UK
CAD/CAM solutions for Sheetmetal Working Industry
mailto:marko@uk.radan.com                  http://www.radan.com



To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-questions" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?19990506213653.B255>