Closed
Bug 376505
Opened 18 years ago
Closed 18 years ago
Current CVS source cannot be built on Linux
Categories
(Firefox Build System :: General, defect)
Tracking
(Not tracked)
RESOLVED
INVALID
People
(Reporter: robert.bradbury, Unassigned)
Details
Attachments
(2 files)
User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.1.1) Gecko/20061208 Firefox/2.0.0.1
Build Identifier: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.1.1) Gecko/20061208 Firefox/2.0.0.1
As of April 3, 2007, did a source update from CVS and attempted to compile firefox. Build fails with errors in:
../../dist/include/xpcom/nsTHashtable.h
./../include/nsScriptSecurityManager.h
nsBindingManager.cpp
nsCSSFrameConstructor.cpp
nsCSSRendering.cpp
nsChromeRegistry.cpp
nsCommandParams.cpp
nsContentList.cpp
nsDisplayList.cpp
nsDocument.cpp
nsFrameManager.cpp
nsHTMLDocument.cpp
nsLayoutUtils.cpp
nsScriptNameSpaceManager.cpp
nsViewManager.cpp
nsXULDocument.cpp
txKeyFunctionCall.cpp
Attachments will follow.
Reproducible: Always
Steps to Reproduce:
1. cd mozilla; make -f client.mk checkout MOZ_CO_PROJECT=browser
2. make clean distclean
3. sh 1SETDBG.sh # run configure
4. make -i > Compile.lst 2>&1
Actual Results:
Many errors. Summary will be attached.
Expected Results:
It *should* have compiled.
Two things would be *really* nice:
1) Modules aren't checked into CVS and available for distribution unless they *will* compile and build under Linux.
2) The developers would release a *standard* build configuration for Linux.
(The "oh we aren't going to bother to support option xyzzy" doesn't cut it when you have 20+ options). Failing to have a "known to compile" configuration does not allow people who would *like* to help with Linux product quality determine whether (a) the mozilla development process is a disaster; (b) the CVS failed for some reason; or (c) their "private" configuration is problematic. At least if a "recommended" standard configuration were distributed it might allow people to separate (a) from (b) & (c).)
If one had a "standard" configuration then users could automate this process and run two compiles -- one standard, and then if that works a private configuration. I know there is a problem with the library state under Linux but it isn't *that* hard to say the "standard" configuration requires libraries X, Y & Z.
Reporter | ||
Comment 1•18 years ago
|
||
This script uses the standard Gentoo Linux Firefox configuration flags adjusted towards the goal of producing a fully static firefox with debugging symbols in the binary or the binary and a limited set of shared libraries.
Using this script to configure Firefox fails to produce an executable with the *distributed* Firefox 3.0alpha3 sources as well as the Firefox CVS sources as of April 3 2007.
Reporter | ||
Comment 2•18 years ago
|
||
These were simply extracted from a make -i and edited to remove some of the more obvious errors due to the same problem.
Updated•18 years ago
|
Attachment #260599 -
Attachment mime type: application/x-shellscript → text/plain
Updated•18 years ago
|
Attachment #260600 -
Attachment mime type: application/octet-stream → text/plain
Updated•18 years ago
|
Component: General → Build Config
QA Contact: general → build.config
Comment 3•18 years ago
|
||
I have no clue what you're talking about. Our tinderboxes build on Linux every hour, as do most of our developers. The problems you have pasted don't make any sense, and appear that you have an inconsistent checkout of some sort.
Status: UNCONFIRMED → RESOLVED
Closed: 18 years ago
Resolution: --- → INVALID
Reporter | ||
Comment 4•18 years ago
|
||
I object to this being considered "invalid". I have provided the explicit configure, and ome must declare the configure as invalid (i.e. we do not test that configuration *and* provide the "standard" working Linux configuration) or document where the likely CVS problems may be. I am currently updating and compiling with a 070404 CVS systen. If it is true that it is checked to compile it would be useful to know precisely *WHAT COMPILE OPTIONS WORK*. If you do not provide a claim that "this version should compile on most Linux systems" then you are simply providing evidence that Mozilla developers do not really care about Linux. There are obviously a number of Linux systems out there. And if one is providing a system which is only Windows enabled, then ones bias is obvious.
Comment 5•18 years ago
|
||
(In reply to comment #0)
> 2) The developers would release a *standard* build configuration for Linux.
http://lxr.mozilla.org/mozilla/source/tools/tinderbox-configs/firefox/linux/
Reporter | ||
Comment 6•18 years ago
|
||
Following suggestions of the bad checkout the cvsco.log from the bad build contained:
cvs [checkout aborted]: end of file from server (consult above messages if any)
A subsequent checkout which did not contain any errors does build properly.
I apologize for the inconvenience. Earlier (infrequent) CVS checkouts had worked and built properly and I expected that CVS checkouts were reliable. Obviously that is not the case.
Thank you for the pointer to the linux build configurations.
Reporter | ||
Comment 7•18 years ago
|
||
I will confirm as of 8 June 2007, a full CVS checkout will not compile under Gentoo Linux with gcc 4.1.2 (though the gcc version may be unrelated).
----------------------------------------------------------------------------
PROBLEM 1: bug #372269/bug #368844 is still present.
To get cairo-xlib-utils.c to compile on my machine I have the following diff:
42a43
> #define HAVE_STDINT_H 1 /* force definition */
This is *not* a proper fix -- a proper fix involves changing "configure" to recognize that /usr/include/stdint.h is present on the machine and to have the proper variables (HAVE_STDINT_H) be set in the compile line or the system header files, perhaps mozilla-config.h.
As recent discussions in Bug #368844 point out it is highly undesirable to have a situation where the CVS source does *not* compile (or patches exist which have not been applied to the source). People run around wasting time applying patches, unapplying them and end up totally confused as to what is required to build the program.
------------------------------------------------------------------------------
PROBLEM 2: nsNSSComponent.cpp will not compile. It is dated May 30, 2007.
Errors produced are:
nsNSSComponent.cpp: In function 'void setOCSPOptions(nsIPrefBranch*)':
nsNSSComponent.cpp:998: error: 'ocspMode_FailureIsVerificationFailure' was not declared in this scope
nsNSSComponent.cpp:998: error: 'CERT_SetOCSPFailureMode' was not declared in this scope
nsNSSComponent.cpp:1001: error: 'ocspMode_FailureIsNotAVerificationFailure' was not declared in this scope
nsNSSComponent.cpp:1001: error: 'CERT_SetOCSPFailureMode' was not declared in this scope
nsNSSComponent.cpp: In function 'nsresult setPassword(PK11SlotInfo*, nsIInterfaceRequestor*)':
nsNSSComponent.cpp:2494: warning: dereferencing type-punned pointer will break strict-aliasing rules
-----------------------------------------------------------------------------
These problems would appear to provide evidence that the CVS source is not compiled under Linux in a "robust" fashion a regular basis.
-----------------------------------------------------------------------------
In particular, I would suggest that the Tinderbox be changed to:
--enable-mathml
--enable-ipv6
--enable-xprint
--without-system-nss (though the error used --with-system-nss)
--without-system-nspr
--without-system-jpeg
--without-system-png
--without-system-zlib
--enable-pango
--enable-svg
--enable-svg-renderer=cairo
--enable-system-cairo
The goal should be to compile as *much* of the source as possible. In cases where there are mutually exclusive branches in the source code attempts should be made to compile with *both* branches. My impression of the current Tinderbox situation is that it is attempting to compile as little Linux specific code as possible.
Status: RESOLVED → UNCONFIRMED
Resolution: INVALID → ---
Comment 8•18 years ago
|
||
Robert, will it build with the internal nss?
I think the problem is that you are running the stable system nss and firefox requires the cvs version of nss.
Will it build if you use --without-system-nss ?
Comment 9•18 years ago
|
||
The --without-system-* options are the default in configure. Our tinderboxes compile that code. --enable-system-cairo is currently broken, but that's filed as bug 368844. If you have a specific issue, please file it, but we don't keep bugs open for random collections of issues unrelated to the initial filing. It is certainly possible that there are specific issues related to your environment or compiler or choice of configure flags that cause problems, and we appreciate specific bug reports (and patches, too), but we don't appreciate unfounded accusations of bias. It's a big project, with a lot of source code, and making sure it compiles on a wide range of systems is a difficult task. I can assure you that nobody is intentionally making it harder to compile on Linux, but we're certainly not perfect.
Status: UNCONFIRMED → RESOLVED
Closed: 18 years ago → 18 years ago
Resolution: --- → INVALID
Reporter | ||
Comment 10•18 years ago
|
||
The problem with --without-system-nss seems to be due to a configuration
problem (attempting to compile new CVS sources with old system header files).
Problem has been documented in: Bug #383866.
Comment 11•18 years ago
|
||
So the system-nss problem will get automatically resolved when nss 3.11.7 is out?
Reporter | ||
Comment 12•18 years ago
|
||
Hussam, see my comments under Bug #383866. Completion of the new NSS code will not solve the problem unless people (a) first do a complete compile and *install* (--without-system-nss), then (b) attempt to compile with (--with-system-nss). Furthermore, --with-system-nss will *not* work if the Mozilla compile/install places the results someplace different from the "system" install (e.g. /usr/local/include|/usr/local/lib vs. /usr/include|/usr/lib). There is a real problem in the setup of config/autoconf.mk with having only one flag (--with(out)-system-nss(nspr)) and two variables involved in compiling vs. linking, e.g. NSS(NSPR)_CFLAGS and NSS(NSPR)_LIBS which may require different settings in different build situations.
In my situation I want to compile --without-system-nss (setting NSS_CFLAGS) but link --with-system-nss (setting NSS_LIBS). That strange situation is due to the fact that "--enable-static" doesn't really work at all -- i.e. it is currently impossible to produce a fully static Mozilla/Firefox under Linux. If you read the history of Bug #263160 (and the difficulties people have had reproducing it -- even though it now seems to be a longstanding and highly annoying bug) it may become clearer why a fully static Firefox with debug symbols built in would be a highly desirable component to distribute to people who are having "strange" problems).
Assignee | ||
Updated•6 years ago
|
Component: Build Config → General
Product: Firefox → Firefox Build System
You need to log in
before you can comment on or make changes to this bug.
Description
•