Bugzilla – Full Text Bug Listing |
Summary: | apiscan fails using gcc 4.7 | ||
---|---|---|---|
Product: | ns-3 | Reporter: | alina <aquereilhac> |
Component: | python bindings | Assignee: | Gustavo J. A. M. Carneiro <gjcarneiro> |
Status: | RESOLVED FIXED | ||
Severity: | critical | CC: | ns-bugs, tomh, vedran |
Priority: | P2 | ||
Version: | ns-3-dev | ||
Hardware: | PC | ||
OS: | Linux | ||
Attachments: |
error output from ./waf --apiscan=all
output from ./waf --apiscan=all for Ubuntu 11.10 + gcc 4.6 apiscan using lastest gccxml sources and gcc 4.7 apiscan output from point-to-point module for latest git tip of gccxml (May 2, 2013) |
Description
alina
2012-11-13 19:56:03 EST
Created attachment 1467 [details]
output from ./waf --apiscan=all for Ubuntu 11.10 + gcc 4.6
I did some more testing and apiscan also fails with gcc 4.6.1 under Ubuntu 11.10 (output file attached). However it seems to work with gcc 4.5.1 under Fedora 14. So I am guessing I ran into pitfall [1], and this bug is related to the unmaintained gccxml and not to a bug introduced in ns-3/pybindgen. If this is the case, please close this bug report. [1] http://www.nsnam.org/wiki/index.php/NS-3_Python_Bindings#GCC-XML_on_newer_systems there seems to be some activity in gccxml project recently: https://github.com/gccxml/gccxml/commits/master would you mind having a look whether their git repo is any better for us, using gcc-4.7? Created attachment 1474 [details]
apiscan using lastest gccxml sources and gcc 4.7
(In reply to comment #3) > there seems to be some activity in gccxml project recently: > https://github.com/gccxml/gccxml/commits/master > > would you mind having a look whether their git repo is any better for us, > using gcc-4.7? I tested the problem with the latest gccxml sources from the repo (git clone git://github.com/gccxml/gccxml.git) and I get the same errors than with the package distributed in debian (the version is still 0.9.0 in both). Attachment 3 [details] contains the output of the apiscan. Sorry, it is attachment 1474 [details].
Recent changes mention support for GCC 4.8: commit 567213ac765c99d5dfd23b14000b3c7b76274fcb Author: Brad King <brad.king@kitware.com> Date: Thu May 2 09:43:43 2013 -0400 Update GCC 4.8 headers to work with gccxml's GCC 4.2 parser Port changes from commit 16190d39 (Update GCC 4.7 headers..., 2012-03-09) to GCC 4.8 headers: * In (|e|x)mmintrin.h remove the function bodies that use builtins not provided by the GCC 4.2 parser. The declarations are sufficient for our needs anyway. * In <complex> remove assignment operator implementations that use conversions the older GCC parser does not recognize. * In <iomanip> remove use of initializer lists. * In <bits/stl_*> remove use of decltype. * In <ext/atomicity.h> replace use of atomic builtins with older GCC names. Inspired-by: Mattias Ellert <mattias.ellert@fysast.uu.se> commit 875b2c14f309fa254f531584a62c1bd01e84ce58 Author: Brad King <brad.king@kitware.com> Date: Thu May 2 09:35:33 2013 -0400 Add GCC 4.8 original headers commit c77c7a96b650081d17d2c91869fcd21cfbceb769 Author: Brad King <brad.king@kitware.com> Date: Thu May 2 09:32:59 2013 -0400 Override GCC 4.8 <bits/c++config.h> to disable __int128 commit 5755031e3f899b329802b93c30fcd86cf9a0e417 Author: Brad King <brad.king@kitware.com> Date: Thu May 2 09:28:55 2013 -0400 Add gccxml_builtins.h for GCC 4.8 starting with 4.7 version commit 0edc4e4c9398bcda51c5f6c0f46323cb7ae8011a Author: Brad King <brad.king@kitware.com> Date: Thu May 2 09:35:02 2013 -0400 Tell Git to skip whitespace checks in GCC_XML/Support/GCC This directory contains third-party code so add a .gitattributes file to tell Git not to check it for whitespace style. Can anyone test this? (In reply to comment #7) > Recent changes mention support for GCC 4.8: > <snip> > > Can anyone test this? I tested this today on Ubuntu 13.04 64-bit machine. I am observing the following, which is the same behavior as from before this newest git changeset: (1) there are still some errors similar to what Alina previously reported (will upload a new attachment), but it is sometimes able to make progress afterwards (unlike apiscan_task failure in Alina's output), and can rescan the 64-bit bindings successfully (2) it does not create both 64- and 32-bit bindings; it deletes both upon start, but only restores the 64-bit version. I removed a few modulegen__gcc_LP64.py files (e.g. csma, point-to-point, antenna) and it was able to recreate them successfully before hanging, when only that module was selected; e.g. ./waf --apiscan=csma However, I then removed all instances of modulegen__gcc_LP64.py in src/ and did a ./waf --apiscan=all and I got a failure similar to Alina's: Build failed -> task in '' failed (exit status 1): {task 'apiscan_task': 55396624 } '' -> task in '' failed (exit status 1): {task 'apiscan_task': 55396816 } '' -> task in '' failed (exit status 1): {task 'apiscan_task': 55396688 } '' -> task in '' failed (exit status 1): {task 'apiscan_task': 55396752 } Created attachment 1589 [details]
apiscan output from point-to-point module for latest git tip of gccxml (May 2, 2013)
Ubuntu 13-04 64-bit, gcc-4.7.3
moving to p2 critical; needs fixing I can confirm that API scanning works again on a modern Ubuntu system. Steps: 1. Grab and install gccxml from github master: https://github.com/gccxml/gccxml 2. If you are running ubuntu 64-bits, you need to install these packages: gcc-4.7-multilib g++-4.7-multilib Then scanning works (apart from the issue of not terminating waf cleanly). The reason why Tom got that error was due to the missing multilib support in gcc (see step 2). I am going to update the wiki page with this information. Then the only other issue was a small bug in pybindgen for handling the "bool const &" type, fixed in pybindgen trunk revno 834. |