[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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: