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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Fw: Patch - Re: linker file/section matching rules when using libraries


Hehe, the silence is deafening :-)

BTW - I have it checked into our own CVS for our two toolchains (ip2k and
ip3k) and we are using it for our nightly regression testing.

Nick

----- Original Message ----- 
From: "Jafa" <jafa@silicondust.com>
To: <binutils@sources.redhat.com>
Cc: "Ian Lance Taylor" <ian@wasabisystems.com>
Sent: Thursday, February 05, 2004 2:53 PM
Subject: Patch - Re: linker file/section matching rules when using libraries


> Hi Ian,
>
> Ok, I traced out the behavior...
>
> The problem is that when the library files specified on the command line
are
> qualified the internally tracked filename is updated to include the full
> path and the rules only match against these fully qualified
path+filenames.
>
> This isn't a bug, just if it could match libraries from the command line
it
> would be really useful.
>
> In my case, my problem is that the path is different for every project and
I
> don't have access to the path except in the makefile (which passes it to
the
> linker as the library include search path).
>
> Currently the trunk code only matches the filename. The attached patch
> allows it to match on either filename or the local symbol name.
>
> I think is should always be safe as the local symbol name is the user
> specified name and must be unique anyway (both .o and .a files). The
> filename is the full path and filename as resolved from the user specified
> name.
>
> With library files the filename is the full path and filename of the
actual
> library file and the local symbol name is the -l<name> short form as
> specified by the user.
>
> This patch allows me to pass "-Lbuild/lib -lipWeb" to the linker and then
> use the rule: "-lipWeb (.text)" in my linker script.
>
> Is this a reasonable solution?
>
> BTW - You should have a copyright assignment on file (Ubicom).
>
> Thanks
>
> Nick
>
> ----- Original Message ----- 
> From: "Ian Lance Taylor" <ian@wasabisystems.com>
> To: "Nick Kelsey" <fsf@silicondust.com>
> Cc: <binutils@sources.redhat.com>
> Sent: Wednesday, February 04, 2004 9:33 PM
> Subject: Re: linker file/section matching rules when using libraries
>
>
> > *This message was transferred with a trial version of CommuniGate(tm)
Pro*
> > "Nick Kelsey" <fsf@silicondust.com> writes:
> >
> > > The library file is build/lib/libipWeb.a
> > >
> > > On the commandline I specify: -Lbuild/lib -lipWeb
> > >
> > > This works correctly and gets linked in with my normal rule of:
> > >
> > > * (.text .text.*)
> > >
> > > The follow rule also works:
> > >
> > > build/lib/libipWeb.a (.text .text.*)
> > >
> > > However if I remove the path it failes dispite having the search path
> and
> > > the library included on the command line.
> > >
> > > Unfortunatly the build path changes for different projects... the path
> is
> > > available to the makefile to pass to the linker but not available to
the
> > > c-preprocessor that generates the linker script.
> > >
> > > I suspect that it isn't matching the full lib name from the rule
> > > (libipWeb.a) against the command line reference (-lipWeb).
> >
> > Ah, I see.
> >
> > I'm not sure whether that should work or not.
> >
> > I suspect that this would work:
> >
> > -lipWeb (.text .text.*)
> >
> > Ian
> >
> >
>

Attachment: changelog.txt
Description: Text document

Attachment: ldlang.diff
Description: Binary data


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