* [Buildroot] [PATCH 1/2] package/sconeserver: needs host-pkgconf @ 2016-08-28 18:19 Yann E. MORIN 2016-08-28 18:19 ` [Buildroot] [PATCH 2/2] package/sconeserver: needs shared libs or non uClibc toolchain Yann E. MORIN 2016-08-28 22:05 ` [Buildroot] [PATCH 1/2] package/sconeserver: needs host-pkgconf Peter Korsgaard 0 siblings, 2 replies; 7+ messages in thread From: Yann E. MORIN @ 2016-08-28 18:19 UTC (permalink / raw) To: buildroot sconeserver uses pkg-config macros, so it needs host-pkgconf. Reported-by: Matthew Weber <matt@thewebers.ws> Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr> --- package/sconeserver/sconeserver.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package/sconeserver/sconeserver.mk b/package/sconeserver/sconeserver.mk index e02c1a6..42901c6 100644 --- a/package/sconeserver/sconeserver.mk +++ b/package/sconeserver/sconeserver.mk @@ -10,7 +10,7 @@ SCONESERVER_LICENSE = GPLv2+ SCONESERVER_LICENSE_FILES = COPYING # fetching from Git, we need to generate the configure script SCONESERVER_AUTORECONF = YES -SCONESERVER_DEPENDENCIES += pcre +SCONESERVER_DEPENDENCIES = host-pkgconf pcre # disable markdown module because its git submodule cmark # https://github.com/sconemad/sconeserver/tree/master/markdown # has no cross-compile support provided by the sconeserver build system -- 2.7.4 ^ permalink raw reply related [flat|nested] 7+ messages in thread
* [Buildroot] [PATCH 2/2] package/sconeserver: needs shared libs or non uClibc toolchain 2016-08-28 18:19 [Buildroot] [PATCH 1/2] package/sconeserver: needs host-pkgconf Yann E. MORIN @ 2016-08-28 18:19 ` Yann E. MORIN 2016-08-28 22:09 ` Peter Korsgaard 2016-08-28 22:20 ` Matthew Weber 2016-08-28 22:05 ` [Buildroot] [PATCH 1/2] package/sconeserver: needs host-pkgconf Peter Korsgaard 1 sibling, 2 replies; 7+ messages in thread From: Yann E. MORIN @ 2016-08-28 18:19 UTC (permalink / raw) To: buildroot sconeserver wants to use dlopen(), unconditionally: it does not try to detect it, and it can't work without it (the code is not conditional). So, when the toolchain uses uClibc, and that uClibc has been configured with only static support, the dlopen() functions are not available at all, and the corresponding headers are not present: ModuleLoader.cpp:29:19: fatal error: dlfcn.h: No such file or directory #include <dlfcn.h> ^ However, we can't know if uClibc has shared support or is static-only, especially for external toolchains. The only way is to forbid the combination {uClibc,static}. So we may indeed forbid working combinations, for example if the external toolchain is uClibc-based and has support for shared libs... Fixes: http://autobuild.buildroot.org/results/e92/e929799366e6f574c7b08d8635b18623afd3e3e1/ Reported-by: Matthew Weber <matt@thewebers.ws> Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr> --- package/sconeserver/Config.in | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/package/sconeserver/Config.in b/package/sconeserver/Config.in index 4083aa7..5059570 100644 --- a/package/sconeserver/Config.in +++ b/package/sconeserver/Config.in @@ -2,6 +2,7 @@ menuconfig BR2_PACKAGE_SCONESERVER bool "sconeserver" depends on BR2_INSTALL_LIBSTDCPP depends on BR2_TOOLCHAIN_HAS_THREADS_NPTL + depends on !BR2_TOOLCHAIN_USES_UCLIBC || !BR2_STATIC_LIBS # dlopen() select BR2_PACKAGE_PCRE help Sconeserver is a modular, object-orientated and extremely versatile @@ -103,4 +104,9 @@ comment "ui module requires X.org" endif # BR2_PACKAGE_SCONESERVER comment "sconeserver needs a toolchain w/ C++, NPTL" - depends on !(BR2_INSTALL_LIBSTDCPP && BR2_TOOLCHAIN_HAS_THREADS_NPTL) + depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HAS_THREADS_NPTL + depends on !BR2_TOOLCHAIN_USES_UCLIBC || !BR2_STATIC_LIBS + +comment "sconeserver needs a toolchain with dynamic library, C++, NPTL" + depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HAS_THREADS_NPTL + depends on BR2_TOOLCHAIN_USES_UCLIBC && BR2_STATIC_LIBS -- 2.7.4 ^ permalink raw reply related [flat|nested] 7+ messages in thread
* [Buildroot] [PATCH 2/2] package/sconeserver: needs shared libs or non uClibc toolchain 2016-08-28 18:19 ` [Buildroot] [PATCH 2/2] package/sconeserver: needs shared libs or non uClibc toolchain Yann E. MORIN @ 2016-08-28 22:09 ` Peter Korsgaard 2016-08-28 22:15 ` Yann E. MORIN 2016-08-28 22:20 ` Matthew Weber 1 sibling, 1 reply; 7+ messages in thread From: Peter Korsgaard @ 2016-08-28 22:09 UTC (permalink / raw) To: buildroot >>>>> "Yann" == Yann E MORIN <yann.morin.1998@free.fr> writes: > sconeserver wants to use dlopen(), unconditionally: it does not try to > detect it, and it can't work without it (the code is not conditional). > So, when the toolchain uses uClibc, and that uClibc has been configured > with only static support, the dlopen() functions are not available at > all, and the corresponding headers are not present: > ModuleLoader.cpp:29:19: fatal error: dlfcn.h: No such file or directory > #include <dlfcn.h> > ^ > However, we can't know if uClibc has shared support or is static-only, > especially for external toolchains. > The only way is to forbid the combination {uClibc,static}. So we may > indeed forbid working combinations, for example if the external > toolchain is uClibc-based and has support for shared libs... Ehh, this I don't get. Why not simply depend on !BR2_STATIC_LIBS like we do for other users of dlfcn.h? If BR2_STATIC_LIBS is enabled then there won't be any .so files in the target rootfs, so even if the C library has dlopen support it won't work. If an external (uClibc-based) toolchain has no shared library support then it can only be used in BR2_STATIC_LIBS configurations. -- Bye, Peter Korsgaard ^ permalink raw reply [flat|nested] 7+ messages in thread
* [Buildroot] [PATCH 2/2] package/sconeserver: needs shared libs or non uClibc toolchain 2016-08-28 22:09 ` Peter Korsgaard @ 2016-08-28 22:15 ` Yann E. MORIN 2016-08-29 7:03 ` Peter Korsgaard 0 siblings, 1 reply; 7+ messages in thread From: Yann E. MORIN @ 2016-08-28 22:15 UTC (permalink / raw) To: buildroot Peter, All, On 2016-08-29 00:09 +0200, Peter Korsgaard spake thusly: > >>>>> "Yann" == Yann E MORIN <yann.morin.1998@free.fr> writes: > > > sconeserver wants to use dlopen(), unconditionally: it does not try to > > detect it, and it can't work without it (the code is not conditional). > > > So, when the toolchain uses uClibc, and that uClibc has been configured > > with only static support, the dlopen() functions are not available at > > all, and the corresponding headers are not present: > > > ModuleLoader.cpp:29:19: fatal error: dlfcn.h: No such file or directory > > #include <dlfcn.h> > > ^ > > > However, we can't know if uClibc has shared support or is static-only, > > especially for external toolchains. > > > The only way is to forbid the combination {uClibc,static}. So we may > > indeed forbid working combinations, for example if the external > > toolchain is uClibc-based and has support for shared libs... > > Ehh, this I don't get. Why not simply depend on !BR2_STATIC_LIBS like we > do for other users of dlfcn.h? > > If BR2_STATIC_LIBS is enabled then there won't be any .so files in the > target rootfs, so even if the C library has dlopen support it won't > work. Not necessarily true. One can use dlopen() to load "addons" even from a staticaly linked executable. However, I don't care about sconeserver; I was just looking at build failures and trying to make it the least broken as possible. If you're fine with making it depend on non static-only and drop the uclibc condition, that's fine with me. ;-) Regards, Yann E. MORIN. > If an external (uClibc-based) toolchain has no shared library support > then it can only be used in BR2_STATIC_LIBS configurations. > > -- > Bye, Peter Korsgaard -- .-----------------.--------------------.------------------.--------------------. | Yann E. MORIN | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: | | +33 662 376 056 | Software Designer | \ / CAMPAIGN | ___ | | +33 223 225 172 `------------.-------: X AGAINST | \e/ There is no | | http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL | v conspiracy. | '------------------------------^-------^------------------^--------------------' ^ permalink raw reply [flat|nested] 7+ messages in thread
* [Buildroot] [PATCH 2/2] package/sconeserver: needs shared libs or non uClibc toolchain 2016-08-28 22:15 ` Yann E. MORIN @ 2016-08-29 7:03 ` Peter Korsgaard 0 siblings, 0 replies; 7+ messages in thread From: Peter Korsgaard @ 2016-08-29 7:03 UTC (permalink / raw) To: buildroot >>>>> "Yann" == Yann E MORIN <yann.morin.1998@free.fr> writes: >> Ehh, this I don't get. Why not simply depend on !BR2_STATIC_LIBS like we >> do for other users of dlfcn.h? >> >> If BR2_STATIC_LIBS is enabled then there won't be any .so files in the >> target rootfs, so even if the C library has dlopen support it won't >> work. > Not necessarily true. > One can use dlopen() to load "addons" even from a staticaly linked > executable. Generally speaking, yes - But not in Buildroot. We have a single global BR2_STATIC_LIBS setting, so it is all or nothing. > However, I don't care about sconeserver; I was just looking at build > failures and trying to make it the least broken as possible. > If you're fine with making it depend on non static-only and drop the > uclibc condition, that's fine with me. ;-) Ok, I'll adjust the patch and commit message and apply, thanks. -- Venlig hilsen, Peter Korsgaard ^ permalink raw reply [flat|nested] 7+ messages in thread
* [Buildroot] [PATCH 2/2] package/sconeserver: needs shared libs or non uClibc toolchain 2016-08-28 18:19 ` [Buildroot] [PATCH 2/2] package/sconeserver: needs shared libs or non uClibc toolchain Yann E. MORIN 2016-08-28 22:09 ` Peter Korsgaard @ 2016-08-28 22:20 ` Matthew Weber 1 sibling, 0 replies; 7+ messages in thread From: Matthew Weber @ 2016-08-28 22:20 UTC (permalink / raw) To: buildroot Yann, On Sun, Aug 28, 2016 at 1:19 PM, Yann E. MORIN <yann.morin.1998@free.fr> wrote: > sconeserver wants to use dlopen(), unconditionally: it does not try to > detect it, and it can't work without it (the code is not conditional). > > So, when the toolchain uses uClibc, and that uClibc has been configured > with only static support, the dlopen() functions are not available at > all, and the corresponding headers are not present: > > ModuleLoader.cpp:29:19: fatal error: dlfcn.h: No such file or directory > #include <dlfcn.h> > ^ > > However, we can't know if uClibc has shared support or is static-only, > especially for external toolchains. > > The only way is to forbid the combination {uClibc,static}. So we may > indeed forbid working combinations, for example if the external > toolchain is uClibc-based and has support for shared libs... > > Fixes: > http://autobuild.buildroot.org/results/e92/e929799366e6f574c7b08d8635b18623afd3e3e1/ > > Reported-by: Matthew Weber <matt@thewebers.ws> > Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr> > --- > package/sconeserver/Config.in | 8 +++++++- > 1 file changed, 7 insertions(+), 1 deletion(-) > > diff --git a/package/sconeserver/Config.in b/package/sconeserver/Config.in > index 4083aa7..5059570 100644 > --- a/package/sconeserver/Config.in > +++ b/package/sconeserver/Config.in > @@ -2,6 +2,7 @@ menuconfig BR2_PACKAGE_SCONESERVER > bool "sconeserver" > depends on BR2_INSTALL_LIBSTDCPP > depends on BR2_TOOLCHAIN_HAS_THREADS_NPTL > + depends on !BR2_TOOLCHAIN_USES_UCLIBC || !BR2_STATIC_LIBS # dlopen() > select BR2_PACKAGE_PCRE > help > Sconeserver is a modular, object-orientated and extremely versatile > @@ -103,4 +104,9 @@ comment "ui module requires X.org" > endif # BR2_PACKAGE_SCONESERVER Should a comment be added for the toolchain C++ and NPTL are good but dyn lib support is not? comment "sconeserver needs a toolchain w/ dynamic library" depends on BR2_INSTALL_LIBSTDCPP && BR2_TOOLCHAIN_HAS_THREADS_NPTL depends on BR2_TOOLCHAIN_USES_UCLIBC && BR2_STATIC_LIBS I'd also be good with just disabling static build per follow on parts of this thread. Thanks, Matt ^ permalink raw reply [flat|nested] 7+ messages in thread
* [Buildroot] [PATCH 1/2] package/sconeserver: needs host-pkgconf 2016-08-28 18:19 [Buildroot] [PATCH 1/2] package/sconeserver: needs host-pkgconf Yann E. MORIN 2016-08-28 18:19 ` [Buildroot] [PATCH 2/2] package/sconeserver: needs shared libs or non uClibc toolchain Yann E. MORIN @ 2016-08-28 22:05 ` Peter Korsgaard 1 sibling, 0 replies; 7+ messages in thread From: Peter Korsgaard @ 2016-08-28 22:05 UTC (permalink / raw) To: buildroot >>>>> "Yann" == Yann E MORIN <yann.morin.1998@free.fr> writes: > sconeserver uses pkg-config macros, so it needs host-pkgconf. > Reported-by: Matthew Weber <matt@thewebers.ws> > Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr> > --- > package/sconeserver/sconeserver.mk | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > diff --git a/package/sconeserver/sconeserver.mk b/package/sconeserver/sconeserver.mk > index e02c1a6..42901c6 100644 > --- a/package/sconeserver/sconeserver.mk > +++ b/package/sconeserver/sconeserver.mk > @@ -10,7 +10,7 @@ SCONESERVER_LICENSE = GPLv2+ > SCONESERVER_LICENSE_FILES = COPYING > # fetching from Git, we need to generate the configure script > SCONESERVER_AUTORECONF = YES > -SCONESERVER_DEPENDENCIES += pcre > +SCONESERVER_DEPENDENCIES = host-pkgconf pcre It already pulled in host-pkgconf for the image and location suboption, so I've dropped those, updated the commit message and committed, thanks. -- Bye, Peter Korsgaard ^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2016-08-29 7:03 UTC | newest] Thread overview: 7+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2016-08-28 18:19 [Buildroot] [PATCH 1/2] package/sconeserver: needs host-pkgconf Yann E. MORIN 2016-08-28 18:19 ` [Buildroot] [PATCH 2/2] package/sconeserver: needs shared libs or non uClibc toolchain Yann E. MORIN 2016-08-28 22:09 ` Peter Korsgaard 2016-08-28 22:15 ` Yann E. MORIN 2016-08-29 7:03 ` Peter Korsgaard 2016-08-28 22:20 ` Matthew Weber 2016-08-28 22:05 ` [Buildroot] [PATCH 1/2] package/sconeserver: needs host-pkgconf Peter Korsgaard
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox