You are viewing a plain text version of this content. The canonical link for it is here.
Posted to c-dev@axis.apache.org by "Atsushi Monna (JIRA)" <ji...@apache.org> on 2007/10/12 03:15:50 UTC

[jira] Created: (AXIS2C-722) The subject of C Run-Time depending on compilation option /MT, /MD

The subject of C Run-Time depending on compilation option /MT, /MD 
-------------------------------------------------------------------

                 Key: AXIS2C-722
                 URL: https://issues.apache.org/jira/browse/AXIS2C-722
             Project: Axis2-C
          Issue Type: Improvement
          Components: build system (Windows)
    Affects Versions: Current (Nightly)
         Environment: OS: WindowsXP
Compiler : MSVC
            Reporter: Atsushi Monna


I think Axis2/C has a problem about C Run-Time in windows.

I made a dll calling Axis2/C public function using file stream in axutil.
When I used this dll, access violation was occured.
In concretely, 
I use the axutil_stream_t object created by axutil_stream_create_file(const axutil_env_t *env, FILE *fp) in axutil_stream_read(). I caught a access violation.

Reason is ...
The file pointer above can not use in this DLL(axutil.dll), because Axis2/C builded with /MT option.

The relation between MSVC compliation option and C Run-Time Libraries is indicated in this page.
http://msdn2.microsoft.com/en-us/library/abx4dbyh(VS.80).aspx

The problem depending on C Run-Time Libraries is indicated in this page.
http://msdn2.microsoft.com/en-us/library/ms235460(VS.80).aspx

Every Axis2/C module has static C Run-Time in local. So, boundaries exist among all.

 
To be valid the public function has file pointer argument in axutil, use /MD compilation option for common C Run-Time (not exist boundaries) amonng all.

But this way is not enough. If the C Run-Time version depended Axis2/C modules are defferent with the C Run-Time version depended module that calling Axis2/C modules API, same problem will occur.

I think, complete solution for this problem is Axis2/C binary release builded with /MD compilation option and specify C Run-Time Library version. 
I hope above.

Depending C Run-Time version depend on build environment. For any user using Axis2/C binary release, provide some binary release for every C Run-Time versions. It is better I think.

If I cann't get Axis2/C binary release like this, I hope the lowest that Axis2/C be clear the policy in a document for this problem.
・Axis2/C binary release builded using /MT compilation option.
・This modules has some problem depending C Run-Time Libraries.
・If you call Axis2/C module's API, you need to re-build Axis2/C using /MD compilation option.


-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


---------------------------------------------------------------------
To unsubscribe, e-mail: axis-c-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-c-dev-help@ws.apache.org


[jira] Resolved: (AXIS2C-722) The subject of C Run-Time depending on compilation option /MT, /MD

Posted by "Nandika Jayawardana (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/AXIS2C-722?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Nandika Jayawardana resolved AXIS2C-722.
----------------------------------------

    Resolution: Fixed

I changed the build options in makefile and allowed the user to specify the CRUNTIME library in configure.in file. When building axis2c , it will be build with /MD option by default. Also when building Axis2 with VC2005 or above, it generates the .manifest file which has the runtime library information.

> The subject of C Run-Time depending on compilation option /MT, /MD 
> -------------------------------------------------------------------
>
>                 Key: AXIS2C-722
>                 URL: https://issues.apache.org/jira/browse/AXIS2C-722
>             Project: Axis2-C
>          Issue Type: Improvement
>          Components: build system (Windows)
>    Affects Versions: Current (Nightly)
>         Environment: OS: WindowsXP
> Compiler : MSVC
>            Reporter: Atsushi Monna
>
> I think Axis2/C has a problem about C Run-Time in windows.
> I made a dll calling Axis2/C public function using file stream in axutil.
> When I used this dll, access violation was occured.
> In concretely, 
> I use the axutil_stream_t object created by axutil_stream_create_file(const axutil_env_t *env, FILE *fp) in axutil_stream_read(). I caught a access violation.
> Reason is ...
> The file pointer above can not use in this DLL(axutil.dll), because Axis2/C builded with /MT option.
> The relation between MSVC compliation option and C Run-Time Libraries is indicated in this page.
> http://msdn2.microsoft.com/en-us/library/abx4dbyh(VS.80).aspx
> The problem depending on C Run-Time Libraries is indicated in this page.
> http://msdn2.microsoft.com/en-us/library/ms235460(VS.80).aspx
> Every Axis2/C module has static C Run-Time in local. So, boundaries exist among all.
>  
> To be valid the public function has file pointer argument in axutil, use /MD compilation option for common C Run-Time (not exist boundaries) amonng all.
> But this way is not enough. If the C Run-Time version depended Axis2/C modules are defferent with the C Run-Time version depended module that calling Axis2/C modules API, same problem will occur.
> I think, complete solution for this problem is Axis2/C binary release builded with /MD compilation option and specify C Run-Time Library version. 
> I hope above.
> Depending C Run-Time version depend on build environment. For any user using Axis2/C binary release, provide some binary release for every C Run-Time versions. It is better I think.
> If I cann't get Axis2/C binary release like this, I hope the lowest that Axis2/C be clear the policy in a document for this problem.
> ・Axis2/C binary release builded using /MT compilation option.
> ・This modules has some problem depending C Run-Time Libraries.
> ・If you call Axis2/C module's API, you need to re-build Axis2/C using /MD compilation option.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


---------------------------------------------------------------------
To unsubscribe, e-mail: axis-c-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-c-dev-help@ws.apache.org