[Issue 1663] New: pragma(lib, "") don't work on linux

Lars Ivar Igesund larsivar at igesund.net
Tue Nov 13 15:35:00 PST 2007


Bill Baxter wrote:

> d-bugmail at puremagic.com wrote:
>> http://d.puremagic.com/issues/show_bug.cgi?id=1663
>> 
>>            Summary: pragma(lib, "") don't work on linux
>>            Product: D
>>            Version: 1.023
>>           Platform: Other
>>         OS/Version: Linux
>>             Status: NEW
>>           Severity: normal
>>           Priority: P2
>>          Component: DMD
>>         AssignedTo: bugzilla at digitalmars.com
>>         ReportedBy: larsivar at igesund.net
>> 
>> 
>> pragma (lib, "") doesn't work on linux.
>> 
>> I would expect for instance
>> 
>> pragma (lib, "dl") to make libdl be linked in, aka -ldl
>> 
>> There is nothing in the docs about this not working on Linux. I also
>> think it is a silly feature to have as optional for implementations.
> 
> dsss implements a pragma(link,...) which does basically that.
> It's really what pragma(lib,...) should have been to begin with.
> 
> From
> http://svn.dsource.org/projects/dsss/trunk/docs/README.software_engineers
> """
> The -ll flag is only useful for explicitly linking libraries into
> binaries. If the DSSS-implemented library depends on a non-DSSS library,
> the dependency must be specified in a .d file which is part of the
> DSSS-implemented library. This is done with the 'link' pragma, which
> must always be specified within version(build):
> 
> version (build) {
>      pragma(link, "example");
> }
> 
> The above example will cause any binary linked against the
> DSSS-implemented library to link against the library named libexample.a
> (or example.lib on Windows).
> """

I know, but I'm after a solution that isn't tool dependent (and pragma
(lib, "")) appears to be that solution.


More information about the Digitalmars-d-bugs mailing list