This is the mail archive of the gcc-help@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Query on Migarting from gcc3.3 to gcc4.1.2


Hi Jomy,

>From a C++ programming standpoint, GCC 3.3 and GCC 4.1.2 are similar.  GCC
4.1.2 is more C++ standard compliant than GCC 3.3.  (GCC 3.3 is pretty
standard compliant too.  GCC 4.1.2 moreso.)

GCC 4.1.2's C++ front end implements C++'s two phase name look up.  GCC 3.3
did not.  If your code writes a lot of templates, that may be some effort to
get the code to be compliant (putting in the typename keyword).  But would
be trivial compared to porting from ostrstream to std::ostringstream, from
GCC 2.8 to GCC 3.3.

I moved my C++ codebase from GCC 3.1 to GCC 4.1 without much difficulty.
The majority of the changes involved turning up the warning levels to
ludicrously high levels, and resolving all the warnings.  That was an opt-in
effort.

The other concern, if I recall correctly, will be that the GCC 3.3 C++ ABI
is incompatible with the GCC 4.1.2 C++ ABI.  That means you will need to
recompile all your C++ libraries, including any third party libraries you
use (if any).  The C ABI did not change, assuming your C libraries did not
use extensions -- such as supporting exception handling.

- - - - - - - - - - - - - - - -

>From a GCC internals standpoint, I believe GCC 3.3 and GCC 4.1.2 are quite
different.  But I'm not savvy on the GCC internals.

I recommend reading the release notes for each release from GCC 3.3 to GCC
4.1.2, which will give a good synopsis of what has changed.

HTH,
--Eljay


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]