Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

[ace-users] Compiling for MinGW-W64 - How?

428 views
Skip to first unread message

Lutz Hayen

unread,
Aug 18, 2011, 12:04:27 PM8/18/11
to ace-...@list.isis.vanderbilt.edu

The ACE documentation does not mention the 64 bit MinGW compiler at all. Is it possible to compile a 64 bit ACE with this compiler?


Johnny Willemsen

unread,
Aug 20, 2011, 10:38:04 AM8/20/11
to Lutz Hayen, <ace-users@list.isis.vanderbilt.edu>
Hi,

I think this has never been tried before. Add buildbits=64 to the platform_macros.GNU file and just give it a try.

Johnny

Op 18 aug. 2011 om 18:04 heeft Lutz Hayen <lutz....@live.com> het volgende geschreven:

>
> The ACE documentation does not mention the 64 bit MinGW compiler at all. Is it possible to compile a 64 bit ACE with this compiler?
>
>
>

> _______________________________________________
> ace-users mailing list
> ace-...@list.isis.vanderbilt.edu
> http://list.isis.vanderbilt.edu/mailman/listinfo/ace-users

Aniruddha Gokhale

unread,
Aug 20, 2011, 1:28:32 PM8/20/11
to Lutz Hayen, ace-...@list.isis.vanderbilt.edu
Hi Lutz,

On 8/18/2011 11:04 AM, Lutz Hayen wrote:
> The ACE documentation does not mention the 64 bit MinGW compiler at all. Is it possible to compile a 64 bit ACE with this compiler?
>
>
>
> _______________________________________________
> ace-users mailing list
> ace-...@list.isis.vanderbilt.edu
> http://list.isis.vanderbilt.edu/mailman/listinfo/ace-users


I have a 64bit laptop with Windows. Inside the MinGW environment, I have
successfully compiled so far only the ACE library. I haven't tried
anything else like compiling and running tests. Here is the
configuration I used:

$ACE_ROOT/ace/config.h

has the following line in it

#include "ace/config-win32.h"

and

$ACE_ROOT/include/makeinclude/platform_macros.GNU

has the following line in it

include $(ACE_ROOT)/include/makeinclude/platform_mingw32.h

I see a libACE.dll.a getting created. My g++ compiler on MinGW is 4.5.0

thanks
Andy


--
Aniruddha Gokhale
Associate Professor, EECS
Vanderbilt University, Nashville, TN, USA
(615) 322-8754 (office)

Lutz Hayen

unread,
Aug 22, 2011, 12:17:02 PM8/22/11
to ace-...@list.isis.vanderbilt.edu

Aniruddha Gokhale wrote:
> $ACE_ROOT/ace/config.h
> has the following line in it
> #include "ace/config-win32.h"
>
> and
> $ACE_ROOT/include/makeinclude/platform_macros.GNU
> has the following line in it
> include $(ACE_ROOT)/include/makeinclude/platform_mingw32.h
>

building then fails with

mha@w764 /c/users/user/Downloads/ace-try/ACE_wrappers/ace
$ make
make[1]: Entering directory `/c/users/user/Downloads/ace-try/ACE_wrappers/ace'
GNUmakefile: /c/users/user/Downloads/ace-try/ACE_wrappers/ace/GNUmakefile.ACE MAK
EFLAGS=w
g++ -fno-strict-aliasing   -mthreads -mtune=pentiumpro -Wall -W -Wpointer-arith
-pipe -DACE_HAS_CUSTOM_EXPORT_MACROS=0   -I/c/users/MHA/Downloads/ace-try/ACE_wrappers -DACE_NO_INLINE -I.. -DACE_BUILD_DLL  -c  -o .shobj/Local_Name_Space.o Local_Name_Space.cpp
Local_Name_Space.cpp:1:0: error: CPU you selected does not support x86-64 instruction set
make[1]: *** [.shobj/Local_Name_Space.o] Error 1
make[1]: Leaving directory `/c/users/user/Downloads/ace-try/ACE_wrappers/ace'

The -mtune=pentiumpro is the culprit here. I don't know how it is supposed to be disabled, I got rid of it by commenting the line TCPU ?= pentiumpro in platform_gnuwin32_common.GNU

After that I get the error below. Adding build-bits=64 as suggested by Johnny Willemsen did not make any difference. What can I do now?

Problem report form follows below error message.


$ make
make[1]: Entering directory `/c/users/user/Downloads/ace-try/ACE_wrappers/ace'

GNUmakefile: /c/users/user/Downloads/ace-try/ACE_wrappers/ace/GNUmakefile.ACE MAKEFLAGS=w

g++ -fno-strict-aliasing   -mthreads -Wall -W -Wpointer-arith -pipe -DACE_HAS_CUSTOM_EXPORT_MACROS=0   -I/c/users/user/Downloads/ace-try/ACE_wrappers -DACE_NO_INLINE -I.. -DACE_BUILD_DLL  -c  -o .shobj/Local_Name_Space.o Local_Name_Space.cpp

In file included from c:/users/user/Downloads/ace-try/ACE_wrappers/ace/Functor_T.cpp:13:0,
                 from c:/users/user/Downloads/ace-try/ACE_wrappers/ace/Functor_T.h:154,
                 from c:/users/user/Downloads/ace-try/ACE_wrappers/ace/Hash_Map_Manager_T.h:24,
                 from c:/users/user/Downloads/ace-try/ACE_wrappers/ace/Local_Name_Space_T.h:38,
                 from c:/users/user/Downloads/ace-try/ACE_wrappers/ace/Local_Name_Space.h:128,
                 from Local_Name_Space.cpp:3:
c:/users/user/Downloads/ace-try/ACE_wrappers/ace/Functor_T.inl:19:0: warning: ignoring #pragma warning
c:/users/user/Downloads/ace-try/ACE_wrappers/ace/Functor_T.inl:20:0: warning: ignoring #pragma warning
c:/users/user/Downloads/ace-try/ACE_wrappers/ace/Functor_T.inl:24:0: warning: ignoring #pragma warning
In file included from c:/users/user/Downloads/ace-try/ACE_wrappers/ace/os_include/os_unistd.h:27:0,
                 from c:/users/user/Downloads/ace-try/ACE_wrappers/ace/os_include/os_limits.h:27,
                 from c:/users/user/Downloads/ace-try/ACE_wrappers/ace/Default_Constants.h:30,
                 from c:/users/user/Downloads/ace-try/ACE_wrappers/ace/Log_Msg.h:24,
                 from c:/users/user/Downloads/ace-try/ACE_wrappers/ace/Malloc.h:24,
                 from c:/users/user/Downloads/ace-try/ACE_wrappers/ace/Malloc_T.h:18,
                 from c:/users/user/Downloads/ace-try/ACE_wrappers/ace/Local_Name_Space.h:20,
                 from Local_Name_Space.cpp:3:
c:/users/user/Downloads/ace-try/ACE_wrappers/ace/os_include/sys/os_types.h:141:25: error: conflicting declaration 'typedef long unsigned int useconds_t'
c:\mingw64\bin\../lib/gcc/x86_64-w64-mingw32/4.5.2/../../../../x86_64-w64-mingw32/include/sys/types.h:102:22: error: 'useconds_t' has a previous declaration as
'typedef unsigned int useconds_t'
In file included from c:/users/user/Downloads/ace-try/ACE_wrappers/ace/os_include/sys/os_wait.h:27:0,
                 from c:/users/user/Downloads/ace-try/ACE_wrappers/ace/os_include/os_stdlib.h:28,
                 from c:/users/user/Downloads/ace-try/ACE_wrappers/ace/Basic_Types.h:59,
                 from c:/users/user/Downloads/ace-try/ACE_wrappers/ace/OS_NS_Thread.h:29,
                 from c:/users/user/Downloads/ace-try/ACE_wrappers/ace/Guard_T.h:26,
                 from c:/users/user/Downloads/ace-try/ACE_wrappers/ace/Free_List.cpp:7,
                 from c:/users/user/Downloads/ace-try/ACE_wrappers/ace/Free_List.h:142,
                 from c:/users/user/Downloads/ace-try/ACE_wrappers/ace/Malloc_T.h:26,
                 from c:/users/user/Downloads/ace-try/ACE_wrappers/ace/Local_Name_Space.h:20,
                 from Local_Name_Space.cpp:3:
c:/users/user/Downloads/ace-try/ACE_wrappers/ace/os_include/os_signal.h:188:6: error: 'sigset_t' does not name a type
c:/users/user/Downloads/ace-try/ACE_wrappers/ace/os_include/os_signal.h:206:34: error: 'sigset_t' does not name a type
c:/users/user/Downloads/ace-try/ACE_wrappers/ace/os_include/os_signal.h:206:43: error: ISO C++ forbids declaration of 'parameter' with no type
c:/users/user/Downloads/ace-try/ACE_wrappers/ace/os_include/os_signal.h:206:46: error: 'sigset_t' has not been declared
[etc.etc.etc.]
make[1]: *** [.shobj/Local_Name_Space.o] Error 1
make[1]: Leaving directory `/c/users/user/Downloads/ace-try/ACE_wrappers/ace'
make: *** [ACE] Error 2


ACE VERSION: 6.0.3

HOST MACHINE and OPERATING SYSTEM:
Windows 7 64 Bit

TARGET MACHINE and OPERATING SYSTEM, if different from HOST:
COMPILER NAME AND VERSION (AND PATCHLEVEL):
MinGW-W64 4.5.2, 32-Bit msys

THE $ACE_ROOT/ace/config.h FILE [if you use a link to a platform-
specific file, simply state which one]:
ace/config-win32.h

THE $ACE_ROOT/include/makeinclude/platform_macros.GNU FILE [if you
use a link to a platform-specific file, simply state which one
(unless this isn't used in this case, e.g., with Microsoft Visual
C++)]:
buildbits=64
include $(ACE_ROOT)/include/makeinclude/platform_mingw32.GNU
buildbits=64

BUILD METHOD USED:
[Experimental ./configure or traditional makefile/project file?]
Called make in subdirectory ace from msys shell after editing above files.

CONTENTS OF $ACE_ROOT/bin/MakeProjectCreator/config/default.features
(used by MPC when you generate your own makefiles):

AREA/CLASS/EXAMPLE AFFECTED:
[What example failed? What module failed to compile?]
first source file.

DOES THE PROBLEM AFFECT:
X COMPILATION?
LINKING?
On Unix systems, did you run make realclean first?
EXECUTION?
OTHER (please specify)?
[Please indicate whether ACE, your application, or both are affected.]

SYNOPSIS:
Would like to compile ACE for MinGW-W64 but do not know how.

DESCRIPTION:
see email above

REPEAT BY:

SAMPLE FIX/WORKAROUND:

Johnny Willemsen

unread,
Aug 22, 2011, 1:10:28 PM8/22/11
to Lutz Hayen, ace-...@list.isis.vanderbilt.edu
Hi,

You can set another TCPU in your platform_macros.GNU file for the include.

The errors indicate that this port is just not done until now. You can
do the port yourself, or hire someone to do the port for you, for
example Remedy IT, the company I work for, see www.theaceorb.nl for our
services. We do have a mingw32 build on the scoreboard (see
http://www.dre.vanderbilt.edu/scoreboard/integrated.html), we could
easily add a mingw64 build and do the port.

Regards,

Johnny Willemsen
Remedy IT

Lutz Hayen

unread,
Aug 26, 2011, 7:42:50 PM8/26/11
to ace-...@list.isis.vanderbilt.edu
> The errors indicate that this port is just not done until now.

Thank you for your response. ACE does not support 64 bit MinGW-W64 as of now.


> You can
> do the port yourself, or hire someone to do the port for you, for
> example Remedy IT, the company I work for, see www.theaceorb.nl for our
> services. We do have a mingw32 build on the scoreboard (see
> http://www.dre.vanderbilt.edu/scoreboard/integrated.html), we could
> easily add a mingw64 build and do the port.

Thank you for pointing out what can be done. I will consider these options vs. replacing ACE dependencies in our code.
0 new messages