* [Buildroot] [PATCH 1/2] kismet: Remove libpcap compile tests to fix cross-compiling
@ 2014-12-12 14:48 Vicente Olivert Riera
2014-12-12 14:48 ` [Buildroot] [PATCH 2/2] kismet: Fix static build Vicente Olivert Riera
2014-12-26 16:24 ` [Buildroot] [PATCH 1/2] kismet: Remove libpcap compile tests to fix cross-compiling Yann E. MORIN
0 siblings, 2 replies; 5+ messages in thread
From: Vicente Olivert Riera @ 2014-12-12 14:48 UTC (permalink / raw)
To: buildroot
These compile tests are run on the host machine which may have or may
not have libpcap installed, so we are relying on the host machine to
determine if we have to stop the build process due to a missing pcap
library. Given that Kismet already depends on libpcap we can be sure
that library will be installed in our target. So, for these two reasons
we can remove these compile tests from the configure script.
Fixes:
http://autobuild.buildroot.net/results/965/965a3e345dc0a432043b72581bff7d33561fbe0c/
Signed-off-by: Vicente Olivert Riera <Vincent.Riera@imgtec.com>
---
...pcap-compile-tests-to-fix-cross-compiling.patch | 104 ++++++++++++++++++++
1 files changed, 104 insertions(+), 0 deletions(-)
create mode 100644 package/kismet/0003-Remove-libpcap-compile-tests-to-fix-cross-compiling.patch
diff --git a/package/kismet/0003-Remove-libpcap-compile-tests-to-fix-cross-compiling.patch b/package/kismet/0003-Remove-libpcap-compile-tests-to-fix-cross-compiling.patch
new file mode 100644
index 0000000..d41c64e
--- /dev/null
+++ b/package/kismet/0003-Remove-libpcap-compile-tests-to-fix-cross-compiling.patch
@@ -0,0 +1,104 @@
+Remove libpcap compile tests to fix cross-compiling
+
+These compile tests are run on the host machine which may have or may
+not have libpcap installed, so we are relying on the host machine to
+determine if we have to stop the build process due to a missing pcap
+library. Given that Kismet already depends on libpcap we can be sure
+that library will be installed in our target. So, for these two reasons
+we can remove these compile tests from the configure script.
+
+Signed-off-by: Vicente Olivert Riera <Vincent.Riera@imgtec.com>
+
+diff -rup a/configure b/configure
+--- a/configure 2014-12-11 16:35:36.979059147 +0000
++++ b/configure 2014-12-11 16:43:54.175647454 +0000
+@@ -6265,29 +6265,7 @@ if eval \${$as_ac_Lib+:} false; then :
+ else
+ ac_check_lib_save_LIBS=$LIBS
+ LIBS="-l${pcaplib} $LIBS"
+-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+-/* end confdefs.h. */
+-
+-/* Override any GCC internal prototype to avoid an error.
+- Use char because int might match the return type of a GCC
+- builtin and then its argument prototype would still apply. */
+-#ifdef __cplusplus
+-extern "C"
+-#endif
+-char pcap_open_live ();
+-int
+-main ()
+-{
+-return pcap_open_live ();
+- ;
+- return 0;
+-}
+-_ACEOF
+-if ac_fn_c_try_link "$LINENO"; then :
+ eval "$as_ac_Lib=yes"
+-else
+- eval "$as_ac_Lib=no"
+-fi
+ rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+ LIBS=$ac_check_lib_save_LIBS
+@@ -6337,29 +6315,7 @@ if ${ac_cv_lib_pcap_pcap_setnonblock+:}
+ else
+ ac_check_lib_save_LIBS=$LIBS
+ LIBS="-lpcap $LIBS"
+-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+-/* end confdefs.h. */
+-
+-/* Override any GCC internal prototype to avoid an error.
+- Use char because int might match the return type of a GCC
+- builtin and then its argument prototype would still apply. */
+-#ifdef __cplusplus
+-extern "C"
+-#endif
+-char pcap_setnonblock ();
+-int
+-main ()
+-{
+-return pcap_setnonblock ();
+- ;
+- return 0;
+-}
+-_ACEOF
+-if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_lib_pcap_pcap_setnonblock=yes
+-else
+- ac_cv_lib_pcap_pcap_setnonblock=no
+-fi
+ rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+ LIBS=$ac_check_lib_save_LIBS
+@@ -6385,29 +6341,7 @@ if eval \${$as_ac_Lib+:} false; then :
+ else
+ ac_check_lib_save_LIBS=$LIBS
+ LIBS="-l${pcaplib} $LIBS"
+-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+-/* end confdefs.h. */
+-
+-/* Override any GCC internal prototype to avoid an error.
+- Use char because int might match the return type of a GCC
+- builtin and then its argument prototype would still apply. */
+-#ifdef __cplusplus
+-extern "C"
+-#endif
+-char pcap_get_selectable_fd ();
+-int
+-main ()
+-{
+-return pcap_get_selectable_fd ();
+- ;
+- return 0;
+-}
+-_ACEOF
+-if ac_fn_c_try_link "$LINENO"; then :
+ eval "$as_ac_Lib=yes"
+-else
+- eval "$as_ac_Lib=no"
+-fi
+ rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+ LIBS=$ac_check_lib_save_LIBS
--
1.7.1
^ permalink raw reply related [flat|nested] 5+ messages in thread* [Buildroot] [PATCH 2/2] kismet: Fix static build
2014-12-12 14:48 [Buildroot] [PATCH 1/2] kismet: Remove libpcap compile tests to fix cross-compiling Vicente Olivert Riera
@ 2014-12-12 14:48 ` Vicente Olivert Riera
2014-12-26 16:04 ` Yann E. MORIN
2014-12-26 16:24 ` [Buildroot] [PATCH 1/2] kismet: Remove libpcap compile tests to fix cross-compiling Yann E. MORIN
1 sibling, 1 reply; 5+ messages in thread
From: Vicente Olivert Riera @ 2014-12-12 14:48 UTC (permalink / raw)
To: buildroot
Use pcap-config to list optional libpcap dependencies needed for static
link. Otherwise we will see errors like this one:
/br/output/host/usr/mipsel-buildroot-linux-uclibc/sysroot/usr/lib/libpcap.a(pcap-canusb-linux.o):
In function `canusb_close':
pcap-canusb-linux.c:(.text+0xec): undefined reference to `libusb_close'
Also reorder the ncurses libs because the order is very important when
doing static builds. Otherwise we will see errors like this one:
/br/output/host/usr/mipsel-buildroot-linux-uclibc/sysroot/usr/lib/libpanel.a(p_delete.o):
In function `del_panel':
p_delete.c:(.text+0x68): undefined reference to `_nc_panelhook'
Signed-off-by: Vicente Olivert Riera <Vincent.Riera@imgtec.com>
---
package/kismet/kismet.mk | 8 ++++++++
1 files changed, 8 insertions(+), 0 deletions(-)
diff --git a/package/kismet/kismet.mk b/package/kismet/kismet.mk
index f177fea..6aeafe2 100644
--- a/package/kismet/kismet.mk
+++ b/package/kismet/kismet.mk
@@ -12,6 +12,14 @@ KISMET_CONF_OPTS += --with-netlink-version=3
KISMET_LICENSE = GPLv2+
KISMET_LICENSE_FILES = debian/copyright
+define KISMET_REORDER_NCURSES_LIBS
+ $(SED) 's/-lncurses -lpanel/-lpanel -lncurses/' $(@D)/Makefile.inc
+endef
+ifeq ($(BR2_PREFER_STATIC_LIB),y)
+KISMET_CONF_ENV = LIBS="-lpcap $(shell $(STAGING_DIR)/usr/bin/pcap-config --static --additional-libs)"
+KISMET_POST_CONFIGURE_HOOKS += KISMET_REORDER_NCURSES_LIBS
+endif
+
ifeq ($(BR2_PACKAGE_PCRE),y)
KISMET_DEPENDENCIES += pcre
endif
--
1.7.1
^ permalink raw reply related [flat|nested] 5+ messages in thread
* [Buildroot] [PATCH 2/2] kismet: Fix static build
2014-12-12 14:48 ` [Buildroot] [PATCH 2/2] kismet: Fix static build Vicente Olivert Riera
@ 2014-12-26 16:04 ` Yann E. MORIN
0 siblings, 0 replies; 5+ messages in thread
From: Yann E. MORIN @ 2014-12-26 16:04 UTC (permalink / raw)
To: buildroot
Vicente, All,
On 2014-12-12 14:48 +0000, Vicente Olivert Riera spake thusly:
> Use pcap-config to list optional libpcap dependencies needed for static
> link. Otherwise we will see errors like this one:
>
> /br/output/host/usr/mipsel-buildroot-linux-uclibc/sysroot/usr/lib/libpcap.a(pcap-canusb-linux.o):
> In function `canusb_close':
> pcap-canusb-linux.c:(.text+0xec): undefined reference to `libusb_close'
>
> Also reorder the ncurses libs because the order is very important when
> doing static builds. Otherwise we will see errors like this one:
>
> /br/output/host/usr/mipsel-buildroot-linux-uclibc/sysroot/usr/lib/libpanel.a(p_delete.o):
> In function `del_panel':
> p_delete.c:(.text+0x68): undefined reference to `_nc_panelhook'
>
> Signed-off-by: Vicente Olivert Riera <Vincent.Riera@imgtec.com>
> ---
> package/kismet/kismet.mk | 8 ++++++++
> 1 files changed, 8 insertions(+), 0 deletions(-)
>
> diff --git a/package/kismet/kismet.mk b/package/kismet/kismet.mk
> index f177fea..6aeafe2 100644
> --- a/package/kismet/kismet.mk
> +++ b/package/kismet/kismet.mk
> @@ -12,6 +12,14 @@ KISMET_CONF_OPTS += --with-netlink-version=3
> KISMET_LICENSE = GPLv2+
> KISMET_LICENSE_FILES = debian/copyright
>
> +define KISMET_REORDER_NCURSES_LIBS
> + $(SED) 's/-lncurses -lpanel/-lpanel -lncurses/' $(@D)/Makefile.inc
I think it is better to patch configure.in instead of this post-patch
hook. I have a patch to this effect that I'll submit soon.
> +endef
> +ifeq ($(BR2_PREFER_STATIC_LIB),y)
> +KISMET_CONF_ENV = LIBS="-lpcap $(shell $(STAGING_DIR)/usr/bin/pcap-config --static --additional-libs)"
I'll incorporate your libpcap in my series when I resubmit.
In the meantime, I have marked this patch as "Changes Requested" in
Patchwork.
Regards,
Yann E. MORIN.
> +KISMET_POST_CONFIGURE_HOOKS += KISMET_REORDER_NCURSES_LIBS
> +endif
> +
> ifeq ($(BR2_PACKAGE_PCRE),y)
> KISMET_DEPENDENCIES += pcre
> endif
> --
> 1.7.1
>
> _______________________________________________
> buildroot mailing list
> buildroot at busybox.net
> http://lists.busybox.net/mailman/listinfo/buildroot
--
.-----------------.--------------------.------------------.--------------------.
| 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] 5+ messages in thread
* [Buildroot] [PATCH 1/2] kismet: Remove libpcap compile tests to fix cross-compiling
2014-12-12 14:48 [Buildroot] [PATCH 1/2] kismet: Remove libpcap compile tests to fix cross-compiling Vicente Olivert Riera
2014-12-12 14:48 ` [Buildroot] [PATCH 2/2] kismet: Fix static build Vicente Olivert Riera
@ 2014-12-26 16:24 ` Yann E. MORIN
1 sibling, 0 replies; 5+ messages in thread
From: Yann E. MORIN @ 2014-12-26 16:24 UTC (permalink / raw)
To: buildroot
Vicente, All,
On 2014-12-12 14:48 +0000, Vicente Olivert Riera spake thusly:
> These compile tests are run on the host machine which may have or may
> not have libpcap installed, so we are relying on the host machine to
> determine if we have to stop the build process due to a missing pcap
> library. Given that Kismet already depends on libpcap we can be sure
> that library will be installed in our target. So, for these two reasons
> we can remove these compile tests from the configure script.
>
> Fixes:
> http://autobuild.buildroot.net/results/965/965a3e345dc0a432043b72581bff7d33561fbe0c/
>
> Signed-off-by: Vicente Olivert Riera <Vincent.Riera@imgtec.com>
> ---
> ...pcap-compile-tests-to-fix-cross-compiling.patch | 104 ++++++++++++++++++++
> 1 files changed, 104 insertions(+), 0 deletions(-)
> create mode 100644 package/kismet/0003-Remove-libpcap-compile-tests-to-fix-cross-compiling.patch
>
> diff --git a/package/kismet/0003-Remove-libpcap-compile-tests-to-fix-cross-compiling.patch b/package/kismet/0003-Remove-libpcap-compile-tests-to-fix-cross-compiling.patch
> new file mode 100644
> index 0000000..d41c64e
> --- /dev/null
> +++ b/package/kismet/0003-Remove-libpcap-compile-tests-to-fix-cross-compiling.patch
> @@ -0,0 +1,104 @@
> +Remove libpcap compile tests to fix cross-compiling
> +
> +These compile tests are run on the host machine which may have or may
> +not have libpcap installed, so we are relying on the host machine to
> +determine if we have to stop the build process due to a missing pcap
> +library. Given that Kismet already depends on libpcap we can be sure
> +that library will be installed in our target. So, for these two reasons
> +we can remove these compile tests from the configure script.
> +
> +Signed-off-by: Vicente Olivert Riera <Vincent.Riera@imgtec.com>
> +
> +diff -rup a/configure b/configure
> +--- a/configure 2014-12-11 16:35:36.979059147 +0000
> ++++ b/configure 2014-12-11 16:43:54.175647454 +0000
You are patching configure instead of configure.in.
However, I could not observe what you describe in the commit log. In my
case, the libpcap is really checked with the cross-compiler:
configure:6258: checking for pcap_open_live in -lpcap
configure:6283: /home/ymorin/dev/buildroot/O/host/usr/bin/arm-none-linux-gnueabi-gcc [...]
configure:6283: $? = 0
configure:6293: result: yes
[...]
configure:6378: checking for pcap_get_selectable_fd in -lpcap
configure:6403: /home/ymorin/dev/buildroot/O/host/usr/bin/arm-none-linux-gnueabi-gcc [...]
configure:6403: $? = 0
configure:6413: result: yes
But that's maybe because I now autoreconf kismet, since my ncurses-related
patch already touches configure.in.
So I've marked this patch as "Rejected" in Patchwork, as it seems it is
no longer needed.
In case you still have issues with the pcap stuff, feel free to resubmit
the patch with extra information.
Thank you! :-)
Regards,
Yann E. MORIN.
--
.-----------------.--------------------.------------------.--------------------.
| 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] 5+ messages in thread
* [Buildroot] [PATCH 0/2] kismet: fix static builds (branch yem/fixes)
@ 2014-12-26 17:33 Yann E. MORIN
2014-12-26 17:33 ` [Buildroot] [PATCH 2/2] kismet: Fix static build Yann E. MORIN
0 siblings, 1 reply; 5+ messages in thread
From: Yann E. MORIN @ 2014-12-26 17:33 UTC (permalink / raw)
To: buildroot
Hello All!
These two patches are fixes to kismet when doing a static-only build:
- first patch is the same as what Vicente proposed, but done in
configure.in instead of configure, and thus needs an autoreconf;
it fixes static linking against ncurses libs;
- second patch is what Vicente provided, but with the ncurses bits
removed since it is now handled differently in its own patch.
Regards,
Yann E. MORIN.
The following changes since commit 1696f254aa2c68a274956902cfac7b7e9a607b11:
libvncserver: bump version to 0.9.10 (2014-12-26 17:39:43 +0100)
are available in the git repository at:
git://git.busybox.net/~ymorin/git/buildroot yem/fixes
for you to fetch changes up to 6c3f1a6f597ba9282340782273af01cef607bfe1:
kismet: Fix static build (2014-12-26 18:28:26 +0100)
----------------------------------------------------------------
Vicente Olivert Riera (1):
kismet: Fix static build
Yann E. MORIN (1):
package/kismet: fix ncurses static build
package/kismet/0003-fix-curses-libs-ordering.patch | 52 ++++++++++++++++++++++
package/kismet/kismet.mk | 7 +++
2 files changed, 59 insertions(+)
create mode 100644 package/kismet/0003-fix-curses-libs-ordering.patch
--
.-----------------.--------------------.------------------.--------------------.
| 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] 5+ messages in thread* [Buildroot] [PATCH 2/2] kismet: Fix static build
2014-12-26 17:33 [Buildroot] [PATCH 0/2] kismet: fix static builds (branch yem/fixes) Yann E. MORIN
@ 2014-12-26 17:33 ` Yann E. MORIN
0 siblings, 0 replies; 5+ messages in thread
From: Yann E. MORIN @ 2014-12-26 17:33 UTC (permalink / raw)
To: buildroot
From: Vicente Olivert Riera <Vincent.Riera@imgtec.com>
Use pcap-config to list optional libpcap dependencies needed for static
link. Otherwise we will see errors like this one:
/br/output/host/usr/mipsel-buildroot-linux-uclibc/sysroot/usr/lib/libpcap.a(pcap-canusb-linux.o):
In function `canusb_close':
pcap-canusb-linux.c:(.text+0xec): undefined reference to `libusb_close'
Signed-off-by: Vicente Olivert Riera <Vincent.Riera@imgtec.com>
[yann.morin.1998 at free.fr: remove the ncurses bits (done differently in
another patch), fix BR2_PREFER_STATIC_LIB -> BR2_STATIC_LIBS]
Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr>
---
package/kismet/kismet.mk | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/package/kismet/kismet.mk b/package/kismet/kismet.mk
index a71414e..117d182 100644
--- a/package/kismet/kismet.mk
+++ b/package/kismet/kismet.mk
@@ -15,6 +15,10 @@ KISMET_LICENSE_FILES = debian/copyright
# We touch configure.in:
KISMET_AUTORECONF = YES
+ifeq ($(BR2_STATIC_LIBS),y)
+KISMET_CONF_ENV = LIBS="-lpcap $(shell $(STAGING_DIR)/usr/bin/pcap-config --static --additional-libs)"
+endif
+
ifeq ($(BR2_PACKAGE_PCRE),y)
KISMET_DEPENDENCIES += pcre
endif
--
1.9.1
^ permalink raw reply related [flat|nested] 5+ messages in thread
end of thread, other threads:[~2014-12-26 17:33 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-12-12 14:48 [Buildroot] [PATCH 1/2] kismet: Remove libpcap compile tests to fix cross-compiling Vicente Olivert Riera
2014-12-12 14:48 ` [Buildroot] [PATCH 2/2] kismet: Fix static build Vicente Olivert Riera
2014-12-26 16:04 ` Yann E. MORIN
2014-12-26 16:24 ` [Buildroot] [PATCH 1/2] kismet: Remove libpcap compile tests to fix cross-compiling Yann E. MORIN
-- strict thread matches above, loose matches on Subject: below --
2014-12-26 17:33 [Buildroot] [PATCH 0/2] kismet: fix static builds (branch yem/fixes) Yann E. MORIN
2014-12-26 17:33 ` [Buildroot] [PATCH 2/2] kismet: Fix static build Yann E. MORIN
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox