bugzilla.mozilla.org has resumed normal operation. Attachments prior to 2014 will be unavailable for a few days. This is tracked in Bug 1475801.
Please report any other irregularities here.

modutil: check in Berkeley yacc-generated files.

RESOLVED FIXED in 3.0.1

Status

NSS
Tools
P3
normal
RESOLVED FIXED
18 years ago
18 years ago

People

(Reporter: Wan-Teh Chang, Assigned: Wan-Teh Chang)

Tracking

3.0.1
x86
Windows 2000

Firefox Tracking Flags

(Not tracked)

Details

Attachments

(2 attachments)

(Assignee)

Description

18 years ago
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.
(Assignee)

Comment 1

18 years ago
Bob, is this going to undo the TLS and SSL flags
you added to modutil?
(Assignee)

Comment 2

18 years ago
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
(Assignee)

Comment 3

18 years ago
Created attachment 14485 [details] [diff] [review]
Proposed patch for the makefiles in nss/cmd/modutil.
(Assignee)

Comment 4

18 years ago
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.

Comment 5

18 years ago
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
(Assignee)

Comment 6

18 years ago
Created attachment 14503 [details] [diff] [review]
Revised patch.  Cancel the implicit yacc and lex rules of gmake.
(Assignee)

Comment 7

18 years ago
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
Last Resolved: 18 years ago
Resolution: --- → FIXED

Comment 8

18 years ago
*** Bug 42546 has been marked as a duplicate of this bug. ***
(Assignee)

Comment 9

18 years ago
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.