Bump buidlroot version to 2018.02.6
This commit is contained in:
@@ -0,0 +1,49 @@
|
||||
src/pcre2_intmodedep.h: fix alignment of fields in struct heapframe
|
||||
|
||||
pcre2_intmodedep.h has a check to verify that the size of the struct
|
||||
heapframe is a multiple of 4 bytes. On most architectures this works
|
||||
fine, but not on m68k. Indeed, when building the 16-bit variant of
|
||||
pcre2, the heapframe structure contains:
|
||||
|
||||
PCRE2_UCHAR occu[2];
|
||||
PCRE2_SPTR eptr;
|
||||
|
||||
Where PCRE2_UCHAR is a 16-bit data type, and PCRE2_SPTR is a
|
||||
pointer. The occu[] array starts at byte 0x32, so not aligned on a
|
||||
32-bit boundary. With 2 x 16-bit, the occur[] array ends at byte 0x36.
|
||||
|
||||
Now, on most architectures, the alignment required for a pointer will
|
||||
make the eptr field start at 0x38 (on 32 bit architectures). However,
|
||||
on m68k, it is fine to have a pointer aligned only on a 16-bit
|
||||
boundary, and the eptr pointer will be at offset 0x36.
|
||||
|
||||
This doesn't cause a problem per-se, but breaks the check that
|
||||
heapframe should be a multiple of 4 bytes.
|
||||
|
||||
To fix this, we make sure eptr is aligned by introducing an unused
|
||||
field of 16 bits after the occu[] array (in the 16-bit variant) or
|
||||
after the occu[] array (in the 32-bit variant). These choices have
|
||||
been made to keep the structure layout unchanged.
|
||||
|
||||
Fixes the following build failure on m68k:
|
||||
|
||||
src/pcre2_intmodedep.h:818:14: error: size of array 'check_heapframe_size' is negative
|
||||
typedef char check_heapframe_size[
|
||||
^~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
|
||||
Upstream: https://bugs.exim.org/show_bug.cgi?id=2247
|
||||
|
||||
Index: src/pcre2_intmodedep.h
|
||||
===================================================================
|
||||
--- a/src/pcre2_intmodedep.h (revision 923)
|
||||
+++ b/src/pcre2_intmodedep.h (working copy)
|
||||
@@ -797,7 +797,9 @@
|
||||
PCRE2_UCHAR occu[6]; /* Used for other case code units */
|
||||
#elif PCRE2_CODE_UNIT_WIDTH == 16
|
||||
PCRE2_UCHAR occu[2]; /* Used for other case code units */
|
||||
+ uint8_t unused[2]; /* Ensure 32 bit alignment */
|
||||
#else
|
||||
+ uint8_t unused[2]; /* Ensure 32 bit alignment */
|
||||
PCRE2_UCHAR occu[1]; /* Used for other case code units */
|
||||
#endif
|
||||
26
bsp/buildroot/package/pcre2/Config.in
Normal file
26
bsp/buildroot/package/pcre2/Config.in
Normal file
@@ -0,0 +1,26 @@
|
||||
|
||||
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
|
||||
2
bsp/buildroot/package/pcre2/pcre2.hash
Normal file
2
bsp/buildroot/package/pcre2/pcre2.hash
Normal file
@@ -0,0 +1,2 @@
|
||||
# Locally calculated after checking pgp signature at https://ftp.pcre.org/pub/pcre/pcre2-10.30.tar.bz2.sig
|
||||
sha256 90bd41c605d30e3745771eb81928d779f158081a51b2f314bbcc1f73de5773db pcre2-10.30.tar.bz2
|
||||
25
bsp/buildroot/package/pcre2/pcre2.mk
Normal file
25
bsp/buildroot/package/pcre2/pcre2.mk
Normal file
@@ -0,0 +1,25 @@
|
||||
################################################################################
|
||||
#
|
||||
# pcre2
|
||||
#
|
||||
################################################################################
|
||||
|
||||
PCRE2_VERSION = 10.30
|
||||
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)
|
||||
|
||||
# disable fork usage if not available
|
||||
ifeq ($(BR2_USE_MMU),)
|
||||
PCRE2_CONF_OPTS += --disable-pcre2grep-callout
|
||||
endif
|
||||
|
||||
$(eval $(autotools-package))
|
||||
$(eval $(host-autotools-package))
|
||||
Reference in New Issue
Block a user