Closed Bug 287248 Opened 20 years ago Closed 20 years ago

Mozilla requires Apple version of GCC

Categories

(Firefox Build System :: General, defect)

All
macOS
defect
Not set
major

Tracking

(Not tracked)

RESOLVED WONTFIX

People

(Reporter: artooro, Unassigned)

References

()

Details

Attachments

(2 files)

GCC 4.0.0 is nearing release with the branch "open for regression fixes only."

It would be nice if we can get it building now so it'll work when Mac OS X 10.4
(Tiger) is released. Most likely in April.

Currently mozilla (Includes Firefox, Thunderbird, etc) cannot be built using GCC
4.0.0 because of errors in the code that earlier versions ignored. Also some
compiler flags defined in the configure are no longer supported in GCC and cause
configure to fail.

On Mac OS X I have it building up to gfx/src/mac but using some terrible hacks.
This should be fixed proper like ;)

A lot of the errors have to do with converting constants and variables.
Can you post some concrete error messages? There are already some bugs filed
that deal with gcc 4 (for example in combination with 64bit platforms).
I'll have to make a new source tree then so I can get the errors without my
changes messing it up.

Will post some this evening.
Attached patch configure hackSplinter Review
This hack for configure let's configure run fine. The two flags that are
removed cause configure to fail on the optimization check.

Next I'll do NSPR
Attached patch nsprpub hackSplinter Review
This hack to nsprpub/configure also removes two flags that caused it to fail.
These are no longer supported in GCC 4 just like previous ones.
The main problem seems to be a direct result of Pascal Strings. See:
http://developer.apple.com/documentation/DeveloperTools/gcc-3.3/gcc/Pascal-Strings.html

For example nsAppFileLocationProvider fails like this:

nsAppFileLocationProvider.cpp
c++ -o nsAppFileLocationProvider.o -c  -DOSTYPE=\"Darwin7.8.0\"
-DOSARCH=\"Darwin\" -D_IMPL_NS_COM -I.. -I../../dist/include/string
-I../../dist/include/macmorefiles -I../../dist/include/xpcom
-I../../dist/include
-I/Users/arthur/Mozilla/mozt/mozilla/obj-dir/dist/include/nspr        -fPIC  
-fno-rtti -fno-exceptions -Wall -Wconversion -Wpointer-arith -Wcast-align
-Woverloaded-virtual -Wsynth -Wno-ctor-dtor-privacy -Wno-non-virtual-dtor
-Wno-long-long -fno-common -fshort-wchar -I/Developer/Headers/FlatCarbon -pipe 
-DDEBUG -D_DEBUG -DDEBUG_arthur -DTRACING -g -O   -DMOZILLA_CLIENT -include
../../mozilla-config.h -Wp,-MD,.deps/nsAppFileLocationProvider.pp
/Users/arthur/Mozilla/mozt/mozilla/xpcom/io/nsAppFileLocationProvider.cpp
/Users/arthur/Mozilla/mozt/mozilla/xpcom/io/nsAppFileLocationProvider.cpp:613:1:
warning: unknown escape sequence '\p'
/Users/arthur/Mozilla/mozt/mozilla/xpcom/io/nsAppFileLocationProvider.cpp: In
member function 'virtual nsresult nsAppFileLocationProvider::GetFile(const
char*, PRBool*, nsIFile**)':
/Users/arthur/Mozilla/mozt/mozilla/xpcom/io/nsAppFileLocationProvider.cpp:220:
error: invalid conversion from 'const char*' to 'const unsigned char*'
/Users/arthur/Mozilla/mozt/mozilla/xpcom/io/nsAppFileLocationProvider.cpp:220:
error:   initializing argument 3 of 'OSErr FSMakeFSSpec(short int, long int,
const unsigned char*, FSSpec*)'
/Users/arthur/Mozilla/mozt/mozilla/xpcom/io/nsAppFileLocationProvider.cpp:613:1:
warning: unknown escape sequence '\p'
/Users/arthur/Mozilla/mozt/mozilla/xpcom/io/nsAppFileLocationProvider.cpp:231:
error: invalid conversion from 'const char*' to 'const unsigned char*'
/Users/arthur/Mozilla/mozt/mozilla/xpcom/io/nsAppFileLocationProvider.cpp:231:
error:   initializing argument 3 of 'OSErr FSMakeFSSpec(short int, long int,
const unsigned char*, FSSpec*)'
/Users/arthur/Mozilla/mozt/mozilla/xpcom/io/nsAppFileLocationProvider.cpp:613:1:
warning: unknown escape sequence '\p'
/Users/arthur/Mozilla/mozt/mozilla/xpcom/io/nsAppFileLocationProvider.cpp:242:
error: invalid conversion from 'const char*' to 'const unsigned char*'
/Users/arthur/Mozilla/mozt/mozilla/xpcom/io/nsAppFileLocationProvider.cpp:242:
error:   initializing argument 3 of 'OSErr FSMakeFSSpec(short int, long int,
const unsigned char*, FSSpec*)'
make[4]: *** [nsAppFileLocationProvider.o] Error 1
make[3]: *** [libs] Error 2
make[2]: *** [tier_2] Error 2
make[1]: *** [default] Error 2
make: *** [build] Error 2

I had to remove the -fpascal-strings flag because it's no longer supported.
Moving back to Mac OS X and rewriting summary.

Mozilla can still be compiled using the Apple version of GCC 4.0. But cannot be
built with the official branch.
OS: All → MacOS X
Summary: Mozilla breaks with GCC 4.0.0 → Mozilla requires Apple version of GCC
I'm pretty sure that requiring the Apple version of gcc to build on OSX is not
considered to be a bug.
Status: NEW → RESOLVED
Closed: 20 years ago
Resolution: --- → WONTFIX
Just because you said?
Status: RESOLVED → REOPENED
Resolution: WONTFIX → ---
Priority: -- → P5
Because we obviously use code that is OSX specific and requires the Apple GCC
changes.  But don't take my word for it, I cc'd the main Mac developers for a
reason.
Priority: P5 → --
I'll second cls's WONTFIX on the grounds that monkeying with unreleased
compilers is not worth anyone's time. I highly doubt anyone with the power to
approve patches for this will even look at them - there are way better things to
be doing. I don't know if Apple is going to use standard gcc, patch it a bit,
whatever, but the gcc dev process isn't our concern. I say we wait until there
is a released compiler available. Those of us who have ADC seed accounts should
get the final version early and we can worry about it then in order to be
building on the day Tiger ships.
I'm fine with won't fix.

I actually filed this bug because I thought it didn't build on OS X with GCC 4
at all.
Later I found out that is was because of the pascal-strings. So as long as
mozilla uses pascal strings on OS X it will require Apple's GCC 4.

So won't fix is fine with me.
Status: REOPENED → RESOLVED
Closed: 20 years ago20 years ago
Resolution: --- → WONTFIX
Product: Core → Firefox Build System
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: