Note: This is a public test instance of Red Hat Bugzilla. The data contained within is a snapshot of the live data so any changes you make will not be reflected in the production Bugzilla. Email is disabled so feel free to test any aspect of the site that you want. File any problems you find or give feedback at bugzilla.redhat.com.
Bug 770230 - js doesn't compile on ARM due to "Your compiler does not follow the C++ specification for temporary object destruction order." error
Summary: js doesn't compile on ARM due to "Your compiler does not follow the C++ speci...
Keywords:
Status: CLOSED RAWHIDE
Alias: None
Product: Fedora
Classification: Fedora
Component: gcc
Version: rawhide
Hardware: Unspecified
OS: Unspecified
unspecified
unspecified
Target Milestone: ---
Assignee: Jakub Jelinek
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks: ARMTracker
TreeView+ depends on / blocked
 
Reported: 2011-12-24 14:29 UTC by Peter Robinson
Modified: 2012-01-26 14:42 UTC (History)
2 users (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2012-01-26 14:42:51 UTC
Type: ---
Embargoed:


Attachments (Terms of Use)

Description Peter Robinson 2011-12-24 14:29:49 UTC
js fails to build on ARM due to the following error during configure:

configure: error: Your compiler does not follow the C++ specification for temporary object destruction order.
RPM build errors:
error: Bad exit status from /var/tmp/rpm-tmp.y3Ssej (%prep)
    Bad exit status from /var/tmp/rpm-tmp.y3Ssej (%prep)
Child returncode was: 1

http://arm.koji.fedoraproject.org/koji/taskinfo?taskID=238249

Looking at the configure.in test case its documented as:

dnl ========================================================
dnl Test for correct temporary object destruction order
dnl ========================================================
dnl We want to make sure the compiler follows the C++ spec here as 
dnl xpcom and the string classes depend on it (bug 235381).

Comment 1 Pavel Alexeev 2012-01-01 21:08:10 UTC
Are you think it is incorrect check? I think it is gcc issue on arm. Reassigning.

Comment 2 Jakub Jelinek 2012-01-01 21:46:44 UTC
Can you post the relevant config.log snippet (what compiler messages were emitted if any, if it was a compile time failure or runtime failure)?

Can you compile:
extern "C" void exit(int);
class A {
public:
  A(int& x) : mValue(x) {}
  ~A() { mValue--; }
  operator char**() { return 0; }
private:
  int& mValue;
};
void func(char **arg) {}
int m=2;
void test() {
  func(A(m));
  if (m==1) m = 0;
}
int main() {
  test();
  return(m);
}

and run it, see what exit status it returned with?

Comment 3 Peter Robinson 2012-01-26 14:42:51 UTC
Fixed. Issue in js.


Note You need to log in before you can comment on or make changes to this bug.