MantisBT - GCC-XML
View Issue Details
0012932GCC-XML(No Category)public2012-02-03 11:132012-07-26 08:02
ellert 
Brad King 
normalmajoralways
closedfixed 
x86_64Fedora Linux17
0012932: gccxml lacks support for gcc 4.7
Fedora 17 uses gcc 4.7. gccxml has no support for it
ctest
Test project /builddir/build/BUILD/gccxml-0.9.0-20111218
      Start 1: gxConfiguration.cxx
 1/11 Test #1: gxConfiguration.cxx ..............***Failed 0.44 sec
      Start 2: gxConfiguration.h
 2/11 Test 0000002: gxConfiguration.h ................***Failed 0.33 sec
      Start 3: gxDocumentation.cxx
 3/11 Test 0000003: gxDocumentation.cxx ..............***Failed 0.34 sec
      Start 4: gxDocumentation.h
 4/11 Test 0000004: gxDocumentation.h ................***Failed 0.33 sec
      Start 5: gxFlagsParser.cxx
 5/11 Test 0000005: gxFlagsParser.cxx ................***Failed 0.36 sec
      Start 6: gxFlagsParser.h
 6/11 Test 0000006: gxFlagsParser.h ..................***Failed 0.33 sec
      Start 7: gxFront.cxx
 7/11 Test 0000007: gxFront.cxx ......................***Failed 0.35 sec
      Start 8: gxSystemTools.cxx
 8/11 Test 0000008: gxSystemTools.cxx ................***Failed 0.34 sec
      Start 9: gxSystemTools.h
 9/11 Test #9: gxSystemTools.h ..................***Failed 0.33 sec
      Start 10: TestFullPathInclude.cxx
10/11 Test 0000010: TestFullPathInclude.cxx ..........***Failed 0.33 sec
      Start 11: TestUsualInclude.cxx
11/11 Test #11: TestUsualInclude.cxx .............***Failed 0.34 sec
0% tests passed, 11 tests failed out of 11
Copying the 4.6 support files to a 4.7 is sufficient to make ctest work,

ctest
Test project /builddir/build/BUILD/gccxml-0.9.0-20111218
      Start 1: gxConfiguration.cxx
 1/11 Test #1: gxConfiguration.cxx .............. Passed 0.73 sec
      Start 2: gxConfiguration.h
 2/11 Test 0000002: gxConfiguration.h ................ Passed 0.55 sec
      Start 3: gxDocumentation.cxx
 3/11 Test 0000003: gxDocumentation.cxx .............. Passed 0.56 sec
      Start 4: gxDocumentation.h
 4/11 Test 0000004: gxDocumentation.h ................ Passed 0.55 sec
      Start 5: gxFlagsParser.cxx
 5/11 Test 0000005: gxFlagsParser.cxx ................ Passed 0.58 sec
      Start 6: gxFlagsParser.h
 6/11 Test 0000006: gxFlagsParser.h .................. Passed 0.55 sec
      Start 7: gxFront.cxx
 7/11 Test 0000007: gxFront.cxx ...................... Passed 0.62 sec
      Start 8: gxSystemTools.cxx
 8/11 Test 0000008: gxSystemTools.cxx ................ Passed 0.61 sec
      Start 9: gxSystemTools.h
 9/11 Test #9: gxSystemTools.h .................. Passed 0.55 sec
      Start 10: TestFullPathInclude.cxx
10/11 Test 0000010: TestFullPathInclude.cxx .......... Passed 0.55 sec
      Start 11: TestUsualInclude.cxx
11/11 Test #11: TestUsualInclude.cxx ............. Passed 0.55 sec
100% tests passed, 0 tests failed out of 11

cp -pr GCC_XML/Support/GCC/4.6 GCC_XML/Support/GCC/4.7

I haven't made a more thorough investigation whether additional changes are needed.
No tags attached.
related to 0013372resolved Brad King gccxml cannot parse <limits> under GCC 4.7.1 
gz gccxml-gcc4.7.tar.gz (58,008) 2012-03-09 07:05
https://public.kitware.com/Bug/file/4253/gccxml-gcc4.7.tar.gz
patch gccxml-gcc4.7.patch (16,207) 2012-03-09 07:06
https://public.kitware.com/Bug/file/4254/gccxml-gcc4.7.patch
Issue History
2012-02-03 11:13ellertNew Issue
2012-02-03 11:41Brad KingNote Added: 0028465
2012-02-03 14:23Brad KingNote Added: 0028466
2012-02-03 14:48Tim FinerNote Added: 0028469
2012-03-08 05:19ellertNote Added: 0028861
2012-03-08 07:37Brad KingNote Added: 0028862
2012-03-09 07:05ellertFile Added: gccxml-gcc4.7.tar.gz
2012-03-09 07:06ellertFile Added: gccxml-gcc4.7.patch
2012-03-09 07:08ellertNote Added: 0028874
2012-03-09 08:39Brad KingNote Added: 0028875
2012-03-09 08:39Brad KingStatusnew => closed
2012-03-09 08:39Brad KingAssigned To => Brad King
2012-03-09 08:39Brad KingResolutionopen => fixed
2012-07-26 08:02Brad KingRelationship addedrelated to 0013372

Notes
(0028465)
Brad King   
2012-02-03 11:41   
gccxml_builtins.h can be copied from 4.6 to 4.7 as a starting point. The other headers were all created by first committing original headers from the corresponding version and then committing fixups to help gccxml's parser handle things.

Unfortunately this is getting harder with every new GCC because gccxml still uses a GCC 4.2 parser internally and the GCC system headers are using more and more new parser/language features.
(0028466)
Brad King   
2012-02-03 14:23   
I see no mention of GCC 4.7 being released at gcc.gnu.org, nor a branch in their repository:

* http://gcc.gnu.org/viewcvs/branches/ [^]
(0028469)
Tim Finer   
2012-02-03 14:48   
Yeah, it's still a bit ahead. I think that the source for 4.7 is in trunk, according to their timeline, they'll cut a 4.7 branch in March.
(0028861)
ellert   
2012-03-08 05:19   
http://gcc.gnu.org/viewcvs/branches/gcc-4_7-branch/ [^] was created on March 2nd.
(0028862)
Brad King   
2012-03-08 07:37   
Great. I'll need two patches for gccxml. The first should add the *original* versions of these files from GCC 4.7:

 bits/stl_algo.h
 bits/stl_algobase.h
 complex
 emmintrin.h
 iomanip
 mmintrin.h
 xmmintrin.h

to GCC_XML/Support/GCC/4.7 (and perhaps new ones that we'll need to patch for 4.7). The second patch should apply changes to those files to fix them up for gccxml's parser. Look at the equivalent changes made to 4.6's headers for examples.
(0028874)
ellert   
2012-03-09 07:08   
I have uploaded a tar file containing copies of the original files and a patch to adapt them to the gccxml parser.
(0028875)
Brad King   
2012-03-09 08:39   
Fantastic. I've applied the patches as the three commits shown below. Thanks!

Add gccxml_builtins.h for GCC 4.7 starting with 4.6 version
/cvsroot/GCC_XML/gccxml/GCC_XML/Support/GCC/4.7/gccxml_builtins.h,v <-- GCC_XML/Support/GCC/4.7/gccxml_builtins.h
initial revision: 1.1

Add GCC 4.7 original headers
/cvsroot/GCC_XML/gccxml/GCC_XML/Support/GCC/4.7/bits/stl_algo.h,v <-- GCC_XML/Support/GCC/4.7/bits/stl_algo.h
initial revision: 1.1
/cvsroot/GCC_XML/gccxml/GCC_XML/Support/GCC/4.7/bits/stl_algobase.h,v <-- GCC_XML/Support/GCC/4.7/bits/stl_algobase.h
initial revision: 1.1
/cvsroot/GCC_XML/gccxml/GCC_XML/Support/GCC/4.7/complex,v <-- GCC_XML/Support/GCC/4.7/complex
initial revision: 1.1
/cvsroot/GCC_XML/gccxml/GCC_XML/Support/GCC/4.7/emmintrin.h,v <-- GCC_XML/Support/GCC/4.7/emmintrin.h
initial revision: 1.1
/cvsroot/GCC_XML/gccxml/GCC_XML/Support/GCC/4.7/iomanip,v <-- GCC_XML/Support/GCC/4.7/iomanip
initial revision: 1.1
/cvsroot/GCC_XML/gccxml/GCC_XML/Support/GCC/4.7/mmintrin.h,v <-- GCC_XML/Support/GCC/4.7/mmintrin.h
initial revision: 1.1
/cvsroot/GCC_XML/gccxml/GCC_XML/Support/GCC/4.7/xmmintrin.h,v <-- GCC_XML/Support/GCC/4.7/xmmintrin.h
initial revision: 1.1
/cvsroot/GCC_XML/gccxml/GCC_XML/Support/GCC/4.7/ext/atomicity.h,v <-- GCC_XML/Support/GCC/4.7/ext/atomicity.h
initial revision: 1.1

Update GCC 4.7 headers to work with gccxml's GCC 4.2 parser (0012932)
/cvsroot/GCC_XML/gccxml/GCC_XML/Support/GCC/4.7/bits/stl_algo.h,v <-- GCC_XML/Support/GCC/4.7/bits/stl_algo.h
new revision: 1.2; previous revision: 1.1
/cvsroot/GCC_XML/gccxml/GCC_XML/Support/GCC/4.7/bits/stl_algobase.h,v <-- GCC_XML/Support/GCC/4.7/bits/stl_algobase.h
new revision: 1.2; previous revision: 1.1
/cvsroot/GCC_XML/gccxml/GCC_XML/Support/GCC/4.7/complex,v <-- GCC_XML/Support/GCC/4.7/complex
new revision: 1.2; previous revision: 1.1
/cvsroot/GCC_XML/gccxml/GCC_XML/Support/GCC/4.7/emmintrin.h,v <-- GCC_XML/Support/GCC/4.7/emmintrin.h
new revision: 1.2; previous revision: 1.1
/cvsroot/GCC_XML/gccxml/GCC_XML/Support/GCC/4.7/iomanip,v <-- GCC_XML/Support/GCC/4.7/iomanip
new revision: 1.2; previous revision: 1.1
/cvsroot/GCC_XML/gccxml/GCC_XML/Support/GCC/4.7/mmintrin.h,v <-- GCC_XML/Support/GCC/4.7/mmintrin.h
new revision: 1.2; previous revision: 1.1
/cvsroot/GCC_XML/gccxml/GCC_XML/Support/GCC/4.7/xmmintrin.h,v <-- GCC_XML/Support/GCC/4.7/xmmintrin.h
new revision: 1.2; previous revision: 1.1
/cvsroot/GCC_XML/gccxml/GCC_XML/Support/GCC/4.7/ext/atomicity.h,v <-- GCC_XML/Support/GCC/4.7/ext/atomicity.h
new revision: 1.2; previous revision: 1.1