[Ace-users] Re: [tao-users] Endianess problem on scale pxa270 processor (gumstix board)

Johnny Willemsen jwillemsen at remedy.nl
Wed Sep 19 03:45:03 CDT 2007


Hi,

Thanks for using the PRF form. I don't think you are seeing a problem, the
data is always marshaled in the endianess of the host TAO runs on, there is
a bit in the header indicating which endianess has been used. If you print
the values in the application code, is the value then the same? We have a
few gumstick boards here at our office, we already did build ACE and TAO for
it, we can assist with the gumstix board as part of our commercial services
as described on www.theaceorb.nl.

Regards,

Johnny Willemsen
Remedy IT
Postbus 101
2650 AC  Berkel en Rodenrijs
The Netherlands
www.theaceorb.nl / www.remedy.nl  

*** Integrated compile and test statistics see
http://scoreboard.theaceorb.nl ***
*** Commercial service and support for ACE/TAO/CIAO             ***
*** See http://www.theaceorb.nl/en/support.html                 ***

<sebastien333 at gmail.com> wrote in message
news:<1190129033.494706.23960 at v23g2000prn.googlegroups.com>...
> 
>     TAO VERSION: 1.5.10
>     ACE VERSION: 5.5.10
> 
>     HOST MACHINE and OPERATING SYSTEM:
>        Fedora core 3 on x86 PC
> 
>     TARGET MACHINE and OPERATING SYSTEM, if different from HOST:
>     COMPILER NAME AND VERSION (AND PATCHLEVEL):
> 
>        gumstix verdex board running linux 2.6.21 , gcc 4.1.1
> 
>     THE $ACE_ROOT/ace/config.h FILE [if you use a link to a platform-
>     specific file, simply state which one]:
> 
> 
> #ifndef ACE_CONFIG_LINUX_H
> #define ACE_CONFIG_LINUX_H
> #include /**/ "ace/pre.h"
> 
> #define ACE_PLATFORM_CONFIG config-linux.h
> 
> #include "ace/config-linux-common.h"
> 
> #define ACE_HAS_SVR4_DYNAMIC_LINKING
> #define ACE_HAS_AUTOMATIC_INIT_FINI
> #define ACE_HAS_DLSYM_SEGFAULT_ON_INVALID_HANDLE
> 
> #if !defined (ACE_MT_SAFE)
> #define ACE_MT_SAFE 1                           // JCEJ
> 12/22/96        #1
> #endif
> 
> #if ACE_MT_SAFE
> // Yes, we do have threads.
> #define ACE_HAS_THREADS
> // And they're even POSIX pthreads (LinuxThreads implementation)
> #define ACE_HAS_PTHREADS
> // ... and the final standard even!
> #define ACE_HAS_PTHREADS_STD
> 
> // On linux this is part of pthreads
> #  if (defined _POSIX_C_SOURCE && (_POSIX_C_SOURCE - 0) >= 199309L)
> #    if !defined (ACE_HAS_CLOCK_GETTIME)
> #      if !defined(__PGI)
> #        define ACE_HAS_CLOCK_GETTIME
> #      endif /* __PGI */4
> #      define ACE_HAS_CLOCK_SETTIME
> #    endif  /* !ACE_HAS_CLOCK_GETTIME */
> #  endif  /* _POSIX_C_SOURCE >= 199309L */
> 
> #if !defined (ACE_HAS_PTHREADS_UNIX98_EXT)
> #  define ACE_LACKS_RWLOCK_T
> #else
> #  define ACE_HAS_RECURSIVE_MUTEXES
> #endif  /* !ACE_HAS_PTHREADS_UNIX98_EXT */
> 
> #define ACE_HAS_THREAD_SPECIFIC_STORAGE     // jcej 12/22/96
> #2
> 
> #define ACE_HAS_RECURSIVE_THR_EXIT_SEMANTICS    // JCEJ 1/7-8/96
> 
> #if defined(__GLIBC__)
> // Platform supports reentrant functions (i.e., all the POSIX *_r
> // functions).
> #define ACE_HAS_REENTRANT_FUNCTIONS
> 
> #if (__GLIBC__ < 2) || (__GLIBC__ == 2 && __GLIBC_MINOR__ < 1)
>    // Older versions of glibc lacked reentrant netdb functions
> #  define ACE_LACKS_NETDB_REENTRANT_FUNCTIONS
> 
>    // glibc < 2.1 lacks pthread_attr_setstacksize()
> #  define ACE_LACKS_THREAD_STACK_SIZE
> #endif /* (__GLIBC__ < 2) || (__GLIBC__ == 2 && __GLIBC_MINOR__ < 1)
> */
> 
> // uses ctime_r & asctime_r with only two parameters vs. three
> #define ACE_HAS_2_PARAM_ASCTIME_R_AND_CTIME_R
> #endif
> 
> #else
> // AIO support pulls in the rt library, which pulls in the pthread
> // library.  Disable AIO in single-threaded builds.
> # undef ACE_HAS_AIO_CALLS
> #endif  /* ACE_MT_SAFE */
> 
> 
> //#define ACE_GCC_HAS_TEMPLATE_INSTANTIATION_VISIBILITY_ATTRS 1
> #define ACE_HAS_CPU_SET_T
> #define ACE_LACKS_STROPTS_H
> #if defined (ACE_HAS_STRBUF_T)
> #undef ACE_HAS_STRBUF_T
> #endif
> #if defined (ACE_HAS_PTHREAD_SETSTACK)
> #undef ACE_HAS_PTHREAD_SETSTACK
> #endif
> #define ACE_LACKS_PTHREAD_SETSTACK
> #if defined (ACE_HAS_AIO_CALLS)
> #undef ACE_HAS_AIO_CALLS
> #endif
> #if defined (ACE_HAS_GETIFADDRS)
> #undef ACE_HAS_GETIFADDRS
> #endif
> #define ACE_LACKS_STRRECVFD
> #if defined (ACE_LACKS_GETLOADAVG)
> #undef ACE_HAS_GETLOADAVG
> #endif
> #define ACE_LACKS_GETLOADAVG
> 
> 
> #include /**/ "ace/post.h"
> 
> #endif /* ACE_CONFIG_LINUX_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++)]:
> 
> 
> ACE_PLATFORM_CONFIG ?= config-linux-gumstix.h
> 
> exceptions ?= 1
> debug ?= 1
> optimize ?= 1
> threads ?= 1
> 
> GUMSTIX_BUILDROOT   = /gumstix-dev/trunk
> BUILD_ARM           = $(wildcard $(GUMSTIX_BUILDROOT)/build_arm*)
> CROSS_COMPILE       = $(patsubst %g++, %, $(wildcard $(BUILD_ARM)/
> staging_dir/bin/arm-linux-uclibc*-g++))
> 
> ifeq ($(strip $(CROSS_COMPILE)),)
> $(error Unable to detect C++ Cross Compiler)
> endif
> 
> TARGET_ARCH= -fPIC -Os -march=armv5te -mtune=xscale -Wa,-mcpu=xscale
> CC  = $(CROSS_COMPILE)gcc
> CXX = $(CROSS_COMPILE)g++
> 
> CPPFLAGS +=  -fPIC -Os -march=armv5te -mtune=xscale -Wa,-mcpu=xscale
> 
> no_hidden_visibility=1
> 
> HOST_ROOT=/tmp/seb/ACE_wrappers
> TAO_IDL := $(HOST_ROOT)/bin/tao_idl
> TAO_IDLFLAGS += -g $(HOST_ROOT)/bin/gperf
> TAO_IDL_DEP := $(HOST_ROOT)/bin/tao_idl$(EXEEXT)
> ###################################
> 
> 
> PLATFORM_XT_CPPFLAGS=
> PLATFORM_XT_LIBS=-lXt
> PLATFORM_XT_LDFLAGS=
> 
> PLATFORM_FL_CPPFLAGS=
> PLATFORM_FL_LIBS=-lfltk -lfltk_forms -lfltk_gl
> PLATFORM_FL_LDFLAGS=
> 
> PLATFORM_X11_CPPFLAGS=-I/usr/X11R6/include
> PLATFORM_X11_LIBS=-lX11
> PLATFORM_X11_LDFLAGS=-L/usr/X11R6/lib
> 
> PLATFORM_GL_CPPFLAGS=-I/usr/X11R6/include
> PLATFORM_GL_LIBS    =-lGL
> PLATFORM_GL_LDFLAGS =-L/usr/X11R6/lib
> 
> PLATFORM_GTK_CPPFLAGS=$(shell gtk-config --cflags)
> PLATFORM_GTK_LIBS    =$(shell gtk-config --libs)
> PLATFORM_GTK_LDFLAGS =
> 
> PLATFORM_FOX_CPPFLAGS=
> PLATFORM_FOX_LIBS=-lFOX
> PLATFORM_FOX_LDFLAGS=
> 
> # NOTE: we only support wxWindows over GTK
> PLATFORM_WX_CPPFLAGS= $(shell wx-config --cxxflags) $
> (PLATFORM_GTK_CPPFLAGS)
> PLATFORM_WX_LIBS    = $(shell wx-config --libs)     $
> (PLATFORM_GTK_LIBS)
> PLATFORM_WX_LDFLAGS = $(shell wx-config --ldflags)  $
> (PLATFORM_GTK_LDFLAGS)
> 
> PLATFORM_BOOST_CPPFLAGS ?=
> PLATFORM_BOOST_LDLAGS ?=
> PLATFORM_BOOST_UTF_LIBS ?= -lboost_unit_test_framework
> 
> PLATFORM_TCL_CPPFLAGS=
> PLATFORM_TCL_LIBS=-ltcl
> PLATFORM_TCL_LDFLAGS=
> 
> PLATFORM_TK_CPPFLAGS=-I$(shell . /usr/lib/tkConfig.sh && echo -n $
> $TK_INC_DIR $$TK_DEFS)
> PLATFORM_TK_LIBS=$(shell . /usr/lib/tkConfig.sh && echo -n $
> $TK_LIB_FLAG)
> PLATFORM_TK_LDFLAGS=
> 
> PLATFORM_AIO_SUPPORT := \
>        $(shell test "`ls -L /usr/lib/librt.so* /lib/librt.so*`" &&
> echo -DACE_HAS_AIO_CALLS)
> 
> ssl ?= 0
> ifeq ($(ssl),1)
>   # Some Linux OpenSSL installations compile in Kerberos support.  Add
>   # the Kerberos include path to preprocessor include path.
>   #
>   # We should probably also add the Kerberos libraries to
>   # PLATFORM_SSL_LIBS but we can't be sure if they are needed without
>   # a more sophisticated check.  This will only be a problem when
>   # statically linking the OpenSSL library.  The majority of
>   # installations use shared OpenSSL libraries so we should be okay,
>   # at least until we migrate to Autoconf.
>   PLATFORM_SSL_CPPFLAGS += -I/usr/kerberos/include
> endif # ssl
> 
> #insure ?= 0
> #ifeq ($(insure),1)
> #  CC  = insure
> #  CXX = insure
> #else
> #  CC  ?= gcc
> #  CXX ?= g++
> #endif
> 
> # fix this
> pipes ?= 1
> 
> CFLAGS  += -W -Wall -Wpointer-arith
> ifeq ($(threads),1)
>     CPPFLAGS  += -D_REENTRANT $(PLATFORM_AIO_SUPPORT)
> endif # threads
> 
> ifeq ($(buildbits),32)
>   CFLAGS   += -m32
>   LDFLAGS  += -m32
> endif
> ifeq ($(buildbits),64)
>   CFLAGS   += -m64
> endif
> 
> #
> # Rely on _GNU_SOURCE to set these defaults defined in /usr/include/
> features.h
> # instead of setting them directly here (older versions of gcc don't
> set it
> # for you): _SVID_SOURCE _BSD_SOURCE _POSIX_SOURCE
> _POSIX_C_SOURCE=199506L, etc...
> CPPFLAGS += -D_GNU_SOURCE
> 
> DCFLAGS += -g
> DLD     = $(CXX)
> LD      = $(CXX)
> LIBS    += -ldl
> 
> ifeq ($(threads),1)
>   LIBS += -lpthread
>   # look for the rt library in the usual places
>   LIBS += $(shell test "`ls -L /usr/lib/librt.so* /lib/librt.so*`" &&
> echo -lrt)
> endif
> 
> ifeq ($(optimize),1)
>   SOFLAGS += -Wl,-O3
> endif
> 
> PLATFORM_QT_CPPFLAGS ?= -I$(QTDIR)/include
> PLATFORM_QT_LIBS ?= -lqt-mt
> PLATFORM_QT_LDFLAGS ?= -L$(QTDIR)/lib
> 
> PIC     = -fPIC
> AR      = ar
> ARFLAGS = rsuv
> RANLIB  = @true
> SOFLAGS += $(CPPFLAGS) -shared
> SOBUILD = $(COMPILE.cc) $(PIC) -o $(VSHDIR)$*.so $<; \
>           $(SOLINK.cc) -o $@ $(LDFLAGS) $(VSHDIR)$*.o
> PRELIB  = @true
> 
> # Test for template instantiation, add to SOFLAGS if SONAME set,
> # add -E to LDFLAGS if using GNU ld
> #
> include $(ACE_ROOT)/include/makeinclude/platform_g++_common.GNU
> 
> # TAO with GCC 4.0.2 and -O3 seems to result in runtime issues, for
> example
> # the ForwardRequest PI test will fail. For GCC 4.0.2 we default to -
> O2
> ifeq ($(CXX_VERSION),4.0.2)
>   OCFLAGS ?= -O2
> else
>   OCFLAGS ?= -O3
> endif
> 
> CCFLAGS += $(CFLAGS) $(TEMPLATES_FLAG)
> 
> # Added line below to support "Executable Shared Object" files (as
> # needed by the service configurator).
> # Marius Kjeldahl <mariusk at sn.no, marius at funcom.com>
> ifeq ($(threads),1)
>     ESOBUILD = $(COMPILEESO.cc) $(PIC) -shared -o $(VSHDIR)$*.so $<
>     ifndef PRELIB
>        PRELIB = @true
>     endif # ! PRELIB
> endif
> 
> sctp ?=
> # support for OpenSS7 SCTP
> ifeq ($(sctp),openss7)
>   PLATFORM_SCTP_CPPFLAGS+= -DACE_HAS_OPENSS7_SCTP
>   PLATFORM_SCTP_LDFLAGS?=
>   PLATFORM_SCTP_LIBS?=
> endif
> 
> # support for LKSCTP (Linux Kernel 2.5)
> ifeq ($(sctp),lksctp)
>   PLATFORM_SCTP_CPPFLAGS+= -DACE_HAS_LKSCTP
>   PLATFORM_SCTP_LDFLAGS?= -L/usr/local/lib
>   PLATFORM_SCTP_LIBS?= -lsctp
> endif
> 
> #### GNU gas has a string limit of 4096 characters.  On Alphas,
> #### builds will fail due to running over that limit.  There are
> #### at least two workarounds:
> #### 1) Change the limit to 8192 characters and rebuild gas.  See
> ####    ACE-INSTALL.html for more information.
> #### 2) Don't use -g when compiling those files.
> #### If you're building on an Alpha and you haven't hacked and
> #### rebuilt gas, you might need to uncomment the following.
> #### ifeq ($(debug),1)
> ####   SUPPRESS_DASH_G = 1
> #### endif # debug
> 
> 
> 
> 
> 
>     CONTENTS OF $ACE_ROOT/bin/MakeProjectCreator/config/
> default.features
>     (used by MPC when you generate your own makefiles):
> 
>     AREA/CLASS/EXAMPLE AFFECTED:
> 
>     TAO/tests/Param_Test
> 
>     DOES THE PROBLEM AFFECT:
>          EXECUTION : run_test.pl -t ulonglong
> 
> 
>     SYNOPSIS:
> 
> While running the test , I use ethereal to look at the request and
> notice that
> the ulonglong value passed as a parameter is 00 00 00 00 67 00 00 00
> instead of 67 00 00 ...
> 
> The returned values from the server have the same problem
> 
> 
>     DESCRIPTION:
> 
> I'm Probably doing something wrong in config.h to set explicitly tell
> that 64 bits are supported for this processor. Any idea of waht I
> should put
> in there ?
> 
>     REPEAT BY:
> Use the config files above , recompile and run Param_Test/run_test.pl -
> t ulonglong
> 
>     SAMPLE FIX/WORKAROUND:
> 



More information about the Ace-users mailing list