Trying to create OpenDDS recipe

Paul Ourada

I hope this is the correct place to post this. If not, please let me

I'm trying to create a recipe for OpenDDS. The recipe works so far as
fetching, unpacking, and configuration. Or it seems to. :) Part of the
configuration piece is that it also pulls down ACE+TAO real-time CORBA.
This part works fine as well.

I set S as follows to match the unpacking directories enforced by the
tar file:


The package comes with a configuration script pre-built, and it expects
to be told where glibc is. So, I write do_configure as follows:


do_configure() {
${S}/configure ${EXTRA_OECONF}

The problem that I run into is during compilation. I write the following
for do_compile()

do_compile() {
oenote ${STAGING_DIR}
cd ${S} && make

This works right up until there is a compile error in ACE+TAO. Of
course, I build the entire DDS package, including ACE+TAO, with no
hiccups in Ubuntu, so I understand that this is a
cross-compile/environment issue.

The compile error is that it cannot find features.h, which is clearly in
${STAGING_LIBDIR}/${MACHINE}/usr/include. The compile command which is
being executed is as follows (this is going to be ugly, let me know if
there's a better way to include this, such as a pastebin somewhere):

| make[1]: Entering directory
| GNUmakefile:
| i586-poky-linux-g++ -march=i586
-fvisibility=hidden -fvisibility-inlines-hidden -W -Wall -Wpointer-arith
E_wrappers -DACE_HAS_EXCEPTIONS -DACE_NO_INLINE -I../.. -Iinclude
-Ibe_include -Ife -I.. -DTAO_IDL_PREPROCESSOR=\"i586-poky-linux-g++
-march=i586 --sysroot=/opt/yocto/poky-5.0.1-build/tmp/sysroots/qemux86\"
-c -o .obj/driver/drv_preproc.o driver/drv_preproc.cpp
| <command-line>:0:22: warning: missing terminating " character
| In file included from
| from
| from
| from
| from
| from
| from include/idl_defines.h:70,
| from driver/drv_preproc.cpp:70:
wrappers/ace/config-posix.h:7:20: fatal error: unistd.h: No such file or
| compilation terminated.
| make[1]: *** [.obj/driver/drv_preproc.o] Error 1
| make[1]: Leaving directory
| make: *** [TAO_IDL_EXE] Error 2
| ERROR: Function 'do_compile' failed (see
/log.do_compile.17412 for further information)
NOTE: package opendds-2.3-r0: task do_compile: Failed
ERROR: Task 5
(/opt/yocto/poky-bernard-5.0.1/meta/recipes-middleware/opendds/opendds_2, do_compile) failed with exit code '1'

The thing that is puzzling me is that --sysroot seems to be pointing in
the general direction of ${STAGING_DIR} and so the include directive,
#include <features.h> should be good. I have checked, and features.h is
in the /usr/include subdirectory there.

Does anyone have a clue they could lend me?


Paul E. Ourada
Sr. Principal Software Engineer
Covidien, Energy-based Devices
5920 Longbow Drive
Boulder, CO 80301
Main: 303-530-2300
Ofc: 303-581-6940
Fax: 303-581-6741

Join to automatically receive all group messages.