This is the mail archive of the crossgcc@sources.redhat.com mailing list for the crossgcc project.

See the CrossGCC FAQ for lots more information.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: MRI linker for object modules from GCC


Ganesh:

Even though both tool sets use the same object file format (GCC through
Objcopy of course), they are going to setup the internal symbol names and
such expecting that their linker is going to be the one doing the linking.
GCC expects to use ld and the MRI one expects lnk68k (or whatever you are
using).  In GENERAL you can't mix and match toolset tools.  Note that this
doesn't mean in special cases it won't work, but you won't be able to get it
to work the same way all the time.  If you want to use GCC you should use
ld.  If you are going to use the MRI linker you should just go ahead and use
the MRI compiler and assembler also, after all, you are probably already
paying for the MRI stuff (at least the linker, can you purchase the licenses
for linker/compiler/assembler as separate parts?).  Besides, the MRI tools
produce more efficient (in size, never checked execution speed) code than
GCC anyway.

As far as your specific error, I would guess that GCC put in some symbols
that are identical to those in the library you are linking against, or that
some symbols it automatically generated conflict/confuse the MRI linker in
some way.

- Steve


----------
>From: "William A. Gatliff" <bgat@saturn.billgatliff.com>
>To: "Tawde, Ganesh" <gtawde@opentv.com>
>Cc: crossgcc@sources.redhat.com
>Subject: Re: MRI linker for object modules from GCC
>Date: Wed, Jul 25, 2001, 1:16 PM
>

> Ganesh:
>
>
> A quick look at MRI's source code would probably answer this question.
>
> *rimshot*  Thank you, you've been a great crowd!
>
> Seriously, I assume that you're running the MRI linker because you
> have a library in a MRI-proprietary format.  Other than that, I don't
> have anything I can add here...
>
>
> b.g.
>
>
> Sounds like On Wed, Jul 25, 2001 at 11:09:57AM -0700, Tawde, Ganesh wrote:
>> Hi,
>>
>> I am facing some problem while using objcopy and MRI linker. I am trying to
>> build our platform for a m68k on Windows (cygwin). I am rather using a
>> hybrid setup. I use m68k-coff-gcc as the compiler for the system to produce
>> the object files and m68k-coff-objcopy to convert the object files from COFF
>> to IEEE format. Then I use the Microtec librarian and linker to get the
>> final output. The problem I am facing is that  when the Microtec linker
>> tries to link all these object files and libraries, it gives a lot of
>> following kind of errors.
>>
>> (E) A0307-D Duplicate Public ControlID in module st000307
>>
>> All the symbols for which the error is caused are defined only once in the
>> code. I was using the same codebase with the MRI toolchain before without
>> any errors. I am trying to find out why should I get duplicate symbols error
>> even when the symbols are defined only once and only in one module.
>> Can any body help me out with what could be happenning?
>>
>> Thanks
>> Ganesh
>>
>>
>> PS: I am trying to send this message to the mailing list and the mails are
>> bouncing back since yesterday. Why ?
>
> --
> Bill Gatliff
> bgat@billgatliff.com
>
> ------
> Want more information?  See the CrossGCC FAQ, http://www.objsw.com/CrossGCC/
> Want to unsubscribe? Send a note to crossgcc-unsubscribe@sourceware.cygnus.com

------
Want more information?  See the CrossGCC FAQ, http://www.objsw.com/CrossGCC/
Want to unsubscribe? Send a note to crossgcc-unsubscribe@sourceware.cygnus.com


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]