This is the mail archive of the libstdc++@gcc.gnu.org mailing list for the libstdc++ project.
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
Other format: | [Raw text] |
This is still a bit raw but I wanted to post this for archival reasons. I'm loosing access to my current solaris box for 2 weeks and won't be able to work on this.
In a nutshell, this introduces a new "C" header model, ie --enable-cheaders=c_std_solaris. In this patch, this is the default for solaris 2.7+, which should probably be tested or tweaked.
1) patch cc1plus so that __cplusplus is the correct value. (Also the oldest libstdc++ PR) 2) patch gcc/ginclude/stddef.h 3) do some fixincludes on the solaris side, where extern "C" and extern "C++" decls clash with gcc but not, apparently, with sunpro. See the attached for a manual way to do this: I've not yet fought with fixincludes for this. 4) patch libstdc++ with the mega-patch attached.
There are a lot of hacks in the libstdc++ bits here (strdup on solaris??? How do I get this back? stddef.h is not figured out, and it's apparent that better separation between C90 and C99 needs to take place in wchar/wctype), but oh well. I'll try to fix this up when I return.
In addition, this includes the libstdc++ parts of the newlib work. Which is not finished yet either.
To intrepid solaris hackers, I say "bonne chance." It will be interesting to see if you exist.
Attachment:
p.20070328-cplusplus
Description: Binary data
Attachment:
p.sol-fixincludes-stdlib_iso
Description: Binary data
*** stddef.h.orig 2007-03-30 10:07:35.000000000 +0200 --- stddef.h 2007-03-30 10:12:02.000000000 +0200 *************** Boston, MA 02110-1301, USA. */ *** 28,33 **** --- 28,38 ---- /* * ISO C Standard: 7.17 Common definitions <stddef.h> */ + + #if __cplusplus == 199711L + namespace std { extern "C" { + #endif + #if (!defined(_STDDEF_H) && !defined(_STDDEF_H_) && !defined(_ANSI_STDDEF_H) \ && !defined(__STDDEF_H__)) \ || defined(__need_wchar_t) || defined(__need_size_t) \ *************** typedef __WINT_TYPE__ wint_t; *** 417,419 **** --- 422,428 ---- #endif /* !_STDDEF_H && !_STDDEF_H_ && !_ANSI_STDDEF_H && !__STDDEF_H__ || __need_XXX was not defined before */ + + #if __cplusplus == 199711L + } } + #endif
Attachment:
p.20070411-2.bz2
Description: BZip2 compressed data
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |