Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 286955 - app-text/opensp-1.5.2 fails to build with C++ errors (on IRIX)
Summary: app-text/opensp-1.5.2 fails to build with C++ errors (on IRIX)
Status: RESOLVED WONTFIX
Alias: None
Product: Gentoo/Alt
Classification: Unclassified
Component: Prefix Support (show other bugs)
Hardware: All IRIX
: High blocker (vote)
Assignee: Gentoo Prefix
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2009-09-29 16:06 UTC by Stuart Shelton
Modified: 2011-12-15 18:17 UTC (History)
0 users

See Also:
Package list:
Runtime testing required: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Stuart Shelton 2009-09-29 16:06:22 UTC
opensp checks to see whether <stdint.h> exists using the C compiler, and then #includes this header in all further checks, most (all?) of which are performed with the C++ compiler.

<stdint.h> on IRIX will #error out when compiled with $CXX (because it is C99-only), causing all subsequent tests to fail.

These tests should either be executed with $CC, or <cstdint> should be used instead.

Adding:

[[ ${CHOST} == *-irix* ]] && export ac_cv_header_stdint_h=no

... may help - I'm checking now.
Comment 1 Stuart Shelton 2009-09-29 16:41:03 UTC
Losing <stdint.h> doesn't seem to break the build, but there are hundreds of warnings output by $CXX, for example:

cc-1682 CC: WARNING File = ../include/Message.h, Line = 237                                                                                                                                          The overloaded virtual function "OpenSP::Messenger::dispatchMessage" is only
          partially overridden in class "OpenSP::NullMessenger".

  class SP_API NullMessenger : public Messenger {
               ^

cc-1682 CC: WARNING File = ../include/MessageReporter.h, Line = 23
  The overloaded virtual function "OpenSP::Messenger::dispatchMessage" is only
          partially overridden in class "OpenSP::MessageReporter".

  class SP_API MessageReporter : public MessageFormatter, public Messenger {
               ^

cc-1682 CC: WARNING File = ../include/MessageReporter.h, Line = 56
  The overloaded virtual function "OpenSP::Messenger::dispatchMessage" is only
          partially overridden in class "OpenSP::XMLMessageReporter".

  class SP_API XMLMessageReporter : public MessageReporter {
               ^

cc-1460 CC: WARNING File = ../include/SubstTable.h, Line = 55
  Function function "OpenSP::SubstTable::subst(OpenSP::Char &) const" is
          redeclared "inline" after being called.

  void SubstTable::subst(Char &c) const
                   ^

... I'm hoping that none of these will prevent the eventual build-products from working properly.

What it eventually breaks on, though, is:

cc-1020 CC: ERROR File = MessageReporter.cxx, Line = 30
  The identifier "getenv" is undefined.

    char* fmt = getenv("SP_MESSAGE_FORMAT") ;
                ^

1 error detected in the compilation of "MessageReporter.cxx".

... which appears to be due to <stdlib.h> or <cstdlib> missing.
Comment 2 Stuart Shelton 2009-09-30 10:50:59 UTC
That problem is resolved by adding '#include <stdlib.h>', but the build now fails with:

cc-3345 CC: ERROR File = ../include/Vector.cxx, Line = 15
  "Vector" is not a template.

  Vector<T>::~Vector()
  ^

cc-3345 CC: ERROR File = ../include/Vector.cxx, Line = 26
  "Vector" is not a template.

  Vector<T>::Vector(const Vector<T> &v)
  ^

cc-3345 CC: ERROR File = ../include/Vector.cxx, Line = 26
  "Vector" is not a template.

  Vector<T>::Vector(const Vector<T> &v)
                          ^

cc-3345 CC: ERROR File = ../include/Vector.cxx, Line = 33
  "Vector" is not a template.

  Vector<T>::Vector(size_t n, const T &t)
  ^

cc-3345 CC: ERROR File = ../include/Vector.cxx, Line = 40
  "Vector" is not a template.

  Vector<T> &Vector<T>::operator=(const Vector<T> &v)
  ^

cc-3345 CC: ERROR File = ../include/Vector.cxx, Line = 40
  "Vector" is not a template.

  Vector<T> &Vector<T>::operator=(const Vector<T> &v)
             ^

cc-3345 CC: ERROR File = ../include/Vector.cxx, Line = 40
  "Vector" is not a template.

  Vector<T> &Vector<T>::operator=(const Vector<T> &v)
                                        ^

cc-3345 CC: ERROR File = ../include/Vector.cxx, Line = 57
  "Vector" is not a template.

  void Vector<T>::assign(size_t n, const T &t)
       ^

cc-3345 CC: ERROR File = ../include/Vector.cxx, Line = 71
  "Vector" is not a template.

  void Vector<T>::insert(const T *p, size_t n, const T &t)
       ^

cc-3345 CC: ERROR File = ../include/Vector.cxx, Line = 84
  "Vector" is not a template.

  void Vector<T>::insert(const T *p, const T *q1, const T *q2)
       ^

cc-3345 CC: ERROR File = ../include/Vector.cxx, Line = 100
  "Vector" is not a template.

  void Vector<T>::swap(Vector<T> &v)
       ^

cc-1012 CC: WARNING File = ../include/Vector.cxx, Line = 157
  Parsing restarts here after previous syntax error.

  }
  ^

cc-1065 CC: ERROR File = ../include/Vector.cxx, Line = 157
  A semicolon is expected at this point.

  }
  ^

12 errors detected in the compilation of "OffsetOrderedList.cxx".


... which, I'm afraid, means nothing to me :(

Bumping to 'Blocker' since pango now requires gtk-doc which requires openjade which requires opensp.
Comment 3 Stuart Shelton 2009-10-19 10:30:10 UTC
Ahh - pango only requires gtk-doc if USE="test" or USE="doc" or FEATURES="test".

Is there any method to set FEATURES on a per-package basis - similar to etc/portage/package.use?

(I've always thought it would be useful to force FEATURES="test" on for, for example,  Perl packages - where the test-suites are very good - whilst being able to disable it for other packages where the test-suites, if present, may have external dependencies or might be platform- or compiler-specific)
Comment 4 Fabian Groffen gentoo-dev 2011-12-15 18:17:19 UTC
We are sorry to close this bug.  We lack the man-power and devotion to support mips-irix in the tree.