diff options
author | Brad Bishop <bradleyb@fuzziesquirrel.com> | 2019-09-01 22:16:57 +0300 |
---|---|---|
committer | Brad Bishop <bradleyb@fuzziesquirrel.com> | 2019-09-01 22:17:10 +0300 |
commit | 0f291cce3faf2fd387c0db8f04bd2f9f4187f6df (patch) | |
tree | fd9642af54c93d167257fc64a83fd6b13e4797a2 /meta-openembedded/meta-oe/recipes-extended | |
parent | cb8d89a37dfb6211c4918867949f0f8cc4bf6bf4 (diff) | |
download | openbmc-0f291cce3faf2fd387c0db8f04bd2f9f4187f6df.tar.xz |
meta-openembedded: subtree update:1e8bc46e55..6a5d6bc9ad
Aaltonen Eero (1):
Recipe for docopt.cpp option parsing library
Aaron Chan (1):
python3-pyatspi: Add Dbus ATSPI recipe
Adrian Bunk (11):
xmlsec1: Import from meta-security
libgit2: Upgrade 0.27.9 -> 0.28.3
libenv-perl: Import from meta-security
libgit2: Don't pass parameters with their default values to cmake
Replace EXCLUDE_FROM_WORLD_libc-musl = "1" with COMPATIBLE_HOST_libc-musl = 'null'
libwebsockets: Fix the build with -Os
mimic: Fix the build with -Os
Adapt to the lsb -> lsb-release change in OE-core
meta-oe: Replace EXCLUDE_FROM_WORLD_libc-musl = "1" with COMPATIBLE_HOST_libc-musl = 'null'
Remove LICENSE = "MIT" from packagegroups and images
Remove bogus COMMON_LICENSE_DIR usage in LIC_FILES_CHKSUM
Andreas Müller (4):
cmark: initial add 0.29.0
libsigc++-2.0: upgrade 2.10.1 -> 2.10.2
glibmm: upgrade 2.58.1 -> 2.60.0
evolution-data-server: remove unused gconf dep and pythonnative dep
Anuj Mittal (2):
pugixml: add recipe
vlc: don't look at host headers for live555
Bruce Ashfield (1):
dnsmasq: fix build against 5.2 headers
Callaghan, Dan (1):
python3-pystemd: add new recipe
Changqing Li (3):
xfsprogs: support usrmerge
ntfs-3g-ntfsprogs: support usrmerge
grubby: support usrmerge
Chris Laplante (1):
breakpad: fix patch striplevel to avoid 'devtool modify breakpad' error
Christophe PRIOUZEAU (1):
python-script: update license md5sum
Gianfranco Costamagna (2):
libmodbus: update version to 3.1.6
ifmetric: add initial recipe based on Debian packaging and patches
Hongxu Jia (4):
libdevmapper/lvm2: force recipe libdevmapper to populate sysroot only
multipath-tools: lvm2 to DEPENDS
cryptsetup: add libdevmapper to RDEPENDS
cryptsetup: add libdevmapper to RDEPENDS
Kai Kang (1):
xfce4-datetime-setter: fix compile error and requires distro feature x11
Khem Raj (14):
libgpiod: nherit python3native unconditionally
kernel-selftest: Warn conditionally about clang-native dependency
docopt.cpp: Drop using gitpkgv
libnss-nisplus: Fix build with glibc >= 2.30
bpftool.bb: Disable SECURITY_CFLAGS
kernel-selftest: Explicitly disable stack protector
ncmpc: Update to 0.34
websocketpp_0.8.1.bb: Fix build with asio from boost 1.70+
can-utils: Fix build with kernel headers >= 5.2
android-tools: update license md5sum for BSD-2-Clause
can-isotp: Update to latest tip
linux-atm: Fix build with kernel headers 5.2+
drbd: Upgrade to 9.0.19-1
ssiapi: Upgrade to 1.3.0
Klauer, Daniel (1):
sjf2410-linux-native: Fix do_deploy sstate caching
Oleksandr Kravchuk (1):
nftables: update to 0.9.2
Piotr Tworek (18):
libmxml: Use autotools bbclass and cleanup the recipe a bit.
evolution-data-server: Update to version 3.32.4
evolution-data-server: Drop x11 as required distro feature.
evolution-data-server: Inherit upstream-version-is-even bbclass.
evolution-data-server: Add dedicated packages for libebook-contacts.
evolution-data-server: Specify SYSCONF_INSTALL_DIR in EXTRA_OECMAKE.
evolution-data-server: Drop bits related to autotools
evolution-data-server: Add PACKAGECONFIGs for oauth2 and kerberos.
evolution-data-server: Drop ENABLE_UOA from EXTRA_OECMAKE.
evolution-data-server: Drop glade file references.
evolution-data-server: Fix package gobject-introspection support.
evolution-data-server: Add PACKAGECONFIG for vala bindings.
evolution-data-server: Turn goa support into PACKAGECONFIG feature.
evolution-data-server: Add weather PACKAGECONFIG feature.
evolution-data-server: Add PACKAGECONFIG entry for phonenumber.
evolution-data-server: Use SRC_URI provided by gnomebase.
evolution-data-server: Remove unused FILES paterns.
evolution-data-server: Don't use explicit version number for libebook
Qi.Chen@windriver.com (1):
libblockdev: fix PACKAGECONFIG regarding python
Robert Yang (1):
netcf: Fix Manifest not found issue
Yi Zhao (1):
samba: upgrade 4.10.6 -> 4.10.7
Yuan Chao (11):
python-typing: upgrade 3.7.4 -> 3.7.4.1
python-twisted: upgrade 19.2.1 -> 19.7.0
python-jsonschema: upgrade 2.6.0 -> 3.0.2
kpatch: upgrade 0.7.1 -> 0.8.0
libtdb: upgrade 1.4.1 -> 1.4.2
python-paste: upgrade 3.1.0 -> 3.1.1
python-pip: upgrade 19.2.2 -> 19.2.3
python-pytest: upgrade 3.4.2 -> 5.1.1
python3-xxhash: upgrade 1.3.0 -> 1.4.1
python-pluggy: upgrade 0.6.0 -> 0.12.0
python-cmd2: upgrade 0.9.2 -> 0.9.16
Zang Ruochen (3):
python-futures: upgrade 3.2.0 -> 3.3.0
python-pyyaml: upgrade 3.13 -> 5.1.2
python-alembic: upgrade 1.0.11 -> 1.1.0
Change-Id: I3b55c2efba09c26e31018ee2cbbc908f06630c7c
Signed-off-by: Brad Bishop <bradleyb@fuzziesquirrel.com>
Diffstat (limited to 'meta-openembedded/meta-oe/recipes-extended')
13 files changed, 827 insertions, 9 deletions
diff --git a/meta-openembedded/meta-oe/recipes-extended/docopt.cpp/docopt.cpp/0001-Set-library-VERSION-and-SOVERSION.patch b/meta-openembedded/meta-oe/recipes-extended/docopt.cpp/docopt.cpp/0001-Set-library-VERSION-and-SOVERSION.patch new file mode 100644 index 000000000..d4c776569 --- /dev/null +++ b/meta-openembedded/meta-oe/recipes-extended/docopt.cpp/docopt.cpp/0001-Set-library-VERSION-and-SOVERSION.patch @@ -0,0 +1,31 @@ +From a47ca75702318ff43446c70120f7aacde4ccee1b Mon Sep 17 00:00:00 2001 +From: Eero Aaltonen <eero.aaltonen@vaisala.com> +Date: Thu, 20 Jun 2019 16:21:20 +0300 +Subject: [PATCH] Set library VERSION and SOVERSION + +With soversion and version specified, `install` target will install the +library with the specified version and also create the proper symlink. + +Upstream-Status: Submitted [https://github.com/docopt/docopt.cpp/pull/112] +but unlikely to be merged soon as it is a duplicate of +[https://github.com/docopt/docopt.cpp/pull/112] which has been **Open** +since 2016-12-08. +--- + CMakeLists.txt | 4 ++++ + 1 file changed, 4 insertions(+) + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 23da468..feff32e 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -50,6 +50,10 @@ else() + set_target_properties(docopt_o PROPERTIES POSITION_INDEPENDENT_CODE TRUE) + + add_library(docopt SHARED $<TARGET_OBJECTS:docopt_o>) ++ set_target_properties(docopt PROPERTIES ++ VERSION ${PROJECT_VERSION} ++ SOVERSION ${PROJECT_VERSION_MAJOR} ++ ) + add_library(docopt_s STATIC $<TARGET_OBJECTS:docopt_o>) + endif() + diff --git a/meta-openembedded/meta-oe/recipes-extended/docopt.cpp/docopt.cpp_git.bb b/meta-openembedded/meta-oe/recipes-extended/docopt.cpp/docopt.cpp_git.bb new file mode 100644 index 000000000..aa55ebf84 --- /dev/null +++ b/meta-openembedded/meta-oe/recipes-extended/docopt.cpp/docopt.cpp_git.bb @@ -0,0 +1,27 @@ +SUMMARY = "C++11 port of docopt command-line interface description language and parser" + +DESCRIPTION = "docopt is library that lets you define a command line interface with the \ +utility argument syntax that has been used by command line utilities for \ +decades (formalized in POSIX.1-2017). From the description, docopt \ +automatically generates a parser for the command line arguments." + +HOMEPAGE = "https://github.com/docopt/docopt.cpp" + +LICENSE = "MIT | BSL-1.0" +LIC_FILES_CHKSUM = "\ + file://LICENSE-Boost-1.0;md5=e4224ccaecb14d942c71d31bef20d78c \ + file://LICENSE-MIT;md5=4b242fd9ef20207e18286d73da8a6677 \ +" + +DEPENDS = "boost" +SRCREV = "3dd23e3280f213bacefdf5fcb04857bf52e90917" +PV = "0.6.2+git${SRCPV}" + +SRC_URI = "\ + git://github.com/docopt/docopt.cpp.git;protocol=https \ + file://0001-Set-library-VERSION-and-SOVERSION.patch \ +" + +S = "${WORKDIR}/git" + +inherit cmake diff --git a/meta-openembedded/meta-oe/recipes-extended/libblockdev/libblockdev_2.22.bb b/meta-openembedded/meta-oe/recipes-extended/libblockdev/libblockdev_2.22.bb index c5fc928a7..985bd03e4 100644 --- a/meta-openembedded/meta-oe/recipes-extended/libblockdev/libblockdev_2.22.bb +++ b/meta-openembedded/meta-oe/recipes-extended/libblockdev/libblockdev_2.22.bb @@ -8,7 +8,7 @@ SECTION = "devel/lib" LIC_FILES_CHKSUM = "file://LICENSE;md5=c07cb499d259452f324bb90c3067d85c" -inherit autotools python3native gobject-introspection +inherit autotools gobject-introspection SRCREV = "f6e4538485d0442b3674e182c01ffe5a0f258ad4" SRC_URI = " \ @@ -17,11 +17,11 @@ SRC_URI = " \ S = "${WORKDIR}/git" -FILES_${PN} += "${PYTHON_SITEPACKAGES_DIR}" +FILES_${PN} += "${libdir}/python2.7/dist-packages ${libdir}/python3.7/site-packages" PACKAGECONFIG ??= "python3 lvm dm kmod parted fs escrow btrfs crypto mdraid kbd mpath nvdimm" PACKAGECONFIG[python3] = "--with-python3, --without-python3,,python3" -PACKAGECONFIG[python2] = "--with-python2, --without-python2,,python2" +PACKAGECONFIG[python2] = "--with-python2, --without-python2,,python" PACKAGECONFIG[lvm] = "--with-lvm, --without-lvm, multipath-tools, lvm2" PACKAGECONFIG[lvm-dbus] = "--with-lvm_dbus, --without-lvm_dbus, multipath-tools, lvm2" PACKAGECONFIG[dm] = "--with-dm, --without-dm, multipath-tools, lvm2" diff --git a/meta-openembedded/meta-oe/recipes-extended/libmodbus/libmodbus/Fix-float-endianness-issue-on-big-endian-arch.patch b/meta-openembedded/meta-oe/recipes-extended/libmodbus/libmodbus/Fix-float-endianness-issue-on-big-endian-arch.patch new file mode 100644 index 000000000..5372a23b6 --- /dev/null +++ b/meta-openembedded/meta-oe/recipes-extended/libmodbus/libmodbus/Fix-float-endianness-issue-on-big-endian-arch.patch @@ -0,0 +1,314 @@ +From: =?utf-8?b?IlNaIExpbiAo5p6X5LiK5pm6KSI=?= <szlin@debian.org> +Date: Wed, 19 Dec 2018 10:24:47 +0800 +Subject: Fix float endianness issue on big endian arch + +It converts float values depending on what order they come in. + +This patch was modified from rm5248 [1] + +[1] https://github.com/synexxus/libmodbus/commit/a511768e7fe7ec52d7bae1d9ae04e33f87a59627 + +--- + src/modbus-data.c | 110 ++++++++++++++++++++++++++++++++++++++--------- + tests/unit-test-client.c | 22 ++++++---- + tests/unit-test.h.in | 41 ++++++++++++++++-- + 3 files changed, 141 insertions(+), 32 deletions(-) + +diff --git a/src/modbus-data.c b/src/modbus-data.c +index 902b8c6..7a744fa 100644 +--- a/src/modbus-data.c ++++ b/src/modbus-data.c +@@ -119,9 +119,18 @@ float modbus_get_float_abcd(const uint16_t *src) + { + float f; + uint32_t i; ++ uint8_t a, b, c, d; + +- i = ntohl(((uint32_t)src[0] << 16) + src[1]); +- memcpy(&f, &i, sizeof(float)); ++ a = (src[0] >> 8) & 0xFF; ++ b = (src[0] >> 0) & 0xFF; ++ c = (src[1] >> 8) & 0xFF; ++ d = (src[1] >> 0) & 0xFF; ++ ++ i = (a << 24) | ++ (b << 16) | ++ (c << 8) | ++ (d << 0); ++ memcpy(&f, &i, 4); + + return f; + } +@@ -131,9 +140,18 @@ float modbus_get_float_dcba(const uint16_t *src) + { + float f; + uint32_t i; ++ uint8_t a, b, c, d; + +- i = ntohl(bswap_32((((uint32_t)src[0]) << 16) + src[1])); +- memcpy(&f, &i, sizeof(float)); ++ a = (src[0] >> 8) & 0xFF; ++ b = (src[0] >> 0) & 0xFF; ++ c = (src[1] >> 8) & 0xFF; ++ d = (src[1] >> 0) & 0xFF; ++ ++ i = (d << 24) | ++ (c << 16) | ++ (b << 8) | ++ (a << 0); ++ memcpy(&f, &i, 4); + + return f; + } +@@ -143,9 +161,18 @@ float modbus_get_float_badc(const uint16_t *src) + { + float f; + uint32_t i; ++ uint8_t a, b, c, d; + +- i = ntohl((uint32_t)(bswap_16(src[0]) << 16) + bswap_16(src[1])); +- memcpy(&f, &i, sizeof(float)); ++ a = (src[0] >> 8) & 0xFF; ++ b = (src[0] >> 0) & 0xFF; ++ c = (src[1] >> 8) & 0xFF; ++ d = (src[1] >> 0) & 0xFF; ++ ++ i = (b << 24) | ++ (a << 16) | ++ (d << 8) | ++ (c << 0); ++ memcpy(&f, &i, 4); + + return f; + } +@@ -155,9 +182,18 @@ float modbus_get_float_cdab(const uint16_t *src) + { + float f; + uint32_t i; ++ uint8_t a, b, c, d; + +- i = ntohl((((uint32_t)src[1]) << 16) + src[0]); +- memcpy(&f, &i, sizeof(float)); ++ a = (src[0] >> 8) & 0xFF; ++ b = (src[0] >> 0) & 0xFF; ++ c = (src[1] >> 8) & 0xFF; ++ d = (src[1] >> 0) & 0xFF; ++ ++ i = (c << 24) | ++ (d << 16) | ++ (a << 8) | ++ (b << 0); ++ memcpy(&f, &i, 4); + + return f; + } +@@ -172,50 +208,84 @@ float modbus_get_float(const uint16_t *src) + memcpy(&f, &i, sizeof(float)); + + return f; ++ + } + + /* Set a float to 4 bytes for Modbus w/o any conversion (ABCD) */ + void modbus_set_float_abcd(float f, uint16_t *dest) + { + uint32_t i; ++ uint8_t *out = (uint8_t*) dest; ++ uint8_t a, b, c, d; + + memcpy(&i, &f, sizeof(uint32_t)); +- i = htonl(i); +- dest[0] = (uint16_t)(i >> 16); +- dest[1] = (uint16_t)i; ++ a = (i >> 24) & 0xFF; ++ b = (i >> 16) & 0xFF; ++ c = (i >> 8) & 0xFF; ++ d = (i >> 0) & 0xFF; ++ ++ out[0] = a; ++ out[1] = b; ++ out[2] = c; ++ out[3] = d; + } + + /* Set a float to 4 bytes for Modbus with byte and word swap conversion (DCBA) */ + void modbus_set_float_dcba(float f, uint16_t *dest) + { + uint32_t i; ++ uint8_t *out = (uint8_t*) dest; ++ uint8_t a, b, c, d; + + memcpy(&i, &f, sizeof(uint32_t)); +- i = bswap_32(htonl(i)); +- dest[0] = (uint16_t)(i >> 16); +- dest[1] = (uint16_t)i; ++ a = (i >> 24) & 0xFF; ++ b = (i >> 16) & 0xFF; ++ c = (i >> 8) & 0xFF; ++ d = (i >> 0) & 0xFF; ++ ++ out[0] = d; ++ out[1] = c; ++ out[2] = b; ++ out[3] = a; ++ + } + + /* Set a float to 4 bytes for Modbus with byte swap conversion (BADC) */ + void modbus_set_float_badc(float f, uint16_t *dest) + { + uint32_t i; ++ uint8_t *out = (uint8_t*) dest; ++ uint8_t a, b, c, d; + + memcpy(&i, &f, sizeof(uint32_t)); +- i = htonl(i); +- dest[0] = (uint16_t)bswap_16(i >> 16); +- dest[1] = (uint16_t)bswap_16(i & 0xFFFF); ++ a = (i >> 24) & 0xFF; ++ b = (i >> 16) & 0xFF; ++ c = (i >> 8) & 0xFF; ++ d = (i >> 0) & 0xFF; ++ ++ out[0] = b; ++ out[1] = a; ++ out[2] = d; ++ out[3] = c; + } + + /* Set a float to 4 bytes for Modbus with word swap conversion (CDAB) */ + void modbus_set_float_cdab(float f, uint16_t *dest) + { + uint32_t i; ++ uint8_t *out = (uint8_t*) dest; ++ uint8_t a, b, c, d; + + memcpy(&i, &f, sizeof(uint32_t)); +- i = htonl(i); +- dest[0] = (uint16_t)i; +- dest[1] = (uint16_t)(i >> 16); ++ a = (i >> 24) & 0xFF; ++ b = (i >> 16) & 0xFF; ++ c = (i >> 8) & 0xFF; ++ d = (i >> 0) & 0xFF; ++ ++ out[0] = c; ++ out[1] = d; ++ out[2] = a; ++ out[3] = b; + } + + /* DEPRECATED - Set a float to 4 bytes in a sort of Modbus format! */ +diff --git a/tests/unit-test-client.c b/tests/unit-test-client.c +index 3e315f4..3fccf3e 100644 +--- a/tests/unit-test-client.c ++++ b/tests/unit-test-client.c +@@ -27,6 +27,7 @@ int send_crafted_request(modbus_t *ctx, int function, + uint16_t max_value, uint16_t bytes, + int backend_length, int backend_offset); + int equal_dword(uint16_t *tab_reg, const uint32_t value); ++int is_memory_equal(const void *s1, const void *s2, size_t size); + + #define BUG_REPORT(_cond, _format, _args ...) \ + printf("\nLine %d: assertion error for '%s': " _format "\n", __LINE__, # _cond, ## _args) +@@ -40,6 +41,11 @@ int equal_dword(uint16_t *tab_reg, const uint32_t value); + } \ + }; + ++int is_memory_equal(const void *s1, const void *s2, size_t size) ++{ ++ return (memcmp(s1, s2, size) == 0); ++} ++ + int equal_dword(uint16_t *tab_reg, const uint32_t value) { + return ((tab_reg[0] == (value >> 16)) && (tab_reg[1] == (value & 0xFFFF))); + } +@@ -286,26 +292,26 @@ int main(int argc, char *argv[]) + /** FLOAT **/ + printf("1/4 Set/get float ABCD: "); + modbus_set_float_abcd(UT_REAL, tab_rp_registers); +- ASSERT_TRUE(equal_dword(tab_rp_registers, UT_IREAL_ABCD), "FAILED Set float ABCD"); +- real = modbus_get_float_abcd(tab_rp_registers); ++ ASSERT_TRUE(is_memory_equal(tab_rp_registers, UT_IREAL_ABCD_SET, 4), "FAILED Set float ABCD"); ++ real = modbus_get_float_abcd(UT_IREAL_ABCD_GET); + ASSERT_TRUE(real == UT_REAL, "FAILED (%f != %f)\n", real, UT_REAL); + + printf("2/4 Set/get float DCBA: "); + modbus_set_float_dcba(UT_REAL, tab_rp_registers); +- ASSERT_TRUE(equal_dword(tab_rp_registers, UT_IREAL_DCBA), "FAILED Set float DCBA"); +- real = modbus_get_float_dcba(tab_rp_registers); ++ ASSERT_TRUE(is_memory_equal(tab_rp_registers, UT_IREAL_DCBA_SET, 4), "FAILED Set float DCBA"); ++ real = modbus_get_float_dcba(UT_IREAL_DCBA_GET); + ASSERT_TRUE(real == UT_REAL, "FAILED (%f != %f)\n", real, UT_REAL); + + printf("3/4 Set/get float BADC: "); + modbus_set_float_badc(UT_REAL, tab_rp_registers); +- ASSERT_TRUE(equal_dword(tab_rp_registers, UT_IREAL_BADC), "FAILED Set float BADC"); +- real = modbus_get_float_badc(tab_rp_registers); ++ ASSERT_TRUE(is_memory_equal(tab_rp_registers, UT_IREAL_BADC_SET, 4), "FAILED Set float BADC"); ++ real = modbus_get_float_badc(UT_IREAL_BADC_GET); + ASSERT_TRUE(real == UT_REAL, "FAILED (%f != %f)\n", real, UT_REAL); + + printf("4/4 Set/get float CDAB: "); + modbus_set_float_cdab(UT_REAL, tab_rp_registers); +- ASSERT_TRUE(equal_dword(tab_rp_registers, UT_IREAL_CDAB), "FAILED Set float CDAB"); +- real = modbus_get_float_cdab(tab_rp_registers); ++ ASSERT_TRUE(is_memory_equal(tab_rp_registers, UT_IREAL_CDAB_SET, 4), "FAILED Set float CDAB"); ++ real = modbus_get_float_cdab(UT_IREAL_CDAB_GET); + ASSERT_TRUE(real == UT_REAL, "FAILED (%f != %f)\n", real, UT_REAL); + + printf("\nAt this point, error messages doesn't mean the test has failed\n"); +diff --git a/tests/unit-test.h.in b/tests/unit-test.h.in +index dca826f..4ffa254 100644 +--- a/tests/unit-test.h.in ++++ b/tests/unit-test.h.in +@@ -56,12 +56,45 @@ const uint16_t UT_INPUT_REGISTERS_ADDRESS = 0x108; + const uint16_t UT_INPUT_REGISTERS_NB = 0x1; + const uint16_t UT_INPUT_REGISTERS_TAB[] = { 0x000A }; + ++/* ++ * This float value is 0x47F12000 (in big-endian format). ++ * In Little-endian(intel) format, it will be stored in memory as follows: ++ * 0x00 0x20 0xF1 0x47 ++ * ++ * You can check this with the following code: ++ ++ float fl = UT_REAL; ++ uint8_t *inmem = (uint8_t*)&fl; ++ int x; ++ for(x = 0; x < 4; x++){ ++ printf("0x%02X ", inmem[ x ]); ++ } ++ printf("\n"); ++ */ + const float UT_REAL = 123456.00; + +-const uint32_t UT_IREAL_ABCD = 0x0020F147; +-const uint32_t UT_IREAL_DCBA = 0x47F12000; +-const uint32_t UT_IREAL_BADC = 0x200047F1; +-const uint32_t UT_IREAL_CDAB = 0xF1470020; ++/* ++ * The following arrays assume that 'A' is the MSB, ++ * and 'D' is the LSB. ++ * Thus, the following is the case: ++ * A = 0x47 ++ * B = 0xF1 ++ * C = 0x20 ++ * D = 0x00 ++ * ++ * There are two sets of arrays: one to test that the setting is correct, ++ * the other to test that the getting is correct. ++ * Note that the 'get' values must be constants in processor-endianness, ++ * as libmodbus will convert all words to processor-endianness as they come in. ++ */ ++const uint8_t UT_IREAL_ABCD_SET[] = {0x47, 0xF1, 0x20, 0x00}; ++const uint16_t UT_IREAL_ABCD_GET[] = {0x47F1, 0x2000}; ++const uint8_t UT_IREAL_DCBA_SET[] = {0x00, 0x20, 0xF1, 0x47}; ++const uint16_t UT_IREAL_DCBA_GET[] = {0x0020, 0xF147}; ++const uint8_t UT_IREAL_BADC_SET[] = {0xF1, 0x47, 0x00, 0x20}; ++const uint16_t UT_IREAL_BADC_GET[] = {0xF147, 0x0020}; ++const uint8_t UT_IREAL_CDAB_SET[] = {0x20, 0x00, 0x47, 0xF1}; ++const uint16_t UT_IREAL_CDAB_GET[] = {0x2000, 0x47F1}; + + /* const uint32_t UT_IREAL_ABCD = 0x47F12000); + const uint32_t UT_IREAL_DCBA = 0x0020F147; diff --git a/meta-openembedded/meta-oe/recipes-extended/libmodbus/libmodbus/Fix-typo.patch b/meta-openembedded/meta-oe/recipes-extended/libmodbus/libmodbus/Fix-typo.patch new file mode 100644 index 000000000..384a4a40b --- /dev/null +++ b/meta-openembedded/meta-oe/recipes-extended/libmodbus/libmodbus/Fix-typo.patch @@ -0,0 +1,52 @@ +From: =?utf-8?b?IlNaIExpbiAo5p6X5LiK5pm6KSI=?= <szlin@debian.org> +Date: Thu, 27 Sep 2018 14:51:32 +0800 +Subject: Fix typo + +--- + doc/modbus_mapping_new_start_address.txt | 4 ++-- + doc/modbus_reply.txt | 2 +- + doc/modbus_reply_exception.txt | 2 +- + 3 files changed, 4 insertions(+), 4 deletions(-) + +diff --git a/doc/modbus_mapping_new_start_address.txt b/doc/modbus_mapping_new_start_address.txt +index 4fa196a..94a81fb 100644 +--- a/doc/modbus_mapping_new_start_address.txt ++++ b/doc/modbus_mapping_new_start_address.txt +@@ -21,9 +21,9 @@ The _modbus_mapping_new_start_address()_ function shall allocate four arrays to + store bits, input bits, registers and inputs registers. The pointers are stored + in modbus_mapping_t structure. All values of the arrays are initialized to zero. + +-The different starting adresses make it possible to place the mapping at any ++The different starting addresses make it possible to place the mapping at any + address in each address space. This way, you can give access to values stored +-at high adresses without allocating memory from the address zero, for eg. to ++at high addresses without allocating memory from the address zero, for eg. to + make available registers from 10000 to 10009, you can use: + + [source,c] +diff --git a/doc/modbus_reply.txt b/doc/modbus_reply.txt +index 0b29d6f..6b71d11 100644 +--- a/doc/modbus_reply.txt ++++ b/doc/modbus_reply.txt +@@ -3,7 +3,7 @@ modbus_reply(3) + + NAME + ---- +-modbus_reply - send a reponse to the received request ++modbus_reply - send a response to the received request + + + SYNOPSIS +diff --git a/doc/modbus_reply_exception.txt b/doc/modbus_reply_exception.txt +index 7e6324f..b2170be 100644 +--- a/doc/modbus_reply_exception.txt ++++ b/doc/modbus_reply_exception.txt +@@ -3,7 +3,7 @@ modbus_reply_exception(3) + + NAME + ---- +-modbus_reply_exception - send an exception reponse ++modbus_reply_exception - send an exception response + + + SYNOPSIS diff --git a/meta-openembedded/meta-oe/recipes-extended/libmodbus/libmodbus/f1eb4bc7ccb09cd8d19ab641ee37637f8c34d16d.patch b/meta-openembedded/meta-oe/recipes-extended/libmodbus/libmodbus/f1eb4bc7ccb09cd8d19ab641ee37637f8c34d16d.patch new file mode 100644 index 000000000..7fae34e7d --- /dev/null +++ b/meta-openembedded/meta-oe/recipes-extended/libmodbus/libmodbus/f1eb4bc7ccb09cd8d19ab641ee37637f8c34d16d.patch @@ -0,0 +1,32 @@ +From f1eb4bc7ccb09cd8d19ab641ee37637f8c34d16d Mon Sep 17 00:00:00 2001 +From: i-ky <gl.ivanovsky@gmail.com> +Date: Tue, 10 Jul 2018 15:58:45 +0300 +Subject: [PATCH] Fixed MODBUS_GET_* macros in case of negative values + +In case resulting value should be negative it is incorrect to use '+' operator to construct it from pieces, because highest bytes will result in negative number after bitwise shift while others will stay positive. Replacing addition with '|' should solve the issue. +--- + src/modbus.h | 10 +++++----- + 1 file changed, 5 insertions(+), 5 deletions(-) + +diff --git a/src/modbus.h b/src/modbus.h +index f6e9a5f5..c63f5ceb 100644 +--- a/src/modbus.h ++++ b/src/modbus.h +@@ -245,12 +245,12 @@ MODBUS_API int modbus_reply_exception(modbus_t *ctx, const uint8_t *req, + #define MODBUS_GET_HIGH_BYTE(data) (((data) >> 8) & 0xFF) + #define MODBUS_GET_LOW_BYTE(data) ((data) & 0xFF) + #define MODBUS_GET_INT64_FROM_INT16(tab_int16, index) \ +- (((int64_t)tab_int16[(index) ] << 48) + \ +- ((int64_t)tab_int16[(index) + 1] << 32) + \ +- ((int64_t)tab_int16[(index) + 2] << 16) + \ ++ (((int64_t)tab_int16[(index) ] << 48) | \ ++ ((int64_t)tab_int16[(index) + 1] << 32) | \ ++ ((int64_t)tab_int16[(index) + 2] << 16) | \ + (int64_t)tab_int16[(index) + 3]) +-#define MODBUS_GET_INT32_FROM_INT16(tab_int16, index) ((tab_int16[(index)] << 16) + tab_int16[(index) + 1]) +-#define MODBUS_GET_INT16_FROM_INT8(tab_int8, index) ((tab_int8[(index)] << 8) + tab_int8[(index) + 1]) ++#define MODBUS_GET_INT32_FROM_INT16(tab_int16, index) ((tab_int16[(index)] << 16) | tab_int16[(index) + 1]) ++#define MODBUS_GET_INT16_FROM_INT8(tab_int8, index) ((tab_int8[(index)] << 8) | tab_int8[(index) + 1]) + #define MODBUS_SET_INT16_TO_INT8(tab_int8, index, value) \ + do { \ + tab_int8[(index)] = (value) >> 8; \ diff --git a/meta-openembedded/meta-oe/recipes-extended/libmodbus/libmodbus_3.1.4.bb b/meta-openembedded/meta-oe/recipes-extended/libmodbus/libmodbus_3.1.4.bb deleted file mode 100644 index cc45fa7e2..000000000 --- a/meta-openembedded/meta-oe/recipes-extended/libmodbus/libmodbus_3.1.4.bb +++ /dev/null @@ -1,4 +0,0 @@ -require libmodbus.inc - -SRC_URI[md5sum] = "b1a8fd3a40d2db4de51fb0cbcb201806" -SRC_URI[sha256sum] = "c8c862b0e9a7ba699a49bc98f62bdffdfafd53a5716c0e162696b4bf108d3637" diff --git a/meta-openembedded/meta-oe/recipes-extended/libmodbus/libmodbus_3.1.6.bb b/meta-openembedded/meta-oe/recipes-extended/libmodbus/libmodbus_3.1.6.bb new file mode 100644 index 000000000..075487ae9 --- /dev/null +++ b/meta-openembedded/meta-oe/recipes-extended/libmodbus/libmodbus_3.1.6.bb @@ -0,0 +1,12 @@ +require libmodbus.inc + +SRC_URI += "file://f1eb4bc7ccb09cd8d19ab641ee37637f8c34d16d.patch \ + file://Fix-float-endianness-issue-on-big-endian-arch.patch \ + file://Fix-typo.patch" +SRC_URI[md5sum] = "15c84c1f7fb49502b3efaaa668cfd25e" +SRC_URI[sha256sum] = "d7d9fa94a16edb094e5fdf5d87ae17a0dc3f3e3d687fead81835d9572cf87c16" + +# this file has been created one minute after the configure file, so it doesn't get recreated during configure step +do_configure_prepend() { + rm -rf ${S}/tests/unit-test.h +} diff --git a/meta-openembedded/meta-oe/recipes-extended/libnss-nisplus/libnss-nisplus.bb b/meta-openembedded/meta-oe/recipes-extended/libnss-nisplus/libnss-nisplus.bb index 2dbeee7c3..3a0a87eea 100644 --- a/meta-openembedded/meta-oe/recipes-extended/libnss-nisplus/libnss-nisplus.bb +++ b/meta-openembedded/meta-oe/recipes-extended/libnss-nisplus/libnss-nisplus.bb @@ -18,6 +18,7 @@ PV = "1.3+git${SRCPV}" SRCREV = "c6934373c7bac91499ff7bbe7d2439599325ca63" SRC_URI = "git://github.com/thkukuk/libnss_nisplus \ + file://0001-nisplus-hosts-Remove-use-of-RES_USE_INET6.patch \ " S = "${WORKDIR}/git" diff --git a/meta-openembedded/meta-oe/recipes-extended/libnss-nisplus/libnss-nisplus/0001-nisplus-hosts-Remove-use-of-RES_USE_INET6.patch b/meta-openembedded/meta-oe/recipes-extended/libnss-nisplus/libnss-nisplus/0001-nisplus-hosts-Remove-use-of-RES_USE_INET6.patch new file mode 100644 index 000000000..cf380ddf4 --- /dev/null +++ b/meta-openembedded/meta-oe/recipes-extended/libnss-nisplus/libnss-nisplus/0001-nisplus-hosts-Remove-use-of-RES_USE_INET6.patch @@ -0,0 +1,245 @@ +From 184bda40e05053cd2df61c28bec0baa7353697bb Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Wed, 28 Aug 2019 09:49:10 -0700 +Subject: [PATCH] nisplus-hosts: Remove use of RES_USE_INET6 + +Upstream glibc dropped it starting glibc 2.30 +see +https://sourceware.org/git/?p=glibc.git;a=commit;h=3f8b44be0a658266adff5ece1e4bc3ce097a5dbe + +Upstream-Status: Submitted [https://github.com/thkukuk/libnss_nisplus/pull/2] +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- + src/Makefile.am | 3 +- + src/mapv4v6addr.h | 69 --------------------------------------------- + src/nisplus-hosts.c | 58 ++++++++----------------------------- + 3 files changed, 13 insertions(+), 117 deletions(-) + delete mode 100644 src/mapv4v6addr.h + +diff --git a/src/Makefile.am b/src/Makefile.am +index e879d5c..37ef86c 100644 +--- a/src/Makefile.am ++++ b/src/Makefile.am +@@ -15,8 +15,7 @@ AM_CPPFLAGS = -I$(srcdir) @TIRPC_CFLAGS@ @LIBNSL_CFLAGS@ + + lib_LTLIBRARIES = libnss_nisplus.la + +-noinst_HEADERS = libc-lock.h nss-nisplus.h netgroup.h nisplus-parser.h \ +- mapv4v6addr.h ++noinst_HEADERS = libc-lock.h nss-nisplus.h netgroup.h nisplus-parser.h + check_PROGRAMS = nss_loader-test + nss_loader_test_LDADD = -ldl + +diff --git a/src/mapv4v6addr.h b/src/mapv4v6addr.h +deleted file mode 100644 +index 7f85f7d..0000000 +--- a/src/mapv4v6addr.h ++++ /dev/null +@@ -1,69 +0,0 @@ +-/* +- * ++Copyright++ 1985, 1988, 1993 +- * - +- * Copyright (c) 1985, 1988, 1993 +- * The Regents of the University of California. All rights reserved. +- * +- * Redistribution and use in source and binary forms, with or without +- * modification, are permitted provided that the following conditions +- * are met: +- * 1. Redistributions of source code must retain the above copyright +- * notice, this list of conditions and the following disclaimer. +- * 2. Redistributions in binary form must reproduce the above copyright +- * notice, this list of conditions and the following disclaimer in the +- * documentation and/or other materials provided with the distribution. +- * 4. Neither the name of the University nor the names of its contributors +- * may be used to endorse or promote products derived from this software +- * without specific prior written permission. +- * +- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +- * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +- * SUCH DAMAGE. +- * - +- * Portions Copyright (c) 1993 by Digital Equipment Corporation. +- * +- * Permission to use, copy, modify, and distribute this software for any +- * purpose with or without fee is hereby granted, provided that the above +- * copyright notice and this permission notice appear in all copies, and that +- * the name of Digital Equipment Corporation not be used in advertising or +- * publicity pertaining to distribution of the document or software without +- * specific, written prior permission. +- * +- * THE SOFTWARE IS PROVIDED "AS IS" AND DIGITAL EQUIPMENT CORP. DISCLAIMS ALL +- * WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES +- * OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL DIGITAL EQUIPMENT +- * CORPORATION BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL +- * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR +- * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS +- * ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS +- * SOFTWARE. +- * - +- * --Copyright-- +- */ +- +-#include <string.h> +-#include <arpa/nameser.h> +- +-static void +-map_v4v6_address (const char *src, char *dst) +-{ +- u_char *p = (u_char *) dst; +- int i; +- +- /* Move the IPv4 part to the right position. */ +- memcpy (dst + 12, src, INADDRSZ); +- +- /* Mark this ipv6 addr as a mapped ipv4. */ +- for (i = 0; i < 10; i++) +- *p++ = 0x00; +- *p++ = 0xff; +- *p = 0xff; +-} +diff --git a/src/nisplus-hosts.c b/src/nisplus-hosts.c +index cc00aa2..d37b209 100644 +--- a/src/nisplus-hosts.c ++++ b/src/nisplus-hosts.c +@@ -42,14 +42,9 @@ static u_long tablename_len; + #define NISENTRYLEN(idx, col, res) \ + (NIS_RES_OBJECT (res)[idx].EN_data.en_cols.en_cols_val[col].ec_value.ec_value_len) + +-/* Get implementation for some internal functions. */ +-#include "mapv4v6addr.h" +- +- + static int + _nss_nisplus_parse_hostent (nis_result *result, int af, struct hostent *host, +- char *buffer, size_t buflen, int *errnop, +- int flags) ++ char *buffer, size_t buflen, int *errnop) + { + unsigned int i; + char *first_unused = buffer; +@@ -66,8 +61,7 @@ _nss_nisplus_parse_hostent (nis_result *result, int af, struct hostent *host, + + char *data = first_unused; + +- if (room_left < (af != AF_INET || (flags & AI_V4MAPPED) != 0 +- ? IN6ADDRSZ : INADDRSZ)) ++ if (room_left < INADDRSZ) + { + no_more_room: + *errnop = ERANGE; +@@ -78,18 +72,8 @@ _nss_nisplus_parse_hostent (nis_result *result, int af, struct hostent *host, + if (af != AF_INET6 + && inet_pton (AF_INET, NISENTRYVAL (0, 2, result), data) > 0) + { +- assert ((flags & AI_V4MAPPED) == 0 || af != AF_UNSPEC); +- if (flags & AI_V4MAPPED) +- { +- map_v4v6_address (data, data); +- host->h_addrtype = AF_INET6; +- host->h_length = IN6ADDRSZ; +- } +- else +- { +- host->h_addrtype = AF_INET; +- host->h_length = INADDRSZ; +- } ++ host->h_addrtype = AF_INET; ++ host->h_length = INADDRSZ; + } + else if (af != AF_INET + && inet_pton (AF_INET6, NISENTRYVAL (0, 2, result), data) > 0) +@@ -319,12 +303,8 @@ internal_nisplus_gethostent_r (struct hostent *host, char *buffer, + } + } + +- if (_res.options & RES_USE_INET6) +- parse_res = _nss_nisplus_parse_hostent (result, AF_INET6, host, buffer, +- buflen, errnop, AI_V4MAPPED); +- else +- parse_res = _nss_nisplus_parse_hostent (result, AF_INET, host, buffer, +- buflen, errnop, 0); ++ parse_res = _nss_nisplus_parse_hostent (result, AF_INET, host, buffer, ++ buflen, errnop); + + if (parse_res == -1) + { +@@ -379,7 +359,7 @@ get_tablename (int *herrnop) + static enum nss_status + internal_gethostbyname2_r (const char *name, int af, struct hostent *host, + char *buffer, size_t buflen, int *errnop, +- int *herrnop, int flags) ++ int *herrnop) + { + if (tablename_val == NULL) + { +@@ -454,7 +434,7 @@ internal_gethostbyname2_r (const char *name, int af, struct hostent *host, + } + + int parse_res = _nss_nisplus_parse_hostent (result, af, host, buffer, +- buflen, errnop, flags); ++ buflen, errnop); + + nis_freeresult (result); + +@@ -485,8 +465,7 @@ _nss_nisplus_gethostbyname2_r (const char *name, int af, struct hostent *host, + } + + return internal_gethostbyname2_r (name, af, host, buffer, buflen, errnop, +- herrnop, +- ((_res.options & RES_USE_INET6) ? AI_V4MAPPED : 0)); ++ herrnop); + } + + +@@ -495,19 +474,8 @@ _nss_nisplus_gethostbyname_r (const char *name, struct hostent *host, + char *buffer, size_t buflen, int *errnop, + int *h_errnop) + { +- if (_res.options & RES_USE_INET6) +- { +- enum nss_status status; +- +- status = internal_gethostbyname2_r (name, AF_INET6, host, buffer, +- buflen, errnop, h_errnop, +- AI_V4MAPPED); +- if (status == NSS_STATUS_SUCCESS) +- return status; +- } +- + return internal_gethostbyname2_r (name, AF_INET, host, buffer, +- buflen, errnop, h_errnop, 0); ++ buflen, errnop, h_errnop); + } + + +@@ -555,9 +523,7 @@ _nss_nisplus_gethostbyaddr_r (const void *addr, socklen_t addrlen, int af, + } + + parse_res = _nss_nisplus_parse_hostent (result, af, host, +- buffer, buflen, errnop, +- ((_res.options & RES_USE_INET6) +- ? AI_V4MAPPED : 0)); ++ buffer, buflen, errnop); + nis_freeresult (result); + + if (parse_res > 0) +@@ -584,7 +550,7 @@ _nss_nisplus_gethostbyname4_r (const char *name, struct gaih_addrtuple **pat, + + enum nss_status status = internal_gethostbyname2_r (name, AF_UNSPEC, &host, + buffer, buflen, +- errnop, herrnop, 0); ++ errnop, herrnop); + if (status == NSS_STATUS_SUCCESS) + { + if (*pat == NULL) +-- +2.23.0 + diff --git a/meta-openembedded/meta-oe/recipes-extended/socketcan/can-isotp_git.bb b/meta-openembedded/meta-oe/recipes-extended/socketcan/can-isotp_git.bb index 6ce3cab11..5df44f21f 100644 --- a/meta-openembedded/meta-oe/recipes-extended/socketcan/can-isotp_git.bb +++ b/meta-openembedded/meta-oe/recipes-extended/socketcan/can-isotp_git.bb @@ -1,6 +1,6 @@ LICENSE = "GPLv2" LIC_FILES_CHKSUM = "file://COPYING;md5=72d977d697c3c05830fdff00a7448931" -SRCREV = "6003f9997587e6a563cebf1f246bcd0eb6deff3d" +SRCREV = "b31bce98d65f894aad6427bcf6f3f7822e261a59" PV = "1.0+git${SRCPV}" SRC_URI = "git://github.com/hartkopp/can-isotp.git;protocol=https" diff --git a/meta-openembedded/meta-oe/recipes-extended/socketcan/can-utils/0001-fix-include-to-find-SIOCGSTAMP-with-latest-kernel.patch b/meta-openembedded/meta-oe/recipes-extended/socketcan/can-utils/0001-fix-include-to-find-SIOCGSTAMP-with-latest-kernel.patch new file mode 100644 index 000000000..cbf3aee10 --- /dev/null +++ b/meta-openembedded/meta-oe/recipes-extended/socketcan/can-utils/0001-fix-include-to-find-SIOCGSTAMP-with-latest-kernel.patch @@ -0,0 +1,106 @@ +From 20981c8a328747f823b7eef68d0c2812b3eaed30 Mon Sep 17 00:00:00 2001 +From: Fabrice Fontaine <fontaine.fabrice@gmail.com> +Date: Sun, 14 Jul 2019 21:50:43 +0200 +Subject: [PATCH] fix include to find SIOCGSTAMP with latest kernel + +In linux kernel commit 0768e17073dc527ccd18ed5f96ce85f9985e9115 +the asm-generic/sockios.h header no longer defines SIOCGSTAMP. +Instead it provides only SIOCGSTAMP_OLD. + +The linux/sockios.h header now defines SIOCGSTAMP using either +SIOCGSTAMP_OLD or SIOCGSTAMP_NEW as appropriate. This linux only +header file is not pulled so we get a build failure. + +canlogserver.c: In function 'main': +canlogserver.c:404:21: error: 'SIOCGSTAMP' undeclared (first use in this function); did you mean 'SIOCGRARP'? + if (ioctl(s[i], SIOCGSTAMP, &tv) < 0) + ^~~~~~~~~~ + SIOCGRARP +canlogserver.c:404:21: note: each undeclared identifier is reported only once for each function it appears in + +Fixes: + - http://autobuild.buildroot.org/results/363de7d9bf433be8bc47ba4ee52ae0bb80fa9021 + +Upstream-Status: Backport [https://github.com/linux-can/can-utils/commit/e9590b1ca75d360eaf3211bebd86058214d48064] +Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com> +--- + canlogserver.c | 1 + + cansniffer.c | 1 + + isotpdump.c | 1 + + isotpperf.c | 1 + + isotpsniffer.c | 1 + + slcanpty.c | 1 + + 6 files changed, 6 insertions(+) + +diff --git a/canlogserver.c b/canlogserver.c +index e3350b7..f53165c 100644 +--- a/canlogserver.c ++++ b/canlogserver.c +@@ -61,6 +61,7 @@ + + #include <linux/can.h> + #include <linux/can/raw.h> ++#include <linux/sockios.h> + #include <signal.h> + #include <errno.h> + +diff --git a/cansniffer.c b/cansniffer.c +index 7b0a3fa..bf7d72e 100644 +--- a/cansniffer.c ++++ b/cansniffer.c +@@ -61,6 +61,7 @@ + + #include <linux/can.h> + #include <linux/can/bcm.h> ++#include <linux/sockios.h> + + #include "terminal.h" + +diff --git a/isotpdump.c b/isotpdump.c +index b2b650a..36d8af3 100644 +--- a/isotpdump.c ++++ b/isotpdump.c +@@ -55,6 +55,7 @@ + + #include <linux/can.h> + #include <linux/can/raw.h> ++#include <linux/sockios.h> + #include "terminal.h" + + #define NO_CAN_ID 0xFFFFFFFFU +diff --git a/isotpperf.c b/isotpperf.c +index db3a2b7..5852a57 100644 +--- a/isotpperf.c ++++ b/isotpperf.c +@@ -56,6 +56,7 @@ + + #include <linux/can.h> + #include <linux/can/raw.h> ++#include <linux/sockios.h> + + #define NO_CAN_ID 0xFFFFFFFFU + #define PERCENTRES 2 /* resolution in percent for bargraph */ +diff --git a/isotpsniffer.c b/isotpsniffer.c +index f42e18b..d7a4c66 100644 +--- a/isotpsniffer.c ++++ b/isotpsniffer.c +@@ -55,6 +55,7 @@ + + #include <linux/can.h> + #include <linux/can/isotp.h> ++#include <linux/sockios.h> + #include "terminal.h" + + #define NO_CAN_ID 0xFFFFFFFFU +diff --git a/slcanpty.c b/slcanpty.c +index 431ca68..7dfaf5c 100644 +--- a/slcanpty.c ++++ b/slcanpty.c +@@ -40,6 +40,7 @@ + + #include <linux/can.h> + #include <linux/can/raw.h> ++#include <linux/sockios.h> + + /* maximum rx buffer len: extended CAN frame with timestamp */ + #define SLC_MTU (sizeof("T1111222281122334455667788EA5F\r")+1) diff --git a/meta-openembedded/meta-oe/recipes-extended/socketcan/can-utils_git.bb b/meta-openembedded/meta-oe/recipes-extended/socketcan/can-utils_git.bb index a2d62c366..db5055fed 100644 --- a/meta-openembedded/meta-oe/recipes-extended/socketcan/can-utils_git.bb +++ b/meta-openembedded/meta-oe/recipes-extended/socketcan/can-utils_git.bb @@ -5,7 +5,9 @@ LIC_FILES_CHKSUM = "file://include/linux/can.h;endline=43;md5=390a2c9a3c5e3595a0 DEPENDS = "libsocketcan" -SRC_URI = "git://github.com/linux-can/${BPN}.git;protocol=git;branch=master" +SRC_URI = "git://github.com/linux-can/${BPN}.git;protocol=git;branch=master \ + file://0001-fix-include-to-find-SIOCGSTAMP-with-latest-kernel.patch \ + " SRCREV = "4c8fb05cb4d6ddcd67299008db54af423f86fd05" PV = "0.0+gitr${SRCPV}" |