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] | |
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] |