Closed Bug 52232 Opened 24 years ago Closed 24 years ago

modutil: check in Berkeley yacc-generated files.

Categories

(NSS :: Tools, defect, P3)

x86
Windows 2000
defect

Tracking

(Not tracked)

RESOLVED FIXED

People

(Reporter: wtc, Assigned: wtc)

References

Details

Attachments

(2 files)

The reason why we can't use the installparse.c file
that's checked in on Windows NT is that the file
includes the header <values.h>, which doesn't exist
on NT.

The installparse.{h,c} that are checked in were
generated with the yacc on Solaris.  I found that
the yacc's on different Unix flavors generated
different output files, each of which may include
some platform-dependent system headers.  It seems
that Berkeley yacc generates the most portable
output files.  So I suggest that we check in the
installparse.{c,h} generated by Berkeley yacc 1.9
(latest release).

Once we do this, the "FORCE" target in modutil/Makefile
can also be removed, because the checked-in version
of installparse.{c,h} will be good for both Unix and NT.
Bob, is this going to undo the TLS and SSL flags
you added to modutil?
I found that revision 1.2 of installparse.{c,h} was
generated with the yacc on Solaris 2.6, which inserted
   #include <values.h>
that doesn't exist on Windows.  Revision 1.1
of installparse.{c,h} was generated with the Berkeley
yacc 1.4 we use at Netscape on NT (nstools/bin/yacc.exe).
Both revisions 1.1 and 1.2 of installparse.{c,h} were
generated from revision 1.1 of installparse.y, which
has not changed since NSS went open source.

I reverted installparse.{c,h} to their previous state.
/cvsroot/mozilla/security/nss/cmd/modutil/installparse.c, new revision: 1.3
/cvsroot/mozilla/security/nss/cmd/modutil/installparse.h, new revision: 1.3
The proposed patch does two things.
1. The makefile rule to generate installparse.{c,h} was
   removed from the primary Makefile so that they don't
   accidentally get generated and checked in.
2. To generate installparse.{c,h} from a new version of
   installparse.y, do
       gmake -f rules.mk generate
   The patch added some comments to rules.mk explaining
   why Berkeley yacc should be used.
RE: TLS/SSL changes.

Unless I goofed and didn't check my changes into  the .y and .l files, this 
should not affect them.

bob
Ian pointed out that gmake has implicit rules for yacc and lex that
may accidentally generate installparse.c from installparse.y if
installparse.y has a newer timestamp than installparse.c, hence the
revised patch to cancel the implicit rules.

I checked in the revised patch.
/cvsroot/mozilla/security/nss/cmd/modutil/Makefile, new revision: 1.6
/cvsroot/mozilla/security/nss/cmd/modutil/rules.mk,new revision: 1.2

Now yacc is not required to build NSS. (Unless you want to modify
installparse.y.)
Status: NEW → RESOLVED
Closed: 24 years ago
Resolution: --- → FIXED
*** Bug 42546 has been marked as a duplicate of this bug. ***
I have merged the fix to the NSS_30_BRANCH by forcibly
moving the NSS_30_BRANCH tag to point to the following
revisions of these files:
/cvsroot/mozilla/security/nss/cmd/modutil/installparse.c, revision: 1.3
/cvsroot/mozilla/security/nss/cmd/modutil/installparse.h, revision: 1.3
/cvsroot/mozilla/security/nss/cmd/modutil/Makefile, revision: 1.6
/cvsroot/mozilla/security/nss/cmd/modutil/rules.mk, revision: 1.2

Target fix version 3.0.1.
Target Milestone: --- → 3.0.1
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: