This is the mail archive of the
mailing list for the Cygwin project.
Re: flex and dos source files. How is flex built for cygwin
Peter Rehley schrieb:
Peter Rehley wrote:
Larry Hall wrote:
We have a customer that is using flex under a custom version of
cygwin that we provided them (with source). The customer is having
problems when their "*.l" files are in dos format. Flex is taking
the lines from the file and adding them into the lex.yy.c file
untouched. (i.e. they still have the \n\r at the end), and this
causing problems later on.
I tried using the version of flex that comes with the latest version
of cygwin (1.5.12) and flex changes the \n\r to just \n, which makes
everything work fine. Good I thought since the version of flex we
provide is not the latest. I'll just recompile.
But when I tried that with the latest flex (2.5.4a-3) I get the same
behavior that the customer is seeing. I get this behavior even if I
compile on the latest version of cygwin.
So, my question is what options are used for building flex?
there's no build script and an inactive maintainer. we don't know.
hopefully just the standard options.
./configure --prefix=/usr sharedstatedir=/var --mandir=/usr/share/man
make && make install
Linking against /usr/lib/binmode.o perhaps?
He meant that by accident flex was linked against binmode.o, which is
wrong. It was no advice to reproduce that error with linking against
binmode or textmount.
Tried on cygwin 1.5.12
but neither helped
for sure not.
However linking the /usr/lib/textmode.o did work
make LDFLAGS="/usr/lib/textmode.o" # <- did the job
Thanks Larry for pointing me in the right directory :)
Oh god. This was the right direction? Sorry no.
If you open your flex input file in a *textmode mount* \r\n will get
converted, if you open that in a binmode mount it will not get converted.
$ man mount
So it's entirely a user problem behind the keyboard, and does NOT need a
changed linker line. Just tell the user to set this mount to textmode,
so that his DOSEOL will get converted. Or convert the DOSEOL by basic
commands like unix2dos.
But if you force linking against binmode or textmode, your flex binary
will do no conversions at all, and will only work on the matching mount
This is a pretty basic cygwin FAQ, and I wonder why this needs such a
long and wrong consideration.
Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple
Problem reports: http://cygwin.com/problems.html