* [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; 4+ 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] 4+ 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; 4+ 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] 4+ 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; 4+ 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] 4+ 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; 4+ 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] 4+ messages in thread
end of thread, other threads:[~2014-12-26 16:24 UTC | newest]
Thread overview: 4+ 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
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox