Re: Cygwin ping!

Jan Nieuwenhuizen <[email protected]>
Newsgroups gmane.comp.tex.tetex.beta
Organization Jan at Appel
Message-ID <[email protected]>
Olaf Weber writes:

> Well, I haven't done much except ponder things where cross-compiling
> is concerned.  The present state of my thoughts on the matter is that
> I'd like to simplify the build (and cross-building) a bit.

Ok.  It's grand to see that only one or two main issues remain.

> With Jan's current patch, a native libkpathsea has to be installed
.
> I'd like to change this to simply require that 'tangle', 'ctangle',
> 'otangle', and 'tie' be installed.

This feels a bit like a step backwards, and I also do not see the big
difference between the requirement of a library and some programs that
use it?  But if you like to change it, that's of course perfectly fine
with me, you really do not need to ask my approval; my main concern is
for the cross building to work.

I would advise and ask you to just make the change and not wait or
ponder too long though; the forward porting the patch (from 2.96.1 to
2.96.4 this time, find attached) just ate yet another hour because of
silly conflicts :-(

> The other main concern is that the windows idiom used to determine
> the exports/imports, which currently is like this:

[ current code snippet ]

That's how I read it.

> (With the note that current makefiles do not provide any of these
> defines.)  I note that you're changing this idiom.  Doesn't this work
> for Cygwin?

No, it doesn't.  That's the first thing I tried, of course.  Luckily,
it is all explained in the GNU ld info pages, from where I simply
copied my solution.  (short explanation: current code is almost ok,
but Cygwin does not want dllexport.)

It only differs from the ld manpage example (and the way I did it for
GUILE) in the ability to still define __dllexport, because this is
what the Windows code did, and I did not want to touch that.

I'm a bit surprised by your question, as it looks as such a simple,
minor thing and that nonwithstanding we went through all these motions
before (twice, IIRC.  My first patch implemented this all for
klibtool, my second one had to be updated for libtool).  Last time,
you noticed that I accidentally unintentionally probably *did* change
the Windows behaviour, which I promptly fixed in a next patch.

I thought that we were (almost, waiting for a sign of life from the
Windows team again) OK now on this issue?

Greetings,
Jan.



[Previous discussion on this, for completeness

> > > > 11 - Given 10, I do not understand why KPSEDLL_EXPORT is introduced.
> > 
> > Cygwin is a unixoid, mostly.  That's why a lot of GNU/Unix packages
> > build out of the box on Cygwin nowadays and I'd like for teTeX/web2c
> > to do that too.  When it does, I can easily hand over the Cygwin
> > maintenership to someone else.
> > 
> > Shared library import/export symbols need special attention, but
> > Cygwin is *not* (like) Windows.  I introduced KPSEDLL_EXPORT to get
> > the shared library to build, in compliance with the binutils's `man
> > ld' (Cygwin must only have dllimport, not dllexport) nand took special
> > care not to change the behaviour for plain Windows builds.
> > 
> > I was not aware of a Windows makefile patch; noticing *KPSE_DLL stuff
> > I assumed it would `just work' for plain Windows builds.  I would
> > suggest to either include the plain windows makefile patches, or to
> > junk the remains of them and only include Cygwin build.
> > 
> > > 12 - The KPSEDLL_EXPORT changes to c-proto.h and getopt.h look likely
> > >      to break Fabrice's method for building libkpathsea.dll (as per
> > >      the method described in 10 above).  This is a definite nono.
> > 
> > As far as I can see, you _did_ change the behaviour for plain Windows
> > builds.  Please note that the windows builds don't use the Makefiles
> > you find in the source tree.  Fabrice doesn't use make, and has his
> > own set of "things-that-are-almost-makefiles".
> 
> I was not aware of a Windows makefile patch; noticing *KPSE_DLL stuff
> I assumed it would `just work' for plain Windows builds.  I would
> suggest to either include the plain windows makefile patches, or to
> junk the remains of them and only include Cygwin build.

The suggestion that the Windows team possibly does not even use make,
but probably maybe uses some third party build scheme that apparently
cannot be tested, adapted, updated or fixed, thus no-one dares to
touch anything that comes close, would make me, as a project leader,
very nervous and would be something I would see to get fixed asap.]

-- 
Jan Nieuwenhuizen <[email protected]> | GNU LilyPond - The music typesetter
http://www.xs4all.nl/~jantien       | http://www.lilypond.org
pats (application/octet-stream, 69.6 KB) - not displayed
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.