Closed
Bug 284386
Opened 21 years ago
Closed 20 years ago
Build error using gcc4 (oiddata.h, incomplete type)
Categories
(NSS :: Build, defect)
Tracking
(Not tracked)
RESOLVED
FIXED
3.10
People
(Reporter: caillon, Assigned: caillon)
References
Details
(Keywords: fixed-aviary1.0.8, fixed1.7.13)
Attachments
(1 file, 3 obsolete files)
|
2.37 KB,
patch
|
caillon
:
review+
dveditz
:
approval-aviary1.0.8+
dveditz
:
approval1.7.13+
|
Details | Diff | Splinter Review |
gcc -o /home/caillon/builds/mozilla.org/trunk/obj-opt/nss/nsspki/asymmkey.o -c
-O2 -fPIC -DLINUX1_2 -Di386 -D_XOPEN_SOURCE -DLINUX2_1 -ansi -Wall -pipe -DLINUX
-Dlinux -D_POSIX_SOURCE -D_BSD_SOURCE -DHAVE_STRERROR -DXP_UNIX -DNSS_3_4_CODE
-UDEBUG -DNDEBUG -D_REENTRANT
-I/home/caillon/builds/mozilla.org/trunk/obj-opt/dist/include
-I/home/caillon/builds/mozilla.org/trunk/obj-opt/dist/public/nss
-I/home/caillon/builds/mozilla.org/trunk/obj-opt/dist/private/nss
-I/home/caillon/builds/mozilla.org/trunk/obj-opt/dist/include
-I/home/caillon/builds/mozilla.org/trunk/obj-opt/dist/include/nspr
-I/home/caillon/builds/mozilla.org/trunk/obj-opt/dist/include/dbm
-I/home/caillon/builds/mozilla.org/trunk/obj-opt/dist/public/nspr asymmkey.c
In file included from
/home/caillon/builds/mozilla.org/trunk/obj-opt/dist/private/nss/nsspki1.h:57,
from nsspki.h:56,
from asymmkey.c:39:
/home/caillon/builds/mozilla.org/trunk/obj-opt/dist/private/nss/oiddata.h:46:
error: array type has incomplete element type
gmake[5]: ***
[/home/caillon/builds/mozilla.org/trunk/obj-opt/nss/nsspki/asymmkey.o] Error 1
gmake[5]: Leaving directory
`/home/caillon/builds/mozilla.org/trunk/mozilla/security/nss/lib/pki'
gmake[4]: *** [libs] Error 2
gmake[4]: Leaving directory
`/home/caillon/builds/mozilla.org/trunk/mozilla/security/nss/lib'
gmake[3]: *** [libs] Error 2
gmake[3]: Leaving directory
`/home/caillon/builds/mozilla.org/trunk/obj-opt/security/manager'
gmake[2]: *** [tier_50] Error 2
gmake[2]: Leaving directory `/home/caillon/builds/mozilla.org/trunk/obj-opt'
make[1]: *** [default] Error 2
make[1]: Leaving directory `/home/caillon/builds/mozilla.org/trunk/obj-opt'
make: *** [build] Error 2
| Assignee | ||
Comment 1•21 years ago
|
||
This seems to fix it.
Attachment #176005 -
Flags: review?(wtchang)
Comment 2•21 years ago
|
||
I think a lot of the code in pki1 is dead code.
I hate to see us waste effort on dead code.
Is pki1's OID table ever used? I doubt it.
If not, I'd rather see it eliminated than fixed.
OTOH, one wonders why no other c compiler is bothered by the incomplete
type declaration. Is this a bug in gcc4? Is gcc4 demanding a type that
is uneeded. Does it not support "opaque" types?
Comment 3•21 years ago
|
||
Comment on attachment 176005 [details] [diff] [review]
Patch
This is indeed a strange build failure.
It's hard to understand why no other compilers
complain about this. If you have spare time
you might want to have the gcc4 team look at
this. Here is a test case:
----- foo.c -----
extern const struct IncompleteType myArray[];
int foo()
{
return 1;
}
-----------------
Compile it with "gcc -c foo.c".
This patch is incorrect because oiddata.h
is a public "Stan" header file, so it cannot
include the private "Stan" header file pki1t.h.
I have a better fix: move these two lines
extern const NSSOID nss_builtin_oids[];
extern const PRUint32 nss_builtin_oid_count;
from oiddata.h to pki1.h. See the comment
"fgmr 19990505 moved these here from oiddata.h"
in pki1.h.
Attachment #176005 -
Flags: review?(wtchang) → review-
| Assignee | ||
Comment 4•21 years ago
|
||
http://gcc.gnu.org/gcc-4.0/changes.html
* Arrays of incomplete element type are invalid in C. GCC now issues an error
for such arrays. Declarations such as extern struct s x[]; (where struct s has
not been defined) can be moved after the definition of struct s. Function
parameters declared as arrays of incomplete type can instead be declared as
pointers.
| Assignee | ||
Comment 5•21 years ago
|
||
Attachment #176005 -
Attachment is obsolete: true
Attachment #176304 -
Flags: review?(wtchang)
Comment 6•21 years ago
|
||
Comment on attachment 176304 [details] [diff] [review]
wtc's suggestion
I assume you've tested this patch and
it worked.
Since these two files are generated files,
we also need to update the Perl script that
generates them (oidgen.perl). I'll take
care of that.
Updated•21 years ago
|
Attachment #176304 -
Flags: review?(wtchang) → review+
Comment 7•21 years ago
|
||
1. Also updated the Perl script oidgen.perl
that generates oiddata.h and oiddata.c.
2. Fixed an unrelated error in oiddata.c.
One OID (RFC 1327 ucl) was incorrectly encoded
before. Don't know what happened.
Attachment #176304 -
Attachment is obsolete: true
Attachment #176354 -
Flags: review?(caillon)
Comment 8•21 years ago
|
||
Removed useless comments.
Attachment #176354 -
Attachment is obsolete: true
Attachment #176366 -
Flags: review?(caillon)
Updated•21 years ago
|
Attachment #176354 -
Flags: review?(caillon)
Updated•21 years ago
|
Attachment #176366 -
Attachment description: 176354: wtc's suggestion v1.2 → wtc's suggestion v1.2
| Assignee | ||
Comment 9•21 years ago
|
||
Comment on attachment 176366 [details] [diff] [review]
wtc's suggestion v1.2
>Index: oiddata.c
>===================================================================
>RCS file: /cvsroot/mozilla/security/nss/lib/pki1/oiddata.c,v
>retrieving revision 1.4
>diff -u -r1.4 oiddata.c
>--- oiddata.c 4 Mar 2005 18:30:12 -0000 1.4
>+++ oiddata.c 5 Mar 2005 15:16:07 -0000
>@@ -182,7 +182,7 @@
> "ucl",
> "RFC 1327 ucl",
> #endif /* DEBUG */
>- { "\x09\x92\x26\x86\xe8\xc4\xb5\xbe\x7f", 9 }
>+ { "\x09\x92\x26\x86\xe8\xc4\xb5\xbe\x2c", 9 }
Not sure what this change is about, but the rest looks fine. r=caillon
Attachment #176366 -
Flags: review?(caillon) → review+
Comment 10•21 years ago
|
||
Comment on attachment 176366 [details] [diff] [review]
wtc's suggestion v1.2
I've checked in this patch on the NSS trunk
(NSS 3.10). I checked in the oiddata.c change
separately so that it's clear caillon's code
review does not apply to it.
Nelson, if you have time, you can review my
oiddata.c change. I found that the OID for
RFC 1327 ucl was incorrectly encoded. I don't
know what happened.
I verified that the OID for RFC 1327 ucl in
oids.txt is correct. I also verified that my
hand encoding of that OID matches the output
of oidgen.perl.
Since oiddata.c is not being used in NSS 3.x,
I went ahead and checked in my change.
Attachment #176366 -
Flags: superreview?(nelson)
Updated•21 years ago
|
Status: NEW → RESOLVED
Closed: 21 years ago
Resolution: --- → FIXED
Target Milestone: --- → 3.10
Comment 11•21 years ago
|
||
Comment on attachment 176366 [details] [diff] [review]
wtc's suggestion v1.2
Since oiddata.c is not being used in NSS 3.x, I don't think further review of
this source file is necessary.
Attachment #176366 -
Flags: superreview?(nelson)
| Assignee | ||
Comment 12•21 years ago
|
||
*** Bug 286016 has been marked as a duplicate of this bug. ***
Comment 13•21 years ago
|
||
Could we possibly get this fix on NSS_CLIENT_TAG?
Comment 14•21 years ago
|
||
Brian: we plan to update NSS_CLIENT_TAG within a
week. Is that acceptable?
Comment 15•21 years ago
|
||
(In reply to comment #14)
> Brian: we plan to update NSS_CLIENT_TAG within a
> week. Is that acceptable?
Sure, sounds good.
Comment 16•21 years ago
|
||
I just updated the NSS_CLIENT_TAG to coincide with
NSS_3_10_BETA2, which has the fix for this gcc4 build
error.
Comment 17•20 years ago
|
||
*** Bug 297830 has been marked as a duplicate of this bug. ***
Comment 18•20 years ago
|
||
*** Bug 299387 has been marked as a duplicate of this bug. ***
Comment 19•20 years ago
|
||
*** Bug 301047 has been marked as a duplicate of this bug. ***
Updated•20 years ago
|
Summary: Build error using gcc4 → Build error using gcc4 (oiddata.h, incomplete type)
Comment 20•20 years ago
|
||
*** Bug 301629 has been marked as a duplicate of this bug. ***
Comment 21•20 years ago
|
||
When I try to build moz MOZILLA_1_7_BRANCH with gcc 4, I am still getting this
error. Any chance we can get this patch applied there?
| Assignee | ||
Comment 22•20 years ago
|
||
Comment on attachment 176366 [details] [diff] [review]
wtc's suggestion v1.2
Let's get this fix on branches, so people who need to compile against gcc4 may
do so.
Attachment #176366 -
Flags: approval1.7.12?
Attachment #176366 -
Flags: approval-aviary1.0.7?
Comment 23•20 years ago
|
||
Reopening this, since it is still not fixed on 1.0.7/1.7.12. All we need is
another review, right, caillon? (Not sure what the procedures are these days...)
Status: RESOLVED → REOPENED
Resolution: FIXED → ---
| Assignee | ||
Comment 24•20 years ago
|
||
Luis, RESOLVED FIXED is for cvs HEAD, which its fixed on. It has the necessary
reviews, just needs the approval to land on the frozen branches. When it lands,
the fixed-aviary1.0.x and fixed1.7.x keywords will be applied.
Status: REOPENED → RESOLVED
Closed: 21 years ago → 20 years ago
Resolution: --- → FIXED
Comment 25•20 years ago
|
||
*** Bug 306588 has been marked as a duplicate of this bug. ***
Comment 26•20 years ago
|
||
Comment on attachment 176366 [details] [diff] [review]
wtc's suggestion v1.2
build fix ok for branches.
Attachment #176366 -
Flags: approval1.7.12?
Attachment #176366 -
Flags: approval1.7.12+
Attachment #176366 -
Flags: approval-aviary1.0.7?
Attachment #176366 -
Flags: approval-aviary1.0.7+
Comment 27•20 years ago
|
||
(In reply to comment #26)
> (From update of attachment 176366 [details] [diff] [review] [edit])
> build fix ok for branches.
>
I just started a JHBUILD for Gnome 2.12 and it uses the following command to get
mozilla
cvs -d :pserver:anonymous@cvs-mirror.mozilla.org:/cvsroot -q -z 3 co -r
MOZILLA_1_7_BRANCH -P mozilla/client.mk mozilla/build/unix/modules.mk
mozilla/build/unix/uniq.pl
make[1]: Entering directory `/opt/lap/g2src/cvs/2.12/src'
cvs -d :pserver:anonymous@cvs-mirror.mozilla.org:/cvsroot -q -z 3 co -P -r
MOZILLA_1_7_BRANCH mozilla/nsprpub
=======
the build process breaks with the following error (on Fedora Core 4 with GCC 4)
../../../../dist/private/nss/oiddata.h:46: error: array type has incomplete
element type
gmake[4]: *** [Linux2.6_x86_glibc_PTH_OPT.OBJ/asymmkey.o] Error 1
What do I need to do to get the "fixes" incorporated in this branch?
Comment 28•20 years ago
|
||
See Comment #27
Apparently this patch has not landed in MOZILLA_1_7_BRANCH, I still get the error.
Christopher, will you reopen the report, please?
Comment 29•20 years ago
|
||
This is *the only* gcc4 blocker.
I strongy suggest it is applied to the 1.7 branch.
Comment 30•20 years ago
|
||
*** Bug 305752 has been marked as a duplicate of this bug. ***
Comment 31•20 years ago
|
||
Comment on attachment 176366 [details] [diff] [review]
wtc's suggestion v1.2
We forgot to check in this patch when we got
our aviary1.0.7 and mozilla1.7.12 approvals.
I am requesting new approvals for the
AVIARY_1_0_1_20050124_BRANCH and
MOZILLA_1_7_BRANCH.
This is a build bustage fix. Without this
patch, we can't build with GCC 4.
Attachment #176366 -
Flags: approval1.7.13?
Attachment #176366 -
Flags: approval1.7.13+
Attachment #176366 -
Flags: approval-aviary1.0.8?
Attachment #176366 -
Flags: approval-aviary1.0.8+
Updated•20 years ago
|
Flags: blocking1.7.13?
Flags: blocking-aviary1.0.8?
Updated•20 years ago
|
Attachment #176366 -
Flags: approval1.7.13?
Attachment #176366 -
Flags: approval1.7.13+
Attachment #176366 -
Flags: approval-aviary1.0.8?
Attachment #176366 -
Flags: approval-aviary1.0.8+
Comment 32•20 years ago
|
||
a=dveditz for drivers on the old branches. Please check in soon.
Comment 33•20 years ago
|
||
I checked in the patch on the AVIARY_1_0_1_20050124_BRANCH and
MOZILLA_1_7_BRANCH.
Keywords: fixed-aviary1.0.8,
fixed1.7.13
Updated•20 years ago
|
Flags: blocking1.7.13?
Flags: blocking1.7.13+
Flags: blocking-aviary1.0.8?
Flags: blocking-aviary1.0.8+
You need to log in
before you can comment on or make changes to this bug.
Description
•