update buildroot to 2017.02.11

This commit is contained in:
jbnadal
2018-05-22 15:35:47 +02:00
parent 4bf1f5e091
commit a3c10bd762
9257 changed files with 433426 additions and 1701 deletions

View File

@@ -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

View 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

View 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

View 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))