* [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.