ld ---export--all --exclude-libs,?

Corinna Vinschen vinschen@redhat.com
Wed Nov 14 16:09:00 GMT 2001

On Wed, Nov 21, 2001 at 07:41:58PM +1100, Danny Smith wrote:
> Hello, I'm after some criticism, before submitting this to binutils.
> IMO, the auto-export feature of ld needs (at least) an option to exclude
> whole libs from export. The following patch does that. It also adds a few
> more default lib excludes and scans for backward compat implib symbols
> (__imp_) 
> I think this patch doesn't do enough.
> My preference would be to exclude *all* libs by default, with a command
> line option to explicity *include* named libs.  Why? It is too easy for
> licensed library code to sneak into dll's using --export-all. This affects
> distributability (sic) of the dll and apps dependent on the dll.
> The user may be unaware of this infection because its automatic.
> At least make the user think about what she/he is exporting.
> I will gladly throw away the following to work on a patch to exclude all
> libs by default if given encouragement.
> Any comments.

Yes, a question.  First note that I'm a binutils (l)user, not a
developer so I apologize for being thick.  Now the question:

Isn't the functionality you're searching for already in ld given by
the --no-whole-archive options?

  gcc -shared -o cygfoo.dll $(OBJ)
      -Wl,--no-whole-archive -lbar -lbaz

Or am I missing the point?


Corinna Vinschen                  Please, send mails regarding Cygwin to
Cygwin Developer                                mailto:cygwin@cygwin.com
Red Hat, Inc.

More information about the Cygwin-apps mailing list