Re: Slink to potato upgrade
Oleg Krivosheev <kriol@fnal.gov> writes:
> "Kevin Dalley" writes:
>
>
> Standard Unix lex produces C source code which does not compile under
> glibc2.1.
>
> could you elaborate a bit, please?
>
> What is the source of conflict? Name conflict or what?
I'll try. Unfortunately, I don't have all of my information with me.
Unfortunately, debian-bugs is not archived, except in the bug tracking
system. This data is deleted sometime after a bug is closed. Perhaps
we should could bug tracking information indefinitely.
Here is a quote from the libc info page for glibc2.1:
In the GNU C library, `stdin', `stdout', and `stderr' are
normal variables which you can set just like any others. For
example, to redirect the standard output to a file, you could
do:
fclose (stdout);
stdout = fopen ("standard-output-file", "w");
Note however, that in other systems `stdin', `stdout', and
`stderr' are macros that you cannot assign to in the normal
way. But you can use `freopen' to get the effect of closing
one and reopening it. *Note Opening Streams::.
Under lex, the following code fragment is produced by lex on SunOS
4.1, HPUX-9.x, which I have immediate access to. Note that both of
these are older version of Unix
FILE *yyin = {stdin}, *yyout = {stdout};
(with yyin and yyout as external variables)
Note that this works as long as stdin and stdout are macros to which
you cannot assign. It does not work under glibc2.1. gwm, which I
maintain, uses a lex file which is not compatible with flex.
Note that this is not a name conflict. Since someone from alpha was
kind enough to warn me about the problem, gwm was fixed before I
updated to glib2.1. I just tried downgrading to an older release of
gwm. It seems to install and run fine, even though it doesn't compile. I'm
not quite sure why it works.
--
Kevin Dalley
SETI Institute
kevin@seti.org
Reply to: