summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexey Neyman <stilor@att.net>2018-12-04 00:16:40 (GMT)
committerGitHub <noreply@github.com>2018-12-04 00:16:40 (GMT)
commit03b29ba5b00a617ff7c53ca1f0910a03a4929239 (patch)
treecae4235bdca3d469aa3d2aaa1372e52d6fe99b59
parentfc64f2d015a532ed8b7e61e1f6b104c6e7878610 (diff)
parent7185ac031a677c19756026ca29a7edc9c814ff3e (diff)
Merge pull request #1105 from stilor/fix-uclibc
Fix a couple of regressions after recent checkins
-rw-r--r--packages/strace/4.23/0001-v4l2-kernel-abi-breakage.patch94
-rw-r--r--packages/strace/4.24/0001-v4l2-kernel-abi-breakage.patch94
-rw-r--r--packages/strace/package.desc2
-rw-r--r--scripts/build/libc/moxiebox.sh2
-rw-r--r--scripts/build/libc/uClibc.sh24
5 files changed, 202 insertions, 14 deletions
diff --git a/packages/strace/4.23/0001-v4l2-kernel-abi-breakage.patch b/packages/strace/4.23/0001-v4l2-kernel-abi-breakage.patch
new file mode 100644
index 0000000..be719e4
--- /dev/null
+++ b/packages/strace/4.23/0001-v4l2-kernel-abi-breakage.patch
@@ -0,0 +1,94 @@
+commit b89a69dec27cf638df0e17db80ed937c3e1abf77
+Author: Dmitry V. Levin <ldv@altlinux.org>
+Date: Sat Aug 18 07:22:47 2018 +0000
+
+ xlat: workaround V4L2_CID_USER_IMX_BASE Linux kernel ABI breakage
+
+ Linux kernel commit v4.18-rc2-106-g421860b9d47053badce4b247576fa48df9ab4c48
+ has changed the value of V4L2_CID_USER_IMX_BASE constant introduced
+ by commit v4.13-rc1~141^2~121 because the old value was already used
+ by V4L2_CID_USER_MAX217X_BASE.
+
+ This is of course an ABI breakage that affects Linux kernels starting
+ with 4.13 and up to 4.18, as well as their LTS derivatives.
+
+ Since the imx driver didn't provide any public control ID definitions,
+ it looks like the best way to handle this situation is to pretend that
+ the old value of V4L2_CID_USER_IMX_BASE didn't exist.
+
+ * xlat/v4l2_control_id_bases.in (V4L2_CID_USER_IMX_BASE): Redefine.
+
+ Co-Authored-by: Eugene Syromyatnikov <evgsyr@gmail.com>
+
+diff --git a/xlat/v4l2_control_id_bases.in b/xlat/v4l2_control_id_bases.in
+index a0359be9..f3fd9255 100644
+--- a/xlat/v4l2_control_id_bases.in
++++ b/xlat/v4l2_control_id_bases.in
+@@ -2,7 +2,22 @@ V4L2_CID_BASE (V4L2_CTRL_CLASS_USER | 0x900)
+ V4L2_CID_USER_MEYE_BASE (V4L2_CID_BASE + 0x1000)
+ V4L2_CID_USER_BTTV_BASE (V4L2_CID_BASE + 0x1010)
+ V4L2_CID_USER_TI_VPE_BASE (V4L2_CID_BASE + 0x1050)
+-V4L2_CID_USER_IMX_BASE (V4L2_CID_BASE + 0x1090)
++#ifndef STRACE_WORKAROUND_FOR_V4L2_CID_USER_IMX_BASE
++# define STRACE_WORKAROUND_FOR_V4L2_CID_USER_IMX_BASE
++/*
++ * Linux kernel commit v4.18-rc2-106-g421860b9d47053badce4b247576fa48df9ab4c48
++ * has changed the value of V4L2_CID_USER_IMX_BASE constant introduced
++ * by commit v4.13-rc1~141^2~121 because the old value was already used
++ * by V4L2_CID_USER_MAX217X_BASE.
++ * This is of course an ABI breakage that affects Linux kernels starting
++ * with 4.13 and up to 4.18, as well as their LTS derivatives.
++ * Since the imx driver didn't provide any public control ID definitions,
++ * it looks like the best way to handle this situation is to pretend that
++ * the old value of V4L2_CID_USER_IMX_BASE didn't exist.
++ */
++# undef V4L2_CID_USER_IMX_BASE
++#endif
++V4L2_CID_USER_IMX_BASE (V4L2_CID_BASE + 0x10b0)
+ V4L2_CID_MPEG_BASE (V4L2_CTRL_CLASS_MPEG | 0x900)
+ V4L2_CID_MPEG_CX2341X_BASE (V4L2_CTRL_CLASS_MPEG | 0x1000)
+ V4L2_CID_MPEG_MFC51_BASE (V4L2_CTRL_CLASS_MPEG | 0x1100)
+diff -urpN a/xlat/v4l2_control_id_bases.h b/xlat/v4l2_control_id_bases.h
+--- a/xlat/v4l2_control_id_bases.h
++++ b/xlat/v4l2_control_id_bases.h
+@@ -31,12 +31,16 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+ #else
+ # define V4L2_CID_USER_TI_VPE_BASE (V4L2_CID_BASE + 0x1050)
+ #endif
++#ifndef STRACE_WORKAROUND_FOR_V4L2_CID_USER_IMX_BASE
++# define STRACE_WORKAROUND_FOR_V4L2_CID_USER_IMX_BASE
++# undef V4L2_CID_USER_IMX_BASE
++#endif
+ #if defined(V4L2_CID_USER_IMX_BASE) || (defined(HAVE_DECL_V4L2_CID_USER_IMX_BASE) && HAVE_DECL_V4L2_CID_USER_IMX_BASE)
+ DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+-static_assert((V4L2_CID_USER_IMX_BASE) == ((V4L2_CID_BASE + 0x1090)), "V4L2_CID_USER_IMX_BASE != (V4L2_CID_BASE + 0x1090)");
++static_assert((V4L2_CID_USER_IMX_BASE) == ((V4L2_CID_BASE + 0x10b0)), "V4L2_CID_USER_IMX_BASE != (V4L2_CID_BASE + 0x10b0)");
+ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+ #else
+-# define V4L2_CID_USER_IMX_BASE (V4L2_CID_BASE + 0x1090)
++# define V4L2_CID_USER_IMX_BASE (V4L2_CID_BASE + 0x10b0)
+ #endif
+ #if defined(V4L2_CID_MPEG_BASE) || (defined(HAVE_DECL_V4L2_CID_MPEG_BASE) && HAVE_DECL_V4L2_CID_MPEG_BASE)
+ DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+@@ -146,6 +150,21 @@ const struct xlat v4l2_control_id_bases[
+ XLAT(V4L2_CID_USER_MEYE_BASE),
+ XLAT(V4L2_CID_USER_BTTV_BASE),
+ XLAT(V4L2_CID_USER_TI_VPE_BASE),
++#ifndef STRACE_WORKAROUND_FOR_V4L2_CID_USER_IMX_BASE
++# define STRACE_WORKAROUND_FOR_V4L2_CID_USER_IMX_BASE
++/*
++* Linux kernel commit v4.18-rc2-106-g421860b9d47053badce4b247576fa48df9ab4c48
++* has changed the value of V4L2_CID_USER_IMX_BASE constant introduced
++* by commit v4.13-rc1~141^2~121 because the old value was already used
++* by V4L2_CID_USER_MAX217X_BASE.
++* This is of course an ABI breakage that affects Linux kernels starting
++* with 4.13 and up to 4.18, as well as their LTS derivatives.
++* Since the imx driver didn't provide any public control ID definitions,
++* it looks like the best way to handle this situation is to pretend that
++* the old value of V4L2_CID_USER_IMX_BASE didn't exist.
++*/
++# undef V4L2_CID_USER_IMX_BASE
++#endif
+ XLAT(V4L2_CID_USER_IMX_BASE),
+ XLAT(V4L2_CID_MPEG_BASE),
+ XLAT(V4L2_CID_MPEG_CX2341X_BASE),
diff --git a/packages/strace/4.24/0001-v4l2-kernel-abi-breakage.patch b/packages/strace/4.24/0001-v4l2-kernel-abi-breakage.patch
new file mode 100644
index 0000000..be719e4
--- /dev/null
+++ b/packages/strace/4.24/0001-v4l2-kernel-abi-breakage.patch
@@ -0,0 +1,94 @@
+commit b89a69dec27cf638df0e17db80ed937c3e1abf77
+Author: Dmitry V. Levin <ldv@altlinux.org>
+Date: Sat Aug 18 07:22:47 2018 +0000
+
+ xlat: workaround V4L2_CID_USER_IMX_BASE Linux kernel ABI breakage
+
+ Linux kernel commit v4.18-rc2-106-g421860b9d47053badce4b247576fa48df9ab4c48
+ has changed the value of V4L2_CID_USER_IMX_BASE constant introduced
+ by commit v4.13-rc1~141^2~121 because the old value was already used
+ by V4L2_CID_USER_MAX217X_BASE.
+
+ This is of course an ABI breakage that affects Linux kernels starting
+ with 4.13 and up to 4.18, as well as their LTS derivatives.
+
+ Since the imx driver didn't provide any public control ID definitions,
+ it looks like the best way to handle this situation is to pretend that
+ the old value of V4L2_CID_USER_IMX_BASE didn't exist.
+
+ * xlat/v4l2_control_id_bases.in (V4L2_CID_USER_IMX_BASE): Redefine.
+
+ Co-Authored-by: Eugene Syromyatnikov <evgsyr@gmail.com>
+
+diff --git a/xlat/v4l2_control_id_bases.in b/xlat/v4l2_control_id_bases.in
+index a0359be9..f3fd9255 100644
+--- a/xlat/v4l2_control_id_bases.in
++++ b/xlat/v4l2_control_id_bases.in
+@@ -2,7 +2,22 @@ V4L2_CID_BASE (V4L2_CTRL_CLASS_USER | 0x900)
+ V4L2_CID_USER_MEYE_BASE (V4L2_CID_BASE + 0x1000)
+ V4L2_CID_USER_BTTV_BASE (V4L2_CID_BASE + 0x1010)
+ V4L2_CID_USER_TI_VPE_BASE (V4L2_CID_BASE + 0x1050)
+-V4L2_CID_USER_IMX_BASE (V4L2_CID_BASE + 0x1090)
++#ifndef STRACE_WORKAROUND_FOR_V4L2_CID_USER_IMX_BASE
++# define STRACE_WORKAROUND_FOR_V4L2_CID_USER_IMX_BASE
++/*
++ * Linux kernel commit v4.18-rc2-106-g421860b9d47053badce4b247576fa48df9ab4c48
++ * has changed the value of V4L2_CID_USER_IMX_BASE constant introduced
++ * by commit v4.13-rc1~141^2~121 because the old value was already used
++ * by V4L2_CID_USER_MAX217X_BASE.
++ * This is of course an ABI breakage that affects Linux kernels starting
++ * with 4.13 and up to 4.18, as well as their LTS derivatives.
++ * Since the imx driver didn't provide any public control ID definitions,
++ * it looks like the best way to handle this situation is to pretend that
++ * the old value of V4L2_CID_USER_IMX_BASE didn't exist.
++ */
++# undef V4L2_CID_USER_IMX_BASE
++#endif
++V4L2_CID_USER_IMX_BASE (V4L2_CID_BASE + 0x10b0)
+ V4L2_CID_MPEG_BASE (V4L2_CTRL_CLASS_MPEG | 0x900)
+ V4L2_CID_MPEG_CX2341X_BASE (V4L2_CTRL_CLASS_MPEG | 0x1000)
+ V4L2_CID_MPEG_MFC51_BASE (V4L2_CTRL_CLASS_MPEG | 0x1100)
+diff -urpN a/xlat/v4l2_control_id_bases.h b/xlat/v4l2_control_id_bases.h
+--- a/xlat/v4l2_control_id_bases.h
++++ b/xlat/v4l2_control_id_bases.h
+@@ -31,12 +31,16 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+ #else
+ # define V4L2_CID_USER_TI_VPE_BASE (V4L2_CID_BASE + 0x1050)
+ #endif
++#ifndef STRACE_WORKAROUND_FOR_V4L2_CID_USER_IMX_BASE
++# define STRACE_WORKAROUND_FOR_V4L2_CID_USER_IMX_BASE
++# undef V4L2_CID_USER_IMX_BASE
++#endif
+ #if defined(V4L2_CID_USER_IMX_BASE) || (defined(HAVE_DECL_V4L2_CID_USER_IMX_BASE) && HAVE_DECL_V4L2_CID_USER_IMX_BASE)
+ DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+-static_assert((V4L2_CID_USER_IMX_BASE) == ((V4L2_CID_BASE + 0x1090)), "V4L2_CID_USER_IMX_BASE != (V4L2_CID_BASE + 0x1090)");
++static_assert((V4L2_CID_USER_IMX_BASE) == ((V4L2_CID_BASE + 0x10b0)), "V4L2_CID_USER_IMX_BASE != (V4L2_CID_BASE + 0x10b0)");
+ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+ #else
+-# define V4L2_CID_USER_IMX_BASE (V4L2_CID_BASE + 0x1090)
++# define V4L2_CID_USER_IMX_BASE (V4L2_CID_BASE + 0x10b0)
+ #endif
+ #if defined(V4L2_CID_MPEG_BASE) || (defined(HAVE_DECL_V4L2_CID_MPEG_BASE) && HAVE_DECL_V4L2_CID_MPEG_BASE)
+ DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+@@ -146,6 +150,21 @@ const struct xlat v4l2_control_id_bases[
+ XLAT(V4L2_CID_USER_MEYE_BASE),
+ XLAT(V4L2_CID_USER_BTTV_BASE),
+ XLAT(V4L2_CID_USER_TI_VPE_BASE),
++#ifndef STRACE_WORKAROUND_FOR_V4L2_CID_USER_IMX_BASE
++# define STRACE_WORKAROUND_FOR_V4L2_CID_USER_IMX_BASE
++/*
++* Linux kernel commit v4.18-rc2-106-g421860b9d47053badce4b247576fa48df9ab4c48
++* has changed the value of V4L2_CID_USER_IMX_BASE constant introduced
++* by commit v4.13-rc1~141^2~121 because the old value was already used
++* by V4L2_CID_USER_MAX217X_BASE.
++* This is of course an ABI breakage that affects Linux kernels starting
++* with 4.13 and up to 4.18, as well as their LTS derivatives.
++* Since the imx driver didn't provide any public control ID definitions,
++* it looks like the best way to handle this situation is to pretend that
++* the old value of V4L2_CID_USER_IMX_BASE didn't exist.
++*/
++# undef V4L2_CID_USER_IMX_BASE
++#endif
+ XLAT(V4L2_CID_USER_IMX_BASE),
+ XLAT(V4L2_CID_MPEG_BASE),
+ XLAT(V4L2_CID_MPEG_CX2341X_BASE),
diff --git a/packages/strace/package.desc b/packages/strace/package.desc
index 53f3033..637636d 100644
--- a/packages/strace/package.desc
+++ b/packages/strace/package.desc
@@ -1,4 +1,4 @@
-repository='git https://git.code.sf.net/p/strace/code'
+repository='git https://github.com/strace/strace.git'
bootstrap='./bootstrap'
mirrors='https://strace.io/files/${CT_STRACE_VERSION}'
archive_formats='.tar.xz'
diff --git a/scripts/build/libc/moxiebox.sh b/scripts/build/libc/moxiebox.sh
index 376c742..96a63ff 100644
--- a/scripts/build/libc/moxiebox.sh
+++ b/scripts/build/libc/moxiebox.sh
@@ -45,7 +45,7 @@ moxiebox_main()
CT_DoExecLog ALL cp -v "${CT_LIB_DIR}/packages/moxiebox/"sha*.[ch] ./
CT_DoExecLog ALL "${CT_HOST}-gcc" -c sha256_wrap.c -O2 -Wall
CT_DoExecLog ALL "${CT_HOST}-ar" cru libcrypto.a sha256_wrap.o
- CT_Popd
+ CT_Popd
# Moxiebox includes a VM which we're building for the
# host machine.
diff --git a/scripts/build/libc/uClibc.sh b/scripts/build/libc/uClibc.sh
index ed2ea90..7b66204 100644
--- a/scripts/build/libc/uClibc.sh
+++ b/scripts/build/libc/uClibc.sh
@@ -3,21 +3,21 @@
# Licensed under the GPL v2. See COPYING in the root of this package
# Build and install headers and start files
-uclibc_start_files()
+uClibc_start_files()
{
# Start files and Headers should be configured the same way as the
# final libc, but built and installed differently.
- uclibc_backend libc_mode=startfiles
+ uClibc_backend libc_mode=startfiles
}
# This function builds and install the full C library
-uclibc_main()
+uClibc_main()
{
- uclibc_backend libc_mode=final
+ uClibc_backend libc_mode=final
}
# Common backend for 1st and 2nd passes.
-uclibc_backend()
+uClibc_backend()
{
local libc_mode
local arg
@@ -33,13 +33,13 @@ uclibc_backend()
esac
CT_mkdir_pushd "${CT_BUILD_DIR}/build-libc-${libc_mode}"
- CT_IterateMultilibs uclibc_backend_once multilib libc_mode="${libc_mode}"
+ CT_IterateMultilibs uClibc_backend_once multilib libc_mode="${libc_mode}"
CT_Popd
CT_EndStep
}
# Common backend for 1st and 2nd passes, once per multilib.
-uclibc_backend_once()
+uClibc_backend_once()
{
local libc_mode
local multi_dir multi_os_dir multi_root multi_flags multi_index multi_count
@@ -48,16 +48,16 @@ uclibc_backend_once()
local -a make_args
local extra_cflags f cfg_cflags cf
local hdr_install_subdir
- local uclibc_name
+ local uClibc_name
for arg in "$@"; do
eval "${arg// /\\ }"
done
if [ "${CT_UCLIBC_USE_UCLIBC_NG_ORG}" = "y" ]; then
- uclibc_name="uClibc-ng"
+ uClibc_name="uClibc-ng"
elif [ "${CT_UCLIBC_USE_UCLIBC_ORG}" = "y" ]; then
- uclibc_name="uClibc"
+ uClibc_name="uClibc"
fi
CT_DoStep INFO "Building for multilib ${multi_index}/${multi_count}: '${multi_flags}'"
@@ -94,7 +94,7 @@ uclibc_backend_once()
# Use the default config if the user did not provide one.
if [ -z "${CT_LIBC_UCLIBC_CONFIG_FILE}" ]; then
- CT_LIBC_UCLIBC_CONFIG_FILE="${CT_LIB_DIR}/contrib/uClibc-defconfigs/${uclibc_name}.config"
+ CT_LIBC_UCLIBC_CONFIG_FILE="${CT_LIB_DIR}/contrib/uClibc-defconfigs/${uClibc_name}.config"
fi
manage_uClibc_config "${CT_LIBC_UCLIBC_CONFIG_FILE}" .config "${multi_flags}"
@@ -403,7 +403,7 @@ manage_uClibc_config()
CT_DoArchUClibcCflags "${dst}" "${flags}"
}
-uclibc_post_cc()
+uClibc_post_cc()
{
# uClibc and GCC disagree where the dynamic linker lives. uClibc always
# places it in the MULTILIB_DIR, while gcc does that for *some* variants