Closed Bug 189661 Opened 23 years ago Closed 23 years ago

configure.in fixes for gcc-3.4 (cvs)

Categories

(SeaMonkey :: Build Config, defect)

x86
Linux
defect
Not set
normal

Tracking

(Not tracked)

RESOLVED FIXED

People

(Reporter: bbaetz, Assigned: bbaetz)

Details

Attachments

(1 file, 1 obsolete file)

I decided to try to build moz with gcc-CVS over the weekend, which has a new C++ parser. There are some configure patches needed for this, obtained via inspection/diff of config.log + friends. I couldn't get much further, because of gcc PR c++/9302 - http://gcc.gnu.org/ml/gcc-bugs/2003-01/msg00879.html where -include basically doesn't work. We hard code using -include for gcc; its not worth working arround that for a pre-alpha compiler which will presumably get fixed at some stage. I may locally hack that at some point just to try to get further, though. I'm not expecting too many changes given that we do build on AIX which is also quite picky wrt c++ syntax. The changes are: - comment change for the (unused) mmintrin.h check. gcc now requires -mmmx (or equiv) to use mmx options. I'm not sure if this change was made for 3.3; gcc.gnu.org is down ATM so I can't check its cvs. - add stdlib.h include for the const_iconv test so that NULL is declared. This fails even with gcc-3.2 but since its user doesn't mind if we fail to detect this when we should (it ends up just adding a single cast where it isn't needed) noone noticed. We could get away with just stddef.h, but I just copied the other test in case it used stdlib.h for some other reason. - remove the test for c++ template specialization support. It fails in CVS gcc, which now requires template<> to be included (with 'error: too few template-parameter-lists' as the message otherwise; human-readable errors are apparently on the todo list for the new parser). Noone uses the results of this test, and we'd fail to compile without compiler support since the char traits stuff in the strings lib uses it. Its also misleading+incorrect, since the compiler 'supports' specialisation if either form is available. Since we require it anyway, I just dropped the test rather than fixing it. (Is there a bug on going through configure.in and weeding out unused tests?) The separate template<> specialisation test remains; do we support any compiler which doesn't like that anymore? (egcs?) - The extern template instantiaion test was missing a |class|. Noone uses this test either, but since its not incorrect I just fixed it. The error here was: sp.cpp:2: error: expected unqualified-id sp.cpp:2: error: abstract declarator `Foo<int>' used as declaration sp.cpp:2: error: explicit instantiation of non-template `Foo<int> ._0' which I tracked down mainly by guesswork...
Attached patch patch (obsolete) — Splinter Review
Attachment #111964 - Flags: review?(seawood)
FWIW, gcc.gnu.org came back up, and 3.3 will have the same mmintrin.h issue.
Comment on attachment 111964 [details] [diff] [review] patch sr=dbaron, but I think you should also remove the HAVE_CPP_SPECIALIZATION defines from nscore.h for the non-autoconf platforms. (Another possibility would be to keep the test and rename the macro to HAVE_CPP_OLD_SPECIALIZE_TEMPLATE_SYNTAX, in contrast to HAVE_CPP_MODERN_SPEC...).
Attachment #111964 - Flags: superreview+
OK, I'll fix that up this evening. I want to drop teh test though. Since we don;t compile without it, theres not much point to autoconfing for it.
Attached patch v2Splinter Review
Also removes defines from nscore.h
Attachment #111964 - Attachment is obsolete: true
Comment on attachment 111964 [details] [diff] [review] patch sure, whatever.
Attachment #111964 - Flags: review?(seawood) → review+
Comment on attachment 112036 [details] [diff] [review] v2 carrying forward cls's r=
Attachment #112036 - Flags: review+
Fixed.
Status: NEW → RESOLVED
Closed: 23 years ago
Resolution: --- → FIXED
Product: Browser → Seamonkey
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: