Mailing-List: contact cygwin-apps-help AT sourceware DOT cygnus DOT com; run by ezmlm Sender: cygwin-apps-owner AT sourceware DOT cygnus DOT com List-Subscribe: List-Archive: List-Post: List-Help: , Delivered-To: mailing list cygwin-apps AT sources DOT redhat DOT com Date: Wed, 21 Nov 2001 11:08:29 +0100 From: Corinna Vinschen To: cygwin-apps Subject: Re: ld ---export--all --exclude-libs,? Message-ID: <20011121110829.B24327@cygbert.vinschen.de> Reply-To: cygwin-apps AT cygwin DOT com Mail-Followup-To: cygwin-apps References: <20011121084158 DOT 22945 DOT qmail AT web14501 DOT mail DOT yahoo DOT com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.2.5i In-Reply-To: <20011121084158.22945.qmail@web14501.mail.yahoo.com>; from danny_r_smith_2001@yahoo.co.nz on Wed, Nov 21, 2001 at 07:41:58PM +1100 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,--out-implib,libfoo.dll.a -Wl,--no-whole-archive -lbar -lbaz Or am I missing the point? Corinna -- Corinna Vinschen Please, send mails regarding Cygwin to Cygwin Developer mailto:cygwin AT cygwin DOT com Red Hat, Inc.