Hello again.
During the compilation stage of the trunk, I run into this error:
source='qpid/broker/Bridge.cpp' object='qpid/broker/Bridge.lo' libtool=yes \
DEPDIR=.deps depmode=dashXmstdout /bin/bash ../build-aux/depcomp \
/bin/bash ../libtool --tag=CXX --mode=compile CC -g -m64
-DHAVE_CONFIG_H -I. -Igen -I./gen -I/opt/qpid/include
-library=stlport4 -mt -c -o qpid/broker/Bridge.lo qpid/broker/Bridge.cpp
CC -g -m64 -DHAVE_CONFIG_H -I. -Igen -I./gen -I/opt/qpid/include
-library=stlport4 -mt -c qpid/broker/Bridge.cpp -KPIC -DPIC -o
qpid/broker/.libs/Bridge.o
"./qpid/sys/Socket.h", line 96: Error: socklen_t is not defined.
"qpid/broker/Bridge.cpp", line 170: Warning: id hides
qpid::broker::Bridge::id.
1 Error(s) and 1 Warning(s) detected.
I started looking in my Solaris system, where socklen_t is defined, and
the place was sys/socket.h. Nevertheless, I see that the way integer
types are intended to be imported now regardless the platform is:
qpid/sys/IntegerTypes.h
that relies on a platform dependent file.
The question here is, where exactly the socklen_t is suposed to be
defined in linux or a posix compliant system? The posix IntegerTypes.h
in qpid is just including <stdint.h>, but after a fast look in an Ubuntu
system, I didn't find there any declaration for socklen_t. Another
curious thing about socklen_t is what I've found here:
http://portabilityblog.com/blog/archives/7-socklen_t-confusion.html
Also, the declaration for solaris is not trivial:
#if defined(_XPG4_2) && !defined(_XPG5) && !defined(_LP64)
typedef size_t socklen_t;
#else
typedef uint32_t socklen_t;
#endif /* defined(_XPG4_2) && !defined(_XPG5) && !defined(_LP64) */
Anyway, it seems to rely to uint32_t on normal cases.
What do you think is the best way to proceed here? Just add a #include
<sys/socket.h> in the posix IntegerTypes.h? Having a different file for
solaris could be also an option, but that would be fine if solaris is
not honouring the posix specs (if any) for the location of that definition.
Regards.
--
Manuel.
---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project: http://qpid.apache.org
Use/Interact: mailto:[email protected]