Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Build Process] Template with C linkage #70

Closed
forflo opened this issue Nov 8, 2019 · 3 comments
Closed

[Build Process] Template with C linkage #70

forflo opened this issue Nov 8, 2019 · 3 comments
Assignees

Comments

@forflo
Copy link

forflo commented Nov 8, 2019

Hi Everyone,

in src/roseExtensions/roseHPCTollkit/include/rosehpct/xml/xml.hh there is an include surrounded with C linkage braces.

Using g++ with version 7.4.1 and libxml2 2.9.9-2 this breaks the build. Removing the linkage braces fixes the whole build on my machine (Arch linux; rolling release; just did system upgrade).

  • My libxml2 version: 2.9.9-2
  • The libxml2 version as installed on Ubuntu 18.04: 2.9.4+dfsg1-6.1ubuntu1.2

Both libxml2 versions seem to have proper conditional compilation based on whether one compiles with a C++ compiler or C compiler? Hence, any good reason for this?

Additional Information

In case you find some quality time:

In file included from /usr/lib/gcc/x86_64-pc-linux-gnu/7.4.1/include/c++/memory:66:0,
                 from /usr/include/unicode/localpointer.h:45,
                 from /usr/include/unicode/uenum.h:23,
                 from /usr/include/unicode/ucnv.h:53,
                 from /usr/include/libxml2/libxml/encoding.h:31,
                 from /usr/include/libxml2/libxml/parser.h:810,
                 from ../../../../../../ROSE/src/roseExtensions/roseHPCToolkit/include/rosehpct/xml/xml.hh:37,
                 from ../../../../../../ROSE/src/roseExtensions/roseHPCToolkit/src/xml/elem.cc:10:
/usr/lib/gcc/x86_64-pc-linux-gnu/7.4.1/include/c++/bits/stl_tempbuf.h:83:3: Error: template with C linkage

REPRODUCTION

I whipped up a package for reproduction for you. Please refer to the README.md in this repository for further instructions.

Note, that the build process of the VM described in Vagrantfile may take up to 2 hours depending on your PC. I can get the VM to you over SCP if you prefer, but it is quite big and it might easily take the same amount time to transfer it to the west coast 😄

Thanks & Best regards

@forflo
Copy link
Author

forflo commented Nov 8, 2019

This is actually a duplicate of #48. However, since nobody bothered to re-open that issue, ... I did that for you ;-)

@forflo
Copy link
Author

forflo commented Nov 27, 2019

Hi,

I just noticed that my reproduction package did not built again. This is fixed now!

Best regards

tristanvdb pushed a commit that referenced this issue Dec 4, 2019
@peihunglin
Copy link
Contributor

The suggested fix is merged into the develop branch.

pinnown pushed a commit that referenced this issue Apr 2, 2024
* The `Rose_STL_Container` macro was defined in two places.
  It is now defined only in "RoseFirst.h".

* Fix some `#include` dependencies in non-generated code for
  "RelativeVirtualAddress.h" and "sageContainer.h"

* Fix some `#include` dependencies in code generated by
  ROSETTA.

* Moved `Rose::Traits::generated::describe_node_t` and
  `Rose::Traits::generated::describe_field_t` from "sage3basic.h"
  to "Node.code" so it can be used by any sage node even if that
  node's class declaration is in some other header file than the
  monstrously large "sage3basic.h".

* "sageGeneric.h" needs `ROSE_VisitorPatternDefaultBase` when
  included from "sageInterfaceAda.C"

* Some Rosebud input files had the wrong name. The file name should
  match the class which the file defines.

Issue #44
Issue #70
Issue #72
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants