On Mon, Nov 07, 2011 at 06:29:20PM +0100, Martin Sustrik wrote:
> Hi AJ,
> 
> >Actually, everything compiles fine on AIX6.1 with zeromq3-0, provided
> >that I define "_H_LOCALEDEF" in the CXXFLAGS:
> >
> >    make CXXFLAGS+=-D_H_LOCALEDEF
> >
> >Without that I get:
> >
> >CXX    libzmq_la-connect_session.lo
> >In file included from session.hpp:25,
> >                  from connect_session.hpp:27,
> >                  from connect_session.cpp:21:
> >i_engine.hpp:60: error: using typedef-name 'msg_t' after 'class'
> >/usr/include/sys/localedef31.h:133: error: 'msg_t' has a previous
> >declaration here
> >i_engine.hpp:63: error: using typedef-name 'msg_t' after 'class'
> >/usr/include/sys/localedef31.h:133: error: 'msg_t' has a previous
> >declaration here
> >
> >Not sure why localedef31.h is getting pulled in...
> 
> It should not matter as msg_t should be in zmq namespace as opposed
> to the global namespace.
> 
> Can you check whether adding a forward declaration in i_engine.h
> fixes the error?
> 
> This way:
> 
> namespace zmq
> {
>     class msg_t;
> 
>     struct i_engine
>     {
>         ...

It does not:

Making all in src
        make  all-am
        /bin/sh ../libtool  --tag=CXX   --mode=compile g++
-DHAVE_CONFIG_H -I.   -pedantic -Werror -Wall -D_REENTRANT
-D_THREAD_SAFE  -DZMQ_FORCE_POLL  -g -O2 -MT
libzmq_la-connect_session.lo -MD -MP -MF
.deps/libzmq_la-connect_session.Tpo -c -o libzmq_la-connect_session.lo
`test -f 'connect_session.cpp' || echo './'`connect_session.cpp
libtool: compile:  g++ -DHAVE_CONFIG_H -I. -pedantic -Werror -Wall
-D_REENTRANT -D_THREAD_SAFE -DZMQ_FORCE_POLL -g -O2 -MT
libzmq_la-connect_session.lo -MD -MP -MF
.deps/libzmq_la-connect_session.Tpo -c connect_session.cpp  -DPIC -o
.libs/libzmq_la-connect_session.o
In file included from session.hpp:25,
                 from connect_session.hpp:27,
                 from connect_session.cpp:21:
i_engine.hpp:61: error: using typedef-name 'msg_t' after 'class'
/usr/include/sys/localedef31.h:133: error: 'msg_t' has a previous
declaration here
i_engine.hpp:64: error: using typedef-name 'msg_t' after 'class'
/usr/include/sys/localedef31.h:133: error: 'msg_t' has a previous
declaration here
make: 1254-004 The error code from the last command is 1.

That's with the attached patch applied.
 
> >    Resource temporarily unavailable (req.cpp:101)
> >    /bin/sh: 790572 IOT/Abort trap(coredump)
> 
> I'll check that one. Thanks for reporting it.

I saw this on HPUX as well (using the openssl-based UUID generation).

Thanks,
-- 
AJ Lewis
Software Engineer
Quantum Corporation

Mobile:  612 860-8068
Work:    651 688-4346
YahooIM: vortechs2000
AIM:     v0r73chz
MSN:     vortechs2...@yahoo.com
email:   aj.le...@quantum.com

----------------------------------------------------------------------
The information contained in this transmission may be confidential. Any 
disclosure, copying, or further distribution of confidential information is not 
permitted unless such privilege is explicitly granted in writing by Quantum. 
Quantum reserves the right to have electronic communications, including email 
and attachments, sent across its networks filtered through anti virus and spam 
software programs and retain such messages in order to comply with applicable 
data security and retention requirements. Quantum is not responsible for the 
proper and complete transmission of the substance of this communication or for 
any delay in its receipt.
diff --git a/src/session.hpp b/src/session.hpp
index 4c17930..5a1358e 100644
--- a/src/session.hpp
+++ b/src/session.hpp
@@ -29,6 +29,7 @@
 
 namespace zmq
 {
+    class msg_t;
 
     class session_t :
         public own_t,
_______________________________________________
zeromq-dev mailing list
zeromq-dev@lists.zeromq.org
http://lists.zeromq.org/mailman/listinfo/zeromq-dev

Reply via email to