Closed Bug 79282 Opened 24 years ago Closed 23 years ago

g++ 2.95.2 does not define _LANGUAGE_C_PLUS_PLUS required for <signal.h>

Categories

(SeaMonkey :: Build Config, defect, P3)

SGI
IRIX
defect

Tracking

(Not tracked)

VERIFIED FIXED
mozilla0.9.3

People

(Reporter: jayvdb, Assigned: cls)

References

Details

Attachments

(4 files)

signal() has a different specification depending on whether it is included from C or C++ . signal.h uses #ifdef _LANGUAGE_C and #ifdef _LANGUAGE_C_PLUS_PLUS to determine this. When compiling with g++, I need to #define _LANGUAGE_C_PLUS_PLUS in netwerk/test/TestOverlappedIO.cpp and netwerk/test/TestSocketIO.cpp . % man signal ... C SYNOPSIS #include <signal.h> C: void (*signal (int sig, void (*func)()))(); C++: void (*signal (int sig, void (*func)(int)))(int); ... %
Blocks: 28709
I'd rather stick that define in the irix section of configure.in . Other cases may pop up that need this fix as well and I'm not sure what effect, if any, this would have on non-irix systems.
Agreed. I am going thru with workarounds until I can go no more. Then ill clean my objdir, come back and clean up and test these bugs, unless of course you want to provide the fix? :)
While this isnt configure.in, so far this problem has not affected the rest of the build. It has so far taken me 6 hours to build using gnu compilers as opposed to about 2.5 hours using MIPSpro, so I am reluctant to rebuild it all in order to test that adding the define globally does not break something else. I have tested this patch does not break the MIPSpro build.
Keywords: patch
Status: UNCONFIRMED → NEW
Ever confirmed: true
Priority: -- → P3
Target Milestone: --- → mozilla0.9.3
has this been reviewed?
I have verified Chris's patch works for me if that is of any use.
I am not sure, but I believe there is a problem with the change to configure.in ... and am suprised that my build worked. AC_DEFINE will define _LANGUAGE_C_PLUS_PLUS for both c & c++, which would result in signals being broken in c instead of c++. So the configure.in should have something to the effect of CXXFLAGS += - D_LANGUAGE_C_PLUS_PLUS.
Given that this define is required on IRIX, I have opened an SGI internal bug (825388), to have g++ internally define it.
This issue is now also a GNU bug: c++/3047 g++ does define _LANGUAGE_C_PLUS_PLUS for .cc .cxx and .C , but obviously not .cpp
Can this be moved forward to 0.9.2 as the fix is in hand, and this is the only remaining blocker for IRIX/gcc build.
Target milestone doesn't matter that much but I will need a r= on the new patch before drivers will accept it.
I am not familiar with the preferred method of requesting review; should I email the person personally, or add them to the CC, the latter seeming a little rude?
I think either way is fairly common practice. Since this is a considered a port specific branch, anyone who is familiar with the port and can verify that the patch does work like it should can give a r=. Ports really don't have the owner/peer restrictions like other modules do.
Wan-Teh, could you please review this patch for the IRIX/gcc port.
r=wtc.
a= asa@mozilla.org for checkin to the trunk. (on behalf of drivers)
Blocks: 83989
Patch has been checked in.
Status: NEW → RESOLVED
Closed: 23 years ago
Resolution: --- → FIXED
verified.
Status: RESOLVED → VERIFIED
Product: Browser → Seamonkey
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: