This is the mail archive of the cygwin-apps@cygwin.com mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

RE:ld --auto-import for cygwin and libtool



 > On Mon, Jul 23, 2001 at 01:09:25PM -0400, Charles Wilson wrote:
> > >Earnie Boyd wrote:
> > >
> > >> Christopher Faylor wrote:
> > >>
> > >>>It's possible that I might be convinced to include Paul's
> > patches in the
> > >>>next binutils release if they are not incorporated into the official
> > >>>release.  However, I would rather use the official CVS release, if
> > >>>possible.
> > >>>
> > >>>
> > >>
> > >> Don't be too hastily convinced.  I believe there to be problems of
> > >> exporting too much in lots of cases.
> > >
> > >
> > >Are we talking about Paul's --export-all-symbols/filtering changes, or
> > >his auto-imports changes (Currently, both changes are commingled in a
> > >single patch.  I think.)
> >
> > Actually, I think that Paul submitted the --export-all-symbols patch to
> > binutils for approval, where it has languished for a while.
> >
> > He specifically did not include the auto-import stuff.  I don't remember
> > if the auto-import patch also included export-all-symbols but I don't
> > believe that the  converse is true.
> >
> In the binutils on which which Robert Collins has applied the auto-import
> patch,
> the --export-all-symbols switch is off. For compiling kde
> 1.1.2/kde 2 I have
> to
> set it, otherwise nothing will be exported.
>
> Relating to this switch I have found a problem on using static libs.
>
> The relating topic starts at
> http://sources.redhat.com/ml/cygwin/2001-07/msg01198.html
>
> For kde 2 I have written a dirty hack to avoid this (don't export any
> archive). This is no generic patch !!
>
> While thinking about how to solve this problem I recognized, that
> there have
> to be more
> ld switches to restrict exporting symbols.
>
> One proposal I think could be --export-whole-archive, which enables
> exporting all object files/archives
> beetwen it and --no-whole-archive or so.
>
I found just in a libtool distribution an option
called --export-symbols-regex,
which seems to be implemented by libtool. For me this could a good option
???

> What are you thinking about this ?
>
> Ralf
>
>
> ------------------------------------------------------------------
> ----------
> -------------
> pe-dll.c (line with ! are new)
>
> static int
> auto_export (abfd, d, n)
>      bfd *abfd;
>      def_file *d;
>      const char *n;
> {
>   int i;
>   struct exclude_list_struct *ex;
>
>   /* we should not re-export imported stuff */
>   if (strncmp (n, "_imp__",6) == 0)
>     return 0;
>
>   for (i = 0; i < d->num_exports; i++)
>     if (strcmp (d->exports[i].name, n) == 0)
>       return 0;
>   if (pe_dll_do_default_excludes)
>     {
>       /* First of all, make context checks:
>          Don't export anything from libgcc */
>
> 			if (pe_dll_gory_debug) printf("considering
> exporting: %s "
> 					"abfd=%x, abfd->my_arc=%x
> filename=%s\n",n,abfd,abfd->my_archive,abfd->
> filename);
>
>       if (abfd
>           && abfd->my_archive)
>         {
> 				if (pe_dll_gory_debug)
> printf("considering exporting: %s "
> 					"abfd=%x, abfd->my_arc=%x
> filename=%s\n",n,abfd,abfd->my_archive,abfd->
> my_archive->filename);
>
> !					/* don*'t export archives */
> !					if (link_info.shared &&
> strstr(abfd->my_archive->filename,".a")) {
> !						return 0;
> !					}
>           /* Do not specify suffix explicitly, to allow for
> dllized versions
> */
>           if (strstr(abfd->my_archive->filename,"libgcc.")) return 0;
>           if (strstr(abfd->my_archive->filename,"libstdc++.")) return 0;
>           if (strstr(abfd->my_archive->filename,"libmingw32.")) return 0;
>         }
>
>       {
>
>


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]