Subject: Re: [avail for test] readline-4.2-1
From: "Robert Collins" <[email-masked]>
To: "Charles Wilson" <[email-masked]>
Cc: "Jason Tishler" <[email-masked]>, "Cygwin Users" <[email-masked]>
Date: Fri, 8 Jun 2001 08:26:46 +1000

----- Original Message -----
From: "Charles Wilson" <[email-masked]>

> Robert Collins wrote:
> The ONLY reason I'm concerned about bash as an exception to that rule,
> is because Chet maintains BOTH bash AND readline.  Because he cares, I
> care.

I'm on the fence on this one. The breakage is caused not because they
have the package in a subdir (they do provide --with-included-readline)
but because their header is picked up by default and then linked against
the system readline. Thats a build bug yes.

> <snip comparison of default behaviors>
>
<SNIP static vs dynamic first-in logic>

I see your point about libtool aligning with the system. Do remember
that pw32 and mingw are also affected by our changes with respect to
libtool.

> > I don't think that is an issue:
> > a) Present day: all the libtool created libraries are
> > cyglibfoo-version.dll. And they don't provide an ordinal .def file,
so
> > all linked apps will be by name.
> > b) The libraries you are shipping are linked to by name if you use
the
> > default headers, no? So again, that shouldn't be an issue.
>
> I *think* so.  There was a problem around libpng-1.0.9/1.0.11 where
> missing functions changed the autoassigned ordinals...and stuff broke.
> I created a .def file to maintain the <old> ordinal numbers -- but the
> .def does not specify NONAME, so the names should be exported.

Hmm.

<snip quoting> >
> > Basically, ordinals are a optimisation, and the dll _creator_
controls
> > whether linking to ordinals is allowed. No .def file, and/or no
ordinals
> > (they are optional) and it cannot happen.
>
> What happens when you strip a dll?  (All dlls are shipped stripped by
> default).  nm -a on a stripped dll shows "no symbols" -- but
objdump -p
> indicates that the symbol export table is still there.  However,
you're
> actually linking with the import lib, which is (of course) not
stripped,
> and so contains all of the symbol names.

So there's no issue :}. The dll's export table is used by the win32
runtime linker, and the import lib by ld.

> > 'Course, testing is probably needed, or a quick mail to the binutils
> > list/search the binutils archives.
>
> testing.  The problem is, I really don't know how to look at a given
> executable, say foo.exe, which depends on bar.dll and baz.dll, and
say:
>   Ah, yes, foo is linked by name to bar.dll, but its linked by ordinal
> to baz.dll.
> So, how can you test anything if you don't know how to 'evaluate' the
> results?

make a dll foo, with 3 exports -
alpha @5
beta  @3
gamma @1

make a client program and link to foo.

now rebuild the dll with
alpha @2
beta @4
gamma @6

the client program, without relinking should still work. If it doesn't,
it was linked by ordinal.

There is a much harder issue to solve I ran into last night, so I'm now
putting time into evaluating Paul Solovosky's ld that auto-imports, and
no longer needs any decoration. (The problem to solve is building static
libs from the same source via libtool when the static|shared compile
needs extra user defines. Urgh)

If that looks good, I'll see what I can do to get a libtool that
supports its tested and running. (Hopefully with a little guidance :] )

Rob

>
> --Chuck
>

--
Want to unsubscribe from this list?
Check out: http://cygwin.com/ml/#unsubscribe-simple