Skip Menu |
 

Date: Fri, 28 Feb 2003 14:45:23 -0500 (EST)
From: Ezra Peisach <epeisach@MIT.EDU>
To: krb5-bugs@MIT.EDU
Subject: make depend requires use of Gnu sed under Irix

Very low priority...

Trying to update dependencies failed to strip the the gcc include path
on an irix machine. Tracked it down to the Irix version of sed
misbehaving and not outputting the gcc relevant lines....

Perhaps - do not allow updating of dependencies unless gnu's sed is
found... I have not evaluated which versions of sed are broken...

Ezra
To: krb5-bugs@MIT.EDU
Subject: Re: [krbdev.mit.edu #1364] make depend requires use of Gnu sed under Irix
From: Ken Raeburn <raeburn@MIT.EDU>
Date: Fri, 28 Feb 2003 17:35:58 -0500
RT-Send-Cc:
Any idea whether it's the generated sed code, the fixed portions, or
both, that are failing? Perhaps I accidentally did something
unportable in one of the scripts.

Ken
To: rt-comment@krbdev.mit.edu
Cc: krb5-prs@MIT.EDU
Subject: Re: [krbdev.mit.edu #1364] make depend requires use of Gnu sed under Irix
Date: Fri, 28 Feb 2003 20:02:20 -0500
From: Ezra Peisach <epeisach@MIT.EDU>
RT-Send-Cc:
Download (untitled) / with headers
text/plain 2.2KiB
The problem is in depgen.sed. The output script is missing all of the
gcc stuff...

Here is the .depfix2.sed file with the irix sed...

s; \.\./\.\./\.\./src/lib/krb4/\.\./\.\./; $(SRCTOP)/;g
s; \.\./\.\./\.\./src/lib/krb4/\.\./\.\./; $(SRCTOP)/;g
s; \.\./\.\./\.\./src/lib/\.\./; $(SRCTOP)/;g
s; \.\./\.\./\.\./src/; $(SRCTOP)/;g

# Now try to produce pathnames relative to $(srcdir).
s; $(SRCTOP)/lib/krb4/; $(srcdir)/;g
s; $(SRCTOP)/lib/; $(srcdir)/../;g

# Now substitute for BUILDTOP:
s; \.\./\.\./; $(BUILDTOP)/;g

# end of sed code generated by depgen.sed
---------------------------------------------------------


If I use gnu sed - the top of the file is....

# This file is automatically generated by depgen.sed, do not edit it.
#
# Parameters used to generate this instance:
#
# SRCTOP = ../../../src/lib/krb4/../..
# thisdir = lib/krb4
# srcdir = ../../../src/lib/krb4
# BUILDTOP = ../..
# libgcc file name = /dusr1/people/epeisach/Swr/lib/gcc-lib/mips-sgi-irix6.5/3.2.2/libgcc.a
#

# First, remove redundant leading "//" and "./" ...
s;///*;/;g
s; \./; ;g

# Remove gcc's include files resulting from "fixincludes";
# they're essentially system include files.
s;/dusr1/people/epeisach/Swr/lib/gcc-lib/mips-sgi-irix6\.5/3\.2\.2/include/[^ ]* ;;g
s;/dusr1/people/epeisach/Swr/lib/gcc-lib/mips-sgi-irix6\.5/3\.2\.2/include/[^ ]*$;;g

# Recognize $(SRCTOP) and make it a variable reference.
# (Is this step needed, given the substitutions below?)
s; \.\./\.\./\.\./src/lib/krb4/\.\./\.\./; $(SRCTOP)/;g

# Now make $(srcdir) variable references, unless followed by "/../".
s; \.\./\.\./\.\./src/lib/krb4 /; $(srcdir);g
s; $(srcdir)/../; \.\./\.\./\.\./src/lib/krb4 /../;

# Recognize variants of $(SRCTOP).
s; \.\./\.\./\.\./src/lib/krb4/\.\./\.\./; $(SRCTOP)/;g
s; \.\./\.\./\.\./src/lib/\.\./; $(SRCTOP)/;g
s; \.\./\.\./\.\./src/; $(SRCTOP)/;g

# Now try to produce pathnames relative to $(srcdir).
s; $(SRCTOP)/lib/krb4/; $(srcdir)/;g
s; $(SRCTOP)/lib/; $(srcdir)/../;g

# Now substitute for BUILDTOP:
s; \.\./\.\./; $(BUILDTOP)/;g

# end of sed code generated by depgen.sed
Interesting... it looks like IRIX sed doesn't treat the "p" command the
same way as GNU sed does. Under GNU sed, "p" prints out the current
pattern space, then you can go on and do other stuff, including printing
more things. But IRIX sed appears to be printing only the last thing
specified for the "p" command. If I add a "q" command in the middle of
the script, I get only the fragment most recently printed before the
script quits.

Solaris and, as far as I can tell, the IRIX sed(1) man page, seem to
agree with the GNU sed behavior.
Actually, it seems to be the "s///p" form (print *if* a substitution was
done) that IRIX sed is treating differently, and only when it's followed
by more modifications to the pattern space, printing, etc. I believe
the substitutions are arranged to always be performed, so using a
separate print command seems to be a reasonable change, and it gets me
the same results using IRIX and GNU sed.
From: raeburn@mit.edu
Subject: CVS Commit
* depgen.sed: Put print command on separate lines from substitution commands,
instead of using s///p form.


To generate a diff of this commit:



cvs diff -r1.125 -r1.126 krb5/src/util/ChangeLog
cvs diff -r1.5 -r1.6 krb5/src/util/depgen.sed