mirror of
https://github.com/home-assistant/operating-system.git
synced 2025-07-24 13:36:31 +00:00
Update buildroot to 2020.11.2 (#1200)
Signed-off-by: Stefan Agner <stefan@agner.ch>
This commit is contained in:
parent
614ff50394
commit
825ef58f85
@ -1,3 +1,40 @@
|
||||
2020.11.2, released January 31st, 2021
|
||||
|
||||
Important / security related fixes.
|
||||
|
||||
Download: Ensure git submodules are correctly fetched if
|
||||
enabled for a package with <pkg>_GIT_SUBMODULES = YES and the
|
||||
host variant is downloaded first.
|
||||
|
||||
Toolchain: Mark CodeSourcery Aarch64 2014.11 toolchain as not
|
||||
having libatomic. Bootlin PowerPC-440 FP toolchain updated for
|
||||
SecurePLT fix.
|
||||
|
||||
pkg-stats: Fix python 3.8+ deprecation warning.
|
||||
|
||||
meson: Ensure ccache is not detected and used, as it may
|
||||
conflict with the ccache handling in Buildroot.
|
||||
|
||||
Updated/fixed packages: barebox, boost, brltty, dbus,
|
||||
docker-containerd, dovecot, dovecot-pigeonhole,
|
||||
environment-setup, firmware-imx, gcc, gerbera, glibc,
|
||||
gmrender-resurrect, igd2-for-linux, kodi-pvr-zattoo, libclc,
|
||||
libfuse3, libllcp, libodb-mysql, libtorrent-rasterbar,
|
||||
libupnp, lpc32xxcdl, luarocks, mpd, multipath-tools, mutt,
|
||||
nfs-utils, nodejs, openjpeg, openldap, opentracing-cpp,
|
||||
openvpn, p11-kit, paho-mqtt-c, php, poppler, postgresql,
|
||||
python3, redis, resiprocate, rpm, runc, socat, sslh, sudo,
|
||||
sunxi-mali-mainline-driver, syslog-ng, systemd, tini,
|
||||
tpm2-tss, trace-cmd, tzdata, uboot-tools, uhd, ushare,
|
||||
util-linux, vlc, wavpack, wireguard-linux-compat, wolfssl,
|
||||
xapp_xload, xorriso, zic
|
||||
|
||||
Removed packages: libupnp18
|
||||
|
||||
Issues resolved (http://bugs.uclibc.org):
|
||||
|
||||
#13471: package/mpd/mpd.conf make use of path not created
|
||||
|
||||
2020.11.1, released December 27th, 2020
|
||||
|
||||
Important / security related fixes.
|
||||
|
@ -146,6 +146,16 @@ endif
|
||||
|
||||
comment "Legacy options removed in 2020.11"
|
||||
|
||||
config BR2_PACKAGE_LIBUPNP18
|
||||
bool "libupnp18 package removed"
|
||||
select BR2_LEGACY
|
||||
select BR2_PACKAGE_LIBUPNP
|
||||
help
|
||||
Version 1.8.x of libupnp (i.e. libupnp18) has been removed
|
||||
because it will never be fixed against CallStranger a.k.a.
|
||||
CVE-2020-12695. The libupnp package (which has been updated to
|
||||
version 1.14.x) has been selected instead.
|
||||
|
||||
config BR2_PACKAGE_OPENCV
|
||||
bool "opencv package was removed"
|
||||
select BR2_LEGACY
|
||||
|
@ -405,6 +405,7 @@ F: package/perl-netaddr-ip/
|
||||
F: package/perl-timedate/
|
||||
F: package/perl-uri/
|
||||
F: package/perl-www-robotrules/
|
||||
F: package/php/
|
||||
F: package/pixman/
|
||||
F: package/pngquant/
|
||||
F: package/pound/
|
||||
@ -851,7 +852,6 @@ F: package/librsync/
|
||||
F: package/libsoup/
|
||||
F: package/libsoxr/
|
||||
F: package/libupnp/
|
||||
F: package/libupnp18/
|
||||
F: package/libv4l/
|
||||
F: package/libxslt/
|
||||
F: package/mbedtls/
|
||||
@ -2254,6 +2254,7 @@ F: package/ogre/
|
||||
F: package/openpowerlink/
|
||||
F: package/physfs/
|
||||
F: package/piglit/
|
||||
F: package/qemu/
|
||||
F: package/solarus/
|
||||
F: package/stress-ng/
|
||||
F: package/supertux/
|
||||
@ -2591,7 +2592,7 @@ F: toolchain/
|
||||
N: Timo Ketola <timo.ketola@exertus.fi>
|
||||
F: package/fbgrab/
|
||||
|
||||
N: Titouan Christophe <titouan.christophe@railnova.eu>
|
||||
N: Titouan Christophe <titouanchristophe@gmail.com>
|
||||
F: package/avro-c/
|
||||
F: package/mosquitto/
|
||||
F: package/python-avro/
|
||||
|
@ -92,9 +92,9 @@ all:
|
||||
.PHONY: all
|
||||
|
||||
# Set and export the version string
|
||||
export BR2_VERSION := 2020.11.1
|
||||
export BR2_VERSION := 2020.11.2
|
||||
# Actual time the release is cut (for reproducible builds)
|
||||
BR2_VERSION_EPOCH = 1609079000
|
||||
BR2_VERSION_EPOCH = 1612125000
|
||||
|
||||
# Save running make version since it's clobbered by the make package
|
||||
RUNNING_MAKE_VERSION := $(MAKE_VERSION)
|
||||
|
@ -138,6 +138,11 @@ define $(1)_INSTALL_IMAGES_CMDS
|
||||
$$($(1)_INSTALL_CUSTOM_ENV)
|
||||
endef
|
||||
|
||||
# Starting with barebox v2020.09.0, the kconfig used calls the
|
||||
# cross-compiler to check its capabilities. So we need the
|
||||
# toolchain before we can call the configurators.
|
||||
$(1)_KCONFIG_DEPENDENCIES += toolchain
|
||||
|
||||
ifeq ($$(BR2_TARGET_$(1)_BAREBOXENV),y)
|
||||
define $(1)_INSTALL_TARGET_CMDS
|
||||
cp $$(@D)/scripts/bareboxenv-target $$(TARGET_DIR)/usr/bin/bareboxenv
|
||||
|
2
buildroot/boot/lpc32xxcdl/lpc32xxcdl.hash
Normal file
2
buildroot/boot/lpc32xxcdl/lpc32xxcdl.hash
Normal file
@ -0,0 +1,2 @@
|
||||
# Locally computed
|
||||
sha256 ded3fa936a96d3fb8188ca6214f57b5208bd49e5416bd69f38bfc810b34197bc lpc32xx_cdl-v2.11.zip
|
@ -4,9 +4,9 @@
|
||||
#
|
||||
################################################################################
|
||||
|
||||
LPC32XXCDL_VERSION = lpc32xx_cdl_v2.11
|
||||
LPC32XXCDL_SITE = http://git.lpcware.com/lpc3xxx_cdl.git
|
||||
LPC32XXCDL_SITE_METHOD = git
|
||||
LPC32XXCDL_VERSION = 2.11
|
||||
LPC32XXCDL_SOURCE = lpc32xx_cdl-v$(LPC32XXCDL_VERSION).zip
|
||||
LPC32XXCDL_SITE = https://community.nxp.com/pwmxy87654/attachments/pwmxy87654/lpcware-archive/61/2
|
||||
|
||||
LPC32XXCDL_INSTALL_TARGET = NO
|
||||
LPC32XXCDL_INSTALL_IMAGES = YES
|
||||
@ -45,13 +45,14 @@ LPC32XXCDL_BOARD_STARTUP_DIR = \
|
||||
# Source files are with dos newlines, which our patch infrastructure doesn't
|
||||
# handle. Work around it by converting the affected files to unix newlines
|
||||
# before patching
|
||||
define LPC32XXCDL_DOS2UNIX_FOR_PATCH
|
||||
define LPC32XXCDL_EXTRACT_CMDS
|
||||
unzip $(LPC32XXCDL_DL_DIR)/$(LPC32XXCDL_SOURCE) -d $(@D)
|
||||
mv $(@D)/lpc3xxx_cdl/* $(@D)
|
||||
rmdir $(@D)/lpc3xxx_cdl/
|
||||
sed -n 's|^[+-]\{3\} [^/]\+\([^ \t]*\)\(.*\)|$(@D)\1|p' \
|
||||
boot/lpc32xxcdl/*.patch| sort -u | xargs $(SED) 's/\x0D$$//'
|
||||
endef
|
||||
|
||||
LPC32XXCDL_POST_EXTRACT_HOOKS += LPC32XXCDL_DOS2UNIX_FOR_PATCH
|
||||
|
||||
define LPC32XXCDL_BUILD_CMDS
|
||||
$(MAKE1) $(LPC32XXCDL_BUILD_FLAGS) -C $(@D)
|
||||
$(MAKE1) $(LPC32XXCDL_BUILD_FLAGS) -C $(@D)/$(LPC32XXCDL_BOARD_STARTUP_DIR)/Burners/$(LPC32XXCDL_KICKSTART_BURNER)
|
||||
|
@ -126,14 +126,19 @@ typical packages will therefore only use a few of them.
|
||||
in the build step. These are passed after the +make+ command. By
|
||||
default, empty.
|
||||
|
||||
* +LIBFOO_INSTALL_OPTS+ contains the make options used to
|
||||
install the package to the host directory. By default, the value
|
||||
is +install+, which is correct for most CMake packages. It is still
|
||||
possible to override it.
|
||||
|
||||
* +LIBFOO_INSTALL_STAGING_OPTS+ contains the make options used to
|
||||
install the package to the staging directory. By default, the value
|
||||
is +DESTDIR=$(STAGING_DIR) install+, which is correct for most
|
||||
is +DESTDIR=$(STAGING_DIR) install/fast+, which is correct for most
|
||||
CMake packages. It is still possible to override it.
|
||||
|
||||
* +LIBFOO_INSTALL_TARGET_OPTS+ contains the make options used to
|
||||
install the package to the target directory. By default, the value
|
||||
is +DESTDIR=$(TARGET_DIR) install+. The default value is correct
|
||||
is +DESTDIR=$(TARGET_DIR) install/fast+. The default value is correct
|
||||
for most CMake packages, but it is still possible to override it if
|
||||
needed.
|
||||
|
||||
|
File diff suppressed because one or more lines are too long
Binary file not shown.
@ -174,13 +174,13 @@ List of Examples
|
||||
|
||||
---------------------------------------------------------------------
|
||||
|
||||
Buildroot 2020.11.1 manual generated on 2020-12-27 14:25:17 UTC from
|
||||
git revision 804a9e1865
|
||||
Buildroot 2020.11.2 manual generated on 2021-01-31 20:36:55 UTC from
|
||||
git revision 551cb63007
|
||||
|
||||
The Buildroot manual is written by the Buildroot developers. It is
|
||||
licensed under the GNU General Public License, version 2. Refer to
|
||||
the COPYING [http://git.buildroot.org/buildroot/tree/COPYING?id=
|
||||
804a9e18656c1584b059129e0b5cebe2a2405fac] file in the Buildroot
|
||||
551cb630079316efe928d7c2eb0358a19e38fc48] file in the Buildroot
|
||||
sources for the full text of this license.
|
||||
|
||||
Copyright © 2004-2020 The Buildroot developers
|
||||
@ -1710,7 +1710,7 @@ you to just prepare the SDK with make prepare-sdk without actually
|
||||
generating a tarball.
|
||||
|
||||
For your convenience, by selecting the option
|
||||
BR2_PACKAGE_HOST_ENVIRONMENT_SETUP, you can get a setup-environment
|
||||
BR2_PACKAGE_HOST_ENVIRONMENT_SETUP, you can get a environment-setup
|
||||
script installed in output/host/ and therefore in your SDK. This
|
||||
script can be sourced with . your/sdk/path/environment-setup to
|
||||
export a number of environment variables that will help cross-compile
|
||||
@ -5225,13 +5225,17 @@ typical packages will therefore only use a few of them.
|
||||
* LIBFOO_MAKE_OPTS, to specify additional variables to pass to make
|
||||
in the build step. These are passed after the make command. By
|
||||
default, empty.
|
||||
* LIBFOO_INSTALL_OPTS contains the make options used to install the
|
||||
package to the host directory. By default, the value is install,
|
||||
which is correct for most CMake packages. It is still possible to
|
||||
override it.
|
||||
* LIBFOO_INSTALL_STAGING_OPTS contains the make options used to
|
||||
install the package to the staging directory. By default, the
|
||||
value is DESTDIR=$(STAGING_DIR) install, which is correct for
|
||||
most CMake packages. It is still possible to override it.
|
||||
value is DESTDIR=$(STAGING_DIR) install/fast, which is correct
|
||||
for most CMake packages. It is still possible to override it.
|
||||
* LIBFOO_INSTALL_TARGET_OPTS contains the make options used to
|
||||
install the package to the target directory. By default, the
|
||||
value is DESTDIR=$(TARGET_DIR) install. The default value is
|
||||
value is DESTDIR=$(TARGET_DIR) install/fast. The default value is
|
||||
correct for most CMake packages, but it is still possible to
|
||||
override it if needed.
|
||||
|
||||
|
@ -35,7 +35,7 @@ generating a tarball.
|
||||
|
||||
For your convenience, by selecting the option
|
||||
+BR2_PACKAGE_HOST_ENVIRONMENT_SETUP+, you can get a
|
||||
+setup-environment+ script installed in +output/host/+ and therefore
|
||||
+environment-setup+ script installed in +output/host/+ and therefore
|
||||
in your SDK. This script can be sourced with
|
||||
+. your/sdk/path/environment-setup+ to export a number of environment
|
||||
variables that will help cross-compile your projects using the
|
||||
|
@ -125,7 +125,7 @@ endif
|
||||
|
||||
config BR2_LINUX_KERNEL_VERSION
|
||||
string
|
||||
default "5.9.14" if BR2_LINUX_KERNEL_LATEST_VERSION
|
||||
default "5.9.16" if BR2_LINUX_KERNEL_LATEST_VERSION
|
||||
default "4.19.152-cip37" if BR2_LINUX_KERNEL_LATEST_CIP_VERSION
|
||||
default "4.19.152-cip37-rt16" if BR2_LINUX_KERNEL_LATEST_CIP_RT_VERSION
|
||||
default BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE \
|
||||
|
@ -1,12 +1,12 @@
|
||||
# From https://www.kernel.org/pub/linux/kernel/v5.x/sha256sums.asc
|
||||
sha256 39fcfb41dcdf71b6b42b88eff3d8cedbe7523830ccae847f3914c0b97e1e6b49 linux-5.9.14.tar.xz
|
||||
sha256 b0d7abae88e5f91893627c645e680a95c818defd1b4fcaf3e2afb4b2b6b4ab86 linux-5.9.16.tar.xz
|
||||
sha256 4ab4a3f694b7b4cfbe78871eab34c8039ad33692144c45c669827a594da85534 linux-5.8.18.tar.xz
|
||||
sha256 beec970bbb93de8ab839f27930f7ab00c7bd65af0ffa07a50e765affdc2561c6 linux-5.4.83.tar.xz
|
||||
sha256 d37449403664cc3b1bac96d0d9a199dbe619885cd899c0ae3108843f42e3d522 linux-5.4.93.tar.xz
|
||||
# From https://www.kernel.org/pub/linux/kernel/v4.x/sha256sums.asc
|
||||
sha256 e52a49ceb639d871478a143c314648c35e22222c317ecdf49866830fea5c3dfc linux-4.4.248.tar.xz
|
||||
sha256 4687268061c9933c298b30d28e4bf1a30dfbab7c0da4bee194968e4f81ffeccf linux-4.9.248.tar.xz
|
||||
sha256 0e1bc32c4842c3bbee3a15454408f528acd4d3c5e83312b93008d5ee2e9a0c79 linux-4.14.212.tar.xz
|
||||
sha256 3eeec4e5eb8a129be3536357ecb028fae7d82fac933dcfac0b6089ee398fc5fc linux-4.19.163.tar.xz
|
||||
sha256 661e98b9448cbac948c705fd44cd7d30200422ee1cb02950d142aa99a1b3985a linux-4.4.253.tar.xz
|
||||
sha256 9a5b51a8350201bd38e3ff13909323a6571b4572a7b3caed76e462b07619bc18 linux-4.9.253.tar.xz
|
||||
sha256 62a36a25431016d98d0f1cff98be432086c51f86fd79042bd10a867b3a924d11 linux-4.14.217.tar.xz
|
||||
sha256 f4e352fe0eb986e5b532b99d9b0725a67046cbb3e5f53fcd5b098cbaeb2ac60a linux-4.19.171.tar.xz
|
||||
# Locally computed
|
||||
sha256 d2a06f52143deb929b8d513cf9afc9bd065951389a80fa70bc4d63025b5b3fb9 linux-cip-4.19.152-cip37.tar.gz
|
||||
sha256 bc1dacd3d0f526de3e8754a444e8e02a54521527af639ddb907cb35cda775a8c linux-cip-4.19.152-cip37-rt16.tar.gz
|
||||
|
@ -1764,7 +1764,6 @@ menu "Networking"
|
||||
source "package/libuev/Config.in"
|
||||
source "package/libuhttpd/Config.in"
|
||||
source "package/libupnp/Config.in"
|
||||
source "package/libupnp18/Config.in"
|
||||
source "package/libupnpp/Config.in"
|
||||
source "package/liburiparser/Config.in"
|
||||
source "package/libuwsc/Config.in"
|
||||
|
@ -5,6 +5,7 @@ config BR2_PACKAGE_AZMQ
|
||||
depends on BR2_TOOLCHAIN_HAS_THREADS_NPTL # boost-log
|
||||
depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 # C++11
|
||||
depends on BR2_USE_WCHAR # boost
|
||||
depends on BR2_TOOLCHAIN_SUPPORTS_ALWAYS_LOCKFREE_ATOMIC_INTS # boost-thread
|
||||
depends on !BR2_TOOLCHAIN_HAS_GCC_BUG_64735 # exception_ptr
|
||||
select BR2_PACKAGE_ZEROMQ
|
||||
select BR2_PACKAGE_BOOST
|
||||
@ -21,6 +22,7 @@ config BR2_PACKAGE_AZMQ
|
||||
https://github.com/zeromq/azmq
|
||||
|
||||
comment "azmq needs a toolchain w/ C++11, wchar and NPTL"
|
||||
depends on BR2_TOOLCHAIN_SUPPORTS_ALWAYS_LOCKFREE_ATOMIC_INTS
|
||||
depends on !(BR2_INSTALL_LIBSTDCPP && BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 \
|
||||
&& BR2_USE_WCHAR && BR2_TOOLCHAIN_HAS_THREADS_NPTL)
|
||||
|
||||
|
@ -10,6 +10,7 @@ config BR2_PACKAGE_BITCOIN_ARCH_SUPPORTS
|
||||
config BR2_PACKAGE_BITCOIN
|
||||
bool "bitcoin"
|
||||
depends on BR2_INSTALL_LIBSTDCPP
|
||||
depends on BR2_TOOLCHAIN_SUPPORTS_ALWAYS_LOCKFREE_ATOMIC_INTS # boost-thread
|
||||
depends on !BR2_TOOLCHAIN_HAS_GCC_BUG_64735 # std::future
|
||||
depends on BR2_PACKAGE_BITCOIN_ARCH_SUPPORTS
|
||||
depends on BR2_TOOLCHAIN_HAS_THREADS # boost
|
||||
@ -37,6 +38,7 @@ config BR2_PACKAGE_BITCOIN
|
||||
|
||||
comment "bitcoin needs a toolchain w/ C++, threads, wchar"
|
||||
depends on BR2_PACKAGE_BITCOIN_ARCH_SUPPORTS
|
||||
depends on BR2_TOOLCHAIN_SUPPORTS_ALWAYS_LOCKFREE_ATOMIC_INTS
|
||||
depends on !BR2_INSTALL_LIBSTDCPP || \
|
||||
!BR2_TOOLCHAIN_HAS_THREADS || !BR2_USE_WCHAR
|
||||
|
||||
|
@ -52,6 +52,7 @@ config BR2_PACKAGE_BOOST_LAYOUT
|
||||
|
||||
config BR2_PACKAGE_BOOST_ATOMIC
|
||||
bool "boost-atomic"
|
||||
depends on BR2_TOOLCHAIN_SUPPORTS_ALWAYS_LOCKFREE_ATOMIC_INTS
|
||||
help
|
||||
C++11-style atomic<>.
|
||||
|
||||
@ -82,6 +83,8 @@ config BR2_PACKAGE_BOOST_CONTEXT_ARCH_SUPPORTS
|
||||
config BR2_PACKAGE_BOOST_CONTEXT
|
||||
bool "boost-context"
|
||||
depends on BR2_PACKAGE_BOOST_CONTEXT_ARCH_SUPPORTS
|
||||
depends on BR2_TOOLCHAIN_SUPPORTS_ALWAYS_LOCKFREE_ATOMIC_INTS \
|
||||
|| BR2_TOOLCHAIN_GCC_AT_LEAST_6 # boost-thread
|
||||
depends on !BR2_TOOLCHAIN_HAS_GCC_BUG_64735
|
||||
select BR2_PACKAGE_BOOST_THREAD if !BR2_TOOLCHAIN_GCC_AT_LEAST_6
|
||||
help
|
||||
@ -101,6 +104,7 @@ comment "boost-contract needs a toolchain w/ NPTL"
|
||||
config BR2_PACKAGE_BOOST_COROUTINE
|
||||
bool "boost-coroutine"
|
||||
depends on BR2_PACKAGE_BOOST_CONTEXT_ARCH_SUPPORTS
|
||||
depends on BR2_TOOLCHAIN_SUPPORTS_ALWAYS_LOCKFREE_ATOMIC_INTS # boost-thread
|
||||
depends on !BR2_TOOLCHAIN_HAS_GCC_BUG_64735 # boost-context, boost-thread
|
||||
select BR2_PACKAGE_BOOST_CHRONO
|
||||
select BR2_PACKAGE_BOOST_CONTEXT
|
||||
@ -113,6 +117,7 @@ config BR2_PACKAGE_BOOST_COROUTINE
|
||||
|
||||
comment "boost-coroutine needs a toolchain not affected by GCC bug 64735"
|
||||
depends on BR2_PACKAGE_BOOST_CONTEXT_ARCH_SUPPORTS
|
||||
depends on BR2_TOOLCHAIN_SUPPORTS_ALWAYS_LOCKFREE_ATOMIC_INTS
|
||||
depends on BR2_TOOLCHAIN_HAS_GCC_BUG_64735
|
||||
|
||||
config BR2_PACKAGE_BOOST_DATE_TIME
|
||||
@ -135,6 +140,8 @@ config BR2_PACKAGE_BOOST_FIBER
|
||||
# mips support uses the "pause" instruction, only available
|
||||
# since mips32r2/mips64r2.
|
||||
depends on !BR2_MIPS_CPU_MIPS32 && !BR2_MIPS_CPU_MIPS64
|
||||
depends on BR2_TOOLCHAIN_SUPPORTS_ALWAYS_LOCKFREE_ATOMIC_INTS \
|
||||
|| BR2_TOOLCHAIN_GCC_AT_LEAST_6 # boost-context -> boost-thread
|
||||
depends on !BR2_TOOLCHAIN_HAS_GCC_BUG_64735 # boost-context
|
||||
select BR2_PACKAGE_BOOST_CONTEXT
|
||||
select BR2_PACKAGE_BOOST_FILESYSTEM
|
||||
@ -144,10 +151,14 @@ config BR2_PACKAGE_BOOST_FIBER
|
||||
|
||||
comment "boost-fiber needs a toolchain w/ NPTL"
|
||||
depends on BR2_PACKAGE_BOOST_CONTEXT_ARCH_SUPPORTS
|
||||
depends on BR2_TOOLCHAIN_SUPPORTS_ALWAYS_LOCKFREE_ATOMIC_INTS \
|
||||
|| BR2_TOOLCHAIN_GCC_AT_LEAST_6
|
||||
depends on !BR2_TOOLCHAIN_HAS_THREADS_NPTL
|
||||
|
||||
comment "boost-fiber needs a toolchain not affected by GCC bug 64735"
|
||||
depends on BR2_PACKAGE_BOOST_CONTEXT_ARCH_SUPPORTS
|
||||
depends on BR2_TOOLCHAIN_SUPPORTS_ALWAYS_LOCKFREE_ATOMIC_INTS \
|
||||
|| BR2_TOOLCHAIN_GCC_AT_LEAST_6
|
||||
depends on BR2_TOOLCHAIN_HAS_GCC_BUG_64735
|
||||
|
||||
config BR2_PACKAGE_BOOST_FILESYSTEM
|
||||
@ -190,6 +201,8 @@ config BR2_PACKAGE_BOOST_LOCALE
|
||||
# details.
|
||||
depends on !(BR2_STATIC_LIBS && BR2_PACKAGE_ICU)
|
||||
depends on !(BR2_TOOLCHAIN_HAS_GCC_BUG_64735 && BR2_PACKAGE_ICU) # boost-thread
|
||||
depends on BR2_TOOLCHAIN_SUPPORTS_ALWAYS_LOCKFREE_ATOMIC_INTS \
|
||||
|| !BR2_PACKAGE_ICU # boost-thread
|
||||
select BR2_PACKAGE_BOOST_SYSTEM
|
||||
select BR2_PACKAGE_BOOST_THREAD if BR2_PACKAGE_ICU
|
||||
select BR2_PACKAGE_LIBICONV if !BR2_ENABLE_LOCALE
|
||||
@ -197,16 +210,19 @@ config BR2_PACKAGE_BOOST_LOCALE
|
||||
Provide localization and Unicode handling tools for C++.
|
||||
|
||||
comment "boost-locale needs a toolchain w/ dynamic library"
|
||||
depends on BR2_TOOLCHAIN_SUPPORTS_ALWAYS_LOCKFREE_ATOMIC_INTS
|
||||
depends on BR2_PACKAGE_ICU
|
||||
depends on BR2_STATIC_LIBS
|
||||
|
||||
comment "boost-locale needs a toolchain not affected by GCC bug 64735"
|
||||
depends on BR2_TOOLCHAIN_SUPPORTS_ALWAYS_LOCKFREE_ATOMIC_INTS
|
||||
depends on BR2_PACKAGE_ICU
|
||||
depends on BR2_TOOLCHAIN_HAS_GCC_BUG_64735
|
||||
|
||||
config BR2_PACKAGE_BOOST_LOG
|
||||
bool "boost-log"
|
||||
depends on BR2_TOOLCHAIN_HAS_THREADS_NPTL
|
||||
depends on BR2_TOOLCHAIN_SUPPORTS_ALWAYS_LOCKFREE_ATOMIC_INTS # boost-atomic
|
||||
depends on !BR2_TOOLCHAIN_HAS_GCC_BUG_64735 # boost-thread
|
||||
select BR2_PACKAGE_BOOST_ATOMIC
|
||||
select BR2_PACKAGE_BOOST_DATE_TIME
|
||||
@ -218,6 +234,7 @@ config BR2_PACKAGE_BOOST_LOG
|
||||
Logging library.
|
||||
|
||||
comment "boost-log needs a toolchain w/ NPTL"
|
||||
depends on BR2_TOOLCHAIN_SUPPORTS_ALWAYS_LOCKFREE_ATOMIC_INTS
|
||||
depends on !BR2_TOOLCHAIN_HAS_THREADS_NPTL
|
||||
|
||||
comment "boost-log needs a toolchain not affected by GCC bug 64735"
|
||||
@ -313,8 +330,8 @@ config BR2_PACKAGE_BOOST_TEST
|
||||
|
||||
config BR2_PACKAGE_BOOST_THREAD
|
||||
bool "boost-thread"
|
||||
depends on BR2_TOOLCHAIN_SUPPORTS_ALWAYS_LOCKFREE_ATOMIC_INTS
|
||||
depends on !BR2_TOOLCHAIN_HAS_GCC_BUG_64735 # std::current_exception
|
||||
select BR2_PACKAGE_BOOST_ATOMIC if !BR2_TOOLCHAIN_SUPPORTS_ALWAYS_LOCKFREE_ATOMIC_INTS
|
||||
select BR2_PACKAGE_BOOST_CHRONO
|
||||
select BR2_PACKAGE_BOOST_SYSTEM
|
||||
help
|
||||
@ -332,6 +349,7 @@ config BR2_PACKAGE_BOOST_TIMER
|
||||
|
||||
config BR2_PACKAGE_BOOST_TYPE_ERASURE
|
||||
bool "boost-type_erasure"
|
||||
depends on BR2_TOOLCHAIN_SUPPORTS_ALWAYS_LOCKFREE_ATOMIC_INTS # boost-thread
|
||||
depends on !BR2_TOOLCHAIN_HAS_GCC_BUG_64735 # boost-thread
|
||||
select BR2_PACKAGE_BOOST_SYSTEM
|
||||
select BR2_PACKAGE_BOOST_THREAD
|
||||
@ -346,6 +364,7 @@ config BR2_PACKAGE_BOOST_WAVE
|
||||
# limitation of assembler for coldfire
|
||||
# error: Tried to convert PC relative branch to absolute jump
|
||||
depends on !BR2_m68k_cf
|
||||
depends on BR2_TOOLCHAIN_SUPPORTS_ALWAYS_LOCKFREE_ATOMIC_INTS # boost-thread
|
||||
depends on !BR2_TOOLCHAIN_HAS_GCC_BUG_64735 # boost-thread
|
||||
select BR2_PACKAGE_BOOST_DATE_TIME
|
||||
select BR2_PACKAGE_BOOST_FILESYSTEM
|
||||
|
@ -96,6 +96,13 @@ else
|
||||
BRLTTY_CONF_OPTS += --without-rgx-package
|
||||
endif
|
||||
|
||||
ifeq ($(BR2_PACKAGE_POLKIT),y)
|
||||
BRLTTY_DEPENDENCIES += polkit
|
||||
BRLTTY_CONF_OPTS += --enable-polkit
|
||||
else
|
||||
BRLTTY_CONF_OPTS += --disable-polkit
|
||||
endif
|
||||
|
||||
ifeq ($(BR2_PACKAGE_SYSTEMD),y)
|
||||
BRLTTY_DEPENDENCIES += systemd
|
||||
BRLTTY_CONF_OPTS += --with-service-package
|
||||
|
@ -7,7 +7,7 @@ config BR2_PACKAGE_DBUS
|
||||
help
|
||||
The D-Bus message bus system.
|
||||
|
||||
http://www.freedesktop.org/wiki/Software/dbus
|
||||
https://www.freedesktop.org/wiki/Software/dbus
|
||||
|
||||
comment "dbus needs a toolchain w/ threads"
|
||||
depends on BR2_USE_MMU
|
||||
|
@ -1,6 +1,7 @@
|
||||
# Locally calculated after checking pgp signature
|
||||
# https://dbus.freedesktop.org/releases/dbus/dbus-1.12.18.tar.gz.asc
|
||||
# https://dbus.freedesktop.org/releases/dbus/dbus-1.12.20.tar.gz.asc
|
||||
# using key 36EC5A6448A4F5EF79BEFE98E05AE1478F814C4F
|
||||
sha256 64cf4d70840230e5e9bc784d153880775ab3db19d656ead8a0cb9c0ab5a95306 dbus-1.12.18.tar.gz
|
||||
sha256 f77620140ecb4cdc67f37fb444f8a6bea70b5b6461f12f1cbe2cec60fa7de5fe dbus-1.12.20.tar.gz
|
||||
|
||||
# Locally calculated
|
||||
sha256 0e46f54efb12d04ab5c33713bacd0e140c9a35b57ae29e03c853203266e8f3a1 COPYING
|
||||
|
@ -4,7 +4,7 @@
|
||||
#
|
||||
################################################################################
|
||||
|
||||
DBUS_VERSION = 1.12.18
|
||||
DBUS_VERSION = 1.12.20
|
||||
DBUS_SITE = https://dbus.freedesktop.org/releases/dbus
|
||||
DBUS_LICENSE = AFL-2.1 or GPL-2.0+ (library, tools), GPL-2.0+ (tools)
|
||||
DBUS_LICENSE_FILES = COPYING
|
||||
|
@ -12,7 +12,7 @@ DOCKER_CONTAINERD_LICENSE_FILES = LICENSE
|
||||
DOCKER_CONTAINERD_GOMOD = github.com/containerd/containerd
|
||||
|
||||
DOCKER_CONTAINERD_LDFLAGS = \
|
||||
-X github.com/docker/containerd.GitCommit=$(DOCKER_CONTAINERD_VERSION)
|
||||
-X $(DOCKER_CONTAINERD_GOMOD)/version.Version=$(DOCKER_CONTAINERD_VERSION)
|
||||
|
||||
DOCKER_CONTAINERD_BUILD_TARGETS = cmd/ctr cmd/containerd cmd/containerd-shim
|
||||
|
||||
|
@ -8,6 +8,7 @@ config BR2_PACKAGE_DOMOTICZ
|
||||
depends on BR2_INSTALL_LIBSTDCPP
|
||||
depends on BR2_USE_WCHAR
|
||||
depends on BR2_PACKAGE_LUA_5_3
|
||||
depends on BR2_TOOLCHAIN_SUPPORTS_ALWAYS_LOCKFREE_ATOMIC_INTS # boost-thread
|
||||
depends on !BR2_TOOLCHAIN_HAS_GCC_BUG_64735 # exception_ptr
|
||||
select BR2_PACKAGE_BOOST
|
||||
select BR2_PACKAGE_BOOST_DATE_TIME
|
||||
@ -30,6 +31,7 @@ config BR2_PACKAGE_DOMOTICZ
|
||||
|
||||
comment "domoticz needs lua 5.3 and a toolchain w/ C++, gcc >= 4.8, NPTL, wchar, dynamic library"
|
||||
depends on BR2_USE_MMU
|
||||
depends on BR2_TOOLCHAIN_SUPPORTS_ALWAYS_LOCKFREE_ATOMIC_INTS
|
||||
depends on !BR2_INSTALL_LIBSTDCPP || \
|
||||
!BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 || \
|
||||
!BR2_TOOLCHAIN_HAS_THREADS_NPTL || \
|
||||
|
@ -1,3 +1,3 @@
|
||||
# Locally computed after checking signature
|
||||
sha256 0b972a441f680545ddfacd2f41fb2a705fb03249d46ed5ce7e01fe68b6cfb5f0 dovecot-2.3-pigeonhole-0.5.11.tar.gz
|
||||
sha256 911fe566da5b638eab1b11105314300bc9049cc3832d4bd2aed44c265013bf17 dovecot-2.3-pigeonhole-0.5.13.tar.gz
|
||||
sha256 fc9e9522216f2a9a28b31300e3c73c1df56acc27dfae951bf516e7995366b51a COPYING
|
||||
|
@ -4,7 +4,7 @@
|
||||
#
|
||||
################################################################################
|
||||
|
||||
DOVECOT_PIGEONHOLE_VERSION = 0.5.11
|
||||
DOVECOT_PIGEONHOLE_VERSION = 0.5.13
|
||||
DOVECOT_PIGEONHOLE_SOURCE = dovecot-2.3-pigeonhole-$(DOVECOT_PIGEONHOLE_VERSION).tar.gz
|
||||
DOVECOT_PIGEONHOLE_SITE = https://pigeonhole.dovecot.org/releases/2.3
|
||||
DOVECOT_PIGEONHOLE_LICENSE = LGPL-2.1
|
||||
|
@ -1,5 +1,5 @@
|
||||
# Locally computed after checking signature
|
||||
sha256 d3d9ea9010277f57eb5b9f4166a5d2ba539b172bd6d5a2b2529a6db524baafdc dovecot-2.3.11.3.tar.gz
|
||||
sha256 a363b132e494f662d98c820d1481297e6ae72f194c2c91b6c39e1518b86240a8 COPYING
|
||||
sha256 a3f875b80ec11a452480690108660030978c94fa8e796ad6d943a874b496f1c4 dovecot-2.3.13.tar.gz
|
||||
sha256 319a9830aab406109cd67cb45496587566a8123203d66d037b209ca3e13de02a COPYING
|
||||
sha256 dc626520dcd53a22f727af3ee42c770e56c97a64fe3adb063799d8ab032fe551 COPYING.LGPL
|
||||
sha256 52b8c95fabb19575281874b661ef7968ea47e8f5d74ba0dd40ce512e52b3fc97 COPYING.MIT
|
||||
|
@ -5,7 +5,7 @@
|
||||
################################################################################
|
||||
|
||||
DOVECOT_VERSION_MAJOR = 2.3
|
||||
DOVECOT_VERSION = $(DOVECOT_VERSION_MAJOR).11.3
|
||||
DOVECOT_VERSION = $(DOVECOT_VERSION_MAJOR).13
|
||||
DOVECOT_SITE = https://dovecot.org/releases/$(DOVECOT_VERSION_MAJOR)
|
||||
DOVECOT_INSTALL_STAGING = YES
|
||||
DOVECOT_LICENSE = LGPL-2.1, MIT, Public Domain, BSD-3-Clause, Unicode-DFS-2015
|
||||
|
@ -18,6 +18,8 @@ config BR2_PACKAGE_FIRMWARE_IMX_SDMA_FW_NAME
|
||||
default "imx51" if BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX51
|
||||
default "imx53" if BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX53
|
||||
default "imx6q" if BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX6Q
|
||||
default "imx6q" if BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX6S
|
||||
default "imx6q" if BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX6UL
|
||||
default "imx7d" if BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX7
|
||||
default "imx7d" if BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8M
|
||||
default "imx7d" if BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8MM
|
||||
|
@ -116,9 +116,11 @@ endif
|
||||
FIRMWARE_IMX_VPU_FW_NAME = $(call qstrip,$(BR2_PACKAGE_FIRMWARE_IMX_VPU_FW_NAME))
|
||||
ifneq ($(FIRMWARE_IMX_VPU_FW_NAME),)
|
||||
define FIRMWARE_IMX_INSTALL_TARGET_VPU_FW
|
||||
mkdir -p $(TARGET_DIR)/lib/firmware/imx/vpu
|
||||
cp $(@D)/firmware/vpu/vpu_fw_$(FIRMWARE_IMX_VPU_FW_NAME)*.bin \
|
||||
$(TARGET_DIR)/lib/firmware/imx/vpu/
|
||||
mkdir -p $(TARGET_DIR)/lib/firmware/vpu
|
||||
for i in $$(find $(@D)/firmware/vpu/vpu_fw_$(FIRMWARE_IMX_VPU_FW_NAME)*.bin); do \
|
||||
cp $$i $(TARGET_DIR)/lib/firmware/vpu/ ; \
|
||||
ln -sf vpu/$$(basename $$i) $(TARGET_DIR)/lib/firmware/$$(basename $$i) ; \
|
||||
done
|
||||
endef
|
||||
endif
|
||||
|
||||
|
@ -0,0 +1,242 @@
|
||||
From 09944fba5bfb8e5543ce043c70d08222cf2f97ff Mon Sep 17 00:00:00 2001
|
||||
From: Claudiu Zissulescu <claziss@synopsys.com>
|
||||
Date: Wed, 11 Nov 2020 12:31:10 +0200
|
||||
Subject: [PATCH] arc: Refurbish adc/sbc patterns
|
||||
|
||||
The adc/sbc patterns were unecessary spliting, remove that and
|
||||
associated functions.
|
||||
|
||||
gcc/ChangeLog:
|
||||
|
||||
2020-10-11 Claudiu Zissulescu <claziss@synopsys.com>
|
||||
|
||||
* config/arc/arc-protos.h (arc_scheduling_not_expected): Remove
|
||||
it.
|
||||
(arc_sets_cc_p): Likewise.
|
||||
(arc_need_delay): Likewise.
|
||||
* config/arc/arc.c (arc_sets_cc_p): Likewise.
|
||||
(arc_need_delay): Likewise.
|
||||
(arc_scheduling_not_expected): Likewise.
|
||||
* config/arc/arc.md: Convert adc/sbc patterns to simple
|
||||
instruction definitions.
|
||||
|
||||
Signed-off-by: Claudiu Zissulescu <claziss@synopsys.com>
|
||||
Signed-off-by: Veronika Kremneva <kremneva@synopsys.com>
|
||||
---
|
||||
gcc/config/arc/arc-protos.h | 3 --
|
||||
gcc/config/arc/arc.c | 53 -------------------------
|
||||
gcc/config/arc/arc.md | 95 ++++++++++++++-------------------------------
|
||||
3 files changed, 29 insertions(+), 122 deletions(-)
|
||||
|
||||
diff --git a/gcc/config/arc/arc-protos.h b/gcc/config/arc/arc-protos.h
|
||||
index c72d78e3b9e..de4cf47c818 100644
|
||||
--- a/gcc/config/arc/arc-protos.h
|
||||
+++ b/gcc/config/arc/arc-protos.h
|
||||
@@ -90,10 +90,7 @@ extern void split_subsi (rtx *);
|
||||
extern void arc_split_move (rtx *);
|
||||
extern const char *arc_short_long (rtx_insn *insn, const char *, const char *);
|
||||
extern rtx arc_regno_use_in (unsigned int, rtx);
|
||||
-extern bool arc_scheduling_not_expected (void);
|
||||
-extern bool arc_sets_cc_p (rtx_insn *insn);
|
||||
extern int arc_label_align (rtx_insn *label);
|
||||
-extern bool arc_need_delay (rtx_insn *insn);
|
||||
extern bool arc_text_label (rtx_insn *insn);
|
||||
|
||||
extern bool arc_short_comparison_p (rtx, int);
|
||||
diff --git a/gcc/config/arc/arc.c b/gcc/config/arc/arc.c
|
||||
index fcb83c4e23e..2daf83dd009 100644
|
||||
--- a/gcc/config/arc/arc.c
|
||||
+++ b/gcc/config/arc/arc.c
|
||||
@@ -10341,59 +10341,6 @@ arc_attr_type (rtx_insn *insn)
|
||||
return get_attr_type (insn);
|
||||
}
|
||||
|
||||
-/* Return true if insn sets the condition codes. */
|
||||
-
|
||||
-bool
|
||||
-arc_sets_cc_p (rtx_insn *insn)
|
||||
-{
|
||||
- if (NONJUMP_INSN_P (insn))
|
||||
- if (rtx_sequence *seq = dyn_cast <rtx_sequence *> (PATTERN (insn)))
|
||||
- insn = seq->insn (seq->len () - 1);
|
||||
- return arc_attr_type (insn) == TYPE_COMPARE;
|
||||
-}
|
||||
-
|
||||
-/* Return true if INSN is an instruction with a delay slot we may want
|
||||
- to fill. */
|
||||
-
|
||||
-bool
|
||||
-arc_need_delay (rtx_insn *insn)
|
||||
-{
|
||||
- rtx_insn *next;
|
||||
-
|
||||
- if (!flag_delayed_branch)
|
||||
- return false;
|
||||
- /* The return at the end of a function needs a delay slot. */
|
||||
- if (NONJUMP_INSN_P (insn) && GET_CODE (PATTERN (insn)) == USE
|
||||
- && (!(next = next_active_insn (insn))
|
||||
- || ((!NONJUMP_INSN_P (next) || GET_CODE (PATTERN (next)) != SEQUENCE)
|
||||
- && arc_attr_type (next) == TYPE_RETURN))
|
||||
- && (!TARGET_PAD_RETURN
|
||||
- || (prev_active_insn (insn)
|
||||
- && prev_active_insn (prev_active_insn (insn))
|
||||
- && prev_active_insn (prev_active_insn (prev_active_insn (insn))))))
|
||||
- return true;
|
||||
- if (NONJUMP_INSN_P (insn)
|
||||
- ? (GET_CODE (PATTERN (insn)) == USE
|
||||
- || GET_CODE (PATTERN (insn)) == CLOBBER
|
||||
- || GET_CODE (PATTERN (insn)) == SEQUENCE)
|
||||
- : JUMP_P (insn)
|
||||
- ? (GET_CODE (PATTERN (insn)) == ADDR_VEC
|
||||
- || GET_CODE (PATTERN (insn)) == ADDR_DIFF_VEC)
|
||||
- : !CALL_P (insn))
|
||||
- return false;
|
||||
- return num_delay_slots (insn) != 0;
|
||||
-}
|
||||
-
|
||||
-/* Return true if the scheduling pass(es) has/have already run,
|
||||
- i.e. where possible, we should try to mitigate high latencies
|
||||
- by different instruction selection. */
|
||||
-
|
||||
-bool
|
||||
-arc_scheduling_not_expected (void)
|
||||
-{
|
||||
- return cfun->machine->arc_reorg_started;
|
||||
-}
|
||||
-
|
||||
/* Code has a minimum p2 alignment of 1, which we must restore after
|
||||
an ADDR_DIFF_VEC. */
|
||||
|
||||
diff --git a/gcc/config/arc/arc.md b/gcc/config/arc/arc.md
|
||||
index d4d9f59a3ea..6c09c86884f 100644
|
||||
--- a/gcc/config/arc/arc.md
|
||||
+++ b/gcc/config/arc/arc.md
|
||||
@@ -2857,43 +2857,25 @@ archs4x, archs4xd"
|
||||
(set_attr "type" "compare")
|
||||
(set_attr "length" "4,4,8")])
|
||||
|
||||
-; w/c/c comes first (rather than w/0/C_0) to prevent the middle-end
|
||||
-; needlessly prioritizing the matching constraint.
|
||||
-; Rcw/0/C_0 comes before w/c/L so that the lower latency conditional
|
||||
-; execution is used where possible.
|
||||
-(define_insn_and_split "adc"
|
||||
- [(set (match_operand:SI 0 "dest_reg_operand" "=w,Rcw,w,Rcw,w")
|
||||
- (plus:SI (plus:SI (ltu:SI (reg:CC_C CC_REG) (const_int 0))
|
||||
- (match_operand:SI 1 "nonmemory_operand"
|
||||
- "%c,0,c,0,cCal"))
|
||||
- (match_operand:SI 2 "nonmemory_operand" "c,C_0,L,I,cCal")))]
|
||||
+(define_insn "adc"
|
||||
+ [(set (match_operand:SI 0 "register_operand" "=r, r,r,r, r,r")
|
||||
+ (plus:SI
|
||||
+ (plus:SI
|
||||
+ (ltu:SI (reg:CC_C CC_REG) (const_int 0))
|
||||
+ (match_operand:SI 1 "nonmemory_operand" "%r, 0,r,0,Cal,r"))
|
||||
+ (match_operand:SI 2 "nonmemory_operand" "r,C_0,L,I, r,Cal")))]
|
||||
"register_operand (operands[1], SImode)
|
||||
|| register_operand (operands[2], SImode)"
|
||||
"@
|
||||
- adc %0,%1,%2
|
||||
- add.cs %0,%1,1
|
||||
- adc %0,%1,%2
|
||||
- adc %0,%1,%2
|
||||
- adc %0,%1,%2"
|
||||
- ; if we have a bad schedule after sched2, split.
|
||||
- "reload_completed
|
||||
- && !optimize_size && (!TARGET_ARC600_FAMILY)
|
||||
- && arc_scheduling_not_expected ()
|
||||
- && arc_sets_cc_p (prev_nonnote_insn (insn))
|
||||
- /* If next comes a return or other insn that needs a delay slot,
|
||||
- expect the adc to get into the delay slot. */
|
||||
- && next_nonnote_insn (insn)
|
||||
- && !arc_need_delay (next_nonnote_insn (insn))
|
||||
- /* Restore operands before emitting. */
|
||||
- && (extract_insn_cached (insn), 1)"
|
||||
- [(set (match_dup 0) (match_dup 3))
|
||||
- (cond_exec
|
||||
- (ltu (reg:CC_C CC_REG) (const_int 0))
|
||||
- (set (match_dup 0) (plus:SI (match_dup 0) (const_int 1))))]
|
||||
- "operands[3] = simplify_gen_binary (PLUS, SImode, operands[1], operands[2]);"
|
||||
+ adc\\t%0,%1,%2
|
||||
+ add.cs\\t%0,%1,1
|
||||
+ adc\\t%0,%1,%2
|
||||
+ adc\\t%0,%1,%2
|
||||
+ adc\\t%0,%1,%2
|
||||
+ adc\\t%0,%1,%2"
|
||||
[(set_attr "cond" "use")
|
||||
(set_attr "type" "cc_arith")
|
||||
- (set_attr "length" "4,4,4,4,8")])
|
||||
+ (set_attr "length" "4,4,4,4,8,8")])
|
||||
|
||||
; combiner-splitter cmp / scc -> cmp / adc
|
||||
(define_split
|
||||
@@ -3025,7 +3007,7 @@ archs4x, archs4xd"
|
||||
DONE;
|
||||
}
|
||||
emit_insn (gen_sub_f (l0, l1, l2));
|
||||
- emit_insn (gen_sbc (h0, h1, h2, gen_rtx_REG (CCmode, CC_REG)));
|
||||
+ emit_insn (gen_sbc (h0, h1, h2));
|
||||
DONE;
|
||||
")
|
||||
|
||||
@@ -3040,44 +3022,25 @@ archs4x, archs4xd"
|
||||
(set_attr "type" "cc_arith")
|
||||
(set_attr "length" "4")])
|
||||
|
||||
-; w/c/c comes first (rather than Rcw/0/C_0) to prevent the middle-end
|
||||
-; needlessly prioritizing the matching constraint.
|
||||
-; Rcw/0/C_0 comes before w/c/L so that the lower latency conditional execution
|
||||
-; is used where possible.
|
||||
-(define_insn_and_split "sbc"
|
||||
- [(set (match_operand:SI 0 "dest_reg_operand" "=w,Rcw,w,Rcw,w")
|
||||
- (minus:SI (minus:SI (match_operand:SI 1 "nonmemory_operand"
|
||||
- "c,0,c,0,cCal")
|
||||
- (ltu:SI (match_operand:CC_C 3 "cc_use_register")
|
||||
- (const_int 0)))
|
||||
- (match_operand:SI 2 "nonmemory_operand" "c,C_0,L,I,cCal")))]
|
||||
+(define_insn "sbc"
|
||||
+ [(set (match_operand:SI 0 "dest_reg_operand" "=r,r,r,r,r,r")
|
||||
+ (minus:SI
|
||||
+ (minus:SI
|
||||
+ (match_operand:SI 1 "nonmemory_operand" "r, 0,r,0, r,Cal")
|
||||
+ (ltu:SI (reg:CC_C CC_REG) (const_int 0)))
|
||||
+ (match_operand:SI 2 "nonmemory_operand" "r,C_0,L,I,Cal,r")))]
|
||||
"register_operand (operands[1], SImode)
|
||||
|| register_operand (operands[2], SImode)"
|
||||
"@
|
||||
- sbc %0,%1,%2
|
||||
- sub.cs %0,%1,1
|
||||
- sbc %0,%1,%2
|
||||
- sbc %0,%1,%2
|
||||
- sbc %0,%1,%2"
|
||||
- ; if we have a bad schedule after sched2, split.
|
||||
- "reload_completed
|
||||
- && !optimize_size && (!TARGET_ARC600_FAMILY)
|
||||
- && arc_scheduling_not_expected ()
|
||||
- && arc_sets_cc_p (prev_nonnote_insn (insn))
|
||||
- /* If next comes a return or other insn that needs a delay slot,
|
||||
- expect the adc to get into the delay slot. */
|
||||
- && next_nonnote_insn (insn)
|
||||
- && !arc_need_delay (next_nonnote_insn (insn))
|
||||
- /* Restore operands before emitting. */
|
||||
- && (extract_insn_cached (insn), 1)"
|
||||
- [(set (match_dup 0) (match_dup 4))
|
||||
- (cond_exec
|
||||
- (ltu (reg:CC_C CC_REG) (const_int 0))
|
||||
- (set (match_dup 0) (plus:SI (match_dup 0) (const_int -1))))]
|
||||
- "operands[4] = simplify_gen_binary (MINUS, SImode, operands[1], operands[2]);"
|
||||
+ sbc\\t%0,%1,%2
|
||||
+ sub.cs\\t%0,%1,1
|
||||
+ sbc\\t%0,%1,%2
|
||||
+ sbc\\t%0,%1,%2
|
||||
+ sbc\\t%0,%1,%2
|
||||
+ sbc\\t%0,%1,%2"
|
||||
[(set_attr "cond" "use")
|
||||
(set_attr "type" "cc_arith")
|
||||
- (set_attr "length" "4,4,4,4,8")])
|
||||
+ (set_attr "length" "4,4,4,4,8,8")])
|
||||
|
||||
(define_insn "sub_f"
|
||||
[(set (reg:CC CC_REG)
|
||||
--
|
||||
2.16.2
|
||||
|
@ -0,0 +1,325 @@
|
||||
From 472472ee0aaccb6389747d6281c34c558bcca7d8 Mon Sep 17 00:00:00 2001
|
||||
From: Romain Naour <romain.naour@gmail.com>
|
||||
Date: Wed, 20 Jan 2021 23:26:29 +0100
|
||||
Subject: [PATCH] Revert "re PR target/92095 (internal error with -O1
|
||||
-mcpu=niagara2 -fPIE)"
|
||||
|
||||
This reverts commit 0a83f1a441d7aaadecb368c237b6ee70bd7b91d6.
|
||||
|
||||
Building the Buildroot defconfig qemu_sparc_ss10_defconfig using
|
||||
gcc 8.4, 9.3 and 10 produce a broken rootfs that trigger illegal
|
||||
instruction messages.
|
||||
|
||||
gcc 8.3, 9.2 are the latest working gcc version.
|
||||
git bisect between gcc 8.4 and 8.4 allowed to identify
|
||||
the commit that introcuce the regression.
|
||||
|
||||
Reverting this patch allowed to produce a working rootfs.
|
||||
|
||||
Signed-off-by: Romain Naour <romain.naour@gmail.com>
|
||||
Cc: Eric Botcazou <ebotcazou@gcc.gnu.org>
|
||||
---
|
||||
gcc/config/sparc/sparc-protos.h | 1 -
|
||||
gcc/config/sparc/sparc.c | 121 +++++++-----------
|
||||
gcc/config/sparc/sparc.md | 5 +-
|
||||
.../gcc.c-torture/compile/20191108-1.c | 14 --
|
||||
gcc/testsuite/gcc.target/sparc/overflow-3.c | 2 +-
|
||||
gcc/testsuite/gcc.target/sparc/overflow-4.c | 2 +-
|
||||
gcc/testsuite/gcc.target/sparc/overflow-5.c | 2 +-
|
||||
7 files changed, 53 insertions(+), 94 deletions(-)
|
||||
delete mode 100644 gcc/testsuite/gcc.c-torture/compile/20191108-1.c
|
||||
|
||||
diff --git a/gcc/config/sparc/sparc-protos.h b/gcc/config/sparc/sparc-protos.h
|
||||
index f525cd7a422..0d9f47af644 100644
|
||||
--- a/gcc/config/sparc/sparc-protos.h
|
||||
+++ b/gcc/config/sparc/sparc-protos.h
|
||||
@@ -69,7 +69,6 @@ extern void sparc_split_reg_mem (rtx, rtx, machine_mode);
|
||||
extern void sparc_split_mem_reg (rtx, rtx, machine_mode);
|
||||
extern int sparc_split_reg_reg_legitimate (rtx, rtx);
|
||||
extern void sparc_split_reg_reg (rtx, rtx, machine_mode);
|
||||
-extern const char *output_load_pcrel_sym (rtx *);
|
||||
extern const char *output_ubranch (rtx, rtx_insn *);
|
||||
extern const char *output_cbranch (rtx, rtx, int, int, int, rtx_insn *);
|
||||
extern const char *output_return (rtx_insn *);
|
||||
diff --git a/gcc/config/sparc/sparc.c b/gcc/config/sparc/sparc.c
|
||||
index aefced85fe1..3ff6f9200f6 100644
|
||||
--- a/gcc/config/sparc/sparc.c
|
||||
+++ b/gcc/config/sparc/sparc.c
|
||||
@@ -4192,6 +4192,13 @@ eligible_for_sibcall_delay (rtx_insn *trial)
|
||||
static bool
|
||||
sparc_cannot_force_const_mem (machine_mode mode, rtx x)
|
||||
{
|
||||
+ /* After IRA has run in PIC mode, it is too late to put anything into the
|
||||
+ constant pool if the PIC register hasn't already been initialized. */
|
||||
+ if ((lra_in_progress || reload_in_progress)
|
||||
+ && flag_pic
|
||||
+ && !crtl->uses_pic_offset_table)
|
||||
+ return true;
|
||||
+
|
||||
switch (GET_CODE (x))
|
||||
{
|
||||
case CONST_INT:
|
||||
@@ -4227,11 +4234,9 @@ sparc_cannot_force_const_mem (machine_mode mode, rtx x)
|
||||
}
|
||||
|
||||
/* Global Offset Table support. */
|
||||
-static GTY(()) rtx got_symbol_rtx = NULL_RTX;
|
||||
-static GTY(()) rtx got_register_rtx = NULL_RTX;
|
||||
static GTY(()) rtx got_helper_rtx = NULL_RTX;
|
||||
-
|
||||
-static GTY(()) bool got_helper_needed = false;
|
||||
+static GTY(()) rtx got_register_rtx = NULL_RTX;
|
||||
+static GTY(()) rtx got_symbol_rtx = NULL_RTX;
|
||||
|
||||
/* Return the SYMBOL_REF for the Global Offset Table. */
|
||||
|
||||
@@ -4244,6 +4249,27 @@ sparc_got (void)
|
||||
return got_symbol_rtx;
|
||||
}
|
||||
|
||||
+#ifdef HAVE_GAS_HIDDEN
|
||||
+# define USE_HIDDEN_LINKONCE 1
|
||||
+#else
|
||||
+# define USE_HIDDEN_LINKONCE 0
|
||||
+#endif
|
||||
+
|
||||
+static void
|
||||
+get_pc_thunk_name (char name[32], unsigned int regno)
|
||||
+{
|
||||
+ const char *reg_name = reg_names[regno];
|
||||
+
|
||||
+ /* Skip the leading '%' as that cannot be used in a
|
||||
+ symbol name. */
|
||||
+ reg_name += 1;
|
||||
+
|
||||
+ if (USE_HIDDEN_LINKONCE)
|
||||
+ sprintf (name, "__sparc_get_pc_thunk.%s", reg_name);
|
||||
+ else
|
||||
+ ASM_GENERATE_INTERNAL_LABEL (name, "LADDPC", regno);
|
||||
+}
|
||||
+
|
||||
/* Wrapper around the load_pcrel_sym{si,di} patterns. */
|
||||
|
||||
static rtx
|
||||
@@ -4263,78 +4289,30 @@ gen_load_pcrel_sym (rtx op0, rtx op1, rtx op2)
|
||||
return insn;
|
||||
}
|
||||
|
||||
-/* Output the load_pcrel_sym{si,di} patterns. */
|
||||
-
|
||||
-const char *
|
||||
-output_load_pcrel_sym (rtx *operands)
|
||||
-{
|
||||
- if (flag_delayed_branch)
|
||||
- {
|
||||
- output_asm_insn ("sethi\t%%hi(%a1-4), %0", operands);
|
||||
- output_asm_insn ("call\t%a2", operands);
|
||||
- output_asm_insn (" add\t%0, %%lo(%a1+4), %0", operands);
|
||||
- }
|
||||
- else
|
||||
- {
|
||||
- output_asm_insn ("sethi\t%%hi(%a1-8), %0", operands);
|
||||
- output_asm_insn ("add\t%0, %%lo(%a1-4), %0", operands);
|
||||
- output_asm_insn ("call\t%a2", operands);
|
||||
- output_asm_insn (" nop", NULL);
|
||||
- }
|
||||
-
|
||||
- if (operands[2] == got_helper_rtx)
|
||||
- got_helper_needed = true;
|
||||
-
|
||||
- return "";
|
||||
-}
|
||||
-
|
||||
-#ifdef HAVE_GAS_HIDDEN
|
||||
-# define USE_HIDDEN_LINKONCE 1
|
||||
-#else
|
||||
-# define USE_HIDDEN_LINKONCE 0
|
||||
-#endif
|
||||
-
|
||||
/* Emit code to load the GOT register. */
|
||||
|
||||
void
|
||||
load_got_register (void)
|
||||
{
|
||||
- rtx insn;
|
||||
+ if (!got_register_rtx)
|
||||
+ got_register_rtx = gen_rtx_REG (Pmode, GLOBAL_OFFSET_TABLE_REGNUM);
|
||||
|
||||
if (TARGET_VXWORKS_RTP)
|
||||
- {
|
||||
- if (!got_register_rtx)
|
||||
- got_register_rtx = pic_offset_table_rtx;
|
||||
-
|
||||
- insn = gen_vxworks_load_got ();
|
||||
- }
|
||||
+ emit_insn (gen_vxworks_load_got ());
|
||||
else
|
||||
{
|
||||
- if (!got_register_rtx)
|
||||
- got_register_rtx = gen_rtx_REG (Pmode, GLOBAL_OFFSET_TABLE_REGNUM);
|
||||
-
|
||||
/* The GOT symbol is subject to a PC-relative relocation so we need a
|
||||
helper function to add the PC value and thus get the final value. */
|
||||
if (!got_helper_rtx)
|
||||
{
|
||||
char name[32];
|
||||
-
|
||||
- /* Skip the leading '%' as that cannot be used in a symbol name. */
|
||||
- if (USE_HIDDEN_LINKONCE)
|
||||
- sprintf (name, "__sparc_get_pc_thunk.%s",
|
||||
- reg_names[REGNO (got_register_rtx)] + 1);
|
||||
- else
|
||||
- ASM_GENERATE_INTERNAL_LABEL (name, "LADDPC",
|
||||
- REGNO (got_register_rtx));
|
||||
-
|
||||
+ get_pc_thunk_name (name, GLOBAL_OFFSET_TABLE_REGNUM);
|
||||
got_helper_rtx = gen_rtx_SYMBOL_REF (Pmode, ggc_strdup (name));
|
||||
}
|
||||
|
||||
- insn
|
||||
- = gen_load_pcrel_sym (got_register_rtx, sparc_got (), got_helper_rtx);
|
||||
+ emit_insn (gen_load_pcrel_sym (got_register_rtx, sparc_got (),
|
||||
+ got_helper_rtx));
|
||||
}
|
||||
-
|
||||
- emit_insn (insn);
|
||||
}
|
||||
|
||||
/* Ensure that we are not using patterns that are not OK with PIC. */
|
||||
@@ -5499,7 +5477,7 @@ save_local_or_in_reg_p (unsigned int regno, int leaf_function)
|
||||
return true;
|
||||
|
||||
/* GOT register (%l7) if needed. */
|
||||
- if (got_register_rtx && regno == REGNO (got_register_rtx))
|
||||
+ if (regno == GLOBAL_OFFSET_TABLE_REGNUM && got_register_rtx)
|
||||
return true;
|
||||
|
||||
/* If the function accesses prior frames, the frame pointer and the return
|
||||
@@ -12542,9 +12520,10 @@ static void
|
||||
sparc_file_end (void)
|
||||
{
|
||||
/* If we need to emit the special GOT helper function, do so now. */
|
||||
- if (got_helper_needed)
|
||||
+ if (got_helper_rtx)
|
||||
{
|
||||
const char *name = XSTR (got_helper_rtx, 0);
|
||||
+ const char *reg_name = reg_names[GLOBAL_OFFSET_TABLE_REGNUM];
|
||||
#ifdef DWARF2_UNWIND_INFO
|
||||
bool do_cfi;
|
||||
#endif
|
||||
@@ -12581,22 +12560,17 @@ sparc_file_end (void)
|
||||
#ifdef DWARF2_UNWIND_INFO
|
||||
do_cfi = dwarf2out_do_cfi_asm ();
|
||||
if (do_cfi)
|
||||
- output_asm_insn (".cfi_startproc", NULL);
|
||||
+ fprintf (asm_out_file, "\t.cfi_startproc\n");
|
||||
#endif
|
||||
if (flag_delayed_branch)
|
||||
- {
|
||||
- output_asm_insn ("jmp\t%%o7+8", NULL);
|
||||
- output_asm_insn (" add\t%%o7, %0, %0", &got_register_rtx);
|
||||
- }
|
||||
+ fprintf (asm_out_file, "\tjmp\t%%o7+8\n\t add\t%%o7, %s, %s\n",
|
||||
+ reg_name, reg_name);
|
||||
else
|
||||
- {
|
||||
- output_asm_insn ("add\t%%o7, %0, %0", &got_register_rtx);
|
||||
- output_asm_insn ("jmp\t%%o7+8", NULL);
|
||||
- output_asm_insn (" nop", NULL);
|
||||
- }
|
||||
+ fprintf (asm_out_file, "\tadd\t%%o7, %s, %s\n\tjmp\t%%o7+8\n\t nop\n",
|
||||
+ reg_name, reg_name);
|
||||
#ifdef DWARF2_UNWIND_INFO
|
||||
if (do_cfi)
|
||||
- output_asm_insn (".cfi_endproc", NULL);
|
||||
+ fprintf (asm_out_file, "\t.cfi_endproc\n");
|
||||
#endif
|
||||
}
|
||||
|
||||
@@ -13091,10 +13065,7 @@ sparc_init_pic_reg (void)
|
||||
edge entry_edge;
|
||||
rtx_insn *seq;
|
||||
|
||||
- /* In PIC mode, we need to always initialize the PIC register if optimization
|
||||
- is enabled, because we are called from IRA and LRA may later force things
|
||||
- to the constant pool for optimization purposes. */
|
||||
- if (!flag_pic || (!crtl->uses_pic_offset_table && !optimize))
|
||||
+ if (!crtl->uses_pic_offset_table)
|
||||
return;
|
||||
|
||||
start_sequence ();
|
||||
diff --git a/gcc/config/sparc/sparc.md b/gcc/config/sparc/sparc.md
|
||||
index 231c0d84778..899804b80ae 100644
|
||||
--- a/gcc/config/sparc/sparc.md
|
||||
+++ b/gcc/config/sparc/sparc.md
|
||||
@@ -1604,7 +1604,10 @@
|
||||
(clobber (reg:P O7_REG))]
|
||||
"REGNO (operands[0]) == INTVAL (operands[3])"
|
||||
{
|
||||
- return output_load_pcrel_sym (operands);
|
||||
+ if (flag_delayed_branch)
|
||||
+ return "sethi\t%%hi(%a1-4), %0\n\tcall\t%a2\n\t add\t%0, %%lo(%a1+4), %0";
|
||||
+ else
|
||||
+ return "sethi\t%%hi(%a1-8), %0\n\tadd\t%0, %%lo(%a1-4), %0\n\tcall\t%a2\n\t nop";
|
||||
}
|
||||
[(set (attr "type") (const_string "multi"))
|
||||
(set (attr "length")
|
||||
diff --git a/gcc/testsuite/gcc.c-torture/compile/20191108-1.c b/gcc/testsuite/gcc.c-torture/compile/20191108-1.c
|
||||
deleted file mode 100644
|
||||
index 7929751bb06..00000000000
|
||||
--- a/gcc/testsuite/gcc.c-torture/compile/20191108-1.c
|
||||
+++ /dev/null
|
||||
@@ -1,14 +0,0 @@
|
||||
-/* PR target/92095 */
|
||||
-/* Testcase by Sergei Trofimovich <slyfox@inbox.ru> */
|
||||
-
|
||||
-typedef union {
|
||||
- double a;
|
||||
- int b[2];
|
||||
-} c;
|
||||
-
|
||||
-double d(int e)
|
||||
-{
|
||||
- c f;
|
||||
- (&f)->b[0] = 15728640;
|
||||
- return e ? -(&f)->a : (&f)->a;
|
||||
-}
|
||||
diff --git a/gcc/testsuite/gcc.target/sparc/overflow-3.c b/gcc/testsuite/gcc.target/sparc/overflow-3.c
|
||||
index 52d6ab2b688..86dddfb09e6 100644
|
||||
--- a/gcc/testsuite/gcc.target/sparc/overflow-3.c
|
||||
+++ b/gcc/testsuite/gcc.target/sparc/overflow-3.c
|
||||
@@ -1,6 +1,6 @@
|
||||
/* { dg-do compile } */
|
||||
/* { dg-require-effective-target lp64 } */
|
||||
-/* { dg-options "-O -fno-pie" } */
|
||||
+/* { dg-options "-O" } */
|
||||
|
||||
#include <stdbool.h>
|
||||
#include <stdint.h>
|
||||
diff --git a/gcc/testsuite/gcc.target/sparc/overflow-4.c b/gcc/testsuite/gcc.target/sparc/overflow-4.c
|
||||
index c6121b958c3..019feee335c 100644
|
||||
--- a/gcc/testsuite/gcc.target/sparc/overflow-4.c
|
||||
+++ b/gcc/testsuite/gcc.target/sparc/overflow-4.c
|
||||
@@ -1,6 +1,6 @@
|
||||
/* { dg-do compile } */
|
||||
/* { dg-require-effective-target lp64 } */
|
||||
-/* { dg-options "-O -fno-pie -mno-vis3 -mno-vis4" } */
|
||||
+/* { dg-options "-O -mno-vis3 -mno-vis4" } */
|
||||
|
||||
#include <stdbool.h>
|
||||
#include <stdint.h>
|
||||
diff --git a/gcc/testsuite/gcc.target/sparc/overflow-5.c b/gcc/testsuite/gcc.target/sparc/overflow-5.c
|
||||
index f00283f6e7b..67d4ac38095 100644
|
||||
--- a/gcc/testsuite/gcc.target/sparc/overflow-5.c
|
||||
+++ b/gcc/testsuite/gcc.target/sparc/overflow-5.c
|
||||
@@ -1,6 +1,6 @@
|
||||
/* { dg-do compile } */
|
||||
/* { dg-require-effective-target lp64 } */
|
||||
-/* { dg-options "-O -fno-pie -mvis3" } */
|
||||
+/* { dg-options "-O -mvis3" } */
|
||||
|
||||
#include <stdbool.h>
|
||||
#include <stdint.h>
|
||||
--
|
||||
2.25.4
|
||||
|
@ -0,0 +1,322 @@
|
||||
From bb9b71752267444b4360442b89129bfc0ae938d3 Mon Sep 17 00:00:00 2001
|
||||
From: Romain Naour <romain.naour@gmail.com>
|
||||
Date: Wed, 20 Jan 2021 23:06:07 +0100
|
||||
Subject: [PATCH] Revert "re PR target/92095 (internal error with -O1
|
||||
-mcpu=niagara2 -fPIE)"
|
||||
|
||||
This reverts commit 3fcce773f0f914c0499b130c6e9efa0e45ee54a0.
|
||||
|
||||
Building the Buildroot defconfig qemu_sparc_ss10_defconfig using
|
||||
gcc 8.4, 9.3 and 10 produce a broken rootfs that trigger illegal
|
||||
instruction messages.
|
||||
|
||||
gcc 8.3, 9.2 are the latest working gcc version.
|
||||
git bisect between gcc 8.4 and 8.4 allowed to identify
|
||||
the commit that introcuce the regression.
|
||||
|
||||
Reverting this patch allowed to produce a working rootfs.
|
||||
|
||||
Signed-off-by: Romain Naour <romain.naour@gmail.com>
|
||||
Cc: Eric Botcazou <ebotcazou@gcc.gnu.org>
|
||||
---
|
||||
gcc/config/sparc/sparc-protos.h | 1 -
|
||||
gcc/config/sparc/sparc.c | 121 +++++++-----------
|
||||
gcc/config/sparc/sparc.md | 5 +-
|
||||
.../gcc.c-torture/compile/20191108-1.c | 14 --
|
||||
gcc/testsuite/gcc.target/sparc/overflow-3.c | 2 +-
|
||||
gcc/testsuite/gcc.target/sparc/overflow-4.c | 2 +-
|
||||
gcc/testsuite/gcc.target/sparc/overflow-5.c | 2 +-
|
||||
7 files changed, 53 insertions(+), 94 deletions(-)
|
||||
delete mode 100644 gcc/testsuite/gcc.c-torture/compile/20191108-1.c
|
||||
|
||||
diff --git a/gcc/config/sparc/sparc-protos.h b/gcc/config/sparc/sparc-protos.h
|
||||
index b3f73c2f2bf..71a067e871c 100644
|
||||
--- a/gcc/config/sparc/sparc-protos.h
|
||||
+++ b/gcc/config/sparc/sparc-protos.h
|
||||
@@ -69,7 +69,6 @@ extern void sparc_split_reg_mem (rtx, rtx, machine_mode);
|
||||
extern void sparc_split_mem_reg (rtx, rtx, machine_mode);
|
||||
extern int sparc_split_reg_reg_legitimate (rtx, rtx);
|
||||
extern void sparc_split_reg_reg (rtx, rtx, machine_mode);
|
||||
-extern const char *output_load_pcrel_sym (rtx *);
|
||||
extern const char *output_ubranch (rtx, rtx_insn *);
|
||||
extern const char *output_cbranch (rtx, rtx, int, int, int, rtx_insn *);
|
||||
extern const char *output_return (rtx_insn *);
|
||||
diff --git a/gcc/config/sparc/sparc.c b/gcc/config/sparc/sparc.c
|
||||
index 73032d33596..db1b428db90 100644
|
||||
--- a/gcc/config/sparc/sparc.c
|
||||
+++ b/gcc/config/sparc/sparc.c
|
||||
@@ -4200,6 +4200,13 @@ eligible_for_sibcall_delay (rtx_insn *trial)
|
||||
static bool
|
||||
sparc_cannot_force_const_mem (machine_mode mode, rtx x)
|
||||
{
|
||||
+ /* After IRA has run in PIC mode, it is too late to put anything into the
|
||||
+ constant pool if the PIC register hasn't already been initialized. */
|
||||
+ if ((lra_in_progress || reload_in_progress)
|
||||
+ && flag_pic
|
||||
+ && !crtl->uses_pic_offset_table)
|
||||
+ return true;
|
||||
+
|
||||
switch (GET_CODE (x))
|
||||
{
|
||||
case CONST_INT:
|
||||
@@ -4235,11 +4242,9 @@ sparc_cannot_force_const_mem (machine_mode mode, rtx x)
|
||||
}
|
||||
|
||||
/* Global Offset Table support. */
|
||||
-static GTY(()) rtx got_symbol_rtx = NULL_RTX;
|
||||
-static GTY(()) rtx got_register_rtx = NULL_RTX;
|
||||
static GTY(()) rtx got_helper_rtx = NULL_RTX;
|
||||
-
|
||||
-static GTY(()) bool got_helper_needed = false;
|
||||
+static GTY(()) rtx got_register_rtx = NULL_RTX;
|
||||
+static GTY(()) rtx got_symbol_rtx = NULL_RTX;
|
||||
|
||||
/* Return the SYMBOL_REF for the Global Offset Table. */
|
||||
|
||||
@@ -4252,6 +4257,27 @@ sparc_got (void)
|
||||
return got_symbol_rtx;
|
||||
}
|
||||
|
||||
+#ifdef HAVE_GAS_HIDDEN
|
||||
+# define USE_HIDDEN_LINKONCE 1
|
||||
+#else
|
||||
+# define USE_HIDDEN_LINKONCE 0
|
||||
+#endif
|
||||
+
|
||||
+static void
|
||||
+get_pc_thunk_name (char name[32], unsigned int regno)
|
||||
+{
|
||||
+ const char *reg_name = reg_names[regno];
|
||||
+
|
||||
+ /* Skip the leading '%' as that cannot be used in a
|
||||
+ symbol name. */
|
||||
+ reg_name += 1;
|
||||
+
|
||||
+ if (USE_HIDDEN_LINKONCE)
|
||||
+ sprintf (name, "__sparc_get_pc_thunk.%s", reg_name);
|
||||
+ else
|
||||
+ ASM_GENERATE_INTERNAL_LABEL (name, "LADDPC", regno);
|
||||
+}
|
||||
+
|
||||
/* Wrapper around the load_pcrel_sym{si,di} patterns. */
|
||||
|
||||
static rtx
|
||||
@@ -4271,78 +4297,30 @@ gen_load_pcrel_sym (rtx op0, rtx op1, rtx op2)
|
||||
return insn;
|
||||
}
|
||||
|
||||
-/* Output the load_pcrel_sym{si,di} patterns. */
|
||||
-
|
||||
-const char *
|
||||
-output_load_pcrel_sym (rtx *operands)
|
||||
-{
|
||||
- if (flag_delayed_branch)
|
||||
- {
|
||||
- output_asm_insn ("sethi\t%%hi(%a1-4), %0", operands);
|
||||
- output_asm_insn ("call\t%a2", operands);
|
||||
- output_asm_insn (" add\t%0, %%lo(%a1+4), %0", operands);
|
||||
- }
|
||||
- else
|
||||
- {
|
||||
- output_asm_insn ("sethi\t%%hi(%a1-8), %0", operands);
|
||||
- output_asm_insn ("add\t%0, %%lo(%a1-4), %0", operands);
|
||||
- output_asm_insn ("call\t%a2", operands);
|
||||
- output_asm_insn (" nop", NULL);
|
||||
- }
|
||||
-
|
||||
- if (operands[2] == got_helper_rtx)
|
||||
- got_helper_needed = true;
|
||||
-
|
||||
- return "";
|
||||
-}
|
||||
-
|
||||
-#ifdef HAVE_GAS_HIDDEN
|
||||
-# define USE_HIDDEN_LINKONCE 1
|
||||
-#else
|
||||
-# define USE_HIDDEN_LINKONCE 0
|
||||
-#endif
|
||||
-
|
||||
/* Emit code to load the GOT register. */
|
||||
|
||||
void
|
||||
load_got_register (void)
|
||||
{
|
||||
- rtx insn;
|
||||
+ if (!got_register_rtx)
|
||||
+ got_register_rtx = gen_rtx_REG (Pmode, GLOBAL_OFFSET_TABLE_REGNUM);
|
||||
|
||||
if (TARGET_VXWORKS_RTP)
|
||||
- {
|
||||
- if (!got_register_rtx)
|
||||
- got_register_rtx = pic_offset_table_rtx;
|
||||
-
|
||||
- insn = gen_vxworks_load_got ();
|
||||
- }
|
||||
+ emit_insn (gen_vxworks_load_got ());
|
||||
else
|
||||
{
|
||||
- if (!got_register_rtx)
|
||||
- got_register_rtx = gen_rtx_REG (Pmode, GLOBAL_OFFSET_TABLE_REGNUM);
|
||||
-
|
||||
/* The GOT symbol is subject to a PC-relative relocation so we need a
|
||||
helper function to add the PC value and thus get the final value. */
|
||||
if (!got_helper_rtx)
|
||||
{
|
||||
char name[32];
|
||||
-
|
||||
- /* Skip the leading '%' as that cannot be used in a symbol name. */
|
||||
- if (USE_HIDDEN_LINKONCE)
|
||||
- sprintf (name, "__sparc_get_pc_thunk.%s",
|
||||
- reg_names[REGNO (got_register_rtx)] + 1);
|
||||
- else
|
||||
- ASM_GENERATE_INTERNAL_LABEL (name, "LADDPC",
|
||||
- REGNO (got_register_rtx));
|
||||
-
|
||||
+ get_pc_thunk_name (name, GLOBAL_OFFSET_TABLE_REGNUM);
|
||||
got_helper_rtx = gen_rtx_SYMBOL_REF (Pmode, ggc_strdup (name));
|
||||
}
|
||||
|
||||
- insn
|
||||
- = gen_load_pcrel_sym (got_register_rtx, sparc_got (), got_helper_rtx);
|
||||
+ emit_insn (gen_load_pcrel_sym (got_register_rtx, sparc_got (),
|
||||
+ got_helper_rtx));
|
||||
}
|
||||
-
|
||||
- emit_insn (insn);
|
||||
}
|
||||
|
||||
/* Ensure that we are not using patterns that are not OK with PIC. */
|
||||
@@ -5494,7 +5472,7 @@ save_local_or_in_reg_p (unsigned int regno, int leaf_function)
|
||||
return true;
|
||||
|
||||
/* GOT register (%l7) if needed. */
|
||||
- if (got_register_rtx && regno == REGNO (got_register_rtx))
|
||||
+ if (regno == GLOBAL_OFFSET_TABLE_REGNUM && got_register_rtx)
|
||||
return true;
|
||||
|
||||
/* If the function accesses prior frames, the frame pointer and the return
|
||||
@@ -12475,9 +12453,10 @@ static void
|
||||
sparc_file_end (void)
|
||||
{
|
||||
/* If we need to emit the special GOT helper function, do so now. */
|
||||
- if (got_helper_needed)
|
||||
+ if (got_helper_rtx)
|
||||
{
|
||||
const char *name = XSTR (got_helper_rtx, 0);
|
||||
+ const char *reg_name = reg_names[GLOBAL_OFFSET_TABLE_REGNUM];
|
||||
#ifdef DWARF2_UNWIND_INFO
|
||||
bool do_cfi;
|
||||
#endif
|
||||
@@ -12514,22 +12493,17 @@ sparc_file_end (void)
|
||||
#ifdef DWARF2_UNWIND_INFO
|
||||
do_cfi = dwarf2out_do_cfi_asm ();
|
||||
if (do_cfi)
|
||||
- output_asm_insn (".cfi_startproc", NULL);
|
||||
+ fprintf (asm_out_file, "\t.cfi_startproc\n");
|
||||
#endif
|
||||
if (flag_delayed_branch)
|
||||
- {
|
||||
- output_asm_insn ("jmp\t%%o7+8", NULL);
|
||||
- output_asm_insn (" add\t%%o7, %0, %0", &got_register_rtx);
|
||||
- }
|
||||
+ fprintf (asm_out_file, "\tjmp\t%%o7+8\n\t add\t%%o7, %s, %s\n",
|
||||
+ reg_name, reg_name);
|
||||
else
|
||||
- {
|
||||
- output_asm_insn ("add\t%%o7, %0, %0", &got_register_rtx);
|
||||
- output_asm_insn ("jmp\t%%o7+8", NULL);
|
||||
- output_asm_insn (" nop", NULL);
|
||||
- }
|
||||
+ fprintf (asm_out_file, "\tadd\t%%o7, %s, %s\n\tjmp\t%%o7+8\n\t nop\n",
|
||||
+ reg_name, reg_name);
|
||||
#ifdef DWARF2_UNWIND_INFO
|
||||
if (do_cfi)
|
||||
- output_asm_insn (".cfi_endproc", NULL);
|
||||
+ fprintf (asm_out_file, "\t.cfi_endproc\n");
|
||||
#endif
|
||||
}
|
||||
|
||||
@@ -13035,10 +13009,7 @@ sparc_init_pic_reg (void)
|
||||
edge entry_edge;
|
||||
rtx_insn *seq;
|
||||
|
||||
- /* In PIC mode, we need to always initialize the PIC register if optimization
|
||||
- is enabled, because we are called from IRA and LRA may later force things
|
||||
- to the constant pool for optimization purposes. */
|
||||
- if (!flag_pic || (!crtl->uses_pic_offset_table && !optimize))
|
||||
+ if (!crtl->uses_pic_offset_table)
|
||||
return;
|
||||
|
||||
start_sequence ();
|
||||
diff --git a/gcc/config/sparc/sparc.md b/gcc/config/sparc/sparc.md
|
||||
index 468e2cc5d3b..25134bd1148 100644
|
||||
--- a/gcc/config/sparc/sparc.md
|
||||
+++ b/gcc/config/sparc/sparc.md
|
||||
@@ -1601,7 +1601,10 @@
|
||||
(clobber (reg:P O7_REG))]
|
||||
"REGNO (operands[0]) == INTVAL (operands[3])"
|
||||
{
|
||||
- return output_load_pcrel_sym (operands);
|
||||
+ if (flag_delayed_branch)
|
||||
+ return "sethi\t%%hi(%a1-4), %0\n\tcall\t%a2\n\t add\t%0, %%lo(%a1+4), %0";
|
||||
+ else
|
||||
+ return "sethi\t%%hi(%a1-8), %0\n\tadd\t%0, %%lo(%a1-4), %0\n\tcall\t%a2\n\t nop";
|
||||
}
|
||||
[(set (attr "type") (const_string "multi"))
|
||||
(set (attr "length")
|
||||
diff --git a/gcc/testsuite/gcc.c-torture/compile/20191108-1.c b/gcc/testsuite/gcc.c-torture/compile/20191108-1.c
|
||||
deleted file mode 100644
|
||||
index 7929751bb06..00000000000
|
||||
--- a/gcc/testsuite/gcc.c-torture/compile/20191108-1.c
|
||||
+++ /dev/null
|
||||
@@ -1,14 +0,0 @@
|
||||
-/* PR target/92095 */
|
||||
-/* Testcase by Sergei Trofimovich <slyfox@inbox.ru> */
|
||||
-
|
||||
-typedef union {
|
||||
- double a;
|
||||
- int b[2];
|
||||
-} c;
|
||||
-
|
||||
-double d(int e)
|
||||
-{
|
||||
- c f;
|
||||
- (&f)->b[0] = 15728640;
|
||||
- return e ? -(&f)->a : (&f)->a;
|
||||
-}
|
||||
diff --git a/gcc/testsuite/gcc.target/sparc/overflow-3.c b/gcc/testsuite/gcc.target/sparc/overflow-3.c
|
||||
index 18253bb6e5e..8cb24f52f7b 100644
|
||||
--- a/gcc/testsuite/gcc.target/sparc/overflow-3.c
|
||||
+++ b/gcc/testsuite/gcc.target/sparc/overflow-3.c
|
||||
@@ -1,5 +1,5 @@
|
||||
/* { dg-do compile } */
|
||||
-/* { dg-options "-O -fno-pie" } */
|
||||
+/* { dg-options "-O" } */
|
||||
/* { dg-require-effective-target lp64 } */
|
||||
|
||||
#include <stdbool.h>
|
||||
diff --git a/gcc/testsuite/gcc.target/sparc/overflow-4.c b/gcc/testsuite/gcc.target/sparc/overflow-4.c
|
||||
index fb30877efb9..868edea2b9e 100644
|
||||
--- a/gcc/testsuite/gcc.target/sparc/overflow-4.c
|
||||
+++ b/gcc/testsuite/gcc.target/sparc/overflow-4.c
|
||||
@@ -1,5 +1,5 @@
|
||||
/* { dg-do compile } */
|
||||
-/* { dg-options "-O -fno-pie -mno-vis3" } */
|
||||
+/* { dg-options "-O -mno-vis3" } */
|
||||
/* { dg-require-effective-target lp64 } */
|
||||
|
||||
#include <stdbool.h>
|
||||
diff --git a/gcc/testsuite/gcc.target/sparc/overflow-5.c b/gcc/testsuite/gcc.target/sparc/overflow-5.c
|
||||
index 509d957715d..501ce04f7a1 100644
|
||||
--- a/gcc/testsuite/gcc.target/sparc/overflow-5.c
|
||||
+++ b/gcc/testsuite/gcc.target/sparc/overflow-5.c
|
||||
@@ -1,5 +1,5 @@
|
||||
/* { dg-do compile } */
|
||||
-/* { dg-options "-O -fno-pie -mvis3" } */
|
||||
+/* { dg-options "-O -mvis3" } */
|
||||
/* { dg-require-effective-target lp64 } */
|
||||
|
||||
#include <stdbool.h>
|
||||
--
|
||||
2.25.4
|
||||
|
@ -0,0 +1,325 @@
|
||||
From 0d7fe4806d9dce76367c193d5199df6a2b98009f Mon Sep 17 00:00:00 2001
|
||||
From: Romain Naour <romain.naour@gmail.com>
|
||||
Date: Wed, 20 Jan 2021 23:22:16 +0100
|
||||
Subject: [PATCH] Revert "re PR target/92095 (internal error with -O1
|
||||
-mcpu=niagara2 -fPIE)"
|
||||
|
||||
This reverts commit 6bf2990842388101897b6f465524cbc295ee8cf9.
|
||||
|
||||
Building the Buildroot defconfig qemu_sparc_ss10_defconfig using
|
||||
gcc 8.4, 9.3 and 10 produce a broken rootfs that trigger illegal
|
||||
instruction messages.
|
||||
|
||||
gcc 8.3, 9.2 are the latest working gcc version.
|
||||
git bisect between gcc 8.4 and 8.4 allowed to identify
|
||||
the commit that introcuce the regression.
|
||||
|
||||
Reverting this patch allowed to produce a working rootfs.
|
||||
|
||||
Signed-off-by: Romain Naour <romain.naour@gmail.com>
|
||||
Cc: Eric Botcazou <ebotcazou@gcc.gnu.org>
|
||||
---
|
||||
gcc/config/sparc/sparc-protos.h | 1 -
|
||||
gcc/config/sparc/sparc.c | 121 +++++++-----------
|
||||
gcc/config/sparc/sparc.md | 5 +-
|
||||
.../gcc.c-torture/compile/20191108-1.c | 14 --
|
||||
gcc/testsuite/gcc.target/sparc/overflow-3.c | 2 +-
|
||||
gcc/testsuite/gcc.target/sparc/overflow-4.c | 2 +-
|
||||
gcc/testsuite/gcc.target/sparc/overflow-5.c | 2 +-
|
||||
7 files changed, 53 insertions(+), 94 deletions(-)
|
||||
delete mode 100644 gcc/testsuite/gcc.c-torture/compile/20191108-1.c
|
||||
|
||||
diff --git a/gcc/config/sparc/sparc-protos.h b/gcc/config/sparc/sparc-protos.h
|
||||
index ef1adb69ede..9bdae7b9faa 100644
|
||||
--- a/gcc/config/sparc/sparc-protos.h
|
||||
+++ b/gcc/config/sparc/sparc-protos.h
|
||||
@@ -69,7 +69,6 @@ extern void sparc_split_reg_mem (rtx, rtx, machine_mode);
|
||||
extern void sparc_split_mem_reg (rtx, rtx, machine_mode);
|
||||
extern int sparc_split_reg_reg_legitimate (rtx, rtx);
|
||||
extern void sparc_split_reg_reg (rtx, rtx, machine_mode);
|
||||
-extern const char *output_load_pcrel_sym (rtx *);
|
||||
extern const char *output_ubranch (rtx, rtx_insn *);
|
||||
extern const char *output_cbranch (rtx, rtx, int, int, int, rtx_insn *);
|
||||
extern const char *output_return (rtx_insn *);
|
||||
diff --git a/gcc/config/sparc/sparc.c b/gcc/config/sparc/sparc.c
|
||||
index a993aab7639..2974d174e93 100644
|
||||
--- a/gcc/config/sparc/sparc.c
|
||||
+++ b/gcc/config/sparc/sparc.c
|
||||
@@ -4205,6 +4205,13 @@ eligible_for_sibcall_delay (rtx_insn *trial)
|
||||
static bool
|
||||
sparc_cannot_force_const_mem (machine_mode mode, rtx x)
|
||||
{
|
||||
+ /* After IRA has run in PIC mode, it is too late to put anything into the
|
||||
+ constant pool if the PIC register hasn't already been initialized. */
|
||||
+ if ((lra_in_progress || reload_in_progress)
|
||||
+ && flag_pic
|
||||
+ && !crtl->uses_pic_offset_table)
|
||||
+ return true;
|
||||
+
|
||||
switch (GET_CODE (x))
|
||||
{
|
||||
case CONST_INT:
|
||||
@@ -4240,11 +4247,9 @@ sparc_cannot_force_const_mem (machine_mode mode, rtx x)
|
||||
}
|
||||
|
||||
/* Global Offset Table support. */
|
||||
-static GTY(()) rtx got_symbol_rtx = NULL_RTX;
|
||||
-static GTY(()) rtx got_register_rtx = NULL_RTX;
|
||||
static GTY(()) rtx got_helper_rtx = NULL_RTX;
|
||||
-
|
||||
-static GTY(()) bool got_helper_needed = false;
|
||||
+static GTY(()) rtx got_register_rtx = NULL_RTX;
|
||||
+static GTY(()) rtx got_symbol_rtx = NULL_RTX;
|
||||
|
||||
/* Return the SYMBOL_REF for the Global Offset Table. */
|
||||
|
||||
@@ -4257,6 +4262,27 @@ sparc_got (void)
|
||||
return got_symbol_rtx;
|
||||
}
|
||||
|
||||
+#ifdef HAVE_GAS_HIDDEN
|
||||
+# define USE_HIDDEN_LINKONCE 1
|
||||
+#else
|
||||
+# define USE_HIDDEN_LINKONCE 0
|
||||
+#endif
|
||||
+
|
||||
+static void
|
||||
+get_pc_thunk_name (char name[32], unsigned int regno)
|
||||
+{
|
||||
+ const char *reg_name = reg_names[regno];
|
||||
+
|
||||
+ /* Skip the leading '%' as that cannot be used in a
|
||||
+ symbol name. */
|
||||
+ reg_name += 1;
|
||||
+
|
||||
+ if (USE_HIDDEN_LINKONCE)
|
||||
+ sprintf (name, "__sparc_get_pc_thunk.%s", reg_name);
|
||||
+ else
|
||||
+ ASM_GENERATE_INTERNAL_LABEL (name, "LADDPC", regno);
|
||||
+}
|
||||
+
|
||||
/* Wrapper around the load_pcrel_sym{si,di} patterns. */
|
||||
|
||||
static rtx
|
||||
@@ -4276,78 +4302,30 @@ gen_load_pcrel_sym (rtx op0, rtx op1, rtx op2)
|
||||
return insn;
|
||||
}
|
||||
|
||||
-/* Output the load_pcrel_sym{si,di} patterns. */
|
||||
-
|
||||
-const char *
|
||||
-output_load_pcrel_sym (rtx *operands)
|
||||
-{
|
||||
- if (flag_delayed_branch)
|
||||
- {
|
||||
- output_asm_insn ("sethi\t%%hi(%a1-4), %0", operands);
|
||||
- output_asm_insn ("call\t%a2", operands);
|
||||
- output_asm_insn (" add\t%0, %%lo(%a1+4), %0", operands);
|
||||
- }
|
||||
- else
|
||||
- {
|
||||
- output_asm_insn ("sethi\t%%hi(%a1-8), %0", operands);
|
||||
- output_asm_insn ("add\t%0, %%lo(%a1-4), %0", operands);
|
||||
- output_asm_insn ("call\t%a2", operands);
|
||||
- output_asm_insn (" nop", NULL);
|
||||
- }
|
||||
-
|
||||
- if (operands[2] == got_helper_rtx)
|
||||
- got_helper_needed = true;
|
||||
-
|
||||
- return "";
|
||||
-}
|
||||
-
|
||||
-#ifdef HAVE_GAS_HIDDEN
|
||||
-# define USE_HIDDEN_LINKONCE 1
|
||||
-#else
|
||||
-# define USE_HIDDEN_LINKONCE 0
|
||||
-#endif
|
||||
-
|
||||
/* Emit code to load the GOT register. */
|
||||
|
||||
void
|
||||
load_got_register (void)
|
||||
{
|
||||
- rtx insn;
|
||||
+ if (!got_register_rtx)
|
||||
+ got_register_rtx = gen_rtx_REG (Pmode, GLOBAL_OFFSET_TABLE_REGNUM);
|
||||
|
||||
if (TARGET_VXWORKS_RTP)
|
||||
- {
|
||||
- if (!got_register_rtx)
|
||||
- got_register_rtx = pic_offset_table_rtx;
|
||||
-
|
||||
- insn = gen_vxworks_load_got ();
|
||||
- }
|
||||
+ emit_insn (gen_vxworks_load_got ());
|
||||
else
|
||||
{
|
||||
- if (!got_register_rtx)
|
||||
- got_register_rtx = gen_rtx_REG (Pmode, GLOBAL_OFFSET_TABLE_REGNUM);
|
||||
-
|
||||
/* The GOT symbol is subject to a PC-relative relocation so we need a
|
||||
helper function to add the PC value and thus get the final value. */
|
||||
if (!got_helper_rtx)
|
||||
{
|
||||
char name[32];
|
||||
-
|
||||
- /* Skip the leading '%' as that cannot be used in a symbol name. */
|
||||
- if (USE_HIDDEN_LINKONCE)
|
||||
- sprintf (name, "__sparc_get_pc_thunk.%s",
|
||||
- reg_names[REGNO (got_register_rtx)] + 1);
|
||||
- else
|
||||
- ASM_GENERATE_INTERNAL_LABEL (name, "LADDPC",
|
||||
- REGNO (got_register_rtx));
|
||||
-
|
||||
+ get_pc_thunk_name (name, GLOBAL_OFFSET_TABLE_REGNUM);
|
||||
got_helper_rtx = gen_rtx_SYMBOL_REF (Pmode, ggc_strdup (name));
|
||||
}
|
||||
|
||||
- insn
|
||||
- = gen_load_pcrel_sym (got_register_rtx, sparc_got (), got_helper_rtx);
|
||||
+ emit_insn (gen_load_pcrel_sym (got_register_rtx, sparc_got (),
|
||||
+ got_helper_rtx));
|
||||
}
|
||||
-
|
||||
- emit_insn (insn);
|
||||
}
|
||||
|
||||
/* Ensure that we are not using patterns that are not OK with PIC. */
|
||||
@@ -5512,7 +5490,7 @@ save_local_or_in_reg_p (unsigned int regno, int leaf_function)
|
||||
return true;
|
||||
|
||||
/* GOT register (%l7) if needed. */
|
||||
- if (got_register_rtx && regno == REGNO (got_register_rtx))
|
||||
+ if (regno == GLOBAL_OFFSET_TABLE_REGNUM && got_register_rtx)
|
||||
return true;
|
||||
|
||||
/* If the function accesses prior frames, the frame pointer and the return
|
||||
@@ -12555,9 +12533,10 @@ static void
|
||||
sparc_file_end (void)
|
||||
{
|
||||
/* If we need to emit the special GOT helper function, do so now. */
|
||||
- if (got_helper_needed)
|
||||
+ if (got_helper_rtx)
|
||||
{
|
||||
const char *name = XSTR (got_helper_rtx, 0);
|
||||
+ const char *reg_name = reg_names[GLOBAL_OFFSET_TABLE_REGNUM];
|
||||
#ifdef DWARF2_UNWIND_INFO
|
||||
bool do_cfi;
|
||||
#endif
|
||||
@@ -12594,22 +12573,17 @@ sparc_file_end (void)
|
||||
#ifdef DWARF2_UNWIND_INFO
|
||||
do_cfi = dwarf2out_do_cfi_asm ();
|
||||
if (do_cfi)
|
||||
- output_asm_insn (".cfi_startproc", NULL);
|
||||
+ fprintf (asm_out_file, "\t.cfi_startproc\n");
|
||||
#endif
|
||||
if (flag_delayed_branch)
|
||||
- {
|
||||
- output_asm_insn ("jmp\t%%o7+8", NULL);
|
||||
- output_asm_insn (" add\t%%o7, %0, %0", &got_register_rtx);
|
||||
- }
|
||||
+ fprintf (asm_out_file, "\tjmp\t%%o7+8\n\t add\t%%o7, %s, %s\n",
|
||||
+ reg_name, reg_name);
|
||||
else
|
||||
- {
|
||||
- output_asm_insn ("add\t%%o7, %0, %0", &got_register_rtx);
|
||||
- output_asm_insn ("jmp\t%%o7+8", NULL);
|
||||
- output_asm_insn (" nop", NULL);
|
||||
- }
|
||||
+ fprintf (asm_out_file, "\tadd\t%%o7, %s, %s\n\tjmp\t%%o7+8\n\t nop\n",
|
||||
+ reg_name, reg_name);
|
||||
#ifdef DWARF2_UNWIND_INFO
|
||||
if (do_cfi)
|
||||
- output_asm_insn (".cfi_endproc", NULL);
|
||||
+ fprintf (asm_out_file, "\t.cfi_endproc\n");
|
||||
#endif
|
||||
}
|
||||
|
||||
@@ -13115,10 +13089,7 @@ sparc_init_pic_reg (void)
|
||||
edge entry_edge;
|
||||
rtx_insn *seq;
|
||||
|
||||
- /* In PIC mode, we need to always initialize the PIC register if optimization
|
||||
- is enabled, because we are called from IRA and LRA may later force things
|
||||
- to the constant pool for optimization purposes. */
|
||||
- if (!flag_pic || (!crtl->uses_pic_offset_table && !optimize))
|
||||
+ if (!crtl->uses_pic_offset_table)
|
||||
return;
|
||||
|
||||
start_sequence ();
|
||||
diff --git a/gcc/config/sparc/sparc.md b/gcc/config/sparc/sparc.md
|
||||
index 0a6e27ffa83..7af62d599b9 100644
|
||||
--- a/gcc/config/sparc/sparc.md
|
||||
+++ b/gcc/config/sparc/sparc.md
|
||||
@@ -1604,7 +1604,10 @@
|
||||
(clobber (reg:P O7_REG))]
|
||||
"REGNO (operands[0]) == INTVAL (operands[3])"
|
||||
{
|
||||
- return output_load_pcrel_sym (operands);
|
||||
+ if (flag_delayed_branch)
|
||||
+ return "sethi\t%%hi(%a1-4), %0\n\tcall\t%a2\n\t add\t%0, %%lo(%a1+4), %0";
|
||||
+ else
|
||||
+ return "sethi\t%%hi(%a1-8), %0\n\tadd\t%0, %%lo(%a1-4), %0\n\tcall\t%a2\n\t nop";
|
||||
}
|
||||
[(set (attr "type") (const_string "multi"))
|
||||
(set (attr "length")
|
||||
diff --git a/gcc/testsuite/gcc.c-torture/compile/20191108-1.c b/gcc/testsuite/gcc.c-torture/compile/20191108-1.c
|
||||
deleted file mode 100644
|
||||
index 7929751bb06..00000000000
|
||||
--- a/gcc/testsuite/gcc.c-torture/compile/20191108-1.c
|
||||
+++ /dev/null
|
||||
@@ -1,14 +0,0 @@
|
||||
-/* PR target/92095 */
|
||||
-/* Testcase by Sergei Trofimovich <slyfox@inbox.ru> */
|
||||
-
|
||||
-typedef union {
|
||||
- double a;
|
||||
- int b[2];
|
||||
-} c;
|
||||
-
|
||||
-double d(int e)
|
||||
-{
|
||||
- c f;
|
||||
- (&f)->b[0] = 15728640;
|
||||
- return e ? -(&f)->a : (&f)->a;
|
||||
-}
|
||||
diff --git a/gcc/testsuite/gcc.target/sparc/overflow-3.c b/gcc/testsuite/gcc.target/sparc/overflow-3.c
|
||||
index 52d6ab2b688..86dddfb09e6 100644
|
||||
--- a/gcc/testsuite/gcc.target/sparc/overflow-3.c
|
||||
+++ b/gcc/testsuite/gcc.target/sparc/overflow-3.c
|
||||
@@ -1,6 +1,6 @@
|
||||
/* { dg-do compile } */
|
||||
/* { dg-require-effective-target lp64 } */
|
||||
-/* { dg-options "-O -fno-pie" } */
|
||||
+/* { dg-options "-O" } */
|
||||
|
||||
#include <stdbool.h>
|
||||
#include <stdint.h>
|
||||
diff --git a/gcc/testsuite/gcc.target/sparc/overflow-4.c b/gcc/testsuite/gcc.target/sparc/overflow-4.c
|
||||
index c6121b958c3..019feee335c 100644
|
||||
--- a/gcc/testsuite/gcc.target/sparc/overflow-4.c
|
||||
+++ b/gcc/testsuite/gcc.target/sparc/overflow-4.c
|
||||
@@ -1,6 +1,6 @@
|
||||
/* { dg-do compile } */
|
||||
/* { dg-require-effective-target lp64 } */
|
||||
-/* { dg-options "-O -fno-pie -mno-vis3 -mno-vis4" } */
|
||||
+/* { dg-options "-O -mno-vis3 -mno-vis4" } */
|
||||
|
||||
#include <stdbool.h>
|
||||
#include <stdint.h>
|
||||
diff --git a/gcc/testsuite/gcc.target/sparc/overflow-5.c b/gcc/testsuite/gcc.target/sparc/overflow-5.c
|
||||
index f00283f6e7b..67d4ac38095 100644
|
||||
--- a/gcc/testsuite/gcc.target/sparc/overflow-5.c
|
||||
+++ b/gcc/testsuite/gcc.target/sparc/overflow-5.c
|
||||
@@ -1,6 +1,6 @@
|
||||
/* { dg-do compile } */
|
||||
/* { dg-require-effective-target lp64 } */
|
||||
-/* { dg-options "-O -fno-pie -mvis3" } */
|
||||
+/* { dg-options "-O -mvis3" } */
|
||||
|
||||
#include <stdbool.h>
|
||||
#include <stdint.h>
|
||||
--
|
||||
2.25.4
|
||||
|
@ -1,51 +0,0 @@
|
||||
From 0ac781b0b0deef5c02c32a70ac484f882c3f4dd0 Mon Sep 17 00:00:00 2001
|
||||
From: Fabrice Fontaine <fontaine.fabrice@gmail.com>
|
||||
Date: Tue, 24 Dec 2019 18:55:57 +0100
|
||||
Subject: [PATCH] fix matroska build without js, taglib or atrailers
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
i2i function is used in matroska_handler.cc but this function is defined
|
||||
only if defined(HAVE_JS) || defined(HAVE_TAGLIB) || defined(ATRAILERS)
|
||||
as a result compilation fails if HAVE_MATROSKA is set but HAVE_JS,
|
||||
HAVE_TAGLIG or ATRAILERS are not.
|
||||
|
||||
Backported from: 0ac781b0b0deef5c02c32a70ac484f882c3f4dd0
|
||||
|
||||
Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
|
||||
Signed-off-by: Jörg Krause <joerg.krause@embedded.rocks>
|
||||
---
|
||||
src/string_converter.cc | 2 +-
|
||||
src/string_converter.h | 2 +-
|
||||
2 files changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/src/string_converter.cc b/src/string_converter.cc
|
||||
index f669c661..7a3c55d7 100644
|
||||
--- a/src/string_converter.cc
|
||||
+++ b/src/string_converter.cc
|
||||
@@ -218,7 +218,7 @@ Ref<StringConverter> StringConverter::p2i()
|
||||
}
|
||||
#endif
|
||||
|
||||
-#if defined(HAVE_JS) || defined(HAVE_TAGLIB) || defined(ATRAILERS)
|
||||
+#if defined(HAVE_JS) || defined(HAVE_TAGLIB) || defined(ATRAILERS) || defined(HAVE_MATROSKA)
|
||||
|
||||
Ref<StringConverter> StringConverter::i2i()
|
||||
{
|
||||
diff --git a/src/string_converter.h b/src/string_converter.h
|
||||
index 58495430..f75bf833 100644
|
||||
--- a/src/string_converter.h
|
||||
+++ b/src/string_converter.h
|
||||
@@ -65,7 +65,7 @@ public:
|
||||
static zmm::Ref<StringConverter> p2i();
|
||||
|
||||
#endif
|
||||
-#if defined(HAVE_JS) || defined(HAVE_TAGLIB) || defined(ATRAILERS)
|
||||
+#if defined(HAVE_JS) || defined(HAVE_TAGLIB) || defined(ATRAILERS) || defined(HAVE_MATROSKA)
|
||||
/// \brief safeguard - internal to internal - needed to catch some
|
||||
/// scenarious where the user may have forgotten to add proper conversion
|
||||
/// in the script.
|
||||
--
|
||||
2.26.1
|
||||
|
@ -1,63 +0,0 @@
|
||||
From 7fdcabd80c823694d190e5baa8c657ffcae5e777 Mon Sep 17 00:00:00 2001
|
||||
From: Fabrice Fontaine <fontaine.fabrice@gmail.com>
|
||||
Date: Fri, 31 Jan 2020 17:14:11 +0100
|
||||
Subject: [PATCH] cmake/FindLibMagic.cmake: fix static linking
|
||||
|
||||
libmagic can optionally depends on xz (for lzma) or bzip2 since version
|
||||
5.38 and
|
||||
https://github.com/file/file/commit/b259a07ea95827f565faa20f0316e5b2704064f7
|
||||
so use pkg-config to retrieve those static dependencies and avoid the
|
||||
following build failure:
|
||||
|
||||
[100%] Linking CXX executable gerbera
|
||||
/home/br-user/autobuild/run/instance-0/output-1/host/opt/ext-toolchain/bin/../lib/gcc/arm-buildroot-linux-uclibcgnueabi/8.3.0/../../../../arm-buildroot-linux-uclibcgnueabi/bin/ld: /home/br-user/autobuild/run/instance-0/output-1/host/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/lib/libmagic.a(compress.o): in function `uncompressbuf':
|
||||
compress.c:(.text+0x69c): undefined reference to `BZ2_bzDecompressInit'
|
||||
/home/br-user/autobuild/run/instance-0/output-1/host/opt/ext-toolchain/bin/../lib/gcc/arm-buildroot-linux-uclibcgnueabi/8.3.0/../../../../arm-buildroot-linux-uclibcgnueabi/bin/ld: compress.c:(.text+0x710): undefined reference to `BZ2_bzDecompress'
|
||||
/home/br-user/autobuild/run/instance-0/output-1/host/opt/ext-toolchain/bin/../lib/gcc/arm-buildroot-linux-uclibcgnueabi/8.3.0/../../../../arm-buildroot-linux-uclibcgnueabi/bin/ld: compress.c:(.text+0x730): undefined reference to `BZ2_bzDecompressEnd'
|
||||
/home/br-user/autobuild/run/instance-0/output-1/host/opt/ext-toolchain/bin/../lib/gcc/arm-buildroot-linux-uclibcgnueabi/8.3.0/../../../../arm-buildroot-linux-uclibcgnueabi/bin/ld: compress.c:(.text+0x7bc): undefined reference to `lzma_auto_decoder'
|
||||
/home/br-user/autobuild/run/instance-0/output-1/host/opt/ext-toolchain/bin/../lib/gcc/arm-buildroot-linux-uclibcgnueabi/8.3.0/../../../../arm-buildroot-linux-uclibcgnueabi/bin/ld: compress.c:(.text+0x828): undefined reference to `lzma_code'
|
||||
/home/br-user/autobuild/run/instance-0/output-1/host/opt/ext-toolchain/bin/../lib/gcc/arm-buildroot-linux-uclibcgnueabi/8.3.0/../../../../arm-buildroot-linux-uclibcgnueabi/bin/ld: compress.c:(.text+0x848): undefined reference to `lzma_end'
|
||||
|
||||
It should be noted that libmagic.pc is not currently provided in the
|
||||
official file package (which provides libmagic), an issue has been
|
||||
opened to add libmagic.pc: https://bugs.astron.com/view.php?id=136
|
||||
|
||||
Fixes:
|
||||
- http://autobuild.buildroot.org/results/37b1ef54dc41100689f311fbc31fc9300dc6ae63
|
||||
|
||||
Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
|
||||
[Retrieved from:
|
||||
https://github.com/gerbera/gerbera/commit/7fdcabd80c823694d190e5baa8c657ffcae5e777]
|
||||
---
|
||||
cmake/FindLibMagic.cmake | 15 +++++++++++++--
|
||||
1 file changed, 13 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/cmake/FindLibMagic.cmake b/cmake/FindLibMagic.cmake
|
||||
index f68ab923..04995af4 100644
|
||||
--- a/cmake/FindLibMagic.cmake
|
||||
+++ b/cmake/FindLibMagic.cmake
|
||||
@@ -1,11 +1,22 @@
|
||||
INCLUDE (FindPackageHandleStandardArgs)
|
||||
|
||||
-FIND_PATH(MAGIC_INCLUDE_DIR magic.h)
|
||||
-FIND_LIBRARY(MAGIC_LIBRARIES NAMES magic)
|
||||
+find_package(PkgConfig QUIET)
|
||||
+
|
||||
+pkg_check_modules(PC_MAGIC QUIET libmagic)
|
||||
+
|
||||
+FIND_PATH(MAGIC_INCLUDE_DIR magic.h
|
||||
+ HINTS ${PC_MAGIC_INCLUDEDIR} ${PC_MAGIC_INCLUDE_DIRS})
|
||||
+FIND_LIBRARY(MAGIC_LIBRARIES NAMES magic
|
||||
+ HINTS ${PC_MAGIC_LIBDIR} ${PC_MAGIC_LIBRARY_DIRS})
|
||||
|
||||
# handle the QUIETLY and REQUIRED arguments and set MAGIC_FOUND to TRUE
|
||||
find_package_handle_standard_args(MAGIC DEFAULT_MSG MAGIC_LIBRARIES)
|
||||
|
||||
+if (MAGIC_FOUND)
|
||||
+ set (MAGIC_LIBRARIES ${MAGIC_LIBRARY} ${PC_MAGIC_LIBRARIES})
|
||||
+ set (MAGIC_INCLUDE_DIRS ${MAGIC_INCLUDE_DIR} )
|
||||
+endif ()
|
||||
+
|
||||
MARK_AS_ADVANCED(
|
||||
MAGIC_LIBRARIES
|
||||
MAGIC_INCLUDE_DIRS )
|
@ -1,37 +0,0 @@
|
||||
From aab2eacbaad10759294f4fd74bbb5ecef3cf3a8d Mon Sep 17 00:00:00 2001
|
||||
From: Fabrice Fontaine <fontaine.fabrice@gmail.com>
|
||||
Date: Tue, 24 Dec 2019 22:57:18 +0100
|
||||
Subject: [PATCH] cmake/FindMatroska: fix static linking
|
||||
|
||||
Fix static linking with libmatrasoka by adding PC_EBM_LIBRARIES to
|
||||
EBML_LIBRARIES and PC_MAT_LIBRARIES to MATROSKA_LIBRARIES
|
||||
|
||||
Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
|
||||
[Retrieved from:
|
||||
https://github.com/gerbera/gerbera/commit/aab2eacbaad10759294f4fd74bbb5ecef3cf3a8d]
|
||||
---
|
||||
cmake/FindMatroska.cmake | 4 ++--
|
||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/cmake/FindMatroska.cmake b/cmake/FindMatroska.cmake
|
||||
index 4b09a5ec..12ca593d 100644
|
||||
--- a/cmake/FindMatroska.cmake
|
||||
+++ b/cmake/FindMatroska.cmake
|
||||
@@ -23,7 +23,7 @@ FIND_LIBRARY(EBML_LIBRARY ebml
|
||||
FIND_PACKAGE_HANDLE_STANDARD_ARGS(EBML
|
||||
REQUIRED_VARS EBML_LIBRARY EBML_INCLUDE_DIR)
|
||||
if (EBML_FOUND)
|
||||
- set (EBML_LIBRARIES ${EBML_LIBRARY})
|
||||
+ set (EBML_LIBRARIES ${EBML_LIBRARY} ${PC_EBM_LIBRARIES})
|
||||
set (EBML_INCLUDE_DIRS ${EBML_INCLUDE_DIR} )
|
||||
endif ()
|
||||
MARK_AS_ADVANCED(
|
||||
@@ -41,7 +41,7 @@ find_library(MATROSKA_LIBRARY matroska
|
||||
FIND_PACKAGE_HANDLE_STANDARD_ARGS(MATROSKA
|
||||
REQUIRED_VARS MATROSKA_LIBRARY MATROSKA_INCLUDE_DIR)
|
||||
if (MATROSKA_FOUND)
|
||||
- set (MATROSKA_LIBRARIES ${MATROSKA_LIBRARY})
|
||||
+ set (MATROSKA_LIBRARIES ${MATROSKA_LIBRARY} ${PC_MAT_LIBRARIES})
|
||||
set (MATROSKA_INCLUDE_DIRS ${MATROSKA_INCLUDE_DIR} )
|
||||
endif ()
|
||||
MARK_AS_ADVANCED(
|
@ -3,12 +3,15 @@ config BR2_PACKAGE_GERBERA
|
||||
depends on BR2_USE_MMU # fork()
|
||||
depends on BR2_TOOLCHAIN_HAS_ATOMIC
|
||||
depends on BR2_TOOLCHAIN_HAS_THREADS
|
||||
depends on BR2_TOOLCHAIN_GCC_AT_LEAST_7 # C++17 optional
|
||||
depends on BR2_TOOLCHAIN_GCC_AT_LEAST_8 # C++17 filesystem
|
||||
depends on BR2_INSTALL_LIBSTDCPP
|
||||
depends on !BR2_PACKAGE_LIBUPNP # libupnp18
|
||||
select BR2_PACKAGE_EXPAT
|
||||
depends on BR2_USE_WCHAR # fmt
|
||||
select BR2_PACKAGE_FMT
|
||||
select BR2_PACKAGE_LIBICONV if !BR2_ENABLE_LOCALE
|
||||
select BR2_PACKAGE_LIBUPNP18
|
||||
select BR2_PACKAGE_LIBUPNP if !BR2_PACKAGE_LIBNPUPNP
|
||||
select BR2_PACKAGE_PUGIXML
|
||||
select BR2_PACKAGE_PUGIXML_XPATH_SUPPORT
|
||||
select BR2_PACKAGE_SPDLOG
|
||||
select BR2_PACKAGE_SQLITE
|
||||
select BR2_PACKAGE_UTIL_LINUX
|
||||
select BR2_PACKAGE_UTIL_LINUX_LIBUUID
|
||||
@ -19,9 +22,8 @@ config BR2_PACKAGE_GERBERA
|
||||
|
||||
https://gerbera.io
|
||||
|
||||
comment "gerbera needs a toolchain w/ C++, threads, gcc >= 7"
|
||||
comment "gerbera needs a toolchain w/ C++, threads, wchar, gcc >= 8"
|
||||
depends on BR2_USE_MMU
|
||||
depends on BR2_TOOLCHAIN_HAS_ATOMIC
|
||||
depends on !BR2_PACKAGE_LIBUPNP
|
||||
depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HAS_THREADS || \
|
||||
!BR2_TOOLCHAIN_GCC_AT_LEAST_7
|
||||
!BR2_USE_WCHAR || !BR2_TOOLCHAIN_GCC_AT_LEAST_8
|
||||
|
@ -1,3 +1,3 @@
|
||||
# Locally computed:
|
||||
sha256 904a9031c85ac805e4c139f363510226952683d7257acd1dee25ba1e97fd7651 gerbera-1.4.0.tar.gz
|
||||
sha256 cae4138373be41fd2be75faf41ce7efbcf49fb17d0e05ad1c51cc01ac335b9b6 LICENSE.md
|
||||
sha256 cbe7ea78977db8c02fcca1759ed149f199a590afaf4a6d21ffcca8623d1a0cc5 gerbera-1.6.4.tar.gz
|
||||
sha256 cae4138373be41fd2be75faf41ce7efbcf49fb17d0e05ad1c51cc01ac335b9b6 LICENSE.md
|
||||
|
@ -4,14 +4,15 @@
|
||||
#
|
||||
################################################################################
|
||||
|
||||
GERBERA_VERSION = 1.4.0
|
||||
GERBERA_VERSION = 1.6.4
|
||||
GERBERA_SITE = $(call github,gerbera,gerbera,v$(GERBERA_VERSION))
|
||||
GERBERA_LICENSE = GPL-2.0
|
||||
GERBERA_LICENSE_FILES = LICENSE.md
|
||||
GERBERA_DEPENDENCIES = \
|
||||
expat \
|
||||
fmt \
|
||||
host-pkgconf \
|
||||
libupnp18 \
|
||||
pugixml \
|
||||
spdlog \
|
||||
sqlite \
|
||||
util-linux \
|
||||
zlib
|
||||
@ -70,6 +71,15 @@ else
|
||||
GERBERA_CONF_OPTS += -DWITH_MATROSKA=OFF
|
||||
endif
|
||||
|
||||
# Either libupnp or libnpupnp are guranteed to be enabled
|
||||
ifeq ($(BR2_PACKAGE_LIBNPUPNP),y)
|
||||
GERBERA_DEPENDENCIES += libnpupnp
|
||||
GERBERA_CONF_OPTS += -DWITH_NPUPNP=ON
|
||||
else
|
||||
GERBERA_DEPENDENCIES += libupnp
|
||||
GERBERA_CONF_OPTS += -DWITH_NPUPNP=OFF
|
||||
endif
|
||||
|
||||
ifeq ($(BR2_PACKAGE_MYSQL),y)
|
||||
GERBERA_DEPENDENCIES += mysql
|
||||
GERBERA_CONF_OPTS += -DWITH_MYSQL=ON
|
||||
|
@ -1,5 +1,5 @@
|
||||
# Locally calculated (fetched from Github)
|
||||
sha256 e1f2c9b424a4e0c00e7ad123a4204f7bc8afd3c504aeb8c79b1086509fd67176 glibc-2.31-54-g6fdf971c9dbf7dac9bea552113fe4694015bbc4d.tar.gz
|
||||
sha256 d7495fb929497bedff9827d01091a4df681cfcbe5204de1d47fc5dab1ba7457c glibc-2.31-74-gd0c84d22b6a67f85a1eed3b93aef30e6953294b5.tar.gz
|
||||
|
||||
# Hashes for license files
|
||||
sha256 8177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643 COPYING
|
@ -20,7 +20,7 @@ else ifeq ($(BR2_RISCV_32),y)
|
||||
# Until 2.33 is released, just use master
|
||||
GLIBC_VERSION = 2.32.9000-69-gbd394d131c10c9ec22c6424197b79410042eed99
|
||||
else
|
||||
GLIBC_VERSION = 2.31-54-g6fdf971c9dbf7dac9bea552113fe4694015bbc4d
|
||||
GLIBC_VERSION = 2.31-74-gd0c84d22b6a67f85a1eed3b93aef30e6953294b5
|
||||
endif
|
||||
# Upstream doesn't officially provide an https download link.
|
||||
# There is one (https://sourceware.org/git/glibc.git) but it's not reliable,
|
||||
|
175
buildroot/package/gmrender-resurrect/0001-Drop-UpnpInit.patch
Normal file
175
buildroot/package/gmrender-resurrect/0001-Drop-UpnpInit.patch
Normal file
@ -0,0 +1,175 @@
|
||||
From dc8c4d4dc234311b3099e7f1efadf5d9733c81e9 Mon Sep 17 00:00:00 2001
|
||||
From: Fabrice Fontaine <fontaine.fabrice@gmail.com>
|
||||
Date: Fri, 21 Aug 2020 21:29:00 +0200
|
||||
Subject: [PATCH] Drop UpnpInit
|
||||
|
||||
UpnpInit has been dropped from libupnp 1.14.x as it can't be fixed
|
||||
against CallStranger a.k.a. CVE-2020-12695 so replace it by UpnpInit2
|
||||
which is available since version 1.6.7 and
|
||||
https://github.com/pupnp/pupnp/commit/2bcbdffd89a70364147d345ec5e70a3fce5cbc29
|
||||
|
||||
Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
|
||||
[Upstream status:
|
||||
https://github.com/hzeller/gmrender-resurrect/pull/214]
|
||||
---
|
||||
dist-scripts/centos7/README.md | 2 +-
|
||||
dist-scripts/debian/gmediarender.1 | 8 ++------
|
||||
dist-scripts/fedora/README.md | 2 +-
|
||||
src/main.c | 13 ++++---------
|
||||
src/upnp_device.c | 18 +++++++++---------
|
||||
src/upnp_device.h | 2 +-
|
||||
6 files changed, 18 insertions(+), 27 deletions(-)
|
||||
|
||||
diff --git a/dist-scripts/centos7/README.md b/dist-scripts/centos7/README.md
|
||||
index 278d777..ed82fb6 100644
|
||||
--- a/dist-scripts/centos7/README.md
|
||||
+++ b/dist-scripts/centos7/README.md
|
||||
@@ -45,7 +45,7 @@ Additional configuration is also recommended, sice there's no configuration file
|
||||
# vi /etc/systemd/system/gmediarender.service.d/customize.conf # or nano, or emacs, or whatever editor you like
|
||||
[Service]
|
||||
ExecStart=
|
||||
- ExecStart=/usr/bin/gmediarender --port=49494 --ip-address=<your_IP_address> -f "DLNA Renderer GMediaRender"
|
||||
+ ExecStart=/usr/bin/gmediarender --port=49494 --interface-name=<your_interface_name> -f "DLNA Renderer GMediaRender"
|
||||
|
||||
# systemctl daemon-reload
|
||||
# systemctl start gmediarender.service
|
||||
diff --git a/dist-scripts/debian/gmediarender.1 b/dist-scripts/debian/gmediarender.1
|
||||
index 96123ff..b2b1359 100644
|
||||
--- a/dist-scripts/debian/gmediarender.1
|
||||
+++ b/dist-scripts/debian/gmediarender.1
|
||||
@@ -50,12 +50,8 @@ Usually, it is desirable for the renderer
|
||||
to show up on controllers under a recognisable and unique name. This is
|
||||
the option to set that name.
|
||||
.TP
|
||||
-.B \-I, \-\-ip\-address \fI\<ip-address\>\fP
|
||||
-The local IP address the service is running and advertised on.
|
||||
-
|
||||
-This can
|
||||
-only be a single address, and must be explicitly specified (i.e. not
|
||||
-0.0.0.0).
|
||||
+.B \-I, \-\-interface\-name \fI\<interface-name\>\fP
|
||||
+The local interface name the service is running and advertised on.
|
||||
.TP
|
||||
.B \-p, \-\-port \fI\<port>\fP
|
||||
Port to listen to. [49152..65535].
|
||||
diff --git a/dist-scripts/fedora/README.md b/dist-scripts/fedora/README.md
|
||||
index 7b9ea4b..45aa536 100644
|
||||
--- a/dist-scripts/fedora/README.md
|
||||
+++ b/dist-scripts/fedora/README.md
|
||||
@@ -43,7 +43,7 @@ Additional configuration is also recommended, sice there's no configuration file
|
||||
# vi /etc/systemd/system/gmediarender.service.d/customize.conf # or nano, or emacs, or whatever editor you like
|
||||
[Service]
|
||||
ExecStart=
|
||||
- ExecStart=/usr/bin/gmediarender --port=49494 --ip-address=<your_IP_address> -f "DLNA Renderer GMediaRender"
|
||||
+ ExecStart=/usr/bin/gmediarender --port=49494 --interface-name=<your_interface_name> -f "DLNA Renderer GMediaRender"
|
||||
|
||||
# systemctl daemon-reload
|
||||
# systemctl start gmediarender.service
|
||||
diff --git a/src/main.c b/src/main.c
|
||||
index ef720e3..2030c49 100644
|
||||
--- a/src/main.c
|
||||
+++ b/src/main.c
|
||||
@@ -69,11 +69,7 @@ static gboolean show_transport_scpd = FALSE;
|
||||
static gboolean show_outputs = FALSE;
|
||||
static gboolean daemon_mode = FALSE;
|
||||
|
||||
-// IP-address seems strange in libupnp: they actually don't bind to
|
||||
-// that address, but to INADDR_ANY (miniserver.c in upnp library).
|
||||
-// Apparently they just use this for the advertisement ? Anyway, 0.0.0.0 would
|
||||
-// not work.
|
||||
-static const gchar *ip_address = NULL;
|
||||
+static const gchar *interface_name = NULL;
|
||||
static int listen_port = 49494;
|
||||
|
||||
#ifdef GMRENDER_UUID
|
||||
@@ -92,9 +88,8 @@ static const gchar *mime_filter = NULL;
|
||||
static GOptionEntry option_entries[] = {
|
||||
{ "version", 0, 0, G_OPTION_ARG_NONE, &show_version,
|
||||
"Output version information and exit", NULL },
|
||||
- { "ip-address", 'I', 0, G_OPTION_ARG_STRING, &ip_address,
|
||||
- "The local IP address the service is running and advertised "
|
||||
- "(only one, 0.0.0.0 won't work)", NULL },
|
||||
+ { "interface-name", 'I', 0, G_OPTION_ARG_STRING, &interface_name,
|
||||
+ "The local interface name the service is running and advertised", NULL },
|
||||
// The following is not very reliable, as libupnp does not set
|
||||
// SO_REUSEADDR by default, so it might increment (sending patch).
|
||||
{ "port", 'p', 0, G_OPTION_ARG_INT, &listen_port,
|
||||
@@ -302,7 +297,7 @@ int main(int argc, char **argv)
|
||||
listen_port);
|
||||
return EXIT_FAILURE;
|
||||
}
|
||||
- device = upnp_device_init(upnp_renderer, ip_address, listen_port);
|
||||
+ device = upnp_device_init(upnp_renderer, interface_name, listen_port);
|
||||
if (device == NULL) {
|
||||
Log_error("main", "ERROR: Failed to initialize UPnP device");
|
||||
return EXIT_FAILURE;
|
||||
diff --git a/src/upnp_device.c b/src/upnp_device.c
|
||||
index db65e4f..3151238 100644
|
||||
--- a/src/upnp_device.c
|
||||
+++ b/src/upnp_device.c
|
||||
@@ -416,13 +416,13 @@ static UPNP_CALLBACK(event_handler, EventType, event, userdata)
|
||||
|
||||
static gboolean initialize_device(struct upnp_device_descriptor *device_def,
|
||||
struct upnp_device *result_device,
|
||||
- const char *ip_address,
|
||||
+ const char *interface_name,
|
||||
unsigned short port)
|
||||
{
|
||||
int rc;
|
||||
char *buf;
|
||||
|
||||
- rc = UpnpInit(ip_address, port);
|
||||
+ rc = UpnpInit2(interface_name, port);
|
||||
/* There have been situations reported in which UPNP had issues
|
||||
* initializing right after network came up. #129
|
||||
*/
|
||||
@@ -430,13 +430,13 @@ static gboolean initialize_device(struct upnp_device_descriptor *device_def,
|
||||
static const int kRetryTimeMs = 1000;
|
||||
while (rc != UPNP_E_SUCCESS && retries_left--) {
|
||||
usleep(kRetryTimeMs * 1000);
|
||||
- Log_error("upnp", "UpnpInit(ip=%s, port=%d) Error: %s (%d). Retrying... (%ds)",
|
||||
- ip_address, port, UpnpGetErrorMessage(rc), rc, retries_left);
|
||||
- rc = UpnpInit(ip_address, port);
|
||||
+ Log_error("upnp", "UpnpInit2(interface=%s, port=%d) Error: %s (%d). Retrying... (%ds)",
|
||||
+ interface_name, port, UpnpGetErrorMessage(rc), rc, retries_left);
|
||||
+ rc = UpnpInit2(interface_name, port);
|
||||
}
|
||||
if (UPNP_E_SUCCESS != rc) {
|
||||
- Log_error("upnp", "UpnpInit(ip=%s, port=%d) Error: %s (%d). Giving up.",
|
||||
- ip_address, port, UpnpGetErrorMessage(rc), rc);
|
||||
+ Log_error("upnp", "UpnpInit2(interface=%s, port=%d) Error: %s (%d). Giving up.",
|
||||
+ interface_name, port, UpnpGetErrorMessage(rc), rc);
|
||||
return FALSE;
|
||||
}
|
||||
Log_info("upnp", "Registered IP=%s port=%d\n",
|
||||
@@ -483,7 +483,7 @@ static gboolean initialize_device(struct upnp_device_descriptor *device_def,
|
||||
}
|
||||
|
||||
struct upnp_device *upnp_device_init(struct upnp_device_descriptor *device_def,
|
||||
- const char *ip_address,
|
||||
+ const char *interface_name,
|
||||
unsigned short port)
|
||||
{
|
||||
int rc;
|
||||
@@ -516,7 +516,7 @@ struct upnp_device *upnp_device_init(struct upnp_device_descriptor *device_def,
|
||||
webserver_register_buf(srv->scpd_url, buf, "text/xml");
|
||||
}
|
||||
|
||||
- if (!initialize_device(device_def, result_device, ip_address, port)) {
|
||||
+ if (!initialize_device(device_def, result_device, interface_name, port)) {
|
||||
UpnpFinish();
|
||||
free(result_device);
|
||||
return NULL;
|
||||
diff --git a/src/upnp_device.h b/src/upnp_device.h
|
||||
index 3e635e1..8c8e783 100644
|
||||
--- a/src/upnp_device.h
|
||||
+++ b/src/upnp_device.h
|
||||
@@ -49,7 +49,7 @@ struct upnp_device;
|
||||
struct action_event;
|
||||
|
||||
struct upnp_device *upnp_device_init(struct upnp_device_descriptor *device_def,
|
||||
- const char *ip_address,
|
||||
+ const char *interface_name,
|
||||
unsigned short port);
|
||||
|
||||
void upnp_device_shutdown(struct upnp_device *device);
|
@ -5,7 +5,7 @@ config BR2_PACKAGE_GMRENDER_RESURRECT
|
||||
depends on BR2_USE_MMU # gstreamer1
|
||||
select BR2_PACKAGE_GSTREAMER1
|
||||
select BR2_PACKAGE_GST1_PLUGINS_BASE # run-time only
|
||||
select BR2_PACKAGE_LIBUPNP18 if !BR2_PACKAGE_LIBUPNP
|
||||
select BR2_PACKAGE_LIBUPNP
|
||||
help
|
||||
UPnP (DLNA) media renderer based on gstreamer
|
||||
|
||||
|
@ -13,6 +13,6 @@ GMRENDER_RESURRECT_LICENSE = GPL-2.0+
|
||||
GMRENDER_RESURRECT_LICENSE_FILES = COPYING
|
||||
GMRENDER_RESURRECT_DEPENDENCIES = \
|
||||
gstreamer1 \
|
||||
$(if $(BR2_PACKAGE_LIBUPNP),libupnp,libupnp18)
|
||||
libupnp
|
||||
|
||||
$(eval $(autotools-package))
|
||||
|
@ -1,5 +1,6 @@
|
||||
comment "gnuradio needs a toolchain w/ C++, NPTL, wchar, dynamic library"
|
||||
depends on BR2_USE_MMU
|
||||
depends on BR2_TOOLCHAIN_SUPPORTS_ALWAYS_LOCKFREE_ATOMIC_INTS
|
||||
depends on !BR2_INSTALL_LIBSTDCPP || !BR2_USE_WCHAR || \
|
||||
!BR2_TOOLCHAIN_HAS_THREADS_NPTL || BR2_STATIC_LIBS
|
||||
|
||||
@ -13,6 +14,7 @@ config BR2_PACKAGE_GNURADIO
|
||||
depends on BR2_TOOLCHAIN_HAS_THREADS_NPTL
|
||||
depends on BR2_USE_MMU # use fork()
|
||||
depends on BR2_USE_WCHAR # boost
|
||||
depends on BR2_TOOLCHAIN_SUPPORTS_ALWAYS_LOCKFREE_ATOMIC_INTS # boost-atomic
|
||||
depends on !BR2_TOOLCHAIN_HAS_GCC_BUG_64735 # boost-thread
|
||||
select BR2_PACKAGE_BOOST
|
||||
select BR2_PACKAGE_BOOST_ATOMIC
|
||||
|
@ -1,6 +1,7 @@
|
||||
comment "gqrx needs a toolchain w/ C++, threads, wchar, dynamic library"
|
||||
depends on BR2_USE_MMU # gnuradio
|
||||
depends on BR2_TOOLCHAIN_HAS_SYNC_4 || BR2_TOOLCHAIN_HAS_ATOMIC
|
||||
depends on BR2_TOOLCHAIN_SUPPORTS_ALWAYS_LOCKFREE_ATOMIC_INTS
|
||||
depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HAS_THREADS || \
|
||||
!BR2_USE_WCHAR || !BR2_STATIC_LIBS
|
||||
|
||||
@ -19,6 +20,7 @@ config BR2_PACKAGE_GQRX
|
||||
depends on BR2_USE_WCHAR # boost
|
||||
depends on BR2_TOOLCHAIN_HAS_SYNC_4 || BR2_TOOLCHAIN_HAS_ATOMIC
|
||||
depends on BR2_PACKAGE_QT5
|
||||
depends on BR2_TOOLCHAIN_SUPPORTS_ALWAYS_LOCKFREE_ATOMIC_INTS # gnuradio -> boost-atomic
|
||||
depends on !BR2_TOOLCHAIN_HAS_GCC_BUG_64735 # gnuradio
|
||||
select BR2_PACKAGE_BOOST
|
||||
select BR2_PACKAGE_BOOST_PROGRAM_OPTIONS
|
||||
|
@ -1,199 +0,0 @@
|
||||
From 23ed73623810a0894c8efd9eb79dd38483794a3b Mon Sep 17 00:00:00 2001
|
||||
From: Fabrice Fontaine <fabrice.fontaine@orange.com>
|
||||
Date: Thu, 20 Aug 2020 18:17:03 +0200
|
||||
Subject: [PATCH] fix build with gcc 10
|
||||
|
||||
This will fix build failures with -fno-common which is enabled by
|
||||
default with gcc 10
|
||||
|
||||
Fixes:
|
||||
- http://autobuild.buildroot.org/results/f296984c3851fc28341210e36ef1b55b2edac209
|
||||
|
||||
Signed-off-by: Fabrice Fontaine <fabrice.fontaine@orange.com>
|
||||
[Retrieved from:
|
||||
https://github.com/Orange-OpenSource/igd2-for-linux/commit/23ed73623810a0894c8efd9eb79dd38483794a3b]
|
||||
Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
|
||||
---
|
||||
linuxigd2/src/gatedevice.c | 37 +++++++++++++++++++++++++++++++++
|
||||
linuxigd2/src/gatedevice.h | 42 +++++++++-----------------------------
|
||||
linuxigd2/src/pinholev6.c | 2 ++
|
||||
linuxigd2/src/pinholev6.h | 2 +-
|
||||
linuxigd2/src/pmlist.c | 5 +++++
|
||||
linuxigd2/src/pmlist.h | 2 +-
|
||||
linuxigd2/src/wanipv6fw.h | 3 ---
|
||||
7 files changed, 56 insertions(+), 37 deletions(-)
|
||||
|
||||
diff --git a/linuxigd2/src/gatedevice.c b/linuxigd2/src/gatedevice.c
|
||||
index 8be53e5..a50525d 100644
|
||||
--- a/linuxigd2/src/gatedevice.c
|
||||
+++ b/linuxigd2/src/gatedevice.c
|
||||
@@ -41,6 +41,43 @@
|
||||
#include "wanipv6fw.h"
|
||||
#include "config.h"
|
||||
|
||||
+// Thread which contains all kind of timers and threads used in gatedevice.c and deviceprotection.c
|
||||
+TimerThread gExpirationTimerThread;
|
||||
+
|
||||
+// IGD Device Globals
|
||||
+UpnpDevice_Handle deviceHandle;
|
||||
+UpnpDevice_Handle deviceHandleIPv6;
|
||||
+UpnpDevice_Handle deviceHandleIPv6UlaGua;
|
||||
+char *gateUDN;
|
||||
+char *wanUDN;
|
||||
+char *wanConnectionUDN;
|
||||
+char *lanUDN;
|
||||
+long int startup_time;
|
||||
+unsigned long connection_stats[STATS_LIMIT]; // this is used for defining if connection is in idling
|
||||
+long int idle_time;
|
||||
+
|
||||
+// State Variables
|
||||
+char ConnectionType[50];
|
||||
+char PossibleConnectionTypes[50];
|
||||
+char ConnectionStatus[20];
|
||||
+char LastConnectionError[35];
|
||||
+long int AutoDisconnectTime;
|
||||
+long int IdleDisconnectTime;
|
||||
+long int WarnDisconnectDelay;
|
||||
+int RSIPAvailable;
|
||||
+int NATEnabled;
|
||||
+char ExternalIPAddress[INET6_ADDRSTRLEN];
|
||||
+int PortMappingNumberOfEntries;
|
||||
+int PortMappingEnabled;
|
||||
+char RemoteHost[INET6_ADDRSTRLEN]; // updated IPv6 addrss length 16 -> 46
|
||||
+long int SystemUpdateID;
|
||||
+
|
||||
+// WANEthLinkConfig state variables
|
||||
+char EthernetLinkStatus[12];
|
||||
+
|
||||
+char FirewallEnabled[2];
|
||||
+char InboundPinholeAllowed[2];
|
||||
+
|
||||
//Definitions for mapping expiration timer thread
|
||||
static ThreadPool gExpirationThreadPool;
|
||||
static ThreadPoolJob gEventUpdateJob;
|
||||
diff --git a/linuxigd2/src/gatedevice.h b/linuxigd2/src/gatedevice.h
|
||||
index 28d6b21..dbaa0c2 100644
|
||||
--- a/linuxigd2/src/gatedevice.h
|
||||
+++ b/linuxigd2/src/gatedevice.h
|
||||
@@ -33,42 +33,20 @@
|
||||
#include "util.h"
|
||||
|
||||
// Thread which contains all kind of timers and threads used in gatedevice.c and deviceprotection.c
|
||||
-TimerThread gExpirationTimerThread;
|
||||
+extern TimerThread gExpirationTimerThread;
|
||||
|
||||
// IGD Device Globals
|
||||
-UpnpDevice_Handle deviceHandle;
|
||||
-UpnpDevice_Handle deviceHandleIPv6;
|
||||
-UpnpDevice_Handle deviceHandleIPv6UlaGua;
|
||||
-char *gateUDN;
|
||||
-char *wanUDN;
|
||||
-char *wanConnectionUDN;
|
||||
-char *lanUDN;
|
||||
-long int startup_time;
|
||||
-unsigned long connection_stats[STATS_LIMIT]; // this is used for defining if connection is in idling
|
||||
-long int idle_time;
|
||||
-
|
||||
-// State Variables
|
||||
-char ConnectionType[50];
|
||||
-char PossibleConnectionTypes[50];
|
||||
-char ConnectionStatus[20];
|
||||
-char LastConnectionError[35];
|
||||
-long int AutoDisconnectTime;
|
||||
-long int IdleDisconnectTime;
|
||||
-long int WarnDisconnectDelay;
|
||||
-int RSIPAvailable;
|
||||
-int NATEnabled;
|
||||
-char ExternalIPAddress[INET6_ADDRSTRLEN];
|
||||
-int PortMappingNumberOfEntries;
|
||||
-int PortMappingEnabled;
|
||||
-char RemoteHost[INET6_ADDRSTRLEN]; // updated IPv6 addrss length 16 -> 46
|
||||
-long int SystemUpdateID;
|
||||
-
|
||||
-// WANEthLinkConfig state variables
|
||||
-char EthernetLinkStatus[12];
|
||||
+extern UpnpDevice_Handle deviceHandle;
|
||||
+extern UpnpDevice_Handle deviceHandleIPv6;
|
||||
+extern UpnpDevice_Handle deviceHandleIPv6UlaGua;
|
||||
+extern char *gateUDN;
|
||||
+extern char *wanUDN;
|
||||
+extern char *wanConnectionUDN;
|
||||
+extern char *lanUDN;
|
||||
|
||||
// Linked list for portmapping entries
|
||||
-struct portMap *pmlist_Head;
|
||||
-struct portMap *pmlist_Current;
|
||||
+extern struct portMap *pmlist_Head;
|
||||
+extern struct portMap *pmlist_Current;
|
||||
|
||||
// WanIPConnection Actions
|
||||
int EventHandler(Upnp_EventType EventType, void *Event, void *Cookie);
|
||||
diff --git a/linuxigd2/src/pinholev6.c b/linuxigd2/src/pinholev6.c
|
||||
index 44e8a19..78f886d 100644
|
||||
--- a/linuxigd2/src/pinholev6.c
|
||||
+++ b/linuxigd2/src/pinholev6.c
|
||||
@@ -41,6 +41,8 @@ extern "C" {
|
||||
#include "gatedevice.h"
|
||||
#include "pinholev6.h"
|
||||
|
||||
+struct pinholev6 *ph_first;
|
||||
+
|
||||
static const char * add_rule_str = "ip6tables -I %s " //upnp forward chain
|
||||
"-i %s " //input interface
|
||||
"-o %s " //output interface
|
||||
diff --git a/linuxigd2/src/pinholev6.h b/linuxigd2/src/pinholev6.h
|
||||
index 295b9f9..353ae27 100644
|
||||
--- a/linuxigd2/src/pinholev6.h
|
||||
+++ b/linuxigd2/src/pinholev6.h
|
||||
@@ -37,7 +37,7 @@ struct pinholev6 {
|
||||
|
||||
struct pinholev6 *next;
|
||||
|
||||
-} *ph_first;
|
||||
+};
|
||||
|
||||
struct phv6_expirationEvent
|
||||
{
|
||||
diff --git a/linuxigd2/src/pmlist.c b/linuxigd2/src/pmlist.c
|
||||
index 1b3fe05..95d0c61 100644
|
||||
--- a/linuxigd2/src/pmlist.c
|
||||
+++ b/linuxigd2/src/pmlist.c
|
||||
@@ -41,6 +41,11 @@
|
||||
#include "iptc.h"
|
||||
#endif
|
||||
|
||||
+// Linked list for portmapping entries
|
||||
+struct portMap *pmlist_Head;
|
||||
+struct portMap *pmlist_Current;
|
||||
+struct portMap *pmlist_Tail;
|
||||
+
|
||||
/**
|
||||
* Create new portMap struct of rule to add iptables.
|
||||
* portMap-struct is internal presentation of iptables rule in IGD.
|
||||
diff --git a/linuxigd2/src/pmlist.h b/linuxigd2/src/pmlist.h
|
||||
index 436d228..017500d 100644
|
||||
--- a/linuxigd2/src/pmlist.h
|
||||
+++ b/linuxigd2/src/pmlist.h
|
||||
@@ -57,7 +57,7 @@ struct portMap
|
||||
|
||||
struct portMap* next;
|
||||
struct portMap* prev;
|
||||
-} *pmlist_Head, *pmlist_Tail, *pmlist_Current;
|
||||
+};
|
||||
|
||||
//struct portMap* pmlist_NewNode(void);
|
||||
struct portMap* pmlist_NewNode(int enabled, long int duration, char *remoteHost,
|
||||
diff --git a/linuxigd2/src/wanipv6fw.h b/linuxigd2/src/wanipv6fw.h
|
||||
index 55419fe..a50d267 100644
|
||||
--- a/linuxigd2/src/wanipv6fw.h
|
||||
+++ b/linuxigd2/src/wanipv6fw.h
|
||||
@@ -46,9 +46,6 @@ extern "C" {
|
||||
#define ERR_SRC_ADD_WILDCARD 708
|
||||
#define ERR_NO_TRAFFIC 709
|
||||
|
||||
-char FirewallEnabled[2];
|
||||
-char InboundPinholeAllowed[2];
|
||||
-
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
int InitFirewallv6(void);
|
@ -18,7 +18,7 @@ config BR2_PACKAGE_IGD2_FOR_LINUX
|
||||
|
||||
Please edit /etc/upnpd.conf before using upnpd!
|
||||
|
||||
https://github.com/ffontaine/igd2-for-linux
|
||||
https://github.com/Orange-OpenSource/igd2-for-linux
|
||||
|
||||
comment "igd2-for-linux needs a toolchain w/ threads, wchar"
|
||||
depends on BR2_USE_MMU
|
||||
|
@ -1,3 +1,4 @@
|
||||
# Locally computed:
|
||||
sha256 523545a26b0d662e9f6913bec2518df6e70f4d497935d88983d994336a1b0ea9 igd2-for-linux-1.2.tar.gz
|
||||
sha256 204d8eff92f95aac4df6c8122bc1505f468f3a901e5a4cc08940e0ede1938994 linuxigd2/doc/LICENSE
|
||||
sha256 e3fcc7c9da4ad1ca16227b3b1b3712bcfb3f6ec922685eee7ae4a76edfa32bb4 igd2-for-linux-2.0.tar.gz
|
||||
sha256 204d8eff92f95aac4df6c8122bc1505f468f3a901e5a4cc08940e0ede1938994 linuxigd2/doc/LICENSE
|
||||
sha256 c8b99423cad48bb44e2cf52a496361404290865eac259a82da6d1e4331ececb3 linuxigd2/src/threadutil/COPYING
|
||||
|
@ -4,11 +4,12 @@
|
||||
#
|
||||
################################################################################
|
||||
|
||||
IGD2_FOR_LINUX_VERSION = 1.2
|
||||
IGD2_FOR_LINUX_SITE = $(call github,ffontaine,igd2-for-linux,v$(IGD2_FOR_LINUX_VERSION))
|
||||
IGD2_FOR_LINUX_VERSION = 2.0
|
||||
IGD2_FOR_LINUX_SITE = \
|
||||
$(call github,Orange-OpenSource,igd2-for-linux,v$(IGD2_FOR_LINUX_VERSION))
|
||||
|
||||
IGD2_FOR_LINUX_LICENSE = GPL-2.0
|
||||
IGD2_FOR_LINUX_LICENSE_FILES = linuxigd2/doc/LICENSE
|
||||
IGD2_FOR_LINUX_LICENSE = GPL-2.0, BSD-3-Clause
|
||||
IGD2_FOR_LINUX_LICENSE_FILES = linuxigd2/doc/LICENSE linuxigd2/src/threadutil/COPYING
|
||||
|
||||
IGD2_FOR_LINUX_DEPENDENCIES = libupnp
|
||||
|
||||
|
@ -2,7 +2,7 @@ config BR2_PACKAGE_KODI_PVR_ZATTOO
|
||||
bool "kodi-pvr-zattoo"
|
||||
select BR2_PACKAGE_KODI_PLATFORM
|
||||
select BR2_PACKAGE_LIBPLATFORM
|
||||
select BR2_PACKAGE_RAPIDXML
|
||||
select BR2_PACKAGE_RAPIDJSON
|
||||
select BR2_PACKAGE_TINYXML2
|
||||
help
|
||||
Kodi PVR-Addon for Zattoo
|
||||
|
@ -8,6 +8,6 @@ KODI_PVR_ZATTOO_VERSION = 18.1.21-Leia
|
||||
KODI_PVR_ZATTOO_SITE = $(call github,rbuehlma,pvr.zattoo,$(KODI_PVR_ZATTOO_VERSION))
|
||||
KODI_PVR_ZATTOO_LICENSE = GPL-2.0+
|
||||
KODI_PVR_ZATTOO_LICENSE_FILES = debian/copyright
|
||||
KODI_PVR_ZATTOO_DEPENDENCIES = kodi-platform libplatform rapidxml tinyxml2
|
||||
KODI_PVR_ZATTOO_DEPENDENCIES = kodi-platform libplatform rapidjson tinyxml2
|
||||
|
||||
$(eval $(cmake-package))
|
||||
|
@ -6,7 +6,7 @@
|
||||
|
||||
# Use the latest commit from release_90 branch.
|
||||
LIBCLC_VERSION = d1cbc92e2ceee59963f5c3a576382e5bba31f060
|
||||
LIBCLC_SITE = https://git.llvm.org/git/libclc
|
||||
LIBCLC_SITE = https://github.com/llvm-mirror/libclc
|
||||
LIBCLC_SITE_METHOD = git
|
||||
LIBCLC_LICENSE = Apache-2.0 with exceptions or MIT
|
||||
LIBCLC_LICENSE_FILES = LICENSE.TXT
|
||||
|
@ -3,6 +3,7 @@ config BR2_PACKAGE_LIBCPPRESTSDK
|
||||
depends on BR2_ENABLE_LOCALE
|
||||
depends on BR2_INSTALL_LIBSTDCPP
|
||||
depends on BR2_USE_WCHAR # boost
|
||||
depends on BR2_TOOLCHAIN_SUPPORTS_ALWAYS_LOCKFREE_ATOMIC_INTS # boost-atomic
|
||||
depends on !BR2_TOOLCHAIN_HAS_GCC_BUG_64735 # exception_ptr
|
||||
depends on BR2_TOOLCHAIN_HAS_THREADS_NPTL
|
||||
select BR2_PACKAGE_BOOST
|
||||
@ -23,6 +24,7 @@ config BR2_PACKAGE_LIBCPPRESTSDK
|
||||
https://github.com/Microsoft/cpprestsdk
|
||||
|
||||
comment "libcpprestsdk needs a toolchain w/ NPTL, C++, wchar, locale"
|
||||
depends on BR2_TOOLCHAIN_SUPPORTS_ALWAYS_LOCKFREE_ATOMIC_INTS
|
||||
depends on !BR2_TOOLCHAIN_HAS_THREADS_NPTL || \
|
||||
!BR2_INSTALL_LIBSTDCPP || \
|
||||
!BR2_USE_WCHAR || !BR2_ENABLE_LOCALE
|
||||
|
@ -23,4 +23,8 @@ define LIBFUSE3_PERMISSIONS
|
||||
/usr/bin/fusermount3 f 4755 0 0 - - - - -
|
||||
endef
|
||||
|
||||
define LIBFUSE3_LINUX_CONFIG_FIXUPS
|
||||
$(call KCONFIG_ENABLE_OPT,CONFIG_FUSE_FS)
|
||||
endef
|
||||
|
||||
$(eval $(meson-package))
|
||||
|
@ -1,9 +1,12 @@
|
||||
config BR2_PACKAGE_LIBLLCP
|
||||
bool "libllcp"
|
||||
depends on BR2_TOOLCHAIN_HAS_THREADS # libusb
|
||||
depends on BR2_TOOLCHAIN_HAS_THREADS
|
||||
select BR2_PACKAGE_LIBNFC
|
||||
help
|
||||
Library extending libnfc with support for Logical Link Control
|
||||
Protocol.
|
||||
|
||||
https://github.com/nfc-tools/libllcp
|
||||
|
||||
comment "libllcp needs a toolchain w/ threads"
|
||||
depends on !BR2_TOOLCHAIN_HAS_THREADS
|
||||
|
@ -12,6 +12,6 @@ LIBODB_MYSQL_INSTALL_STAGING = YES
|
||||
LIBODB_MYSQL_LICENSE = GPL-2.0
|
||||
LIBODB_MYSQL_LICENSE_FILES = LICENSE
|
||||
LIBODB_MYSQL_DEPENDENCIES = libodb mysql
|
||||
LIBODB_MYSQL_CONF_ENV = LIBS="$(shell $(STAGING_DIR)/usr/bin/mysql_config --libs)"
|
||||
LIBODB_MYSQL_CONF_ENV = LIBS=`$(STAGING_DIR)/usr/bin/mysql_config --libs`
|
||||
|
||||
$(eval $(autotools-package))
|
||||
|
@ -1,8 +1,8 @@
|
||||
comment "libtorrent-rasterbar needs a toolchain w/ C++, threads, wchar, gcc >= 4.9"
|
||||
depends on BR2_TOOLCHAIN_SUPPORTS_VARIADIC_MI_THUNK
|
||||
depends on !BR2_TOOLCHAIN_HAS_GCC_BUG_64735
|
||||
depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HAS_THREADS || !BR2_USE_WCHAR || \
|
||||
!BR2_HOST_GCC_AT_LEAST_4_9 || !BR2_TOOLCHAIN_GCC_AT_LEAST_4_9
|
||||
depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HAS_THREADS || \
|
||||
!BR2_USE_WCHAR || !BR2_TOOLCHAIN_GCC_AT_LEAST_4_9
|
||||
|
||||
comment "libtorrent-rasterbar needs exception_ptr"
|
||||
depends on BR2_TOOLCHAIN_SUPPORTS_VARIADIC_MI_THUNK
|
||||
@ -11,7 +11,6 @@ comment "libtorrent-rasterbar needs exception_ptr"
|
||||
config BR2_PACKAGE_LIBTORRENT_RASTERBAR
|
||||
bool "libtorrent-rasterbar"
|
||||
depends on BR2_INSTALL_LIBSTDCPP # boost
|
||||
depends on BR2_HOST_GCC_AT_LEAST_4_9 # C++11
|
||||
depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 # C++11
|
||||
depends on BR2_TOOLCHAIN_HAS_THREADS # boost
|
||||
depends on BR2_TOOLCHAIN_SUPPORTS_VARIADIC_MI_THUNK
|
||||
|
@ -1,3 +1,3 @@
|
||||
# Locally computed:
|
||||
sha256 c5a300b86775435c076d58a79cc0d5a977d76027d2a7d721590729b7f369fa43 libupnp-1.6.25.tar.bz2
|
||||
sha256 0375955c8a79d6e8fa0792d45d00fc4e7710d7ac95bcbd27f9225a83f5c946fd LICENSE
|
||||
sha256 ecb23d4291968c8a7bdd4eb16fc2250dbacc16b354345a13342d67f571d35ceb libupnp-1.14.0.tar.bz2
|
||||
sha256 c8b99423cad48bb44e2cf52a496361404290865eac259a82da6d1e4331ececb3 COPYING
|
||||
|
@ -4,12 +4,24 @@
|
||||
#
|
||||
################################################################################
|
||||
|
||||
LIBUPNP_VERSION = 1.6.25
|
||||
LIBUPNP_VERSION = 1.14.0
|
||||
LIBUPNP_SOURCE = libupnp-$(LIBUPNP_VERSION).tar.bz2
|
||||
LIBUPNP_SITE = http://downloads.sourceforge.net/project/pupnp/pupnp/libUPnP%20$(LIBUPNP_VERSION)
|
||||
LIBUPNP_SITE = \
|
||||
http://downloads.sourceforge.net/project/pupnp/pupnp/libupnp-$(LIBUPNP_VERSION)
|
||||
LIBUPNP_CONF_ENV = ac_cv_lib_compat_ftime=no
|
||||
LIBUPNP_INSTALL_STAGING = YES
|
||||
LIBUPNP_LICENSE = BSD-3-Clause
|
||||
LIBUPNP_LICENSE_FILES = LICENSE
|
||||
LIBUPNP_LICENSE_FILES = COPYING
|
||||
LIBUPNP_DEPENDENCIES = host-pkgconf
|
||||
|
||||
# Bind the internal miniserver socket with reuseaddr to allow clean restarts.
|
||||
LIBUPNP_CONF_OPTS += --enable-reuseaddr
|
||||
|
||||
ifeq ($(BR2_PACKAGE_OPENSSL),y)
|
||||
LIBUPNP_CONF_OPTS += --enable-open-ssl
|
||||
LIBUPNP_DEPENDENCIES += openssl
|
||||
else
|
||||
LIBUPNP_CONF_OPTS += --disable-open-ssl
|
||||
endif
|
||||
|
||||
$(eval $(autotools-package))
|
||||
|
@ -1,16 +0,0 @@
|
||||
config BR2_PACKAGE_LIBUPNP18
|
||||
bool "libupnp18"
|
||||
depends on BR2_TOOLCHAIN_HAS_THREADS
|
||||
depends on !BR2_PACKAGE_LIBUPNP
|
||||
help
|
||||
The portable SDK for UPnP(tm) Devices (libupnp) provides
|
||||
developers with an API and open source code for building
|
||||
control points, devices, and bridges that are compliant with
|
||||
Version 1.0 of the Universal Plug and Play Device Architecture
|
||||
Specification
|
||||
|
||||
http://pupnp.sourceforge.net/
|
||||
|
||||
comment "libupnp18 needs a toolchain w/ threads"
|
||||
depends on !BR2_PACKAGE_LIBUPNP
|
||||
depends on !BR2_TOOLCHAIN_HAS_THREADS
|
@ -1,5 +0,0 @@
|
||||
# From https://sourceforge.net/projects/pupnp/files/pupnp/libupnp-1.8.7/libupnp-1.8.7.tar.bz2.sha1
|
||||
sha1 2ea3011180c58b0584f0cb73cc8e685a0a1c4ec8 libupnp-1.8.7.tar.bz2
|
||||
# Locally computed:
|
||||
sha256 e38c69b2b67322e67cd53680db9b02c7c1f720a47a3cd626fd89d57d2dca93b8 libupnp-1.8.7.tar.bz2
|
||||
sha256 c8b99423cad48bb44e2cf52a496361404290865eac259a82da6d1e4331ececb3 COPYING
|
@ -1,26 +0,0 @@
|
||||
################################################################################
|
||||
#
|
||||
# libupnp18
|
||||
#
|
||||
################################################################################
|
||||
|
||||
LIBUPNP18_VERSION = 1.8.7
|
||||
LIBUPNP18_SOURCE = libupnp-$(LIBUPNP18_VERSION).tar.bz2
|
||||
LIBUPNP18_SITE = http://downloads.sourceforge.net/project/pupnp/pupnp/libupnp-$(LIBUPNP18_VERSION)
|
||||
LIBUPNP18_CONF_ENV = ac_cv_lib_compat_ftime=no
|
||||
LIBUPNP18_INSTALL_STAGING = YES
|
||||
LIBUPNP18_LICENSE = BSD-3-Clause
|
||||
LIBUPNP18_LICENSE_FILES = COPYING
|
||||
LIBUPNP18_DEPENDENCIES = host-pkgconf
|
||||
|
||||
# Bind the internal miniserver socket with reuseaddr to allow clean restarts.
|
||||
LIBUPNP18_CONF_OPTS += --enable-reuseaddr
|
||||
|
||||
ifeq ($(BR2_PACKAGE_OPENSSL),y)
|
||||
LIBUPNP18_CONF_OPTS += --enable-open-ssl
|
||||
LIBUPNP18_DEPENDENCIES += openssl
|
||||
else
|
||||
LIBUPNP18_CONF_OPTS += --disable-open-ssl
|
||||
endif
|
||||
|
||||
$(eval $(autotools-package))
|
@ -346,13 +346,13 @@ endchoice
|
||||
|
||||
config BR2_DEFAULT_KERNEL_HEADERS
|
||||
string
|
||||
default "4.4.248" if BR2_KERNEL_HEADERS_4_4
|
||||
default "4.9.248" if BR2_KERNEL_HEADERS_4_9
|
||||
default "4.14.212" if BR2_KERNEL_HEADERS_4_14
|
||||
default "4.19.163" if BR2_KERNEL_HEADERS_4_19
|
||||
default "5.4.83" if BR2_KERNEL_HEADERS_5_4
|
||||
default "4.4.253" if BR2_KERNEL_HEADERS_4_4
|
||||
default "4.9.253" if BR2_KERNEL_HEADERS_4_9
|
||||
default "4.14.217" if BR2_KERNEL_HEADERS_4_14
|
||||
default "4.19.171" if BR2_KERNEL_HEADERS_4_19
|
||||
default "5.4.93" if BR2_KERNEL_HEADERS_5_4
|
||||
default "5.8.18" if BR2_KERNEL_HEADERS_5_8
|
||||
default "5.9.14" if BR2_KERNEL_HEADERS_5_9
|
||||
default "5.9.16" if BR2_KERNEL_HEADERS_5_9
|
||||
default BR2_DEFAULT_KERNEL_VERSION if BR2_KERNEL_HEADERS_VERSION
|
||||
default "custom" if BR2_KERNEL_HEADERS_CUSTOM_TARBALL
|
||||
default BR2_KERNEL_HEADERS_CUSTOM_REPO_VERSION \
|
||||
|
@ -17,8 +17,7 @@ LUAROCKS_CONFIG_FILE = $(LUAROCKS_CONFIG_DIR)/luarocks/config.lua
|
||||
HOST_LUAROCKS_CONFIG_FILE = $(LUAROCKS_CONFIG_DIR)/luarocks/host-config.lua
|
||||
|
||||
define LUAROCKS_ADDON_EXTRACT
|
||||
mkdir $(@D)/src/luarocks/cmd/external
|
||||
cp package/luarocks/buildroot.lua $(@D)/src/luarocks/cmd/external/buildroot.lua
|
||||
$(INSTALL) -D -m 0644 package/luarocks/buildroot.lua $(@D)/src/luarocks/cmd/external/buildroot.lua
|
||||
endef
|
||||
HOST_LUAROCKS_POST_EXTRACT_HOOKS += LUAROCKS_ADDON_EXTRACT
|
||||
|
||||
|
@ -390,7 +390,7 @@ config BR2_PACKAGE_MPD_TCP
|
||||
config BR2_PACKAGE_MPD_UPNP
|
||||
bool "UPnP"
|
||||
select BR2_PACKAGE_EXPAT
|
||||
select BR2_PACKAGE_LIBUPNP18 if !BR2_PACKAGE_LIBUPNP
|
||||
select BR2_PACKAGE_LIBUPNP
|
||||
select BR2_PACKAGE_MPD_CURL
|
||||
help
|
||||
Enable MPD UPnP client support.
|
||||
|
@ -304,7 +304,7 @@ endif
|
||||
ifeq ($(BR2_PACKAGE_MPD_UPNP),y)
|
||||
MPD_DEPENDENCIES += \
|
||||
expat \
|
||||
$(if $(BR2_PACKAGE_LIBUPNP),libupnp,libupnp18)
|
||||
libupnp
|
||||
MPD_CONF_OPTS += -Dupnp=enabled
|
||||
else
|
||||
MPD_CONF_OPTS += -Dupnp=disabled
|
||||
@ -333,6 +333,8 @@ endif
|
||||
|
||||
define MPD_INSTALL_EXTRA_FILES
|
||||
$(INSTALL) -m 0644 -D package/mpd/mpd.conf $(TARGET_DIR)/etc/mpd.conf
|
||||
mkdir -p $(TARGET_DIR)/var/lib/mpd/music
|
||||
mkdir -p $(TARGET_DIR)/var/lib/mpd/playlists
|
||||
endef
|
||||
|
||||
MPD_POST_INSTALL_TARGET_HOOKS += MPD_INSTALL_EXTRA_FILES
|
||||
|
@ -1,6 +1,6 @@
|
||||
From f55b1a37e2c43b67e7fd7f6a39afe2b2316b7cf9 Mon Sep 17 00:00:00 2001
|
||||
From 922855e245c8bdadc0d24b5b706549b18fb5f079 Mon Sep 17 00:00:00 2001
|
||||
From: Alexander Egorenkov <egorenar-dev@posteo.net>
|
||||
Date: Mon, 31 Aug 2020 19:05:46 +0200
|
||||
Date: Sat, 21 Nov 2020 11:08:56 +0100
|
||||
Subject: [PATCH] kpartx, libmultipath: use pkg-config to get path to
|
||||
headers
|
||||
|
||||
@ -9,9 +9,9 @@ to enable cross-compilation.
|
||||
|
||||
Signed-off-by: Alexander Egorenkov <egorenar-dev@posteo.net>
|
||||
---
|
||||
kpartx/Makefile | 2 +-
|
||||
libmultipath/Makefile | 8 ++++----
|
||||
2 files changed, 5 insertions(+), 5 deletions(-)
|
||||
kpartx/Makefile | 2 +-
|
||||
libmultipath/Makefile | 12 ++++++------
|
||||
2 files changed, 7 insertions(+), 7 deletions(-)
|
||||
|
||||
diff --git a/kpartx/Makefile b/kpartx/Makefile
|
||||
index 2906a984..29573890 100644
|
||||
@ -27,10 +27,10 @@ index 2906a984..29573890 100644
|
||||
endif
|
||||
|
||||
diff --git a/libmultipath/Makefile b/libmultipath/Makefile
|
||||
index e5651e49..51ad0193 100644
|
||||
index 62ba16e8..3ad9130c 100644
|
||||
--- a/libmultipath/Makefile
|
||||
+++ b/libmultipath/Makefile
|
||||
@@ -20,19 +20,19 @@ ifdef SYSTEMD
|
||||
@@ -20,27 +20,27 @@ ifdef SYSTEMD
|
||||
endif
|
||||
endif
|
||||
|
||||
@ -39,6 +39,11 @@ index e5651e49..51ad0193 100644
|
||||
CFLAGS += -DLIBDM_API_FLUSH -D_GNU_SOURCE
|
||||
endif
|
||||
|
||||
-ifneq ($(call check_func,dm_task_get_errno,/usr/include/libdevmapper.h),0)
|
||||
+ifneq ($(call check_func,dm_task_get_errno,$(shell $(PKG_CONFIG) --variable=includedir devmapper)/libdevmapper.h),0)
|
||||
CFLAGS += -DLIBDM_API_GET_ERRNO
|
||||
endif
|
||||
|
||||
-ifneq ($(call check_func,dm_task_set_cookie,/usr/include/libdevmapper.h),0)
|
||||
+ifneq ($(call check_func,dm_task_set_cookie,$(shell $(PKG_CONFIG) --variable=includedir devmapper)/libdevmapper.h),0)
|
||||
CFLAGS += -DLIBDM_API_COOKIE
|
||||
@ -54,6 +59,11 @@ index e5651e49..51ad0193 100644
|
||||
CFLAGS += -DLIBDM_API_DEFERRED
|
||||
endif
|
||||
|
||||
-ifneq ($(call check_func,dm_hold_control_dev,/usr/include/libdevmapper.h),0)
|
||||
+ifneq ($(call check_func,dm_hold_control_dev,$(shell $(PKG_CONFIG) --variable=includedir devmapper)/libdevmapper.h),0)
|
||||
CFLAGS += -DLIBDM_API_HOLD_CONTROL
|
||||
endif
|
||||
|
||||
--
|
||||
2.28.0
|
||||
2.29.2
|
||||
|
||||
|
@ -1,31 +0,0 @@
|
||||
From 48f537b9fef4f9db761466b8951fb63243f06602 Mon Sep 17 00:00:00 2001
|
||||
From: Christian Hesse <mail@eworm.de>
|
||||
Date: Wed, 6 May 2020 09:35:47 +0200
|
||||
Subject: [PATCH] libmpathpersist: depend on libmultipath
|
||||
|
||||
Without this the build fails with:
|
||||
|
||||
/usr/bin/ld: cannot find -lmultipath
|
||||
|
||||
Signed-off-by: Christian Hesse <mail@eworm.de>
|
||||
Signed-off-by: Alexander Egorenkov <egorenar-dev@posteo.net>
|
||||
---
|
||||
Makefile | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/Makefile b/Makefile
|
||||
index 1dee3680..ba1d73ba 100644
|
||||
--- a/Makefile
|
||||
+++ b/Makefile
|
||||
@@ -28,7 +28,7 @@ all: $(BUILDDIRS)
|
||||
$(BUILDDIRS):
|
||||
$(MAKE) -C $@
|
||||
|
||||
-multipath multipathd mpathpersist: libmultipath
|
||||
+libmpathpersist multipath multipathd mpathpersist: libmultipath
|
||||
mpathpersist: libmpathpersist
|
||||
|
||||
$(BUILDDIRS.clean):
|
||||
--
|
||||
2.28.0
|
||||
|
@ -1,41 +0,0 @@
|
||||
From 82129852d74785267f95ef598ac483ff9af38a55 Mon Sep 17 00:00:00 2001
|
||||
From: "mail@eworm.de" <mail@eworm.de>
|
||||
Date: Sat, 25 Apr 2020 21:11:13 +0200
|
||||
Subject: [PATCH] fix boolean value with json-c 0.14
|
||||
|
||||
Upstream json-c removed the TRUE and FALSE defines in commit
|
||||
0992aac61f8b087efd7094e9ac2b84fa9c040fcd.
|
||||
|
||||
[mwilck]: Use stdbool.h, and keep the log message unchanged.
|
||||
|
||||
Signed-off-by: Christian Hesse <mail@eworm.de>
|
||||
Signed-off-by: Martin Wilck <mwilck@suse.com>
|
||||
Signed-off-by: Alexander Egorenkov <egorenar-dev@posteo.net>
|
||||
---
|
||||
libdmmp/libdmmp_private.h | 3 ++-
|
||||
1 file changed, 2 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/libdmmp/libdmmp_private.h b/libdmmp/libdmmp_private.h
|
||||
index ac85b63f..b1a6ddea 100644
|
||||
--- a/libdmmp/libdmmp_private.h
|
||||
+++ b/libdmmp/libdmmp_private.h
|
||||
@@ -30,6 +30,7 @@
|
||||
#include <stdint.h>
|
||||
#include <string.h>
|
||||
#include <assert.h>
|
||||
+#include <stdbool.h>
|
||||
#include <json.h>
|
||||
|
||||
#include "libdmmp/libdmmp.h"
|
||||
@@ -82,7 +83,7 @@ static out_type func_name(struct dmmp_context *ctx, const char *var_name) { \
|
||||
do { \
|
||||
json_type j_type = json_type_null; \
|
||||
json_object *j_obj_tmp = NULL; \
|
||||
- if (json_object_object_get_ex(j_obj, key, &j_obj_tmp) != TRUE) { \
|
||||
+ if (json_object_object_get_ex(j_obj, key, &j_obj_tmp) != true) { \
|
||||
_error(ctx, "Invalid JSON output from multipathd IPC: " \
|
||||
"key '%s' not found", key); \
|
||||
rc = DMMP_ERR_IPC_ERROR; \
|
||||
--
|
||||
2.28.0
|
||||
|
@ -1,34 +0,0 @@
|
||||
From ec2b935d2af33651f34de8bd6e428156005c2e3d Mon Sep 17 00:00:00 2001
|
||||
From: Martin Wilck <mwilck@suse.com>
|
||||
Date: Tue, 12 May 2020 22:13:51 +0200
|
||||
Subject: [PATCH] multipath-tools Makefile: add install dependency
|
||||
|
||||
$(libdir) must exist before running "make install" on prioritizer, checker,
|
||||
and foreign libraries.
|
||||
|
||||
Cc: Christian Hesse <mail@eworm.de>
|
||||
|
||||
Signed-off-by: Martin Wilck <mwilck@suse.com>
|
||||
Signed-off-by: Alexander Egorenkov <egorenar-dev@posteo.net>
|
||||
---
|
||||
Makefile | 4 ++++
|
||||
1 file changed, 4 insertions(+)
|
||||
|
||||
diff --git a/Makefile b/Makefile
|
||||
index fec3b73b..8bcaba66 100644
|
||||
--- a/Makefile
|
||||
+++ b/Makefile
|
||||
@@ -32,6 +32,10 @@ libmultipath libdmmp: libmpathcmd
|
||||
libmpathpersist multipath multipathd: libmultipath
|
||||
mpathpersist multipathd: libmpathpersist
|
||||
|
||||
+libmultipath/checkers.install \
|
||||
+ libmultipath/prioritizers.install \
|
||||
+ libmultipath/foreign.install: libmultipath.install
|
||||
+
|
||||
$(BUILDDIRS.clean):
|
||||
$(MAKE) -C ${@:.clean=} clean
|
||||
|
||||
--
|
||||
2.28.0
|
||||
|
@ -1,3 +1,7 @@
|
||||
# Locally computed:
|
||||
sha256 ccd73bf67621161d9e42d1a770c3a7efff6e252433e8b8ed5f64a88cb5e7151d multipath-tools-0.8.4.tar.gz
|
||||
sha256 b7993225104d90ddd8024fd838faf300bea5e83d91203eab98e29512acebd69c COPYING
|
||||
sha256 0549ebe39fd3950ec49c16304da408c2bfe1b18d386d8e6647b5bcb60363c8aa multipath-tools-0.8.5.tar.gz
|
||||
sha256 8177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643 LICENSES/GPL-2.0
|
||||
sha256 3972dc9744f6499f0f9b2dbf76696f2ae7ad8af9b23dde66d6af86c9dfb36986 LICENSES/GPL-3.0
|
||||
sha256 b7993225104d90ddd8024fd838faf300bea5e83d91203eab98e29512acebd69c LICENSES/LGPL-2.0
|
||||
sha256 dc626520dcd53a22f727af3ee42c770e56c97a64fe3adb063799d8ab032fe551 LICENSES/LGPL-2.1
|
||||
sha256 afa9db94ff46f8d011251273f547ba958da6a0150a2b797b10fa8c8cfa74bbda README.md
|
||||
|
@ -4,12 +4,28 @@
|
||||
#
|
||||
################################################################################
|
||||
|
||||
MULTIPATH_TOOLS_VERSION = 0.8.4
|
||||
MULTIPATH_TOOLS_SITE = $(call github,openSUSE,multipath-tools,$(MULTIPATH_TOOLS_VERSION))
|
||||
MULTIPATH_TOOLS_LICENSE = LGPL-2.0
|
||||
MULTIPATH_TOOLS_LICENSE_FILES = COPYING
|
||||
MULTIPATH_TOOLS_VERSION = 0.8.5
|
||||
MULTIPATH_TOOLS_SITE = $(call github,opensvc,multipath-tools,$(MULTIPATH_TOOLS_VERSION))
|
||||
|
||||
MULTIPATH_TOOLS_LICENSE = \
|
||||
LGPL-2.0 (default), \
|
||||
LGPL-2.1+ (libmpathcmd), \
|
||||
GPL-2.0+ (libmultipath), \
|
||||
GPL-3.0+ (libdmmp)
|
||||
MULTIPATH_TOOLS_LICENSE_FILES = \
|
||||
LICENSES/GPL-2.0 \
|
||||
LICENSES/GPL-3.0 \
|
||||
LICENSES/LGPL-2.0 \
|
||||
LICENSES/LGPL-2.1 \
|
||||
README.md
|
||||
|
||||
MULTIPATH_TOOLS_DEPENDENCIES = lvm2 json-c readline udev liburcu libaio host-pkgconf
|
||||
MULTIPATH_TOOLS_MAKE_OPTS = LIB="lib" RUN="run" OPTFLAGS="" STACKPROT=""
|
||||
MULTIPATH_TOOLS_MAKE_OPTS = \
|
||||
LIB="lib" \
|
||||
RUN="run" \
|
||||
OPTFLAGS="" \
|
||||
STACKPROT="" \
|
||||
WARNFLAGS=""
|
||||
|
||||
ifeq ($(BR2_PACKAGE_SYSTEMD),y)
|
||||
MULTIPATH_TOOLS_DEPENDENCIES += systemd
|
||||
|
40
buildroot/package/mutt/0002-CVE-2021-3181-1.patch
Normal file
40
buildroot/package/mutt/0002-CVE-2021-3181-1.patch
Normal file
@ -0,0 +1,40 @@
|
||||
From 4a2becbdb4422aaffe3ce314991b9d670b7adf17 Mon Sep 17 00:00:00 2001
|
||||
From: Kevin McCarthy <kevin@8t8.us>
|
||||
Date: Sun, 17 Jan 2021 10:40:37 -0800
|
||||
Subject: [PATCH] Fix memory leak parsing group addresses without a display
|
||||
name.
|
||||
|
||||
When there was a group address terminator with no previous
|
||||
addresses (including the group display-name), an address would be
|
||||
allocated but not attached to the address list.
|
||||
|
||||
Change this to only allocate when last exists.
|
||||
|
||||
It would be more correct to not allocate at all unless we are inside a
|
||||
group list, but I will address that in a separate commit to master.
|
||||
|
||||
[Retrieved from:
|
||||
https://git.launchpad.net/ubuntu/+source/mutt/plain/debian/patches/CVE-2021-3181-1.patch?h=import/1.14.6-1ubuntu0.2]
|
||||
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
|
||||
---
|
||||
rfc822.c | 5 ++---
|
||||
1 file changed, 2 insertions(+), 3 deletions(-)
|
||||
|
||||
Index: mutt-1.14.6/rfc822.c
|
||||
===================================================================
|
||||
--- mutt-1.14.6.orig/rfc822.c
|
||||
+++ mutt-1.14.6/rfc822.c
|
||||
@@ -491,11 +491,10 @@ ADDRESS *rfc822_parse_adrlist (ADDRESS *
|
||||
#endif
|
||||
|
||||
/* add group terminator */
|
||||
- cur = rfc822_new_address ();
|
||||
if (last)
|
||||
{
|
||||
- last->next = cur;
|
||||
- last = cur;
|
||||
+ last->next = rfc822_new_address ();
|
||||
+ last = last->next;
|
||||
}
|
||||
|
||||
phraselen = 0;
|
53
buildroot/package/mutt/0003-CVE-2021-3181-2.patch
Normal file
53
buildroot/package/mutt/0003-CVE-2021-3181-2.patch
Normal file
@ -0,0 +1,53 @@
|
||||
From 939b02b33ae29bc0d642570c1dcfd4b339037d19 Mon Sep 17 00:00:00 2001
|
||||
From: Kevin McCarthy <kevin@8t8.us>
|
||||
Date: Sun, 17 Jan 2021 10:53:19 -0800
|
||||
Subject: [PATCH] Don't allocate a group terminator unless we are in a
|
||||
group-list.
|
||||
|
||||
This will reduce memory allocation for garbage/spam address lists.
|
||||
|
||||
It also makes no sense to store a terminator when there wasn't a
|
||||
display-name indicating the start of a group.
|
||||
|
||||
[Retrieved from:
|
||||
https://git.launchpad.net/ubuntu/+source/mutt/plain/debian/patches/CVE-2021-3181-2.patch?h=import/1.14.6-1ubuntu0.2]
|
||||
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
|
||||
---
|
||||
rfc822.c | 6 ++++--
|
||||
1 file changed, 4 insertions(+), 2 deletions(-)
|
||||
|
||||
Index: mutt-1.14.6/rfc822.c
|
||||
===================================================================
|
||||
--- mutt-1.14.6.orig/rfc822.c
|
||||
+++ mutt-1.14.6/rfc822.c
|
||||
@@ -378,7 +378,7 @@ add_addrspec (ADDRESS **top, ADDRESS **l
|
||||
|
||||
ADDRESS *rfc822_parse_adrlist (ADDRESS *top, const char *s)
|
||||
{
|
||||
- int ws_pending, nl;
|
||||
+ int ws_pending, nl, in_group = 0;
|
||||
#ifdef EXACT_ADDRESS
|
||||
const char *begin;
|
||||
#endif
|
||||
@@ -455,6 +455,7 @@ ADDRESS *rfc822_parse_adrlist (ADDRESS *
|
||||
terminate_buffer (phrase, phraselen);
|
||||
cur->mailbox = safe_strdup (phrase);
|
||||
cur->group = 1;
|
||||
+ in_group = 1;
|
||||
|
||||
if (last)
|
||||
last->next = cur;
|
||||
@@ -491,11 +492,12 @@ ADDRESS *rfc822_parse_adrlist (ADDRESS *
|
||||
#endif
|
||||
|
||||
/* add group terminator */
|
||||
- if (last)
|
||||
+ if (last && in_group)
|
||||
{
|
||||
last->next = rfc822_new_address ();
|
||||
last = last->next;
|
||||
}
|
||||
+ in_group = 0;
|
||||
|
||||
phraselen = 0;
|
||||
commentlen = 0;
|
30
buildroot/package/mutt/0004-CVE-2021-3181-3.patch
Normal file
30
buildroot/package/mutt/0004-CVE-2021-3181-3.patch
Normal file
@ -0,0 +1,30 @@
|
||||
From d4305208955c5cdd9fe96dfa61e7c1e14e176a14 Mon Sep 17 00:00:00 2001
|
||||
From: Kevin McCarthy <kevin@8t8.us>
|
||||
Date: Sun, 17 Jan 2021 11:05:36 -0800
|
||||
Subject: [PATCH] Add group terminator if it is left off.
|
||||
|
||||
If there is no terminating ";" add one to the list, to make the text
|
||||
re-rendering correct.
|
||||
|
||||
[Retrieved from:
|
||||
https://git.launchpad.net/ubuntu/+source/mutt/plain/debian/patches/CVE-2021-3181-3.patch?h=import/1.14.6-1ubuntu0.2]
|
||||
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
|
||||
---
|
||||
rfc822.c | 4 ++++
|
||||
1 file changed, 4 insertions(+)
|
||||
|
||||
Index: mutt-1.14.6/rfc822.c
|
||||
===================================================================
|
||||
--- mutt-1.14.6.orig/rfc822.c
|
||||
+++ mutt-1.14.6/rfc822.c
|
||||
@@ -560,6 +560,10 @@ ADDRESS *rfc822_parse_adrlist (ADDRESS *
|
||||
last->val = mutt_substrdup (begin, s - nl < begin ? begin : s - nl);
|
||||
#endif
|
||||
|
||||
+ /* add group terminator, if it was left off */
|
||||
+ if (last && in_group)
|
||||
+ last->next = rfc822_new_address ();
|
||||
+
|
||||
return top;
|
||||
}
|
||||
|
@ -14,6 +14,11 @@ MUTT_CONF_OPTS = --disable-doc --disable-smtp
|
||||
# 0001-Ensure-IMAP-connection-is-closed-after-a-connection-error.patch
|
||||
MUTT_IGNORE_CVES += CVE-2020-28896
|
||||
|
||||
# 0002-CVE-2021-3181-1.patch
|
||||
# 0003-CVE-2021-3181-2.patch
|
||||
# 0004-CVE-2021-3181-3.patch
|
||||
MUTT_IGNORE_CVES += CVE-2021-3181
|
||||
|
||||
ifeq ($(BR2_PACKAGE_LIBICONV),y)
|
||||
MUTT_DEPENDENCIES += libiconv
|
||||
MUTT_CONF_OPTS += --enable-iconv
|
||||
|
@ -7,7 +7,6 @@ config BR2_PACKAGE_NFS_UTILS
|
||||
depends on BR2_TOOLCHAIN_HAS_THREADS # libtirpc, rpcbind
|
||||
depends on BR2_USE_MMU # fork()
|
||||
select BR2_PACKAGE_LIBTIRPC # IPv6 requires libtirpc
|
||||
select BR2_PACKAGE_RPCBIND # runtime
|
||||
help
|
||||
The NFS Linux kernel server.
|
||||
|
||||
@ -28,6 +27,7 @@ config BR2_PACKAGE_NFS_UTILS_RPC_LOCKD
|
||||
config BR2_PACKAGE_NFS_UTILS_RPC_NFSD
|
||||
bool "rpc.nfsd"
|
||||
default y
|
||||
select BR2_PACKAGE_RPCBIND # runtime
|
||||
help
|
||||
NFS server
|
||||
|
||||
|
@ -1,5 +1,5 @@
|
||||
# From https://nodejs.org/dist/v12.19.1/SHASUMS256.txt
|
||||
sha256 74077e0cc3db000a6f3cc685b220e609807b61adc8e7d8243e8511d478d1b17d node-v12.19.1.tar.xz
|
||||
# From https://nodejs.org/dist/v12.20.1/SHASUMS256.txt
|
||||
sha256 e00eee325d705b2bfa9929b7d061eb2315402d7e8548945eac9870bf84321853 node-v12.20.1.tar.xz
|
||||
|
||||
# Hash for license file
|
||||
sha256 0dc03af08b95ea0c1e27f8fd591dee4383eb6f2c304db6eb6cdfb6751f7da87b LICENSE
|
||||
sha256 221417a7ca275112a5ac54639b36ee3c5184e74631ea1e1b01b701293b655190 LICENSE
|
||||
|
@ -4,7 +4,7 @@
|
||||
#
|
||||
################################################################################
|
||||
|
||||
NODEJS_VERSION = 12.19.1
|
||||
NODEJS_VERSION = 12.20.1
|
||||
NODEJS_SOURCE = node-v$(NODEJS_VERSION).tar.xz
|
||||
NODEJS_SITE = http://nodejs.org/dist/v$(NODEJS_VERSION)
|
||||
NODEJS_DEPENDENCIES = host-python host-nodejs c-ares \
|
||||
|
@ -0,0 +1,37 @@
|
||||
From 14f4c27e7c91f745a1dda9991b5deea3cbef2072 Mon Sep 17 00:00:00 2001
|
||||
From: Fabrice Fontaine <fontaine.fabrice@gmail.com>
|
||||
Date: Thu, 7 Jan 2021 14:09:50 +0100
|
||||
Subject: [PATCH] Revert "Use INC_DIR for OPENJPEG_INCLUDE_DIRS (fixes
|
||||
uclouvain#1174)"
|
||||
|
||||
This reverts commit 65586374d639cfc0104419992f9022174b412594 which
|
||||
breaks cross-compilation of poppler under buildroot (because of
|
||||
DESTDIR usage).
|
||||
|
||||
Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
|
||||
[Upstream status: https://github.com/uclouvain/openjpeg/pull/1321]
|
||||
---
|
||||
cmake/OpenJPEGConfig.cmake.in | 6 +++++-
|
||||
1 file changed, 5 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/cmake/OpenJPEGConfig.cmake.in b/cmake/OpenJPEGConfig.cmake.in
|
||||
index 8a726697..2925108a 100644
|
||||
--- a/cmake/OpenJPEGConfig.cmake.in
|
||||
+++ b/cmake/OpenJPEGConfig.cmake.in
|
||||
@@ -27,8 +27,12 @@ if(EXISTS ${SELF_DIR}/OpenJPEGTargets.cmake)
|
||||
# This is an install tree
|
||||
include(${SELF_DIR}/OpenJPEGTargets.cmake)
|
||||
|
||||
+ # We find a relative path from the PKG directory to header files.
|
||||
+ set(PKG_DIR "@CMAKE_INSTALL_PREFIX@/@OPENJPEG_INSTALL_PACKAGE_DIR@")
|
||||
set(INC_DIR "@CMAKE_INSTALL_PREFIX@/@OPENJPEG_INSTALL_INCLUDE_DIR@")
|
||||
- get_filename_component(OPENJPEG_INCLUDE_DIRS "${INC_DIR}" ABSOLUTE)
|
||||
+ file(RELATIVE_PATH PKG_TO_INC_RPATH "${PKG_DIR}" "${INC_DIR}")
|
||||
+
|
||||
+ get_filename_component(OPENJPEG_INCLUDE_DIRS "${SELF_DIR}/${PKG_TO_INC_RPATH}" ABSOLUTE)
|
||||
|
||||
else()
|
||||
if(EXISTS ${SELF_DIR}/OpenJPEGExports.cmake)
|
||||
--
|
||||
2.29.2
|
||||
|
@ -1,71 +0,0 @@
|
||||
From 21399f6b7d318fcdf4406d5e88723c4922202aa3 Mon Sep 17 00:00:00 2001
|
||||
From: Young Xiao <YangX92@hotmail.com>
|
||||
Date: Sat, 16 Mar 2019 19:57:27 +0800
|
||||
Subject: [PATCH] convertbmp: detect invalid file dimensions early
|
||||
|
||||
width/length dimensions read from bmp headers are not necessarily
|
||||
valid. For instance they may have been maliciously set to very large
|
||||
values with the intention to cause DoS (large memory allocation, stack
|
||||
overflow). In these cases we want to detect the invalid size as early
|
||||
as possible.
|
||||
|
||||
This commit introduces a counter which verifies that the number of
|
||||
written bytes corresponds to the advertized width/length.
|
||||
|
||||
See commit 8ee335227bbc for details.
|
||||
|
||||
Signed-off-by: Young Xiao <YangX92@hotmail.com>
|
||||
[Retrieved from:
|
||||
https://github.com/uclouvain/openjpeg/commit/21399f6b7d318fcdf4406d5e88723c4922202aa3]
|
||||
Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
|
||||
---
|
||||
src/bin/jp2/convertbmp.c | 10 ++++++++--
|
||||
1 file changed, 8 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/src/bin/jp2/convertbmp.c b/src/bin/jp2/convertbmp.c
|
||||
index 0af52f816..ec34f535b 100644
|
||||
--- a/src/bin/jp2/convertbmp.c
|
||||
+++ b/src/bin/jp2/convertbmp.c
|
||||
@@ -622,13 +622,13 @@ static OPJ_BOOL bmp_read_rle8_data(FILE* IN, OPJ_UINT8* pData,
|
||||
static OPJ_BOOL bmp_read_rle4_data(FILE* IN, OPJ_UINT8* pData,
|
||||
OPJ_UINT32 stride, OPJ_UINT32 width, OPJ_UINT32 height)
|
||||
{
|
||||
- OPJ_UINT32 x, y;
|
||||
+ OPJ_UINT32 x, y, written;
|
||||
OPJ_UINT8 *pix;
|
||||
const OPJ_UINT8 *beyond;
|
||||
|
||||
beyond = pData + stride * height;
|
||||
pix = pData;
|
||||
- x = y = 0U;
|
||||
+ x = y = written = 0U;
|
||||
while (y < height) {
|
||||
int c = getc(IN);
|
||||
if (c == EOF) {
|
||||
@@ -642,6 +642,7 @@ static OPJ_BOOL bmp_read_rle4_data(FILE* IN, OPJ_UINT8* pData,
|
||||
for (j = 0; (j < c) && (x < width) &&
|
||||
((OPJ_SIZE_T)pix < (OPJ_SIZE_T)beyond); j++, x++, pix++) {
|
||||
*pix = (OPJ_UINT8)((j & 1) ? (c1 & 0x0fU) : ((c1 >> 4) & 0x0fU));
|
||||
+ written++;
|
||||
}
|
||||
} else { /* absolute mode */
|
||||
c = getc(IN);
|
||||
@@ -671,6 +672,7 @@ static OPJ_BOOL bmp_read_rle4_data(FILE* IN, OPJ_UINT8* pData,
|
||||
c1 = (OPJ_UINT8)getc(IN);
|
||||
}
|
||||
*pix = (OPJ_UINT8)((j & 1) ? (c1 & 0x0fU) : ((c1 >> 4) & 0x0fU));
|
||||
+ written++;
|
||||
}
|
||||
if (((c & 3) == 1) || ((c & 3) == 2)) { /* skip padding byte */
|
||||
getc(IN);
|
||||
@@ -678,6 +680,10 @@ static OPJ_BOOL bmp_read_rle4_data(FILE* IN, OPJ_UINT8* pData,
|
||||
}
|
||||
}
|
||||
} /* while(y < height) */
|
||||
+ if (written != width * height) {
|
||||
+ fprintf(stderr, "warning, image's actual size does not match advertized one\n");
|
||||
+ return OPJ_FALSE;
|
||||
+ }
|
||||
return OPJ_TRUE;
|
||||
}
|
||||
|
@ -1,86 +0,0 @@
|
||||
From 3aef207f90e937d4931daf6d411e092f76d82e66 Mon Sep 17 00:00:00 2001
|
||||
From: Young Xiao <YangX92@hotmail.com>
|
||||
Date: Sat, 16 Mar 2019 20:09:59 +0800
|
||||
Subject: [PATCH] bmp_read_rle4_data(): avoid potential infinite loop
|
||||
|
||||
[Retrieved from:
|
||||
https://github.com/uclouvain/openjpeg/commit/3aef207f90e937d4931daf6d411e092f76d82e66]
|
||||
Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
|
||||
---
|
||||
src/bin/jp2/convertbmp.c | 32 ++++++++++++++++++++++++++------
|
||||
1 file changed, 26 insertions(+), 6 deletions(-)
|
||||
|
||||
diff --git a/src/bin/jp2/convertbmp.c b/src/bin/jp2/convertbmp.c
|
||||
index ec34f535b..2fc4e9bc4 100644
|
||||
--- a/src/bin/jp2/convertbmp.c
|
||||
+++ b/src/bin/jp2/convertbmp.c
|
||||
@@ -632,12 +632,18 @@ static OPJ_BOOL bmp_read_rle4_data(FILE* IN, OPJ_UINT8* pData,
|
||||
while (y < height) {
|
||||
int c = getc(IN);
|
||||
if (c == EOF) {
|
||||
- break;
|
||||
+ return OPJ_FALSE;
|
||||
}
|
||||
|
||||
if (c) { /* encoded mode */
|
||||
- int j;
|
||||
- OPJ_UINT8 c1 = (OPJ_UINT8)getc(IN);
|
||||
+ int j, c1_int;
|
||||
+ OPJ_UINT8 c1;
|
||||
+
|
||||
+ c1_int = getc(IN);
|
||||
+ if (c1_int == EOF) {
|
||||
+ return OPJ_FALSE;
|
||||
+ }
|
||||
+ c1 = (OPJ_UINT8)c1_int;
|
||||
|
||||
for (j = 0; (j < c) && (x < width) &&
|
||||
((OPJ_SIZE_T)pix < (OPJ_SIZE_T)beyond); j++, x++, pix++) {
|
||||
@@ -647,7 +653,7 @@ static OPJ_BOOL bmp_read_rle4_data(FILE* IN, OPJ_UINT8* pData,
|
||||
} else { /* absolute mode */
|
||||
c = getc(IN);
|
||||
if (c == EOF) {
|
||||
- break;
|
||||
+ return OPJ_FALSE;
|
||||
}
|
||||
|
||||
if (c == 0x00) { /* EOL */
|
||||
@@ -658,8 +664,14 @@ static OPJ_BOOL bmp_read_rle4_data(FILE* IN, OPJ_UINT8* pData,
|
||||
break;
|
||||
} else if (c == 0x02) { /* MOVE by dxdy */
|
||||
c = getc(IN);
|
||||
+ if (c == EOF) {
|
||||
+ return OPJ_FALSE;
|
||||
+ }
|
||||
x += (OPJ_UINT32)c;
|
||||
c = getc(IN);
|
||||
+ if (c == EOF) {
|
||||
+ return OPJ_FALSE;
|
||||
+ }
|
||||
y += (OPJ_UINT32)c;
|
||||
pix = pData + y * stride + x;
|
||||
} else { /* 03 .. 255 : absolute mode */
|
||||
@@ -669,13 +681,21 @@ static OPJ_BOOL bmp_read_rle4_data(FILE* IN, OPJ_UINT8* pData,
|
||||
for (j = 0; (j < c) && (x < width) &&
|
||||
((OPJ_SIZE_T)pix < (OPJ_SIZE_T)beyond); j++, x++, pix++) {
|
||||
if ((j & 1) == 0) {
|
||||
- c1 = (OPJ_UINT8)getc(IN);
|
||||
+ int c1_int;
|
||||
+ c1_int = getc(IN);
|
||||
+ if (c1_int == EOF) {
|
||||
+ return OPJ_FALSE;
|
||||
+ }
|
||||
+ c1 = (OPJ_UINT8)c1_int;
|
||||
}
|
||||
*pix = (OPJ_UINT8)((j & 1) ? (c1 & 0x0fU) : ((c1 >> 4) & 0x0fU));
|
||||
written++;
|
||||
}
|
||||
if (((c & 3) == 1) || ((c & 3) == 2)) { /* skip padding byte */
|
||||
- getc(IN);
|
||||
+ c = getc(IN);
|
||||
+ if (c == EOF) {
|
||||
+ return OPJ_FALSE;
|
||||
+ }
|
||||
}
|
||||
}
|
||||
}
|
@ -1,32 +0,0 @@
|
||||
From 024b8407392cb0b82b04b58ed256094ed5799e04 Mon Sep 17 00:00:00 2001
|
||||
From: Even Rouault <even.rouault@spatialys.com>
|
||||
Date: Sat, 11 Jan 2020 01:51:19 +0100
|
||||
Subject: [PATCH] opj_j2k_update_image_dimensions(): reject images whose
|
||||
coordinates are beyond INT_MAX (fixes #1228)
|
||||
|
||||
[Retrieved from:
|
||||
https://github.com/uclouvain/openjpeg/commit/024b8407392cb0b82b04b58ed256094ed5799e04]
|
||||
Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
|
||||
---
|
||||
src/lib/openjp2/j2k.c | 8 ++++++++
|
||||
1 file changed, 8 insertions(+)
|
||||
|
||||
diff --git a/src/lib/openjp2/j2k.c b/src/lib/openjp2/j2k.c
|
||||
index 14f6ff41a..922550eb1 100644
|
||||
--- a/src/lib/openjp2/j2k.c
|
||||
+++ b/src/lib/openjp2/j2k.c
|
||||
@@ -9221,6 +9221,14 @@ static OPJ_BOOL opj_j2k_update_image_dimensions(opj_image_t* p_image,
|
||||
l_img_comp = p_image->comps;
|
||||
for (it_comp = 0; it_comp < p_image->numcomps; ++it_comp) {
|
||||
OPJ_INT32 l_h, l_w;
|
||||
+ if (p_image->x0 > (OPJ_UINT32)INT_MAX ||
|
||||
+ p_image->y0 > (OPJ_UINT32)INT_MAX ||
|
||||
+ p_image->x1 > (OPJ_UINT32)INT_MAX ||
|
||||
+ p_image->y1 > (OPJ_UINT32)INT_MAX) {
|
||||
+ opj_event_msg(p_manager, EVT_ERROR,
|
||||
+ "Image coordinates above INT_MAX are not supported\n");
|
||||
+ return OPJ_FALSE;
|
||||
+ }
|
||||
|
||||
l_img_comp->x0 = (OPJ_UINT32)opj_int_ceildiv((OPJ_INT32)p_image->x0,
|
||||
(OPJ_INT32)l_img_comp->dx);
|
@ -1,46 +0,0 @@
|
||||
From 05f9b91e60debda0e83977e5e63b2e66486f7074 Mon Sep 17 00:00:00 2001
|
||||
From: Even Rouault <even.rouault@spatialys.com>
|
||||
Date: Thu, 30 Jan 2020 00:59:57 +0100
|
||||
Subject: [PATCH] opj_tcd_init_tile(): avoid integer overflow
|
||||
|
||||
That could lead to later assertion failures.
|
||||
|
||||
Fixes #1231 / CVE-2020-8112
|
||||
[Retrieved from:
|
||||
https://github.com/uclouvain/openjpeg/commit/05f9b91e60debda0e83977e5e63b2e66486f7074]
|
||||
Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
|
||||
---
|
||||
src/lib/openjp2/tcd.c | 20 ++++++++++++++++++--
|
||||
1 file changed, 18 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/src/lib/openjp2/tcd.c b/src/lib/openjp2/tcd.c
|
||||
index deecc4dff..aa419030a 100644
|
||||
--- a/src/lib/openjp2/tcd.c
|
||||
+++ b/src/lib/openjp2/tcd.c
|
||||
@@ -905,8 +905,24 @@ static INLINE OPJ_BOOL opj_tcd_init_tile(opj_tcd_t *p_tcd, OPJ_UINT32 p_tile_no,
|
||||
/* p. 64, B.6, ISO/IEC FDIS15444-1 : 2000 (18 august 2000) */
|
||||
l_tl_prc_x_start = opj_int_floordivpow2(l_res->x0, (OPJ_INT32)l_pdx) << l_pdx;
|
||||
l_tl_prc_y_start = opj_int_floordivpow2(l_res->y0, (OPJ_INT32)l_pdy) << l_pdy;
|
||||
- l_br_prc_x_end = opj_int_ceildivpow2(l_res->x1, (OPJ_INT32)l_pdx) << l_pdx;
|
||||
- l_br_prc_y_end = opj_int_ceildivpow2(l_res->y1, (OPJ_INT32)l_pdy) << l_pdy;
|
||||
+ {
|
||||
+ OPJ_UINT32 tmp = ((OPJ_UINT32)opj_int_ceildivpow2(l_res->x1,
|
||||
+ (OPJ_INT32)l_pdx)) << l_pdx;
|
||||
+ if (tmp > (OPJ_UINT32)INT_MAX) {
|
||||
+ opj_event_msg(manager, EVT_ERROR, "Integer overflow\n");
|
||||
+ return OPJ_FALSE;
|
||||
+ }
|
||||
+ l_br_prc_x_end = (OPJ_INT32)tmp;
|
||||
+ }
|
||||
+ {
|
||||
+ OPJ_UINT32 tmp = ((OPJ_UINT32)opj_int_ceildivpow2(l_res->y1,
|
||||
+ (OPJ_INT32)l_pdy)) << l_pdy;
|
||||
+ if (tmp > (OPJ_UINT32)INT_MAX) {
|
||||
+ opj_event_msg(manager, EVT_ERROR, "Integer overflow\n");
|
||||
+ return OPJ_FALSE;
|
||||
+ }
|
||||
+ l_br_prc_y_end = (OPJ_INT32)tmp;
|
||||
+ }
|
||||
/*fprintf(stderr, "\t\t\tprc_x_start=%d, prc_y_start=%d, br_prc_x_end=%d, br_prc_y_end=%d \n", l_tl_prc_x_start, l_tl_prc_y_start, l_br_prc_x_end ,l_br_prc_y_end );*/
|
||||
|
||||
l_res->pw = (l_res->x0 == l_res->x1) ? 0U : (OPJ_UINT32)((
|
@ -1,43 +0,0 @@
|
||||
From e8e258ab049240c2dd1f1051b4e773b21e2d3dc0 Mon Sep 17 00:00:00 2001
|
||||
From: Even Rouault <even.rouault@spatialys.com>
|
||||
Date: Sun, 28 Jun 2020 14:19:59 +0200
|
||||
Subject: [PATCH] opj_decompress: fix double-free on input directory with mix
|
||||
of valid and invalid images (CVE-2020-15389)
|
||||
|
||||
Fixes #1261
|
||||
|
||||
Credits to @Ruia-ruia for reporting and analysis.
|
||||
|
||||
[Retrieved from:
|
||||
https://github.com/uclouvain/openjpeg/commit/e8e258ab049240c2dd1f1051b4e773b21e2d3dc0]
|
||||
Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
|
||||
---
|
||||
src/bin/jp2/opj_decompress.c | 8 ++++----
|
||||
1 file changed, 4 insertions(+), 4 deletions(-)
|
||||
|
||||
diff --git a/src/bin/jp2/opj_decompress.c b/src/bin/jp2/opj_decompress.c
|
||||
index 7eeb0952f..2634907f0 100644
|
||||
--- a/src/bin/jp2/opj_decompress.c
|
||||
+++ b/src/bin/jp2/opj_decompress.c
|
||||
@@ -1316,10 +1316,6 @@ static opj_image_t* upsample_image_components(opj_image_t* original)
|
||||
int main(int argc, char **argv)
|
||||
{
|
||||
opj_decompress_parameters parameters; /* decompression parameters */
|
||||
- opj_image_t* image = NULL;
|
||||
- opj_stream_t *l_stream = NULL; /* Stream */
|
||||
- opj_codec_t* l_codec = NULL; /* Handle to a decompressor */
|
||||
- opj_codestream_index_t* cstr_index = NULL;
|
||||
|
||||
OPJ_INT32 num_images, imageno;
|
||||
img_fol_t img_fol;
|
||||
@@ -1393,6 +1389,10 @@ int main(int argc, char **argv)
|
||||
|
||||
/*Decoding image one by one*/
|
||||
for (imageno = 0; imageno < num_images ; imageno++) {
|
||||
+ opj_image_t* image = NULL;
|
||||
+ opj_stream_t *l_stream = NULL; /* Stream */
|
||||
+ opj_codec_t* l_codec = NULL; /* Handle to a decompressor */
|
||||
+ opj_codestream_index_t* cstr_index = NULL;
|
||||
|
||||
if (!parameters.quiet) {
|
||||
fprintf(stderr, "\n");
|
@ -1,3 +1,3 @@
|
||||
# Locally computed:
|
||||
sha256 63f5a4713ecafc86de51bfad89cc07bb788e9bba24ebbf0c4ca637621aadb6a9 openjpeg-2.3.1.tar.gz
|
||||
sha256 a6af136f3e15038a666b61f376612a07d9a4e48cb7c01adbf3e33b3f14ab49b6 LICENSE
|
||||
sha256 8702ba68b442657f11aaeb2b338443ca8d5fb95b0d845757968a7be31ef7f16d openjpeg-2.4.0.tar.gz
|
||||
sha256 a6af136f3e15038a666b61f376612a07d9a4e48cb7c01adbf3e33b3f14ab49b6 LICENSE
|
||||
|
@ -4,25 +4,12 @@
|
||||
#
|
||||
################################################################################
|
||||
|
||||
OPENJPEG_VERSION = 2.3.1
|
||||
OPENJPEG_VERSION = 2.4.0
|
||||
OPENJPEG_SITE = $(call github,uclouvain,openjpeg,v$(OPENJPEG_VERSION))
|
||||
OPENJPEG_LICENSE = BSD-2-Clause
|
||||
OPENJPEG_LICENSE_FILES = LICENSE
|
||||
OPENJPEG_INSTALL_STAGING = YES
|
||||
|
||||
# 0004-convertbmp-detect-invalid-file-dimensions-early.patch
|
||||
# 0005-bmp_read_rle4_data-avoid-potential-infinite-loop.patch
|
||||
OPENJPEG_IGNORE_CVES += CVE-2019-12973
|
||||
|
||||
# 0006-opj_j2k_update_image_dimensions-reject-images-whose-coordinates.patch
|
||||
OPENJPEG_IGNORE_CVES += CVE-2020-6851
|
||||
|
||||
# 0007-opj_tcd_init_tile-avoid-integer-overflow.patch
|
||||
OPENJPEG_IGNORE_CVES += CVE-2020-8112
|
||||
|
||||
# 0008-opj_decompress-fix-double-free-on-input-directory-with-mix-of-valid.patch
|
||||
OPENJPEG_IGNORE_CVES += CVE-2020-15389
|
||||
|
||||
OPENJPEG_DEPENDENCIES += $(if $(BR2_PACKAGE_ZLIB),zlib)
|
||||
OPENJPEG_DEPENDENCIES += $(if $(BR2_PACKAGE_LIBPNG),libpng)
|
||||
OPENJPEG_DEPENDENCIES += $(if $(BR2_PACKAGE_TIFF),tiff)
|
||||
|
@ -1,7 +1,7 @@
|
||||
# From https://www.openldap.org/software/download/OpenLDAP/openldap-release/openldap-2.4.56.md5
|
||||
md5 82a7dcf7aeaf95fdad16017c0ed9983a openldap-2.4.56.tgz
|
||||
# From https://www.openldap.org/software/download/OpenLDAP/openldap-release/openldap-2.4.56.sha1
|
||||
sha1 4c617b87bd50ef8d071e7deb7525af79b08d4910 openldap-2.4.56.tgz
|
||||
# From https://www.openldap.org/software/download/OpenLDAP/openldap-release/openldap-2.4.57.md5
|
||||
md5 e3349456c3a66e5e6155be7ddc3f042c openldap-2.4.57.tgz
|
||||
# From https://www.openldap.org/software/download/OpenLDAP/openldap-release/openldap-2.4.57.sha1
|
||||
sha1 1cffa70a3ea8545948041fd113f8f53bc24d6d87 openldap-2.4.57.tgz
|
||||
# Locally computed
|
||||
sha256 25520e0363c93f3bcb89802a4aa3db33046206039436e0c7c9262db5a61115e0 openldap-2.4.56.tgz
|
||||
sha256 c7ba47e1e6ecb5b436f3d43281df57abeffa99262141aec822628bc220f6b45a openldap-2.4.57.tgz
|
||||
sha256 310fe25c858a9515fc8c8d7d1f24a67c9496f84a91e0a0e41ea9975b1371e569 LICENSE
|
||||
|
@ -4,7 +4,7 @@
|
||||
#
|
||||
################################################################################
|
||||
|
||||
OPENLDAP_VERSION = 2.4.56
|
||||
OPENLDAP_VERSION = 2.4.57
|
||||
OPENLDAP_SOURCE = openldap-$(OPENLDAP_VERSION).tgz
|
||||
OPENLDAP_SITE = https://www.openldap.org/software/download/OpenLDAP/openldap-release
|
||||
OPENLDAP_LICENSE = OpenLDAP Public License
|
||||
|
@ -22,4 +22,6 @@ else ifeq ($(BR2_SHARED_LIBS),y)
|
||||
OPENTRACING_CPP_CONF_OPTS += -DBUILD_STATIC_LIBS=OFF
|
||||
endif
|
||||
|
||||
OPENTRACING_CPP_CONF_OPTS += -DENABLE_LINTING=OFF
|
||||
|
||||
$(eval $(cmake-package))
|
||||
|
@ -72,11 +72,6 @@ else
|
||||
OPENVPN_CONF_OPTS += --disable-systemd
|
||||
endif
|
||||
|
||||
define OPENVPN_INSTALL_TARGET_CMDS
|
||||
$(INSTALL) -m 755 $(@D)/src/openvpn/openvpn \
|
||||
$(TARGET_DIR)/usr/sbin/openvpn
|
||||
endef
|
||||
|
||||
define OPENVPN_INSTALL_INIT_SYSV
|
||||
$(INSTALL) -m 755 -D package/openvpn/S60openvpn \
|
||||
$(TARGET_DIR)/etc/init.d/S60openvpn
|
||||
|
@ -0,0 +1,28 @@
|
||||
From 507c394cfcf4edffc5e4450c5d737e545c26b857 Mon Sep 17 00:00:00 2001
|
||||
From: Daniel Engberg <daniel.engberg.lists@pyret.net>
|
||||
Date: Sat, 12 Dec 2020 18:56:38 +0100
|
||||
Subject: [PATCH] p11-kit/lists.c: Add stdint.h to fix compilation
|
||||
|
||||
Add stdint.h otherwise compilation fails on FreeBSD 13-CURRENT with "use of undeclared identifier 'SIZE_MAX'"
|
||||
|
||||
Signed-off-by: Daniel Engberg <daniel.engberg.lists@pyret.net>
|
||||
|
||||
[Retrieved from:
|
||||
https://github.com/p11-glue/p11-kit/commit/507c394cfcf4edffc5e4450c5d737e545c26b857]
|
||||
Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
|
||||
---
|
||||
p11-kit/lists.c | 1 +
|
||||
1 file changed, 1 insertion(+)
|
||||
|
||||
diff --git a/p11-kit/lists.c b/p11-kit/lists.c
|
||||
index 365a6d89..1d9062be 100644
|
||||
--- a/p11-kit/lists.c
|
||||
+++ b/p11-kit/lists.c
|
||||
@@ -39,6 +39,7 @@
|
||||
|
||||
#include <assert.h>
|
||||
#include <ctype.h>
|
||||
+#include <stdint.h>
|
||||
#include <string.h>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
@ -3,8 +3,6 @@ config BR2_PACKAGE_P11_KIT
|
||||
depends on !BR2_STATIC_LIBS
|
||||
depends on BR2_USE_MMU
|
||||
depends on BR2_TOOLCHAIN_HAS_THREADS
|
||||
select BR2_PACKAGE_LIBFFI
|
||||
select BR2_PACKAGE_LIBTASN1
|
||||
help
|
||||
Provides a way to load and enumerate PKCS#11 modules.
|
||||
Provides a standard configuration setup for installing PKCS#11
|
||||
|
@ -1,4 +1,4 @@
|
||||
# Locally calculated after checking pgp signature
|
||||
sha256 4b34e92ae36fa493e0d94366c767f06d5f9951e3d8581d10fd935d738db1574d p11-kit-0.23.16.1.tar.gz
|
||||
sha256 8a8f40153dd5a3f8e7c03e641f8db400133fb2a6a9ab2aee1b6d0cb0495ec6b6 p11-kit-0.23.22.tar.xz
|
||||
# Locally computed
|
||||
sha256 2e1ba993904df807a10c3eda1e5c272338edc35674b679773a8b3ad460731054 COPYING
|
||||
sha256 2e1ba993904df807a10c3eda1e5c272338edc35674b679773a8b3ad460731054 COPYING
|
||||
|
@ -4,9 +4,9 @@
|
||||
#
|
||||
################################################################################
|
||||
|
||||
P11_KIT_VERSION = 0.23.16.1
|
||||
P11_KIT_VERSION = 0.23.22
|
||||
P11_KIT_SOURCE = p11-kit-$(P11_KIT_VERSION).tar.xz
|
||||
P11_KIT_SITE = https://github.com/p11-glue/p11-kit/releases/download/$(P11_KIT_VERSION)
|
||||
P11_KIT_DEPENDENCIES = host-pkgconf libffi libtasn1
|
||||
P11_KIT_INSTALL_STAGING = YES
|
||||
P11_KIT_CONF_OPTS = --disable-static
|
||||
P11_KIT_CONF_ENV = ac_cv_have_decl_program_invocation_short_name=yes \
|
||||
@ -14,10 +14,27 @@ P11_KIT_CONF_ENV = ac_cv_have_decl_program_invocation_short_name=yes \
|
||||
P11_KIT_LICENSE = BSD-3-Clause
|
||||
P11_KIT_LICENSE_FILES = COPYING
|
||||
|
||||
ifeq ($(BR2_PACKAGE_LIBFFI),y)
|
||||
P11_KIT_DEPENDENCIES += host-pkgconf libffi
|
||||
P11_KIT_CONF_OPTS += --with-libffi
|
||||
else
|
||||
P11_KIT_CONF_OPTS += --without-libffi
|
||||
endif
|
||||
|
||||
ifeq ($(BR2_PACKAGE_LIBTASN1),y)
|
||||
P11_KIT_DEPENDENCIES += host-pkgconf libtasn1
|
||||
P11_KIT_CONF_OPTS += \
|
||||
--enable-trust-module \
|
||||
--with-libtasn1
|
||||
ifeq ($(BR2_PACKAGE_CA_CERTIFICATES),y)
|
||||
P11_KIT_CONF_OPTS += --with-trust-paths=/etc/ssl/certs/ca-certificates.crt
|
||||
else
|
||||
P11_KIT_CONF_OPTS += --without-trust-paths
|
||||
endif
|
||||
else
|
||||
P11_KIT_CONF_OPTS += \
|
||||
--disable-trust-module \
|
||||
--without-libtasn1
|
||||
endif
|
||||
|
||||
$(eval $(autotools-package))
|
||||
|
@ -1,5 +1,5 @@
|
||||
# Locally computed:
|
||||
sha256 19e9f04ddf244ab8c937d7e631ca15cedce7df95712c554107600e80efdaf277 paho-mqtt-c-1.3.7.tar.gz
|
||||
sha256 4920ff685344cdb0272568bc4414dcf48fcdfc4a98c78b1f3ca49c38417bf391 paho-mqtt-c-1.3.8.tar.gz
|
||||
sha256 83bbba033dc985487e321b6dfde111772affb73460be48726299fed3da684b1c edl-v10
|
||||
sha256 0becf16567beb77fa252b7664631dd177c8f9a1889e48995b45379c7130e5303 epl-v20
|
||||
sha256 bc0f3f447097eb82a29ad6c2f4929572bb548b6bd4c9e38fde1bf131a771b7a0 LICENSE
|
||||
|
@ -4,7 +4,7 @@
|
||||
#
|
||||
################################################################################
|
||||
|
||||
PAHO_MQTT_C_VERSION = 1.3.7
|
||||
PAHO_MQTT_C_VERSION = 1.3.8
|
||||
PAHO_MQTT_C_SITE = $(call github,eclipse,paho.mqtt.c,v$(PAHO_MQTT_C_VERSION))
|
||||
PAHO_MQTT_C_LICENSE = EPL-2.0 or BSD-3-Clause
|
||||
PAHO_MQTT_C_LICENSE_FILES = epl-v20 edl-v10 LICENSE
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user