[Buildroot] [FYI 1/2] WIP:pcre2: new package

Peter Seiderer ps.report at gmx.net
Thu Jun 29 20:17:49 UTC 2017


Hello Naoki,

On Wed, 28 Jun 2017 16:40:36 +0900, Naoki Matsumoto <n-matsumoto at melcoinc.co.jp> wrote:

> Signed-off-by: Naoki Matsumoto <n-matsumoto at melcoinc.co.jp>
> ---
>   package/Config.in        |  1 +
>   package/pcre2/Config.in  | 22 ++++++++++++++++++++++
>   package/pcre2/pcre2.hash |  2 ++
>   package/pcre2/pcre2.mk   | 20 ++++++++++++++++++++
>   4 files changed, 45 insertions(+)
>   create mode 100644 package/pcre2/Config.in
>   create mode 100644 package/pcre2/pcre2.hash
>   create mode 100644 package/pcre2/pcre2.mk
> 
> diff --git a/package/Config.in b/package/Config.in
> index f69f67f..bf75594 100644
> --- a/package/Config.in
> +++ b/package/Config.in
> @@ -1488,6 +1488,7 @@ menu "Text and terminal handling"
>   	source "package/ncurses/Config.in"
>   	source "package/newt/Config.in"
>   	source "package/pcre/Config.in"
> +	source "package/pcre2/Config.in"
>   	source "package/popt/Config.in"
>   	source "package/readline/Config.in"
>   	source "package/slang/Config.in"
> diff --git a/package/pcre2/Config.in b/package/pcre2/Config.in
> new file mode 100644
> index 0000000..b49d306
> --- /dev/null
> +++ b/package/pcre2/Config.in
> @@ -0,0 +1,22 @@
> +config BR2_PACKAGE_PCRE2
> +	bool "pcre2"
> +	help
> +	  Perl Compatible Regular Expressions. By default, only the
> +	  8-bits libpcre2 is built. To get the 16-bits and/or 32-bits
> +	  variants libpcre2-16/libpcre2-32, use the package sub-options.
> +
> +	  http://www.pcre.org/
> +
> +if BR2_PACKAGE_PCRE2
> +
> +config BR2_PACKAGE_PCRE2_16
> +	bool "16-bit pcre2"
> +	help
> +	  This option builds the 16-bits pcre2 library, i.e 'libpcre2-16'
> +
> +config BR2_PACKAGE_PCRE2_32
> +	bool "32-bit pcre2"
> +	help
> +	  This option builds the 32-bits pcre2 library, i.e 'libpcre2-32'
> +
> +endif
> diff --git a/package/pcre2/pcre2.hash b/package/pcre2/pcre2.hash
> new file mode 100644
> index 0000000..1232cf9
> --- /dev/null
> +++ b/package/pcre2/pcre2.hash
> @@ -0,0 +1,2 @@
> +# Locally calculated after checking pgp signature
> +sha256	dfc79b918771f02d33968bd34a749ad7487fa1014aeb787fad29dd392b78c56e	pcre2-10.23.tar.bz2
> diff --git a/package/pcre2/pcre2.mk b/package/pcre2/pcre2.mk
> new file mode 100644
> index 0000000..5b7a163
> --- /dev/null
> +++ b/package/pcre2/pcre2.mk
> @@ -0,0 +1,20 @@
> +################################################################################
> +#
> +# pcre2
> +#
> +################################################################################
> +
> +PCRE2_VERSION = 10.23
> +PCRE2_SITE = https://ftp.pcre.org/pub/pcre
> +PCRE2_SOURCE = pcre2-$(PCRE2_VERSION).tar.bz2
> +PCRE2_LICENSE = BSD-3-Clause
> +PCRE2_LICENSE_FILES = LICENCE
> +PCRE2_INSTALL_STAGING = YES
> +PCRE2_CONFIG_SCRIPTS = pcre2-config
> +
> +PCRE2_CONF_OPTS += --enable-pcre2-8
> +PCRE2_CONF_OPTS += $(if $(BR2_PACKAGE_PCRE2_16),--enable-pcre2-16,--disable-pcre2-16)
> +PCRE2_CONF_OPTS += $(if $(BR2_PACKAGE_PCRE2_32),--enable-pcre2-32,--disable-pcre2-32)
> +
> +$(eval $(autotools-package))
> +$(eval $(host-autotools-package))

Did try the (relative new) support/scripts/test-pkg script with your patch/packet, two
failures until now:

- br-arcle-hs38 [ 4/47]: FAILED

  checking for arc-buildroot-linux-uclibc-ar... .../test_pcre2_001/br-arcle-hs38/host/usr/bin/arc-linux-ar
  checking the archiver (.../test_pcre2_001/br-arcle-hs38/host/usr/bin/arc-linux-ar) interface... unknown
  configure: error: could not determine .../test_pcre2_001/br-arcle-hs38/host/usr/bin/arc-linux-ar interface
  package/pkg-generic.mk:217: recipe for target '.../test_pcre2_001/br-arcle-hs38/build/pcre2-10.23/.stamp_configured' failed

And from 'build/pcre2-10.23/config.log':

  configure:4792: .../test_pcre2_001/br-arcle-hs38/host/usr/bin/arc-linux-ar cru libconftest.a conftest.o >&5
  .../test_pcre2_001/br-arcle-hs38/host/usr/bin/arc-linux-ar: error while loading shared libraries: libfl.so.2: cannot open shared object file: No such file or directory
  configure:4795: $? = 127

	$ ./host/usr/bin/arc-linux-ar -V
  ./host/usr/bin/arc-linux-ar: error while loading shared libraries: libfl.so.2: cannot open shared object file: No such file or directory

	$  LD_LIBRARY_PATH=host/opt/ext-toolchain/lib ./host/usr/bin/arc-linux-ar -V
  GNU ar (GNU Binutils) 2.28.51.20170313
  Copyright (C) 2017 Free Software Foundation, Inc.
  This program is free software; you may redistribute it under the terms of
  the GNU General Public License version 3 or (at your option) any later version.
  This program has absolutely no warranty.

Looks more like a toolchain support problem...I think nothing pcre2 specific...

- br-arm-cortex-m4-full [ 8/47]: FAILED

  src/pcre2grep.c: In function ‘pcre2grep_callout’:
  src/pcre2grep.c:1907:7: warning: implicit declaration of function ‘fork’ [-Wimplicit-function-declaration]
   pid = fork();
         ^~~~
    CCLD     libpcre2-8.la
    CCLD     libpcre2-posix.la
    CCLD     pcre2grep
  src/pcre2grep-pcre2grep.o: In function `pcre2grep_callout':
  pcre2grep.c:(.text+0x2e8): undefined reference to `fork'
  collect2: error: ld returned 1 exit status
  Makefile:1611: recipe for target 'pcre2grep' failed
  make[2]: *** [pcre2grep] Error 1
  make[2]: *** Waiting for unfinished jobs....
  make[2]: Leaving directory '.../test_pcre2_001/br-arm-cortex-m4-full/build/pcre2-10.23'
  Makefile:1255: recipe for target 'all' failed


Missing 'depends on BR2_USE_MMU # fork' or maybe missing '--disable-pcre2grep-callout'
configure parameter in case of !BR2_USE_MMU?

Regards,
Peter



More information about the buildroot mailing list