You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@lucy.apache.org by "Marvin Humphrey (JIRA)" <ji...@apache.org> on 2009/12/01 23:37:21 UTC
[jira] Created: (LUCY-79) Compile in C++ mode for MSVC
Compile in C++ mode for MSVC
----------------------------
Key: LUCY-79
URL: https://issues.apache.org/jira/browse/LUCY-79
Project: Lucy
Issue Type: Improvement
Components: Boilerplater, Charmonizer, Core, Perl bindings
Reporter: Marvin Humphrey
Assignee: Marvin Humphrey
Adapt the code base so that Lucy compiles and passes tests under C++,
using both g++ and MSVC. Continue to prefer gcc to g++, but switch MSVC
to compile in C++ mode by default.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
[jira] Updated: (LUCY-79) Compile in C++ mode for MSVC
Posted by "Marvin Humphrey (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/LUCY-79?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Marvin Humphrey updated LUCY-79:
--------------------------------
Attachment: cplusplus.patch
Two types of changes make up the bulk of this patch:
First, adding casts to void* assignments:
{code:none}
- char *command = malloc(command_max_size);
+ char *command = (char*)malloc(command_max_size);
{code}
Second, protecting headers so that C++ doesn't mangle global symbol names:
{code:none}
#define H_CHAZ_HEAD_CHECK
+#ifdef __cplusplus
+extern "C" {
+#endif
+
#include "Charmonizer/Core/Defines.h"
/* Bootstrap the HeadCheck. Call this before anything else.
@@ -36,6 +40,10 @@
#define HeadCheck_check_many_headers chaz_HeadCheck_check_many_headers
#endif
+#ifdef __cplusplus
+}
+#endif
+
#endif /* H_CHAZ_HEAD_CHECK */
{code}
Other casts have been added as well because C++ is more finicky than C with regards
to typing. For instance, an invalid comparison of a pointer to -1 rather than NULL (within
Charmonizer's LargeFiles module) outright failed to compile. In this regard, adding C++
as a build target is useful regardless of whether we open up Lucy's C syntax constraints.
> Compile in C++ mode for MSVC
> ----------------------------
>
> Key: LUCY-79
> URL: https://issues.apache.org/jira/browse/LUCY-79
> Project: Lucy
> Issue Type: Improvement
> Components: Boilerplater, Charmonizer, Core, Perl bindings
> Reporter: Marvin Humphrey
> Assignee: Marvin Humphrey
> Attachments: cplusplus.patch
>
>
> Adapt the code base so that Lucy compiles and passes tests under C++,
> using both g++ and MSVC. Continue to prefer gcc to g++, but switch MSVC
> to compile in C++ mode by default.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
[jira] Resolved: (LUCY-79) Compile in C++ mode for MSVC
Posted by "Marvin Humphrey (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/LUCY-79?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Marvin Humphrey resolved LUCY-79.
---------------------------------
Resolution: Fixed
Committed as r886285.
> Compile in C++ mode for MSVC
> ----------------------------
>
> Key: LUCY-79
> URL: https://issues.apache.org/jira/browse/LUCY-79
> Project: Lucy
> Issue Type: Improvement
> Components: Boilerplater, Charmonizer, Core, Perl bindings
> Reporter: Marvin Humphrey
> Assignee: Marvin Humphrey
> Attachments: cplusplus.patch
>
>
> Adapt the code base so that Lucy compiles and passes tests under C++,
> using both g++ and MSVC. Continue to prefer gcc to g++, but switch MSVC
> to compile in C++ mode by default.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.