Re: GCC Tool breaks linker for explicitly named libraries
Mats Wichmann <[email protected]>
| Newsgroups | gmane.comp.programming.tools.scons.user |
|---|---|
| Message-ID | <[email protected]> |
On 12/17/21 09:03, Steve Hill (Wireless) via Scons-users wrote: > Hi, > > We’ve had someone add a library as “:libfoo.a” to force the (GCC) linker > to link against exactly “libfoo.a” and ignore “libfoo.so”. > Unfortunately, when they add this, _stripixes removes the “.a” and > passes “-l:libfoo” to the linker. Since a library with the exact name > “libfoo” doesn’t exist, the link fails. If they add the library as > “:libfoo.a.a”, _stipixes removes one (and only one) “.a”, leaving > “-l:libfoo.a” and the link completes successfully. > > Is this a bug or is there a workaround for this use-case? SCons doesn't know about the GNU linker's : syntax for libraries, so the behavior would be unpredictable. Not surprised stripixes makes a mess of it. I'm presuming you meant you want -l:foo rather than -l:libfoo.a, since the former is the approved syntax. You'd have to put the library in by name, like /path/to/libfoo.a to force this the static-lib-only behavior, and since you have to put it in LINKFLAGS, not in LIBS, you lose control of the library ordering if it happens to matter. Not ideal - there are more than a few GCC-specials that aren't directly understood by SCons. This is somewhat unfortunate, and probably the maintainer wouldn't be completely adverse to patches. The problem with adding too much syntax specific to one compiler suite is it makes it much easier to fall into traps where things are inadvertently non-portable. There are some other "don't know about that" things from gcc listed in https://github.com/SCons/scons/issues/3064. I added a comment there almost three years ago now when I was less directly involved with SCons development and ran into some behavior on the project I was working on at the time. _______________________________________________ Scons-users mailing list [email protected] https://pairlist4.pair.net/mailman/listinfo/scons-users