All of lore.kernel.org
 help / color / mirror / Atom feed
* [Buildroot] [PATCHv2] package: add the poco C++ libraries collection
@ 2011-08-31 12:11 Baruch Siach
  2011-09-25 21:50 ` Peter Korsgaard
  0 siblings, 1 reply; 8+ messages in thread
From: Baruch Siach @ 2011-08-31 12:11 UTC (permalink / raw)
  To: buildroot

Add the C++ Portable Components libraries.

The Data/ODBC components is disabled because its dependency (unixODBC) is not
in Buildroot.

The Data/MySQL component is build tested only. It probably requires an
additional RPATH to actually run, because libmysqlclient resides in a
non-standard location under /usr/lib/mysql.

Signed-off-by: Baruch Siach <baruch@tkos.co.il>
---

Changes from v1:
	Rebase on version 2011.08
	Update to version 1.4.2
	Fix the changelog text

 package/Config.in                                  |    1 +
 package/poco/Config.in                             |   56 +++++++++++++
 .../poco/poco-1.4.2-add-cross-build-config.patch   |   82 ++++++++++++++++++++
 .../poco/poco-1.4.2-add-staging-search-path.patch  |   22 +++++
 .../poco/poco-1.4.2-dont-build-debug-libs.patch    |   19 +++++
 package/poco/poco.mk                               |   52 ++++++++++++
 6 files changed, 232 insertions(+), 0 deletions(-)
 create mode 100644 package/poco/Config.in
 create mode 100644 package/poco/poco-1.4.2-add-cross-build-config.patch
 create mode 100644 package/poco/poco-1.4.2-add-staging-search-path.patch
 create mode 100644 package/poco/poco-1.4.2-dont-build-debug-libs.patch
 create mode 100644 package/poco/poco.mk

diff --git a/package/Config.in b/package/Config.in
index 7112e05..7f709ca 100644
--- a/package/Config.in
+++ b/package/Config.in
@@ -347,6 +347,7 @@ source "package/libnspr/Config.in"
 source "package/liboil/Config.in"
 source "package/libsigc/Config.in"
 source "package/orc/Config.in"
+source "package/poco/Config.in"
 source "package/startup-notification/Config.in"
 endmenu
 
diff --git a/package/poco/Config.in b/package/poco/Config.in
new file mode 100644
index 0000000..9de5328
--- /dev/null
+++ b/package/poco/Config.in
@@ -0,0 +1,56 @@
+config BR2_PACKAGE_POCO
+	bool "poco"
+	select BR2_PACKAGE_ZLIB
+	select BR2_PACKAGE_PCRE
+	depends on BR2_LARGEFILE
+	help
+	  The C++ Portable Components Libraries
+
+	  http://pocoproject.org
+
+comment "poco requires a toolchain with LARGEFILE support"
+	depends on !BR2_LARGEFILE
+
+if BR2_PACKAGE_POCO
+
+comment "poco components"
+
+config BR2_PACKAGE_POCO_XML
+	bool "xml"
+	select BR2_PACKAGE_EXPAT
+
+config BR2_PACKAGE_POCO_UTIL
+	bool "util"
+	select BR2_PACKAGE_POCO_XML
+
+config BR2_PACKAGE_POCO_NET
+	bool "net"
+
+config BR2_PACKAGE_POCO_CRYPTO
+	bool "crypto"
+	select BR2_PACKAGE_OPENSSL
+
+config BR2_PACKAGE_POCO_NETSSL_OPENSSL
+	bool "netssl_openssl"
+	select BR2_PACKAGE_POCO_NET
+	select BR2_PACKAGE_POCO_CRYPTO
+	select BR2_PACKAGE_POCO_UTIL
+	select BR2_PACKAGE_OPENSSL
+
+config BR2_PACKAGE_POCO_ZIP
+	bool "zip"
+
+config BR2_PACKAGE_POCO_DATA
+	bool
+
+config BR2_PACKAGE_POCO_DATA_SQLITE
+	bool "sqlite"
+	select BR2_PACKAGE_POCO_DATA
+	select BR2_PACKAGE_SQLITE
+
+config BR2_PACKAGE_POCO_DATA_MYSQL
+	bool "mysql"
+	select BR2_PACKAGE_POCO_DATA
+	select BR2_PACKAGE_MYSQL_CLIENT
+
+endif # BR2_PACKAGE_POCO
diff --git a/package/poco/poco-1.4.2-add-cross-build-config.patch b/package/poco/poco-1.4.2-add-cross-build-config.patch
new file mode 100644
index 0000000..a087838
--- /dev/null
+++ b/package/poco/poco-1.4.2-add-cross-build-config.patch
@@ -0,0 +1,82 @@
+From: Baruch Siach <baruch@tkos.co.il>
+Subject: [PATCH] poco: add Linux configuration file for generic cross build
+
+This patch adds the Linux-CrossEnv config file to poco. This file is identical
+to the Linux one, except the added CROSSENV variable that allows setting of
+the toolchain prefix.
+
+Signed-off-by: Baruch Siach <baruch@tkos.co.il>
+---
+diff -Nuar poco-1.4.1p1-dist/build/config/Linux-CrossEnv poco-1.4.1p1/build/config/Linux-CrossEnv
+--- poco-1.4.1p1-dist/build/config/Linux-CrossEnv	1970-01-01 02:00:00.000000000 +0200
++++ poco-1.4.1p1/build/config/Linux-CrossEnv	2011-08-02 18:51:03.682047719 +0300
+@@ -0,0 +1,69 @@
++#
++# Linux
++#
++# Make settings for cross compiled Linux
++#
++#
++
++#
++# General Settings
++#
++LINKMODE ?= SHARED
++
++#
++# Define Tools
++#
++CC      = $(CROSSENV)gcc
++CXX     = $(CROSSENV)g++
++LINK    = $(CXX)
++LIB     = $(CROSSENV)ar -cr
++RANLIB  = $(CROSSENV)ranlib
++SHLIB   = $(CXX) -shared -Wl,-soname,$(notdir $@) -o $@
++SHLIBLN = $(POCO_BASE)/build/script/shlibln
++STRIP   = $(CROSSENV)strip
++DEP     = $(POCO_BASE)/build/script/makedepend.gcc 
++SHELL   = sh
++RM      = rm -rf
++CP      = cp
++MKDIR   = mkdir -p
++
++#
++# Extension for Shared Libraries
++#
++SHAREDLIBEXT     = .so.$(target_version)
++SHAREDLIBLINKEXT = .so
++
++#
++# Compiler and Linker Flags
++#
++CFLAGS          = 
++CFLAGS32        =
++CFLAGS64        =
++CXXFLAGS        = -Wall -Wno-sign-compare
++CXXFLAGS32      =
++CXXFLAGS64      =
++LINKFLAGS       =
++LINKFLAGS32     =
++LINKFLAGS64     =
++STATICOPT_CC    =
++STATICOPT_CXX   =
++STATICOPT_LINK  = -static
++SHAREDOPT_CC    = -fPIC
++SHAREDOPT_CXX   = -fPIC
++SHAREDOPT_LINK  = -Wl,-rpath,$(LIBPATH)
++DEBUGOPT_CC     = -g -D_DEBUG
++DEBUGOPT_CXX    = -g -D_DEBUG
++DEBUGOPT_LINK   = -g
++RELEASEOPT_CC   = -O2 -DNDEBUG
++RELEASEOPT_CXX  = -O2 -DNDEBUG
++RELEASEOPT_LINK = -O2
++
++#
++# System Specific Flags
++#
++SYSFLAGS = -D_XOPEN_SOURCE=500 -D_REENTRANT -D_THREAD_SAFE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE -DPOCO_HAVE_FD_EPOLL
++
++#
++# System Specific Libraries
++#
++SYSLIBS  = -lpthread -ldl -lrt
diff --git a/package/poco/poco-1.4.2-add-staging-search-path.patch b/package/poco/poco-1.4.2-add-staging-search-path.patch
new file mode 100644
index 0000000..18ee076
--- /dev/null
+++ b/package/poco/poco-1.4.2-add-staging-search-path.patch
@@ -0,0 +1,22 @@
+From: Baruch Siach <baruch@tkos.co.il>
+Subject: [PATCH] poco: add the staging path to search path
+
+Add the mysql headers and client libraries to the search path of the
+preprocessor and the linker. The $MYSQL_LIBDIR variable must be set from the
+make command line.
+
+Signed-off-by: Baruch Siach <baruch@tkos.co.il>
+--- 
+--- poco-1.4.1p1-all-dist/Data/MySQL/Makefile	2011-02-09 11:13:00.000000000 +0200
++++ poco-1.4.1p1-all/Data/MySQL/Makefile	2011-08-07 09:03:37.106161274 +0300
+@@ -8,8 +8,8 @@
+ 
+ include $(POCO_BASE)/build/rules/global
+ 
+-SYSLIBS += -L/usr/local/lib/mysql -L/usr/lib/mysql -L/usr/mysql/lib/mysql -L/usr/local/mysql/lib -lmysqlclient
+-INCLUDE += -I/usr/local/include/mysql/ -I/usr/include/mysql -I/usr/mysql/include/mysql -I/usr/local/mysql/include
++SYSLIBS += -L$(MYSQL_LIBDIR) -L/usr/local/lib/mysql -L/usr/lib/mysql -L/usr/mysql/lib/mysql -L/usr/local/mysql/lib -lmysqlclient
++INCLUDE += -I/usr/local/include/mysql/ -I/usr/include/mysql -I/usr/mysql/include/mysql -I/usr/local/mysql/include -I=/mysql
+ SYSFLAGS += -DTHREADSAFE -DNO_TCL
+ 
+ objects = Binder Extractor SessionImpl Connector \
diff --git a/package/poco/poco-1.4.2-dont-build-debug-libs.patch b/package/poco/poco-1.4.2-dont-build-debug-libs.patch
new file mode 100644
index 0000000..7480963
--- /dev/null
+++ b/package/poco/poco-1.4.2-dont-build-debug-libs.patch
@@ -0,0 +1,19 @@
+From: Baruch Siach <baruch@tkos.co.il>
+Subject: [PATCH] poco: don't build debug libraries
+
+Remove the debug libraries build dependency from the default target.
+
+Signed-off-by: Baruch Siach <baruch@tkos.co.il>
+---
+
+--- poco-1.4.1p1-dist/build/rules/compile	2011-02-09 11:12:24.000000000 +0200
++++ poco-1.4.1p1/build/rules/compile	2011-08-03 07:51:42.946044176 +0300
+@@ -14,7 +14,7 @@
+ 
+ all: $(DEFAULT_TARGET)
+ all_static: static_debug static_release
+-all_shared: shared_debug shared_release
++all_shared: shared_release
+ all_debug: static_debug shared_debug
+ all_release: static_release shared_release
+ 
diff --git a/package/poco/poco.mk b/package/poco/poco.mk
new file mode 100644
index 0000000..2bbbc8b
--- /dev/null
+++ b/package/poco/poco.mk
@@ -0,0 +1,52 @@
+#############################################################
+#
+# poco
+#
+#############################################################
+POCO_VERSION = 1.4.2
+POCO_SOURCE = poco-$(POCO_VERSION)-all.tar.gz
+POCO_SITE = http://$(BR2_SOURCEFORGE_MIRROR).dl.sourceforge.net/sourceforge/poco
+POCO_INSTALL_STAGING = YES
+
+POCO_DEPENDENCIES = zlib pcre					\
+	$(if $(BR2_PACKAGE_POCO_XML),expat)			\
+	$(if $(BR2_PACKAGE_POCO_CRYPTO),openssl)		\
+	$(if $(BR2_PACKAGE_POCO_NETSSL_OPENSSL),openssl)	\
+	$(if $(BR2_PACKAGE_POCO_DATA_SQLITE),sqlite)		\
+	$(if $(BR2_PACKAGE_POCO_DATA_MYSQL),mysql_client)
+
+POCO_OMIT = Data/ODBC PageCompiler					\
+	$(if $(BR2_PACKAGE_POCO_XML),,XML)				\
+	$(if $(BR2_PACKAGE_POCO_UTIL),,Util)				\
+	$(if $(BR2_PACKAGE_POCO_NET),,Net)				\
+	$(if $(BR2_PACKAGE_POCO_NETSSL_OPENSSL),,NetSSL_OpenSSL)	\
+	$(if $(BR2_PACKAGE_POCO_CRYPTO),,Crypto)			\
+	$(if $(BR2_PACKAGE_POCO_ZIP),,Zip)				\
+	$(if $(BR2_PACKAGE_POCO_DATA),,Data)				\
+	$(if $(BR2_PACKAGE_POCO_DATA_MYSQL),,Data/MySQL)		\
+	$(if $(BR2_PACKAGE_POCO_DATA_SQLITE),,Data/SQLite)
+
+define POCO_CONFIGURE_CMDS
+	(cd $(@D); ./configure \
+		--config=Linux-CrossEnv	\
+		--prefix=/usr		\
+		--omit="$(POCO_OMIT)"	\
+		--unbundled		\
+		--no-tests		\
+		--no-samples)
+endef
+
+define POCO_BUILD_CMDS
+	$(MAKE) POCO_TARGET_OSARCH=$(ARCH) CROSSENV=$(TARGET_CROSS) \
+		MYSQL_LIBDIR=$(TARGET_DIR)/usr/lib/mysql -C $(@D)
+endef
+
+define POCO_INSTALL_STAGING_CMDS
+	$(MAKE) DESTDIR=$(STAGING_DIR) POCO_TARGET_OSARCH=$(ARCH) install -C $(@D)
+endef
+
+define POCO_INSTALL_TARGET_CMDS
+	$(MAKE) DESTDIR=$(TARGET_DIR) POCO_TARGET_OSARCH=$(ARCH) install -C $(@D)
+endef
+
+$(eval $(call GENTARGETS,package,poco))
-- 
1.7.5.4

^ permalink raw reply related	[flat|nested] 8+ messages in thread

* [Buildroot] [PATCHv2] package: add the poco C++ libraries collection
  2011-08-31 12:11 [Buildroot] [PATCHv2] package: add the poco C++ libraries collection Baruch Siach
@ 2011-09-25 21:50 ` Peter Korsgaard
  2011-09-26  6:44   ` Baruch Siach
  0 siblings, 1 reply; 8+ messages in thread
From: Peter Korsgaard @ 2011-09-25 21:50 UTC (permalink / raw)
  To: buildroot

>>>>> "Baruch" == Baruch Siach <baruch@tkos.co.il> writes:

 Baruch> Add the C++ Portable Components libraries.

 Baruch> The Data/ODBC components is disabled because its dependency
 Baruch> (unixODBC) is not in Buildroot.

 Baruch> The Data/MySQL component is build tested only. It probably requires an
 Baruch> additional RPATH to actually run, because libmysqlclient resides in a
 Baruch> non-standard location under /usr/lib/mysql.

Thanks, a few comments:

 Baruch> diff --git a/package/poco/Config.in b/package/poco/Config.in
 Baruch> new file mode 100644
 Baruch> index 0000000..9de5328
 Baruch> --- /dev/null
 Baruch> +++ b/package/poco/Config.in
 Baruch> @@ -0,0 +1,56 @@
 Baruch> +config BR2_PACKAGE_POCO
 Baruch> +	bool "poco"
 Baruch> +	select BR2_PACKAGE_ZLIB
 Baruch> +	select BR2_PACKAGE_PCRE
 Baruch> +	depends on BR2_LARGEFILE

That's not enough. You (obviously) need C++ support, and WCHAR also
seems to be needed for the unicode stuff - E.G.:

select BR2_INSTALL_LIBSTDCPP
select BR2_USE_WCHAR

 Baruch> +	help
 Baruch> +	  The C++ Portable Components Libraries
 Baruch> +
 Baruch> +	  http://pocoproject.org
 Baruch> +
 Baruch> +comment "poco requires a toolchain with LARGEFILE support"
 Baruch> +	depends on !BR2_LARGEFILE

This should be extended to also cover C++ and WCHAR. This comment should
move down to the bottom of the file so the remaining sub options gets
properly indented.

With those changes it builds until it gets to the FPU stuff, which
breaks on (atleast) ARM:

.. -c src/FPEnvironment.cpp -o /home/peko/source/buildroot/output/build/poco-1.4.2/Foundation/obj/Linux/arm/release_shared/FPEnvironment.o
In file included from src/FPEnvironment_C99.cpp:37,
                 from src/FPEnvironment.cpp:48:
include/Poco/FPEnvironment_C99.h:56: error: 'FE_DOWNWARD' was not declared in this scope
include/Poco/FPEnvironment_C99.h:57: error: 'FE_UPWARD' was not declared in this scope

The FE_* macros afaik only supposed to be defined if the arch can
efficiently handle it, which isn't the case for ARM. fenv.h the
supporting functions are only enabled on uClibc if UCLIBC_HAS_FENV is
enabled in the .config, which it isn't for our uClibc defconfigs.

I'm not exactly sure how to fix this. Any ideas?
-- 
Bye, Peter Korsgaard

^ permalink raw reply	[flat|nested] 8+ messages in thread

* [Buildroot] [PATCHv2] package: add the poco C++ libraries collection
  2011-09-25 21:50 ` Peter Korsgaard
@ 2011-09-26  6:44   ` Baruch Siach
  2011-09-26 20:32     ` Peter Korsgaard
  0 siblings, 1 reply; 8+ messages in thread
From: Baruch Siach @ 2011-09-26  6:44 UTC (permalink / raw)
  To: buildroot

Hi Peter,

On Sun, Sep 25, 2011 at 11:50:39PM +0200, Peter Korsgaard wrote:
> >>>>> "Baruch" == Baruch Siach <baruch@tkos.co.il> writes:
> 
>  Baruch> Add the C++ Portable Components libraries.
> 
>  Baruch> The Data/ODBC components is disabled because its dependency
>  Baruch> (unixODBC) is not in Buildroot.
> 
>  Baruch> The Data/MySQL component is build tested only. It probably requires an
>  Baruch> additional RPATH to actually run, because libmysqlclient resides in a
>  Baruch> non-standard location under /usr/lib/mysql.
> 
> Thanks, a few comments:

[snip]

> With those changes it builds until it gets to the FPU stuff, which
> breaks on (atleast) ARM:
> 
> .. -c src/FPEnvironment.cpp -o /home/peko/source/buildroot/output/build/poco-1.4.2/Foundation/obj/Linux/arm/release_shared/FPEnvironment.o
> In file included from src/FPEnvironment_C99.cpp:37,
>                  from src/FPEnvironment.cpp:48:
> include/Poco/FPEnvironment_C99.h:56: error: 'FE_DOWNWARD' was not declared in this scope
> include/Poco/FPEnvironment_C99.h:57: error: 'FE_UPWARD' was not declared in this scope
> 
> The FE_* macros afaik only supposed to be defined if the arch can
> efficiently handle it, which isn't the case for ARM.

It builds here for ARM (BR2_ARM_TYPE="ARM926T") using the CodeSourcery 
toolchain (with a little toolchain support fix I'll send shortly).

> fenv.h the
> supporting functions are only enabled on uClibc if UCLIBC_HAS_FENV is
> enabled in the .config, which it isn't for our uClibc defconfigs.
> 
> I'm not exactly sure how to fix this. Any ideas?

Is there a way to depend on UCLIBC_HAS_FENV?
Is depending on glibc an option?

baruch

-- 
                                                     ~. .~   Tk Open Systems
=}------------------------------------------------ooO--U--Ooo------------{=
   - baruch at tkos.co.il - tel: +972.2.679.5364, http://www.tkos.co.il -

^ permalink raw reply	[flat|nested] 8+ messages in thread

* [Buildroot] [PATCHv2] package: add the poco C++ libraries collection
  2011-09-26  6:44   ` Baruch Siach
@ 2011-09-26 20:32     ` Peter Korsgaard
  2011-09-27 16:26       ` Baruch Siach
  0 siblings, 1 reply; 8+ messages in thread
From: Peter Korsgaard @ 2011-09-26 20:32 UTC (permalink / raw)
  To: buildroot

>>>>> "Baruch" == Baruch Siach <baruch@tkos.co.il> writes:

 >> The FE_* macros afaik only supposed to be defined if the arch can
 >> efficiently handle it, which isn't the case for ARM.

 Baruch> It builds here for ARM (BR2_ARM_TYPE="ARM926T") using the CodeSourcery 
 Baruch> toolchain (with a little toolchain support fix I'll send shortly).

Indeed. The codesourcery toolchain presumably uses glibc. The problem is
with uClibc - But I don't want to add a package which doesn't work with
the internal toolchain.

 >> fenv.h the
 >> supporting functions are only enabled on uClibc if UCLIBC_HAS_FENV is
 >> enabled in the .config, which it isn't for our uClibc defconfigs.
 >> 
 >> I'm not exactly sure how to fix this. Any ideas?

 Baruch> Is there a way to depend on UCLIBC_HAS_FENV?
 Baruch> Is depending on glibc an option?

I would rather see a patch which uses the dummy fenv implementation on
uClibc without UCLIBC_HAS_FENV.

You can detect that using something like

#include <fetures.h>
#if defined(__UCLIBC__) && !defined (__UCLIBC_HAS_FENV__)
..

But I haven't looked at the poco build system to see how easy that would
be.

-- 
Bye, Peter Korsgaard

^ permalink raw reply	[flat|nested] 8+ messages in thread

* [Buildroot] [PATCHv2] package: add the poco C++ libraries collection
  2011-09-26 20:32     ` Peter Korsgaard
@ 2011-09-27 16:26       ` Baruch Siach
  2011-09-27 19:19         ` Peter Korsgaard
  0 siblings, 1 reply; 8+ messages in thread
From: Baruch Siach @ 2011-09-27 16:26 UTC (permalink / raw)
  To: buildroot

Hi Peter,

On Mon, Sep 26, 2011 at 10:32:29PM +0200, Peter Korsgaard wrote:
> >>>>> "Baruch" == Baruch Siach <baruch@tkos.co.il> writes:
> 
>  >> The FE_* macros afaik only supposed to be defined if the arch can
>  >> efficiently handle it, which isn't the case for ARM.
> 
>  Baruch> It builds here for ARM (BR2_ARM_TYPE="ARM926T") using the CodeSourcery 
>  Baruch> toolchain (with a little toolchain support fix I'll send shortly).
> 
> Indeed. The codesourcery toolchain presumably uses glibc. The problem is
> with uClibc - But I don't want to add a package which doesn't work with
> the internal toolchain.
> 
>  >> fenv.h the
>  >> supporting functions are only enabled on uClibc if UCLIBC_HAS_FENV is
>  >> enabled in the .config, which it isn't for our uClibc defconfigs.
>  >> 
>  >> I'm not exactly sure how to fix this. Any ideas?
> 
>  Baruch> Is there a way to depend on UCLIBC_HAS_FENV?
>  Baruch> Is depending on glibc an option?
> 
> I would rather see a patch which uses the dummy fenv implementation on
> uClibc without UCLIBC_HAS_FENV.
> 
> You can detect that using something like
> 
> #include <fetures.h>
> #if defined(__UCLIBC__) && !defined (__UCLIBC_HAS_FENV__)
> ..
> 
> But I haven't looked at the poco build system to see how easy that would
> be.

Well, it seems that the Poco configure script can do just that when told to.  
The --no-fpenvironment option replaces FPEnvironment_C99.h with 
FPEnvironment_DUMMY.h. You can even pass --no-wstring to disable std::wstring 
support. So the question is, is there a way to detect the 'defined(__UCLIBC__) 
&& !defined (__UCLIBC_HAS_FENV__)' condition at configuration time? This seems 
to be much cleaner than patching the code for build time detection.

baruch

-- 
                                                     ~. .~   Tk Open Systems
=}------------------------------------------------ooO--U--Ooo------------{=
   - baruch at tkos.co.il - tel: +972.2.679.5364, http://www.tkos.co.il -

^ permalink raw reply	[flat|nested] 8+ messages in thread

* [Buildroot] [PATCHv2] package: add the poco C++ libraries collection
  2011-09-27 16:26       ` Baruch Siach
@ 2011-09-27 19:19         ` Peter Korsgaard
  2011-10-02  6:41           ` Baruch Siach
  0 siblings, 1 reply; 8+ messages in thread
From: Peter Korsgaard @ 2011-09-27 19:19 UTC (permalink / raw)
  To: buildroot

>>>>> "Baruch" == Baruch Siach <baruch@tkos.co.il> writes:

Hi,

 Baruch> Well, it seems that the Poco configure script can do just that
 Baruch> when told to.  The --no-fpenvironment option replaces
 Baruch> FPEnvironment_C99.h with FPEnvironment_DUMMY.h. You can even
 Baruch> pass --no-wstring to disable std::wstring support. So the
 Baruch> question is, is there a way to detect the 'defined(__UCLIBC__)
 Baruch> && !defined (__UCLIBC_HAS_FENV__)' condition at configuration
 Baruch> time? This seems to be much cleaner than patching the code for
 Baruch> build time detection.

Ahh ok, good. As far as I can see, the uClibc fenv support is not really
extensive enough to ever work, so simply detecting uClibc should be
enough. Remember we can use uClibc through
internal/external/crosstool-ng toolchains, so you'll need to do
something like

ifeq ($(BR2_TOOLCHAIN_BUILDROOT)$(BR2_TOOLCHAIN_EXTERNAL_UCLIBC)$(BR2_TOOLCHAIN_CTNG_uClibc),y)
POCO_CONF_OPT += --no-fpenvironment
endif

-- 
Bye, Peter Korsgaard

^ permalink raw reply	[flat|nested] 8+ messages in thread

* [Buildroot] [PATCHv2] package: add the poco C++ libraries collection
  2011-09-27 19:19         ` Peter Korsgaard
@ 2011-10-02  6:41           ` Baruch Siach
  2011-10-02 18:59             ` Peter Korsgaard
  0 siblings, 1 reply; 8+ messages in thread
From: Baruch Siach @ 2011-10-02  6:41 UTC (permalink / raw)
  To: buildroot

Hi Peter,

On Tue, Sep 27, 2011 at 09:19:01PM +0200, Peter Korsgaard wrote:
> >>>>> "Baruch" == Baruch Siach <baruch@tkos.co.il> writes:
>  Baruch> Well, it seems that the Poco configure script can do just that
>  Baruch> when told to.  The --no-fpenvironment option replaces
>  Baruch> FPEnvironment_C99.h with FPEnvironment_DUMMY.h. You can even
>  Baruch> pass --no-wstring to disable std::wstring support. So the
>  Baruch> question is, is there a way to detect the 'defined(__UCLIBC__)
>  Baruch> && !defined (__UCLIBC_HAS_FENV__)' condition at configuration
>  Baruch> time? This seems to be much cleaner than patching the code for
>  Baruch> build time detection.
> 
> Ahh ok, good. As far as I can see, the uClibc fenv support is not really
> extensive enough to ever work, so simply detecting uClibc should be
> enough. Remember we can use uClibc through
> internal/external/crosstool-ng toolchains, so you'll need to do
> something like
> 
> ifeq ($(BR2_TOOLCHAIN_BUILDROOT)$(BR2_TOOLCHAIN_EXTERNAL_UCLIBC)$(BR2_TOOLCHAIN_CTNG_uClibc),y)
> POCO_CONF_OPT += --no-fpenvironment
> endif

Can't we just use $(LIBC) that is set in package/Makefile.in? Hence:

ifeq ($(LIBC),uclibc)
POCO_CONF_OPT += --no-fpenvironment
endif

baruch

-- 
                                                     ~. .~   Tk Open Systems
=}------------------------------------------------ooO--U--Ooo------------{=
   - baruch at tkos.co.il - tel: +972.2.679.5364, http://www.tkos.co.il -

^ permalink raw reply	[flat|nested] 8+ messages in thread

* [Buildroot] [PATCHv2] package: add the poco C++ libraries collection
  2011-10-02  6:41           ` Baruch Siach
@ 2011-10-02 18:59             ` Peter Korsgaard
  0 siblings, 0 replies; 8+ messages in thread
From: Peter Korsgaard @ 2011-10-02 18:59 UTC (permalink / raw)
  To: buildroot

>>>>> "Baruch" == Baruch Siach <baruch@tkos.co.il> writes:

 >> ifeq ($(BR2_TOOLCHAIN_BUILDROOT)$(BR2_TOOLCHAIN_EXTERNAL_UCLIBC)$(BR2_TOOLCHAIN_CTNG_uClibc),y)
 >> POCO_CONF_OPT += --no-fpenvironment
 >> endif

 Baruch> Can't we just use $(LIBC) that is set in package/Makefile.in? Hence:

 Baruch> ifeq ($(LIBC),uclibc)
 Baruch> POCO_CONF_OPT += --no-fpenvironment
 Baruch> endif

Yes, that's fine as well - That one handles the 3 variants.

-- 
Bye, Peter Korsgaard

^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2011-10-02 18:59 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2011-08-31 12:11 [Buildroot] [PATCHv2] package: add the poco C++ libraries collection Baruch Siach
2011-09-25 21:50 ` Peter Korsgaard
2011-09-26  6:44   ` Baruch Siach
2011-09-26 20:32     ` Peter Korsgaard
2011-09-27 16:26       ` Baruch Siach
2011-09-27 19:19         ` Peter Korsgaard
2011-10-02  6:41           ` Baruch Siach
2011-10-02 18:59             ` Peter Korsgaard

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.