update buildroot to 2017.02.11
This commit is contained in:
@@ -0,0 +1,61 @@
|
||||
omniorb/thread: use proper autoconf macros for header inclusion
|
||||
|
||||
src/lib/omnithread/posix.cc uses sleep() and usleep(), defined in
|
||||
<unistd.h> on numerous platforms, and struct timeval/gettimeofday(),
|
||||
defined in <sys/time.h> on various platforms.
|
||||
|
||||
Since those header files are not available on all platforms, posix.cc
|
||||
currently uses the following condition:
|
||||
|
||||
#if (defined(__GLIBC__) && __GLIBC__ >= 2) || defined(__SCO_VERSION__) || defined(__aix__) || defined (__cygwin__) || defined(__darwin__) || defined(__macos__)
|
||||
|
||||
Unfortunately, this falls short on Linux systems based on the musl C
|
||||
library. Indeed, the musl C library does not define the __GLIBC__
|
||||
symbol, but does have the sleep()/usleep() definitions in <unistd.h>,
|
||||
and the struct timeval/gettimeofday() definitions in <sys/time.h>,
|
||||
like any Linux system. Also, the musl C library does not define any
|
||||
constant like __MUSL__ to distinguish it.
|
||||
|
||||
Due to this, on musl based systems, <unistd.h> and <sys/time.h> are
|
||||
not included, causing a build failure:
|
||||
|
||||
posix.cc:864:22: error: '::sleep' has not been declared
|
||||
while ((secs = ::sleep(secs))) ;
|
||||
^
|
||||
posix.cc:866:43: error: 'usleep' was not declared in this scope
|
||||
usleep(secs * 1000000 + (nanosecs / 1000));
|
||||
^
|
||||
posix.cc: In static member function 'static void omni_thread::get_time(long unsigned int*, long unsigned int*, long unsigned int, long unsigned int)':
|
||||
posix.cc:904:20: error: aggregate 'omni_thread::get_time(long unsigned int*, long unsigned int*, long unsigned int, long unsigned int)::timeval tv' has incomplete type and cannot be defined
|
||||
struct timeval tv;
|
||||
^
|
||||
posix.cc:905:24: error: 'gettimeofday' was not declared in this scope
|
||||
gettimeofday(&tv, 0);
|
||||
|
||||
It turns out that the configure.ac already checks for the availability
|
||||
of <unistd.h> and <sys/time.h>. So all what this patch does is use the
|
||||
C defines generated by the configure script to decide whether
|
||||
<unistd.h> and <sys/time.h> can be included or not.
|
||||
|
||||
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
|
||||
|
||||
Index: b/src/lib/omnithread/posix.cc
|
||||
===================================================================
|
||||
--- a/src/lib/omnithread/posix.cc
|
||||
+++ b/src/lib/omnithread/posix.cc
|
||||
@@ -78,10 +78,14 @@
|
||||
#include <errno.h>
|
||||
#include <time.h>
|
||||
#include <omnithread.h>
|
||||
+#include <omniORB4/acconfig.h>
|
||||
|
||||
-#if (defined(__GLIBC__) && __GLIBC__ >= 2) || defined(__SCO_VERSION__) || defined(__aix__) || defined (__cygwin__) || defined(__darwin__) || defined(__macos__)
|
||||
// typedef of struct timeval and gettimeofday();
|
||||
+#if defined(HAVE_SYS_TIME_H)
|
||||
#include <sys/time.h>
|
||||
+#endif
|
||||
+
|
||||
+#if defined(HAVE_UNISTD_H)
|
||||
#include <unistd.h>
|
||||
#endif
|
||||
|
||||
26
bsp/buildroot-2017.02.11/package/omniorb/Config.in
Normal file
26
bsp/buildroot-2017.02.11/package/omniorb/Config.in
Normal file
@@ -0,0 +1,26 @@
|
||||
|
||||
comment "omniORB needs a toolchain w/ C++, threads"
|
||||
depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HAS_THREADS
|
||||
|
||||
config BR2_PACKAGE_OMNIORB
|
||||
bool "omniorb"
|
||||
depends on BR2_INSTALL_LIBSTDCPP
|
||||
depends on BR2_TOOLCHAIN_HAS_THREADS
|
||||
help
|
||||
omniORB is a robust high performance CORBA ORB for C++ and Python.
|
||||
omniORB is largely CORBA 2.6 compliant. omniORB is one of only
|
||||
three ORBs to have been awarded the Open Group's Open Brand for
|
||||
CORBA. This means that omniORB has been tested and certified
|
||||
CORBA compliant, to version 2.1 of the CORBA specification.
|
||||
|
||||
http://omniorb.sourceforge.net/
|
||||
|
||||
if BR2_PACKAGE_OMNIORB
|
||||
|
||||
config BR2_PACKAGE_OMNIORB_WITH_APPS
|
||||
bool "Enable Apps and Services"
|
||||
help
|
||||
omniORB applications and services disabled by default
|
||||
embedded system build configuration.
|
||||
|
||||
endif
|
||||
3
bsp/buildroot-2017.02.11/package/omniorb/omniorb.hash
Normal file
3
bsp/buildroot-2017.02.11/package/omniorb/omniorb.hash
Normal file
@@ -0,0 +1,3 @@
|
||||
# From http://sourceforge.net/projects/omniorb/files/omniORB/omniORB-4.2.1/
|
||||
sha1 cf0f3ca7caab901c9485ca8afd85087c080c9684 omniORB-4.2.1.tar.bz2
|
||||
md5 dbe349d2bd929d349083b303bb4317e5 omniORB-4.2.1.tar.bz2
|
||||
75
bsp/buildroot-2017.02.11/package/omniorb/omniorb.mk
Normal file
75
bsp/buildroot-2017.02.11/package/omniorb/omniorb.mk
Normal file
@@ -0,0 +1,75 @@
|
||||
################################################################################
|
||||
#
|
||||
# omniorb
|
||||
#
|
||||
################################################################################
|
||||
|
||||
OMNIORB_VERSION = 4.2.1
|
||||
OMNIORB_SITE = http://downloads.sourceforge.net/project/omniorb/omniORB/omniORB-$(OMNIORB_VERSION)
|
||||
OMNIORB_SOURCE = omniORB-$(OMNIORB_VERSION).tar.bz2
|
||||
OMNIORB_INSTALL_STAGING = YES
|
||||
OMNIORB_LICENSE = GPL2+, LGPLv2.1+
|
||||
OMNIORB_LICENSE_FILES = COPYING COPYING.LIB
|
||||
OMNIORB_DEPENDENCIES = host-omniorb
|
||||
HOST_OMNIORB_DEPENDENCIES = host-python
|
||||
|
||||
# omniorb is not python3 friendly, so force the python interpreter
|
||||
OMNIORB_CONF_OPTS = ac_cv_path_PYTHON=$(HOST_DIR)/usr/bin/python2
|
||||
HOST_OMNIORB_CONF_OPTS = ac_cv_path_PYTHON=$(HOST_DIR)/usr/bin/python2
|
||||
|
||||
# Defaulting long double support to a safe option for the
|
||||
# mix of embedded targets, this could later be automated
|
||||
# based on checking the capability of the cross toolchain
|
||||
# for "__LONG_DOUBLE_128__". Currently the host and target
|
||||
# need to match because of the code generation done by the
|
||||
# host tools during the target compile (ie headers generated
|
||||
# on host are used in target build).
|
||||
OMNIORB_CONF_OPTS += --disable-longdouble
|
||||
HOST_OMNIORB_CONF_OPTS += --disable-longdouble
|
||||
|
||||
ifeq ($(BR2_PACKAGE_OPENSSL),y)
|
||||
OMNIORB_CONF_OPTS += --with-openssl
|
||||
OMNIORB_DEPENDENCIES += openssl
|
||||
else
|
||||
OMNIORB_CONF_OPTS += --without-openssl
|
||||
endif
|
||||
|
||||
ifeq ($(BR2_PACKAGE_ZLIB),y)
|
||||
OMNIORB_DEPENDENCIES += zlib
|
||||
endif
|
||||
|
||||
# The EmbeddedSystem define (set below in OMNIORB_ADJUST_TOOLDIR)
|
||||
# enables building of just the lib and disables building of
|
||||
# tools/apps/services. In some cases the apps/services are still
|
||||
# required. The tools however are host related and should never
|
||||
# be required on target.
|
||||
define OMNIORB_ENABLE_EXTRA_APPS
|
||||
$(SED) 's:SUBDIRS += lib:SUBDIRS += lib appl services:g' $(@D)/src/dir.mk
|
||||
endef
|
||||
|
||||
ifeq ($(BR2_PACKAGE_OMNIORB_WITH_APPS),y)
|
||||
OMNIORB_POST_PATCH_HOOKS += OMNIORB_ENABLE_EXTRA_APPS
|
||||
endif
|
||||
|
||||
ifeq ($(BR2_STATIC_LIBS),y)
|
||||
define OMNIORB_DISABLE_SHARED
|
||||
echo "BuildSharedLibrary =" >> $(@D)/mk/beforeauto.mk
|
||||
endef
|
||||
OMNIORB_POST_CONFIGURE_HOOKS += OMNIORB_DISABLE_SHARED
|
||||
endif
|
||||
|
||||
# omniORB is not completely cross-compile friendly and has some
|
||||
# assumptions where a couple host tools must be built and then
|
||||
# used by the target build. The host tools generate code from
|
||||
# the IDL description language, which is then built into the
|
||||
# cross compiled target OMNIORB application.
|
||||
define OMNIORB_ADJUST_TOOLDIR
|
||||
# Point to the host folder to get HOST_OMNIORB tools
|
||||
$(SED) 's:TOOLBINDIR = $$(TOP)/$$(BINDIR):TOOLBINDIR = $(HOST_DIR)/usr/bin:g' $(@D)/mk/beforeauto.mk
|
||||
# Disables OMNIORB app/service/tool building
|
||||
echo "EmbeddedSystem=1" >> $(@D)/mk/beforeauto.mk
|
||||
endef
|
||||
OMNIORB_POST_CONFIGURE_HOOKS += OMNIORB_ADJUST_TOOLDIR
|
||||
|
||||
$(eval $(autotools-package))
|
||||
$(eval $(host-autotools-package))
|
||||
Reference in New Issue
Block a user