diff options
author | Brad Bishop <bradleyb@fuzziesquirrel.com> | 2019-06-19 04:44:24 +0300 |
---|---|---|
committer | Brad Bishop <bradleyb@fuzziesquirrel.com> | 2019-06-19 05:22:02 +0300 |
commit | 15ae2509e522678e761046cdb8693291c09cf78c (patch) | |
tree | d05707c63625ea7880e4f15dfd6355e55fb258e5 /poky/meta/recipes-devtools/gcc | |
parent | c7537e7c9f1306129bc0f793c217c6646191b45e (diff) | |
download | openbmc-15ae2509e522678e761046cdb8693291c09cf78c.tar.xz |
subtree updates
meta-openembedded: f3018013ff..3b245e4fe8:
Adrian Bunk (8):
Remove start-stop-daemon
dvb-apps: Remove workaround patch for ancient target compilers
Remove ipsec-tools and umip
gpsd: Switch PACKAGECONFIG[qt] from Qt4 to Qt5
samba: Upgrade 4.8.11 -> 4.8.12
recipes-devtools: Move back from meta-networking to meta-perl
wireless-regdb: Upgrade 2019.03.01 -> 2019.06.03
mcelog: Remove manual RDEPENDS from PN-ptest to PN package
Alejandro del Castillo (1):
apache2: add all extra/*.conf to conffiles
Alistair Francis (1):
python-obd: Uprade from 0.7.0 to 0.7.1
Andreas Müller (1):
python-six: put python2/3 variant together
Andrei Gherzan (2):
modemmanager: Update to 1.10.0
networkmanager: Update to 1.18.0
Ankit Navik (1):
safec: Initial recipe for safe C library
Carlos Rafael Giani (1):
openh264: Fix armv7ve build
Changqing Li (11):
syslog-ng: add rconflict for package syslog-ng-libs
netkit-telnet: add rconflicts
samba/libldb: add rconflicts
php-fpm-apache: fix module path
phoronix-test-suite: upgrade from 8.6.0 -> 8.8.1
python-pygobject: upgrade 3.28.3 -> 3.32.1
rrdtool: upgrade 1.7.1 -> 1.7.2
php: upgrade 7.3.4 -> 7.3.6
xf86-video-ati: upgrade 18.0.1 -> 19.0.1
pavucontrol: upgrade 3.0 -> 4.0
multipath-tools: upgrade 0.8.0 -> 0.8.1
Herman van Hazendonk (1):
Geoclue: Update to 2.5.3
Hongxu Jia (4):
rrdtool: improve reproducibility
crash: do not use unstable github archive tarballs
postgresql: improve reproducibility
net-snmp: split net-snmp-config to package net-snmp-dev
Hongzhi.Song (1):
spice: fix compile errors on 32bit system
Horvath, Chris (1):
lcov: Upgrade 1.11 -> 1.14
James Feist (1):
libgpiod: Enable cxx bindings by default
Kai Kang (16):
xfce4-session: 4.13.1 -> 4.13.2
xfce4-screensaver: add recipe
packagegroup-xfce-extended: add xfce4-screensaver
lxdm: provides fake gdmflexiserver for xfce desktop environment
thunar: 1.8.4 -> 1.8.6
xfdesktop: 4.13.3 -> 4.13.4
xfce4-panel: 4.13.4 -> 4.13.5
thunar-volman: 0.9.1 -> 0.9.2
xfce4-appfinder: 4.13.2 -> 4.13.3
libxfce4util: 4.13.2 -> 4.13.3
xfwm4: 4.13.1 -> 4.13.2
xfconf: 4.13.6 -> 4.13.7
libxfce4ui: 4.13.4 -> 4.13.5
xfce4-power-manager: 1.6.1 -> 1.6.2
xfce4-settings: set default theme Adwaita
lxdm: provides fake gdmflexiserver for xfce desktop environment
Khem Raj (8):
libnfc: Fix build with musl
openocd: Fix build on x86_64
spice,spice-protocol: Uprev to 0.14.0
udisks: Install bash_completion script in OE familiar dir
udisks: Remove bash dependency
python-jsmin,python-pytoml,python-which: Add recipes
mozjs: Upgrade to version 60.x
polkit: Upgrade to 0.116
Liwei Song (1):
turbostat: copy bits.h from kernel to turbostat
Marek Belisko (1):
libsrtp: Fix compilation and add pkgconfig
Martin Jansa (17):
igmpproxy: remove 0001-src-igmpproxy.h-Include-sys-types.h-for-u_short-u_in.patch and _GNU_SOURCE
ne10, libopus: add armv7ve override as well
pidgin: upgrade to 2.13.0
funyahoo-plusplus, icyque, pidgin-sipe, purple-skypeweb: add couple plugins for pidgin
hunspell: use git fetcher instead of github archive
hunspell-dictionaries: import from meta-luneos to make hunspell in meta-oe a bit more useful
ttf-mplus, ttf-vlgothic: add ttf-mplus license
android-tools-conf: import one more improvement for android-gadget-setup from meta-luneos
uriparser: upgrade to 0.9.3
libmikmod: fix SRC_URI
leptonica: fix SRC_URI
libmikmod: upgrade to 3.3.11.1
open-vm-tools: refresh the patches so that they can be easily applied with devtool or git am
open-vm-tools: import gcc9 fixes from fedora
spice: append to CFLAGS instead of +=
cpprest: temporary ignore deprecated-copy and redundant-move errors detected by gcc9
oprofile: drop virtual/kernel dependency and switch back to TUNE_PKGARCH
Mingli Yu (4):
mariadb: Upgrade to 10.3.15
kea: Upgrade to 1.5.0
hwloc: Upgrade to 1.11.12
kea: replace -Og with -O
Naveen Saini (1):
pm-graph: add recipe
Oleksandr Kravchuk (12):
opensaf: update to 5.19.03
python-ldap: update to 3.2.0
rp-pppoe: update to 3.13
atftp: update to 0.7.2
ipcalc: update to 2.2.3
mtr: update to 0.92
nbd: update to 3.19
mdns: update to 878.200.35
lldpd: update to 1.0.3
libp11: update to 0.4.10
nano: update to 4.2
libspatialite: update to 4.3.0a
Ovidiu Panait (1):
xfsprogs: Fix host contamination
Paolo Valente (1):
s-suite: push SRCREV to version 3.4
Pascal Bach (1):
rocksdb: 5.18.3 -> 6.0.2
Qi.Chen@windriver.com (2):
polkit: fix CVE-2019-6133
.gitignore: add *.pyc and *.pyo
Randy MacLeod (1):
imagemagick: update from 7.0.8-43 to 7.0.8-47
Robert Joslyn (4):
cryptsetup: Add PACKAGECONFIG options
lmsensors: Update to 3.5.0
xfce4-session: Add xrdb RDEPENDS
xfce4-session: Reformat DEPENDS and RDEPENDS
Slater, Joseph (1):
php-7: mark two tests as expected to fail
Stefan Agner (1):
haveged: fix CPU cache size detection
Tim Orling (13):
libterm-readkey-perl: upgrade 2.37 -> 2.38; fix upstream check; enable ptest
libtest-deep-perl: add recipe for v1.128
libcgi-perl: upgrade 4.38 -> 4.43; enable ptest
libcrypt-openssl-guess-perl: rename from libcrypt-openssl-guess; enable ptest
libcrypt-openssl-rsa-perl: upgrade 0.30 -> 0.31; enable ptest
libcrypt-openssl-random-perl: upgrade 0.11 -> 0.15; enable ptest
libextutils-installpaths-perl: upgrade 0.011 -> 0.012; enable ptest
libexutils-config-perl: enable ptest
libhtml-tagset-perl: add recipe for v3.20
libhtml-parser-perl: enable ptest
libstrictures-perl: upgrade 2.000003 -> 2.000006; enable ptest
libxml-libxml-perl: enable ptest
libcapture-tiny-perl: upgrade 0.46 -> 0.48; enable ptest
William A. Kennington III via Openembedded-devel (1):
cli11: 1.6.2 -> 1.7.1
Yi Zhao (8):
python-ldap: add python-pyasn1 and python-pyasn1-modules as runtime dependencies
fuse: upgrade 2.9.8 -> 2.9.9
yaffs2-utils: update to latest master
xfsprogs: upgrade 4.18.0 -> 5.0.0
fcgi: upgrade 2.4.1+git -> 2.4.2
xdebug: upgrade 2.7.0RC2 -> 2.7.2
phpmyadmin: upgrade 4.8.5 -> 4.9.0.1
openipmi: upgrade 2.0.25 -> 2.0.27
Zang Ruochen (13):
python-pywbem: solved the conflict with python3-pywbem
python3-pywbem:solved the conflict with python-pywbem
python-pbr: upgrade 5.2.0 -> 5.2.1
python-mako: upgrade 1.0.10 -> 1.0.12
python-babel: upgrade 2.6.0 -> 2.7.0
python-cachetools: upgrade 3.1.0 -> 3.1.1
python-cryptography: upgrade 2.6.1 -> 2.7
python-cryptography-vectors: upgrade 2.6.1 -> 2.7
python-cython: upgrade 0.29.7 -> 0.29.10
python-lxml: upgrade 4.3.3 -> 4.3.4
python-psutil: upgrade 5.6.2 -> 5.6.3
python-requests: upgrade 2.21.0 -> 2.22.0
python-urllib3: upgrade 1.25.2 -> 1.25.3
nick83ola (5):
nginx: update to version 1.17.0
nginx: update stable version to 1.16.0
nginx: add PACKAGECONFIG[http-auth-request]
nginx: fix kill path in nginx systemd unit file
uthash: do not use unstable github archive tarballs
thstead (1):
Upgraded python-pysnmp from version 4.3.5. to 4.4.9.
Łukasz Łaguna (1):
gsl: update to version 2.5
meta-security: 9f5cc2a7eb..c28b72e91d:
Armin Kuster (17):
checksec: update to 1.11.1
keyutils: fix library install path
checksec: add runtime test
meta-integrity: port over from meta-intel-iot-security
layer.conf: add LAYERSERIES_COMPAT
README: update
ima-evm-utils: cleanup and update to tip
ima.cfg: update to 5.0 kernel
linux: update bbappend
base-files: add appending to automount securityfs
ima-policy-hashed: add new recipe
ima_policy_simple: add another sample policy
policy: add ima appraise all policy
data: remove policies
initramfs: clean up to pull in packages.
runtime qa: moderize ima test
image: add image for testing
Changqing Li (1):
samhain: add rconflict for client and server mode
Zang Ruochen (4):
bastille: solved the conflict with perl-module-text-wrap and base-files
python-scapy: Remove redundant sed operations
python-scapy: solved the conflict with python3-scapy
python3-scapy: solved the conflict with python-scapy
leimaohui (1):
python3-fail2ban: Fix build error of xrange.
poky: 797916f93a..111b7173fe:
Adrian Bunk (25):
nss-myhostname: Stop trying to build for musl
systemd: Some upstreamable musl patches have been upstreamed
libnss-mdns: Stop trying to build for musl
icu: Remove workaround for musl issue fixed upstream 2 years ago
socat: Remove workaround for musl issue now fixed upstream
ofono: Use external ell instead of an internal copy
ofono: Fix another race condition during the build
squashfs-tools: Mark as incompatible with musl
apt: Remove workaround patches for no longer supported host distributions
m4/tar: Remove remove-gets.patch
pinentry: Switch pinentry-qt from Qt4 to Qt5
librsvg: Replace workaround for old host systems with upstream fix
vim: Move PACKAGECONFIG[gtkgui] from GTK 2 to GTK 3
Remove Go 1.11
go: Remove INSANE_SKIP_* textrel that are now handled in go.bbclass
dpkg: Remove workaround patches for no longer supported host distributions
lrzsz: Add implicit declaration fixes from Debian
tcp-wrappers: Add compile warning fixes from Debian
libpam: Upgrade 1.3.0 -> 1.3.1
vte: Fix the license information
gcc: Remove 0006-gcc-disable-MASK_RELAX_PIC_CALLS-bit.patch
openssl: Upgrade 1.1.1b -> 1.1.1c
Remove manual RDEPENDS from PN-ptest to PN package
ref-manual: Remove irda feature
lttng-modules: Upgrade 2.10.9 -> 2.10.10
Adrian Freihofer (3):
qemurunner: fix undefined variable
testimage: consider QB_DEFAULT_FSTYPE
runqemu: QB_FSINFO to support fstype wic images
Alejandro Enedino Hernandez Samaniego (1):
python-numpy: Avoid installing copy of f2py script
Alejandro Hernandez Samaniego (2):
newlib: Upgrade to 3.1.0
newlib: export CC_FOR_TARGET as CC
Alejandro del Castillo (1):
opkg-utils: upgrade to version 0.4.1
Alex Kiernan (2):
kernel-fitimage: uboot-sign: Check UBOOT_DTB_BINARY before adding deps
systemd: Backport OpenSSL BUF_MEM fix
Alexander Kanavin (53):
vim: split the common part into vim.inc
libpcre2: upgrade 10.32 -> 10.33
librepo: upgrade 1.9.6 -> 1.10.2
libmodulemd: upgrade 2.2.3 -> 2.4.0
libmodulemd: fix erroneous linking against v2 library when v1 was requested
createrepo-c: upgrade 0.12.2 -> 0.14.0
libdazzle: upgrade 3.32.1 -> 3.32.2
adwaita-icon-theme: upgrade 3.30.1 -> 3.32.0
bison: upgrade 3.1 -> 3.3.2
atk: upgrade 2.30.0 -> 2.32.0
python3-mako: upgrade 1.0.9 -> 1.0.10
nss: upgrade 3.43 -> 3.44
go: update 1.12.1->1.12.5
systemtap: upgrade 4.0 -> 4.1
gawk: upgrade 4.2.1 -> 5.0.0
alsa-plugins: upgrade 1.1.8 -> 1.1.9
alsa-utils: upgrade 1.1.8 -> 1.1.9
alsa-lib: upgrade 1.1.8 -> 1.1.9
lz4: upgrade 1.9.0 -> 1.9.1
libxcrypt: upgrade 4.4.4 -> 4.4.6
python3-pip: upgrade 19.0.3 -> 19.1.1
pkgconf: upgrade 1.6.0 -> 1.6.1
at-spi2-core: upgrade 2.30.0 -> 2.32.1
at-spi2-atk: upgrade 2.30.0 -> 2.32.0
glib-networking: upgrade 2.60.1 -> 2.60.2
libsoup-2.4: upgrade 2.66.1 -> 2.66.2
x264: upgrade to latest revision
linux-firmware: upgrade to latest revision
python3-pbr: upgrade 5.1.3 -> 5.2.0
bash-completion: upgrade 2.8 -> 2.9
gst-examples: upgrade to 1.16.0
acpica: upgrade 20190405 -> 20190509
freetype: upgrade 2.9.1 -> 2.10.0
usbutils: upgrade 010->012
webkitgtk: update to 2.24.2
epiphany: update to 3.32.2
btrfs-tools: update to 5.1
iproute2: upgrade 5.0.0 -> 5.1.0
chkconfig: do not use unstable github archive tarballs
chkconfig: fix upstream version check
perl: update to 5.30.0
piglit: upgrade to latest revision
ccache: fix upstream version check
Revert "ncurses: fix incorrect UPSTREAM_CHECK_GITTAGREGEX"
sysstat: add UPSTREAM_VERSION_UNKNOWN
python3-pygments: add a recipe
gtk-doc: upgrade 1.29 -> 1.30
libpsl: fix the gtk-doc 1.30 build
source-highlight: remove the recipe
mesa-demos: update to 8.4.0
glib-2.0: udpate 2.58.3 -> 2.60.3
gdk-pixbuf: update 2.38.0 -> 2.38.1
gtk+3: update 3.24.5 -> 3.24.8
Alistair Francis (3):
gdb: Upgrade from 8.2.1 to 8.3
gnu-config: Update to latest SHA
qemu: Backport the arm segfault fix
Andreas Müller (1):
gsettings-desktop-schemas: upgrade 3.28.1 -> 3.32.0
Andrei Gherzan (1):
ca-certificates: Fix openssl runtime dependencies
Anuj Mittal (8):
Revert "image_types: use pigz to create .gz files"
Revert "pigz: pigz is not gzip"
libva: upgrade 2.4.0 -> 2.4.1
ffmpeg: add PACKAGECONFIG for mfx
libpam: fix upstream version check
serf: cleanup recipe
scons: inherit python3native
python3-scons: fix regex replacing python by python3
Bonnans, Laurent (1):
kernel-uboot: compress arm64 kernels
Bruce Ashfield (11):
linux-yocto/5.0: update to v5.0.13
linux-yocto/4.19: update to v4.19.40
linux-yocto/4.19: update to v4.19.44
kernel: package modules.builtin.modinfo
linux-yocto-dev: bump to v5.2-rc
linux-yocto/5.0: update to v5.0.17
linux-yocto-rt/5.0: update to -rt9
linux-yocto/5.0: update to v5.0.19
linux-yocto-rt/5.0: update to -rt11
linux-yocto/5.0: fix systemtap on arm
linux-yocto: ptest: Add SCSI debug configuration for util-linux
Carlos Rafael Giani (6):
gstreamer1.0-plugins-base: upgrade to version 1.16.0
gstreamer1.0-plugins-good: upgrade to version 1.16.0
gstreamer1.0-plugins-bad: upgrade to version 1.16.0
gstreamer1.0-plugins-ugly: upgrade to version 1.16.0
gstreamer1.0-libav: upgrade to version 1.16.0
gstreamer1.0-vaapi: upgrade to version 1.16.0
Changqing Li (8):
connman: add networkmanager as rconflict
dropbear: add openssh/openssh-sshd as rconflict
busybox-inittab/sysvinit-inittab: add rconflicts
inetutils: fix wrong package name
systemd: add rconflicts
tiny-init: add rconflicts
multilib: add override for image recipe
qemu: fix qemu ptest cannot work
Chee Yang Lee (3):
wic: bootimg-efi: add label source parameter
wic/engine: include .wks.in in wic search and list
wic/plugins: kernel image refer to KERNEL_IMAGETYPE
Chen Qi (5):
libxfont2: set CVE_PRODUCT
systemd: avoid musl specific patches affect glibc systems
util-linux: upgrade to 2.33.2
oescripts.py: avoid error when cairo module is not available
context.py: fix skipping function
Chris Laplante (5):
base.bbclass: Add OE_EXTRA_IMPORTS
bitbake: knotty: allow progress rate for indeterminate bars
bitbake: build: extract progress handler creation logic into its own method
bitbake: build/progress: use context managers for progress handlers
bitbake: build: implement custom progress handlers injected via OE_EXTRA_IMPORTS
David Frey (1):
bluez5: manage udev dependency with PACKAGECONFIG
David Reyna (1):
bitbake: toaster: Fix Thud Bitbake release metadata
Diego Rondini (1):
bluez5: fix obex packaging
Douglas Royds via Openembedded-core (1):
json-c: Backport --disable-werror patch to allow compilation under icecc
Fabio Berton (3):
mesa: Update 19.0.3 -> 19.0.5
mesa: Update 19.0.5 -> 19.0.6
mesa: Update 19.0.6 -> 19.1.0
Filip Jareš (1):
recipes: Fix license "names"/versions.
Haiqing Bai (1):
kernel.bbclass: Make task clean depend on cleaning of make-mod-scripts
He Zhe (1):
lttng-modules: Add git based recipe
Hongxu Jia (5):
grub/grub-efi: fix unrecognized command line option '-pipe-Wno-error' in CFLAGS
lib/oe/reciputils.py: support character `+' in git pv
groff: improve reproducibility
diffutils/run-ptest: support to run at arbitrary path
openssh: fix potential signed overflow in pointer arithmatic
Jaewon Lee (2):
gstreamer1.0-python_1.16.0.bb: Override libpython dir
devicetree.bbclass: Combine stderr into stdout to see actual dtc error
Jean-Marie LEMETAYER (4):
npm: get npm package name from npm pack
npm: fix node and npm default directory conflict
npm: remove some temporary build files
bitbake: bitbake: fetch2/npm: fix npw view parsing
Jiping Ma (1):
dhcp:"dhclient -x eth0" action is not correct.
Joe Slater (1):
slang: modify an array test
Jon Mason (2):
resulttool: modify to be multi-machine
resulttool: Remove prints if no tests occur
Jonathan Rajotte (4):
lttng-tools: prevent test timeout when lttng-modules is not present
lttng-tools: add lttng-modules to ptest dependencies
liburcu: update to 0.11.0
liburcu: update to 0.11.1
Joshua Watt (11):
avahi: Add PACKAGECONFIG for libdns_sd
perl: Preserve attributes when applying cross files
btrfs-tools: Pass DEBUG_MAP_PREFIX flags to Python
bitbake: bitbake: cooker: Rename __depends in all multiconfigs
bitbake: bitbake: Show base multiconfig environment
perl: Set build date to SOURCE_DATE_EPOCH
glibc-locale: DEPEND on virtual/libc
zip: Remove build date to improve reproducibility
classes/package: Sort ELF file list
bash: Replace uninative loader path in ptest
oeqa: Add reproducible build selftest
Kai Kang (3):
systemd-conf: configure wired network with dhcp
qemu/qemu-system-native: depend bison-native
openssl: fix failure of ptest test_shlibload
Kevin Hao (3):
runqemu: Add the support to pass multi ports to tcpserial parameter
oeqa/utils/qemurunner: Set both the threadport&serverport with tcpserial parameter
tune-thunderx: Set the correct PACKAGE_EXTRA_ARCHS_tune-thunderx
Khem Raj (6):
mesa: Fix a case when gbm is enabled but DRIDRIVERS is not defined
ofono: Add TEMP_FAILURE_RETRY optional definition
Revert "musl: Add TEMP_FAILURE_RETRY from glibc"
binutils: Workaround mips assembler crash on target
musl: Upgrade to master tip
gdb: Let gdbserver be empty for riscv64
Lei Maohui (1):
meson.bbclass: Make meson support aarch64_be.
Luca Boccassi (2):
python*-setuptools: add separate packages for pkg_resources module
mdadm: use ${systemd_unitdir} rather than /lib/systemd
Maciej Pijanowski (1):
recipetool: add python3 support
Mariano López (3):
util-linux: Add missing ptest dependencies
util-linux: Stop udevd to run ptests
linux-yocto: Add scsi_debug module when ptest is in DISTRO_FEATURES
Mark Hatle (1):
bitbake: svn.py: Stop SVN from directly pulling from an external layer w/o fetcher
Martin Jansa (5):
python: add a fix for CVE-2019-9948 and CVE-2019-9636
glib-networking: add PACKAGECONFIG for openssl
bc: use u-a for bc as well
opkg-utils: fix opkg-list-fields script
pigz: install pigz, unpigz, pigzcat in native and nativesdk builds again
Matthias Schiffer (1):
bitbake: fetch2: runfetchcmd(): unset _PYTHON_SYSCONFIGDATA_NAME
Matthias Schoepfer via Openembedded-core (1):
python3: fix build on softfloat mips
Michael Ho (1):
base.bbclass: add named SRCREVs to the sstate hash
Mike Crowe (1):
cmake: Avoid passing empty prefix to os.path.relpath
Mingli Yu (3):
elfutils: fix ptest failures
dbus: Upgrade to 1.12.16
dbus-test: Upgrade 1.12.16
Nicola Lunghi (3):
connman: fix segfault with musl >v1.1.21
rng-tools: recipe cleanup
rng-tools: harmonise systemd and sysvinit
Oleksandr Kravchuk (6):
ethtool: update to 5.1
file: update to 5.37
p11-kit: update to 0.23.16.1
popt: fix SRC_URI
selftest/devtool: fix URI to MarkupSafe package
bitbake: cooker: list all nonexistent bblayer directories
Oliver Stäbler (1):
packagegroup-core-full-cmdline: Make nfs-utils/rpcbind optional
Peter Kjellerstedt (3):
texinfo-dummy-native: A little clean up of template.py
texinfo-dummy-native: Rewrite template.py to use argparse
package.bbclass: Clean up writing of runtime pkgdata files
Philippe Normand (9):
gstreamer1.0: upgrade to version 1.16.0
gstreamer1.0-omx: upgrade to version 1.16.0
gstreamer1.0-rtsp-server: upgrade to version 1.16.0
gstreamer1.0-python: upgrade to version 1.16.0
gst-validate: upgrade to version 1.16.0
cmake: Use compiler launcher variable when ccache is enabled
at-spi2: Make X11 support truly optional
gnutls: Use ca-certificates as default trust store file
gnutls: Use the sysconfdir variable for the ca-certificates path
Quentin Schulz (2):
meta: license: fix non-SPDX license being removed from INCOMPATIBLE_LICENSE
selftests: add tests for INCOMPATIBLE_LICENSE
Randy MacLeod (6):
valgrind: Make ptest timestamps copasetic
valgrind: add 'file' to ptest depends
util-linux: add setpriv utility
libcap-ng: split into libcap-ng/libcap-ng-python
ptest-runner: enable child procs as session leader
bash: use setpriv, sed.sed to run ptests
Richard Purdie (46):
perl-rdepends: Add missing module dependencies
bash: Fix bash-ptest dependencies
openssh: Add sudo dependency for ptest
libpcre: Add make dependency for ptest
m4: Add coreutils and diffutils dependency for ptest
perl/modules: Add various missing ptest perl module dependencies
layer.conf: Whitelist lttng-tools->lttng-modules dependency
tcmode-default: Make gcc9 the default
lttng-tools: Fix patch Upstream-Status
mesa: Fix patch Upstream-Status
uninative-tarball: Fix file generation after class changes
populate_sdk_base: Use highest compression level for xz
uninative-tarball: Use xz compression and SDK_ARCHIVE_CMD
strace: Tweak ptest disk space management
ptest-packagelists: Add mdadm
util-linux: Fix ptest dependencies
mdadm: Add missing ptest dependency
yocto-uninative: Update to 2.5 release
uninative: Switch from bz2 to xz
bitbake: main: Fix error message typo
qemuarm64: Add QB_CPU_KVM to allow kvm acceleration
runqemu: Add support for kvm on aarch64
useradd: Fix build architecture corruption of sstate artefacts
useradd: Ensure do_populate_sysroot has dependency on useradd variables
beaglebone-yocto: Add missing wic image u-boot deploy dependency
quilt: Add patch depends for quilt-ptest
libtest-needs-perl: Fix ptest dependencies
libtimedate-perl: Fix ptest dependencies
perl: Add missing perl module dependency
liburi-perl: Fix module ptest dependencies
libconvert-aan1-perl: Fix module and ptest dependencies
libxml-sax-perl: Fix module ptest dependencies
libxml-perl: Fix module and ptest dependencies
e2fsprogs: Fix missing ptest dependencies
glib-2.0: ptest fixes
openssh: Add missing ptest dependency on coreutils
gpg_sign/selftest: Fix secmem parameter handling
gawk: ptest fixes
openssh: Document skipped test dependency
multiconfig: Adapt to bitbake switch 'multiconfig' -> 'mc'
bitbake: multiconfig: Switch from 'multiconfig' -> 'mc'
bitbake: cooker: Add compability handling for multiconfig: prefix migration
build-appliance-image: Update to master head revision
bitbake: cooker: Ensure mcdeps are processed even if only one multiconfig
perl: Fix setgroup call regression from 5.30
perl: Move perl-sanity -> perl
Ross Burton (13):
insane: add sanity checks to SRC_URI
libidn2: upgrade to 2.2.0
local.conf.sample: change default MACHINE to qemux86-64
libical: tidy up Perl finding
wic/filemap: handle FIGETBSZ failing
libxslt: add comment saying when a workaround can be removed
parted: swap patches for the commits that landed upstream
parted: drop patch for linux <2.6.20 support
python-nose: python3-nose should be default
bluez: fix test case failures with GCC 9
efivar: add
efibootmgr: add
gstreamer1.0-libav: disable API documentation
Sakib Sajal (4):
bash: add iso8859-1 gconv RDEPENDS needed by bash-ptest.
bash: add big5hkscs gconv RDEPENDS needed by bash-ptest.
bash: run bash ptest as non-root user
ptest-runner: update SRCREV to latest HEAD on ptest-runner2 repo
Scott Rifenbark (17):
sdk-manual: Added link to BB manual fetcher section.
ref-manual: Updated "do_fetch" to have a link to "Fetchers"
dev-manual, ref-manual: removed "distrodata" class
ref-manual: Removed bugzilla.bbclass
ref-manual: Removed "distutils-tools" class.
ref-manual: Udated devtool help output examples.
ref-manual: New section "Checking Upgrade Status of a Recipe"
dev-manual: Added check-upgrade-status blurb to upgrading recipes
ref-manual: do_checkpkg - added link to checking upgrade status
ref-manual: Updates to check-recipe-upgrade devtool command
ref-manual: Grammar correction
dev-manual: Added new section for creating NPM packages
Makefile: Updated to support new NPM package creation section
dev-manual: Updated the "Working with Packages" list
ref-manual: Updated "npm.bbclass" section.
overview-manual: Updated SCM section
dev-manual: Fixed grammar issue.
Tim Orling (8):
libxml-parser-perl: fix ptest dependencies
perl-rdepends.txt: improve dependencies for perl module ptests
perl: install Config_git.pl
perl-rdepends.txt: fix perl-module-data-dumper dependencies
python3-scons-{native}: add recipe for v3.0.5
scons.bbclass: use python3-scons
serf: switch to python3-scons-native
oeqa/runtime: add simple test for scons
Tom Rini (2):
vim: Rework things so vim adds features not vim-tiny removes
vim: Update to 8.1.1518 to fix CVE-2019-12735
Yeoh Ee Peng (3):
resulttool/resultutils: Enable add extra configurations to results
resulttool/store: Enable add EXECUTED_BY config to results
resulttool/merge: Enable control TESTSERIES and extra configurations
Zang Ruochen (3):
openssh: Upgrade 7.9p1 -> 8.0p1
dbus: Upgrade 1.12.12 -> 1.12.14
dbus-test: Upgrade 1.12.12 -> 1.12.14
Zhixiong Chi (2):
gcc: reduce the variables in symtab
gcc: CVE-2018-12886
sangeeta jain (1):
resulttool/manualexecution: Enable creation of test case configuration
meta-raspberrypi: 7059c37451..40283f583b:
Andrei Gherzan (1):
gstreamer1.0-omx: Forward port bbappend and patches to v1.16.x
Khem Raj (4):
linux-raspberrypi_4.19.bb: Update to 4.19.44
rpi-default-versions: Switch defaults to 4.19
userland: Update to 20190501
firmware: Update 20190220 -> 20190517
malus-brandywine (1):
sdcard_image-rpi : minor bug in use of FATPAYLOAD
Change-Id: Idab4e8c2666bc776d0b47988a32dcb9f04885aff
Signed-off-by: Brad Bishop <bradleyb@fuzziesquirrel.com>
Diffstat (limited to 'poky/meta/recipes-devtools/gcc')
6 files changed, 909 insertions, 120 deletions
diff --git a/poky/meta/recipes-devtools/gcc/gcc-8.3.inc b/poky/meta/recipes-devtools/gcc/gcc-8.3.inc index fe9c7c360..1781ff5b5 100644 --- a/poky/meta/recipes-devtools/gcc/gcc-8.3.inc +++ b/poky/meta/recipes-devtools/gcc/gcc-8.3.inc @@ -36,7 +36,6 @@ SRC_URI = "\ file://0003-gcc-4.3.3-SYSROOT_CFLAGS_FOR_TARGET.patch \ file://0004-64-bit-multilib-hack.patch \ file://0005-optional-libstdc.patch \ - file://0006-gcc-disable-MASK_RELAX_PIC_CALLS-bit.patch \ file://0007-COLLECT_GCC_OPTIONS.patch \ file://0008-Use-the-defaults.h-in-B-instead-of-S-and-t-oe-in-B.patch \ file://0009-fortran-cross-compile-hack.patch \ @@ -72,6 +71,8 @@ SRC_URI = "\ file://0039-riscv-Disable-multilib-for-OE.patch \ file://0040-powerpc-powerpc64-Add-support-for-musl-ldso.patch \ file://0041-Add-a-recursion-limit-to-libiberty-s-demangling-code.patch \ + file://0042-PR-debug-86964.patch \ + file://0043-PR85434-Prevent-spilling-of-stack-protector-guard-s-.patch \ " SRC_URI[md5sum] = "65b210b4bfe7e060051f799e0f994896" SRC_URI[sha256sum] = "64baadfe6cc0f4947a84cb12d7f0dfaf45bb58b7e92461639596c21e02d97d2c" diff --git a/poky/meta/recipes-devtools/gcc/gcc-8.3/0006-gcc-disable-MASK_RELAX_PIC_CALLS-bit.patch b/poky/meta/recipes-devtools/gcc/gcc-8.3/0006-gcc-disable-MASK_RELAX_PIC_CALLS-bit.patch deleted file mode 100644 index 0cea228c8..000000000 --- a/poky/meta/recipes-devtools/gcc/gcc-8.3/0006-gcc-disable-MASK_RELAX_PIC_CALLS-bit.patch +++ /dev/null @@ -1,59 +0,0 @@ -From 1dba090a11c40b0926f9707a543d658c95e1f156 Mon Sep 17 00:00:00 2001 -From: Khem Raj <raj.khem@gmail.com> -Date: Fri, 29 Mar 2013 09:14:20 +0400 -Subject: [PATCH 06/40] gcc: disable MASK_RELAX_PIC_CALLS bit - -The new feature added after 4.3.3 -"http://www.pubbs.net/200909/gcc/94048-patch-add-support-for-rmipsjalr.html" -will cause cc1plus eat up all the system memory when build webkit-gtk. -The function mips_get_pic_call_symbol keeps on recursively calling itself. -Disable this feature to walk aside the bug. - -Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com> -Signed-off-by: Khem Raj <raj.khem@gmail.com> - -Upstream-Status: Inappropriate [configuration] ---- - gcc/configure | 7 ------- - gcc/configure.ac | 7 ------- - 2 files changed, 14 deletions(-) - -diff --git a/gcc/configure b/gcc/configure -index 3901722400c..0c9b8ac5f55 100755 ---- a/gcc/configure -+++ b/gcc/configure -@@ -27553,13 +27553,6 @@ $as_echo_n "checking assembler and linker for explicit JALR relocation... " >&6; - rm -f conftest.* - fi - fi -- if test $gcc_cv_as_ld_jalr_reloc = yes; then -- if test x$target_cpu_default = x; then -- target_cpu_default=MASK_RELAX_PIC_CALLS -- else -- target_cpu_default="($target_cpu_default)|MASK_RELAX_PIC_CALLS" -- fi -- fi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gcc_cv_as_ld_jalr_reloc" >&5 - $as_echo "$gcc_cv_as_ld_jalr_reloc" >&6; } - -diff --git a/gcc/configure.ac b/gcc/configure.ac -index 1b1362f70fe..53840363115 100644 ---- a/gcc/configure.ac -+++ b/gcc/configure.ac -@@ -4798,13 +4798,6 @@ x: - rm -f conftest.* - fi - fi -- if test $gcc_cv_as_ld_jalr_reloc = yes; then -- if test x$target_cpu_default = x; then -- target_cpu_default=MASK_RELAX_PIC_CALLS -- else -- target_cpu_default="($target_cpu_default)|MASK_RELAX_PIC_CALLS" -- fi -- fi - AC_MSG_RESULT($gcc_cv_as_ld_jalr_reloc) - - AC_CACHE_CHECK([linker for .eh_frame personality relaxation], --- -2.21.0 - diff --git a/poky/meta/recipes-devtools/gcc/gcc-8.3/0042-PR-debug-86964.patch b/poky/meta/recipes-devtools/gcc/gcc-8.3/0042-PR-debug-86964.patch new file mode 100644 index 000000000..d9b5d39b7 --- /dev/null +++ b/poky/meta/recipes-devtools/gcc/gcc-8.3/0042-PR-debug-86964.patch @@ -0,0 +1,94 @@ +From beb921e1106b5bcbb0c6e2be84b241327e2ffc51 Mon Sep 17 00:00:00 2001 +From: law <law@138bc75d-0d04-0410-961f-82ee72b054a4> +Date: Mon, 25 Mar 2019 21:19:09 +0000 +Subject: [PATCH] PR debug/86964 * dwarf2out.c + (premark_used_variables): New function. (prune_unused_types_walk): Do + not mark not premarked external variables. (prune_unused_types): + Call premark_used_variables. + + * gcc.dg/debug/dwarf2/pr86964.c: New testcase. + +git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@269925 138bc75d-0d04-0410-961f-82ee72b054a4 + +Upstream-Status: Backport +Signed-off-by: Zhixiong Chi <zhixiong.chi@windriver.com> +--- + gcc/ChangeLog | 8 ++++++ + gcc/dwarf2out.c | 32 +++++++++++++++++++++ + 2 files changed, 40 insertions(+) + +diff --git a/gcc/ChangeLog b/gcc/ChangeLog +index 2075480ca2b..cdce539ac6f 100644 +--- a/gcc/ChangeLog ++++ b/gcc/ChangeLog +@@ -1,3 +1,11 @@ ++2019-03-25 Johan Karlsson <johan.karlsson@enea.com> ++ ++ PR debug/86964 ++ * dwarf2out.c (premark_used_variables): New function. ++ (prune_unused_types_walk): Do not mark not premarked external ++ variables. ++ (prune_unused_types): Call premark_used_variables. ++ + 2019-02-22 Release Manager + + * GCC 8.3.0 released. +diff --git a/gcc/dwarf2out.c b/gcc/dwarf2out.c +index ae8bdee9981..b9a624e1ac7 100644 +--- a/gcc/dwarf2out.c ++++ b/gcc/dwarf2out.c +@@ -22658,6 +22658,21 @@ premark_types_used_by_global_vars (void) + ->traverse<void *, premark_types_used_by_global_vars_helper> (NULL); + } + ++/* Mark all variables used by the symtab as perennial. */ ++ ++static void ++premark_used_variables (void) ++{ ++ /* Mark DIEs in the symtab as used. */ ++ varpool_node *var; ++ FOR_EACH_VARIABLE (var) ++ { ++ dw_die_ref die = lookup_decl_die (var->decl); ++ if (die) ++ die->die_perennial_p = 1; ++ } ++} ++ + /* Generate a DW_TAG_call_site DIE in function DECL under SUBR_DIE + for CA_LOC call arg loc node. */ + +@@ -29264,6 +29279,19 @@ prune_unused_types_walk (dw_die_ref die) + + return; + ++ case DW_TAG_variable: ++ if (flag_debug_only_used_symbols) ++ { ++ if (die->die_perennial_p) ++ break; ++ ++ /* premark_used_variables marks external variables --- don't mark ++ them here. */ ++ if (get_AT (die, DW_AT_external)) ++ return; ++ } ++ /* FALLTHROUGH */ ++ + default: + /* Mark everything else. */ + break; +@@ -29390,6 +29418,10 @@ prune_unused_types (void) + /* Mark types that are used in global variables. */ + premark_types_used_by_global_vars (); + ++ /* Mark variables used in the symtab. */ ++ if (flag_debug_only_used_symbols) ++ premark_used_variables (); ++ + /* Set the mark on nodes that are actually used. */ + prune_unused_types_walk (comp_unit_die ()); + for (node = limbo_die_list; node; node = node->next) +-- +2.21.0 diff --git a/poky/meta/recipes-devtools/gcc/gcc-8.3/0043-PR85434-Prevent-spilling-of-stack-protector-guard-s-.patch b/poky/meta/recipes-devtools/gcc/gcc-8.3/0043-PR85434-Prevent-spilling-of-stack-protector-guard-s-.patch new file mode 100644 index 000000000..f15207f58 --- /dev/null +++ b/poky/meta/recipes-devtools/gcc/gcc-8.3/0043-PR85434-Prevent-spilling-of-stack-protector-guard-s-.patch @@ -0,0 +1,813 @@ +From f98495d90ba66f67fe922a4b9229ea787041c418 Mon Sep 17 00:00:00 2001 +From: thopre01 <thopre01@138bc75d-0d04-0410-961f-82ee72b054a4> +Date: Thu, 22 Nov 2018 14:46:17 +0000 +Subject: [PATCH] PR85434: Prevent spilling of stack protector guard's address + on ARM + +In case of high register pressure in PIC mode, address of the stack +protector's guard can be spilled on ARM targets as shown in PR85434, +thus allowing an attacker to control what the canary would be compared +against. ARM does lack stack_protect_set and stack_protect_test insn +patterns, defining them does not help as the address is expanded +regularly and the patterns only deal with the copy and test of the +guard with the canary. + +This problem does not occur for x86 targets because the PIC access and +the test can be done in the same instruction. Aarch64 is exempt too +because PIC access insn pattern are mov of UNSPEC which prevents it from +the second access in the epilogue being CSEd in cse_local pass with the +first access in the prologue. + +The approach followed here is to create new "combined" set and test +standard pattern names that take the unexpanded guard and do the set or +test. This allows the target to use an opaque pattern (eg. using UNSPEC) +to hide the individual instructions being generated to the compiler and +split the pattern into generic load, compare and branch instruction +after register allocator, therefore avoiding any spilling. This is here +implemented for the ARM targets. For targets not implementing these new +standard pattern names, the existing stack_protect_set and +stack_protect_test pattern names are used. + +To be able to split PIC access after register allocation, the functions +had to be augmented to force a new PIC register load and to control +which register it loads into. This is because sharing the PIC register +between prologue and epilogue could lead to spilling due to CSE again +which an attacker could use to control what the canary gets compared +against. + +2018-11-22 Thomas Preud'homme <thomas.preudhomme@linaro.org> + + gcc/ + PR target/85434 + * target-insns.def (stack_protect_combined_set): Define new standard + pattern name. + (stack_protect_combined_test): Likewise. + * cfgexpand.c (stack_protect_prologue): Try new + stack_protect_combined_set pattern first. + * function.c (stack_protect_epilogue): Try new + stack_protect_combined_test pattern first. + * config/arm/arm.c (require_pic_register): Add pic_reg and compute_now + parameters to control which register to use as PIC register and force + reloading PIC register respectively. Insert in the stream of insns if + possible. + (legitimize_pic_address): Expose above new parameters in prototype and + adapt recursive calls accordingly. Use pic_reg if non null instead of + cached one. + (arm_load_pic_register): Add pic_reg parameter and use it if non null. + (arm_legitimize_address): Adapt to new legitimize_pic_address + prototype. + (thumb_legitimize_address): Likewise. + (arm_emit_call_insn): Adapt to require_pic_register prototype change. + (arm_expand_prologue): Adapt to arm_load_pic_register prototype change. + (thumb1_expand_prologue): Likewise. + * config/arm/arm-protos.h (legitimize_pic_address): Adapt to prototype + change. + (arm_load_pic_register): Likewise. + * config/arm/predicated.md (guard_addr_operand): New predicate. + (guard_operand): New predicate. + * config/arm/arm.md (movsi expander): Adapt to legitimize_pic_address + prototype change. + (builtin_setjmp_receiver expander): Adapt to thumb1_expand_prologue + prototype change. + (stack_protect_combined_set): New expander.. + (stack_protect_combined_set_insn): New insn_and_split pattern. + (stack_protect_set_insn): New insn pattern. + (stack_protect_combined_test): New expander. + (stack_protect_combined_test_insn): New insn_and_split pattern. + (arm_stack_protect_test_insn): New insn pattern. + * config/arm/thumb1.md (thumb1_stack_protect_test_insn): New insn pattern. + * config/arm/unspecs.md (UNSPEC_SP_SET): New unspec. + (UNSPEC_SP_TEST): Likewise. + * doc/md.texi (stack_protect_combined_set): Document new standard + pattern name. + (stack_protect_set): Clarify that the operand for guard's address is + legal. + (stack_protect_combined_test): Document new standard pattern name. + (stack_protect_test): Clarify that the operand for guard's address is + legal. + + +git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@266379 138bc75d-0d04-0410-961f-82ee72b054a4 + +Upstream-Status: Backport +CVE: CVE-2018-12886 +Signed-off-by: Zhixiong Chi <zhixiong.chi@windriver.com> +--- + gcc/ChangeLog | 49 ++++++ + gcc/cfgexpand.c | 17 +++ + gcc/config/arm/arm-protos.h | 4 +- + gcc/config/arm/arm.c | 87 ++++++++--- + gcc/config/arm/arm.md | 163 +++++++++++++++++++- + gcc/config/arm/predicates.md | 17 +++ + gcc/config/arm/thumb1.md | 13 ++ + gcc/config/arm/unspecs.md | 3 + + gcc/doc/md.texi | 55 ++++++- + gcc/function.c | 32 +++- + gcc/target-insns.def | 2 + + 11 files changed, 399 insertions(+), 43 deletions(-) + create mode 100644 gcc/testsuite/gcc.target/arm/pr85434.c + +diff --git a/gcc/ChangeLog b/gcc/ChangeLog +index e2ebfd34214..fa41e7112e0 100644 +--- a/gcc/ChangeLog ++++ b/gcc/ChangeLog +@@ -1537,6 +1537,55 @@ + * config/arm/neon.md (movv4hf, movv8hf): Refactored to.. + (mov<mov>): ..this and enable unconditionally. + ++2018-11-22 Thomas Preud'homme <thomas.preudhomme@linaro.org> ++ ++ * target-insns.def (stack_protect_combined_set): Define new standard ++ pattern name. ++ (stack_protect_combined_test): Likewise. ++ * cfgexpand.c (stack_protect_prologue): Try new ++ stack_protect_combined_set pattern first. ++ * function.c (stack_protect_epilogue): Try new ++ stack_protect_combined_test pattern first. ++ * config/arm/arm.c (require_pic_register): Add pic_reg and compute_now ++ parameters to control which register to use as PIC register and force ++ reloading PIC register respectively. Insert in the stream of insns if ++ possible. ++ (legitimize_pic_address): Expose above new parameters in prototype and ++ adapt recursive calls accordingly. Use pic_reg if non null instead of ++ cached one. ++ (arm_load_pic_register): Add pic_reg parameter and use it if non null. ++ (arm_legitimize_address): Adapt to new legitimize_pic_address ++ prototype. ++ (thumb_legitimize_address): Likewise. ++ (arm_emit_call_insn): Adapt to require_pic_register prototype change. ++ (arm_expand_prologue): Adapt to arm_load_pic_register prototype change. ++ (thumb1_expand_prologue): Likewise. ++ * config/arm/arm-protos.h (legitimize_pic_address): Adapt to prototype ++ change. ++ (arm_load_pic_register): Likewise. ++ * config/arm/predicated.md (guard_addr_operand): New predicate. ++ (guard_operand): New predicate. ++ * config/arm/arm.md (movsi expander): Adapt to legitimize_pic_address ++ prototype change. ++ (builtin_setjmp_receiver expander): Adapt to thumb1_expand_prologue ++ prototype change. ++ (stack_protect_combined_set): New expander.. ++ (stack_protect_combined_set_insn): New insn_and_split pattern. ++ (stack_protect_set_insn): New insn pattern. ++ (stack_protect_combined_test): New expander. ++ (stack_protect_combined_test_insn): New insn_and_split pattern. ++ (arm_stack_protect_test_insn): New insn pattern. ++ * config/arm/thumb1.md (thumb1_stack_protect_test_insn): New insn pattern. ++ * config/arm/unspecs.md (UNSPEC_SP_SET): New unspec. ++ (UNSPEC_SP_TEST): Likewise. ++ * doc/md.texi (stack_protect_combined_set): Document new standard ++ pattern name. ++ (stack_protect_set): Clarify that the operand for guard's address is ++ legal. ++ (stack_protect_combined_test): Document new standard pattern name. ++ (stack_protect_test): Clarify that the operand for guard's address is ++ legal. ++ + 2018-11-22 Uros Bizjak <ubizjak@gmail.com> + + Backport from mainline +diff --git a/gcc/cfgexpand.c b/gcc/cfgexpand.c +index 8fa392fcd8a..21bdcdaeaa3 100644 +--- a/gcc/cfgexpand.c ++++ b/gcc/cfgexpand.c +@@ -6185,6 +6185,23 @@ stack_protect_prologue (void) + rtx x, y; + + x = expand_normal (crtl->stack_protect_guard); ++ ++ if (targetm.have_stack_protect_combined_set () && guard_decl) ++ { ++ gcc_assert (DECL_P (guard_decl)); ++ y = DECL_RTL (guard_decl); ++ ++ /* Allow the target to compute address of Y and copy it to X without ++ leaking Y into a register. This combined address + copy pattern ++ allows the target to prevent spilling of any intermediate results by ++ splitting it after register allocator. */ ++ if (rtx_insn *insn = targetm.gen_stack_protect_combined_set (x, y)) ++ { ++ emit_insn (insn); ++ return; ++ } ++ } ++ + if (guard_decl) + y = expand_normal (guard_decl); + else +diff --git a/gcc/config/arm/arm-protos.h b/gcc/config/arm/arm-protos.h +index 8d6d2395b84..00f5f16ed02 100644 +--- a/gcc/config/arm/arm-protos.h ++++ b/gcc/config/arm/arm-protos.h +@@ -28,7 +28,7 @@ extern enum unwind_info_type arm_except_unwind_info (struct gcc_options *); + extern int use_return_insn (int, rtx); + extern bool use_simple_return_p (void); + extern enum reg_class arm_regno_class (int); +-extern void arm_load_pic_register (unsigned long); ++extern void arm_load_pic_register (unsigned long, rtx); + extern int arm_volatile_func (void); + extern void arm_expand_prologue (void); + extern void arm_expand_epilogue (bool); +@@ -69,7 +69,7 @@ extern int const_ok_for_dimode_op (HOST_WIDE_INT, enum rtx_code); + extern int arm_split_constant (RTX_CODE, machine_mode, rtx, + HOST_WIDE_INT, rtx, rtx, int); + extern int legitimate_pic_operand_p (rtx); +-extern rtx legitimize_pic_address (rtx, machine_mode, rtx); ++extern rtx legitimize_pic_address (rtx, machine_mode, rtx, rtx, bool); + extern rtx legitimize_tls_address (rtx, rtx); + extern bool arm_legitimate_address_p (machine_mode, rtx, bool); + extern int arm_legitimate_address_outer_p (machine_mode, rtx, RTX_CODE, int); +diff --git a/gcc/config/arm/arm.c b/gcc/config/arm/arm.c +index 8393f0b87f3..12417de5102 100644 +--- a/gcc/config/arm/arm.c ++++ b/gcc/config/arm/arm.c +@@ -7379,21 +7379,34 @@ legitimate_pic_operand_p (rtx x) + return 1; + } + +-/* Record that the current function needs a PIC register. Initialize +- cfun->machine->pic_reg if we have not already done so. */ ++/* Record that the current function needs a PIC register. If PIC_REG is null, ++ a new pseudo is allocated as PIC register, otherwise PIC_REG is used. In ++ both case cfun->machine->pic_reg is initialized if we have not already done ++ so. COMPUTE_NOW decide whether and where to set the PIC register. If true, ++ PIC register is reloaded in the current position of the instruction stream ++ irregardless of whether it was loaded before. Otherwise, it is only loaded ++ if not already done so (crtl->uses_pic_offset_table is null). Note that ++ nonnull PIC_REG is only supported iff COMPUTE_NOW is true and null PIC_REG ++ is only supported iff COMPUTE_NOW is false. */ + + static void +-require_pic_register (void) ++require_pic_register (rtx pic_reg, bool compute_now) + { ++ gcc_assert (compute_now == (pic_reg != NULL_RTX)); ++ + /* A lot of the logic here is made obscure by the fact that this + routine gets called as part of the rtx cost estimation process. + We don't want those calls to affect any assumptions about the real + function; and further, we can't call entry_of_function() until we + start the real expansion process. */ +- if (!crtl->uses_pic_offset_table) ++ if (!crtl->uses_pic_offset_table || compute_now) + { +- gcc_assert (can_create_pseudo_p ()); ++ gcc_assert (can_create_pseudo_p () ++ || (pic_reg != NULL_RTX ++ && REG_P (pic_reg) ++ && GET_MODE (pic_reg) == Pmode)); + if (arm_pic_register != INVALID_REGNUM ++ && !compute_now + && !(TARGET_THUMB1 && arm_pic_register > LAST_LO_REGNUM)) + { + if (!cfun->machine->pic_reg) +@@ -7409,8 +7422,10 @@ require_pic_register (void) + { + rtx_insn *seq, *insn; + ++ if (pic_reg == NULL_RTX) ++ pic_reg = gen_reg_rtx (Pmode); + if (!cfun->machine->pic_reg) +- cfun->machine->pic_reg = gen_reg_rtx (Pmode); ++ cfun->machine->pic_reg = pic_reg; + + /* Play games to avoid marking the function as needing pic + if we are being called as part of the cost-estimation +@@ -7421,11 +7436,12 @@ require_pic_register (void) + start_sequence (); + + if (TARGET_THUMB1 && arm_pic_register != INVALID_REGNUM +- && arm_pic_register > LAST_LO_REGNUM) ++ && arm_pic_register > LAST_LO_REGNUM ++ && !compute_now) + emit_move_insn (cfun->machine->pic_reg, + gen_rtx_REG (Pmode, arm_pic_register)); + else +- arm_load_pic_register (0UL); ++ arm_load_pic_register (0UL, pic_reg); + + seq = get_insns (); + end_sequence (); +@@ -7438,16 +7454,33 @@ require_pic_register (void) + we can't yet emit instructions directly in the final + insn stream. Queue the insns on the entry edge, they will + be committed after everything else is expanded. */ +- insert_insn_on_edge (seq, +- single_succ_edge (ENTRY_BLOCK_PTR_FOR_FN (cfun))); ++ if (currently_expanding_to_rtl) ++ insert_insn_on_edge (seq, ++ single_succ_edge ++ (ENTRY_BLOCK_PTR_FOR_FN (cfun))); ++ else ++ emit_insn (seq); + } + } + } + } + ++/* Legitimize PIC load to ORIG into REG. If REG is NULL, a new pseudo is ++ created to hold the result of the load. If not NULL, PIC_REG indicates ++ which register to use as PIC register, otherwise it is decided by register ++ allocator. COMPUTE_NOW forces the PIC register to be loaded at the current ++ location in the instruction stream, irregardless of whether it was loaded ++ previously. Note that nonnull PIC_REG is only supported iff COMPUTE_NOW is ++ true and null PIC_REG is only supported iff COMPUTE_NOW is false. ++ ++ Returns the register REG into which the PIC load is performed. */ ++ + rtx +-legitimize_pic_address (rtx orig, machine_mode mode, rtx reg) ++legitimize_pic_address (rtx orig, machine_mode mode, rtx reg, rtx pic_reg, ++ bool compute_now) + { ++ gcc_assert (compute_now == (pic_reg != NULL_RTX)); ++ + if (GET_CODE (orig) == SYMBOL_REF + || GET_CODE (orig) == LABEL_REF) + { +@@ -7480,9 +7513,12 @@ legitimize_pic_address (rtx orig, machine_mode mode, rtx reg) + rtx mem; + + /* If this function doesn't have a pic register, create one now. */ +- require_pic_register (); ++ require_pic_register (pic_reg, compute_now); ++ ++ if (pic_reg == NULL_RTX) ++ pic_reg = cfun->machine->pic_reg; + +- pat = gen_calculate_pic_address (reg, cfun->machine->pic_reg, orig); ++ pat = gen_calculate_pic_address (reg, pic_reg, orig); + + /* Make the MEM as close to a constant as possible. */ + mem = SET_SRC (pat); +@@ -7531,9 +7567,11 @@ legitimize_pic_address (rtx orig, machine_mode mode, rtx reg) + + gcc_assert (GET_CODE (XEXP (orig, 0)) == PLUS); + +- base = legitimize_pic_address (XEXP (XEXP (orig, 0), 0), Pmode, reg); ++ base = legitimize_pic_address (XEXP (XEXP (orig, 0), 0), Pmode, reg, ++ pic_reg, compute_now); + offset = legitimize_pic_address (XEXP (XEXP (orig, 0), 1), Pmode, +- base == reg ? 0 : reg); ++ base == reg ? 0 : reg, pic_reg, ++ compute_now); + + if (CONST_INT_P (offset)) + { +@@ -7633,16 +7671,17 @@ static GTY(()) int pic_labelno; + low register. */ + + void +-arm_load_pic_register (unsigned long saved_regs ATTRIBUTE_UNUSED) ++arm_load_pic_register (unsigned long saved_regs ATTRIBUTE_UNUSED, rtx pic_reg) + { +- rtx l1, labelno, pic_tmp, pic_rtx, pic_reg; ++ rtx l1, labelno, pic_tmp, pic_rtx; + + if (crtl->uses_pic_offset_table == 0 || TARGET_SINGLE_PIC_BASE) + return; + + gcc_assert (flag_pic); + +- pic_reg = cfun->machine->pic_reg; ++ if (pic_reg == NULL_RTX) ++ pic_reg = cfun->machine->pic_reg; + if (TARGET_VXWORKS_RTP) + { + pic_rtx = gen_rtx_SYMBOL_REF (Pmode, VXWORKS_GOTT_BASE); +@@ -8718,7 +8757,8 @@ arm_legitimize_address (rtx x, rtx orig_x, machine_mode mode) + { + /* We need to find and carefully transform any SYMBOL and LABEL + references; so go back to the original address expression. */ +- rtx new_x = legitimize_pic_address (orig_x, mode, NULL_RTX); ++ rtx new_x = legitimize_pic_address (orig_x, mode, NULL_RTX, NULL_RTX, ++ false /*compute_now*/); + + if (new_x != orig_x) + x = new_x; +@@ -8786,7 +8826,8 @@ thumb_legitimize_address (rtx x, rtx orig_x, machine_mode mode) + { + /* We need to find and carefully transform any SYMBOL and LABEL + references; so go back to the original address expression. */ +- rtx new_x = legitimize_pic_address (orig_x, mode, NULL_RTX); ++ rtx new_x = legitimize_pic_address (orig_x, mode, NULL_RTX, NULL_RTX, ++ false /*compute_now*/); + + if (new_x != orig_x) + x = new_x; +@@ -18074,7 +18115,7 @@ arm_emit_call_insn (rtx pat, rtx addr, bool sibcall) + ? !targetm.binds_local_p (SYMBOL_REF_DECL (addr)) + : !SYMBOL_REF_LOCAL_P (addr))) + { +- require_pic_register (); ++ require_pic_register (NULL_RTX, false /*compute_now*/); + use_reg (&CALL_INSN_FUNCTION_USAGE (insn), cfun->machine->pic_reg); + } + +@@ -22006,7 +22047,7 @@ arm_expand_prologue (void) + mask &= THUMB2_WORK_REGS; + if (!IS_NESTED (func_type)) + mask |= (1 << IP_REGNUM); +- arm_load_pic_register (mask); ++ arm_load_pic_register (mask, NULL_RTX); + } + + /* If we are profiling, make sure no instructions are scheduled before +@@ -25237,7 +25278,7 @@ thumb1_expand_prologue (void) + /* Load the pic register before setting the frame pointer, + so we can use r7 as a temporary work register. */ + if (flag_pic && arm_pic_register != INVALID_REGNUM) +- arm_load_pic_register (live_regs_mask); ++ arm_load_pic_register (live_regs_mask, NULL_RTX); + + if (!frame_pointer_needed && CALLER_INTERWORKING_SLOT_SIZE > 0) + emit_move_insn (gen_rtx_REG (Pmode, ARM_HARD_FRAME_POINTER_REGNUM), +diff --git a/gcc/config/arm/arm.md b/gcc/config/arm/arm.md +index c8dc9474b1b..f6196e93168 100644 +--- a/gcc/config/arm/arm.md ++++ b/gcc/config/arm/arm.md +@@ -6021,7 +6021,8 @@ + operands[1] = legitimize_pic_address (operands[1], SImode, + (!can_create_pseudo_p () + ? operands[0] +- : 0)); ++ : NULL_RTX), NULL_RTX, ++ false /*compute_now*/); + } + " + ) +@@ -6309,7 +6310,7 @@ + /* r3 is clobbered by set/longjmp, so we can use it as a scratch + register. */ + if (arm_pic_register != INVALID_REGNUM) +- arm_load_pic_register (1UL << 3); ++ arm_load_pic_register (1UL << 3, NULL_RTX); + DONE; + }") + +@@ -8634,6 +8635,164 @@ + (set_attr "conds" "clob")] + ) + ++;; Named patterns for stack smashing protection. ++(define_expand "stack_protect_combined_set" ++ [(parallel ++ [(set (match_operand:SI 0 "memory_operand" "") ++ (unspec:SI [(match_operand:SI 1 "guard_operand" "")] ++ UNSPEC_SP_SET)) ++ (clobber (match_scratch:SI 2 "")) ++ (clobber (match_scratch:SI 3 ""))])] ++ "" ++ "" ++) ++ ++;; Use a separate insn from the above expand to be able to have the mem outside ++;; the operand #1 when register allocation comes. This is needed to avoid LRA ++;; try to reload the guard since we need to control how PIC access is done in ++;; the -fpic/-fPIC case (see COMPUTE_NOW parameter when calling ++;; legitimize_pic_address ()). ++(define_insn_and_split "*stack_protect_combined_set_insn" ++ [(set (match_operand:SI 0 "memory_operand" "=m,m") ++ (unspec:SI [(mem:SI (match_operand:SI 1 "guard_addr_operand" "X,X"))] ++ UNSPEC_SP_SET)) ++ (clobber (match_scratch:SI 2 "=&l,&r")) ++ (clobber (match_scratch:SI 3 "=&l,&r"))] ++ "" ++ "#" ++ "reload_completed" ++ [(parallel [(set (match_dup 0) (unspec:SI [(mem:SI (match_dup 2))] ++ UNSPEC_SP_SET)) ++ (clobber (match_dup 2))])] ++ " ++{ ++ if (flag_pic) ++ { ++ /* Forces recomputing of GOT base now. */ ++ legitimize_pic_address (operands[1], SImode, operands[2], operands[3], ++ true /*compute_now*/); ++ } ++ else ++ { ++ if (address_operand (operands[1], SImode)) ++ operands[2] = operands[1]; ++ else ++ { ++ rtx mem = XEXP (force_const_mem (SImode, operands[1]), 0); ++ emit_move_insn (operands[2], mem); ++ } ++ } ++}" ++ [(set_attr "arch" "t1,32")] ++) ++ ++(define_insn "*stack_protect_set_insn" ++ [(set (match_operand:SI 0 "memory_operand" "=m,m") ++ (unspec:SI [(mem:SI (match_operand:SI 1 "register_operand" "+&l,&r"))] ++ UNSPEC_SP_SET)) ++ (clobber (match_dup 1))] ++ "" ++ "@ ++ ldr\\t%1, [%1]\;str\\t%1, %0\;movs\t%1,#0 ++ ldr\\t%1, [%1]\;str\\t%1, %0\;mov\t%1,#0" ++ [(set_attr "length" "8,12") ++ (set_attr "conds" "clob,nocond") ++ (set_attr "type" "multiple") ++ (set_attr "arch" "t1,32")] ++) ++ ++(define_expand "stack_protect_combined_test" ++ [(parallel ++ [(set (pc) ++ (if_then_else ++ (eq (match_operand:SI 0 "memory_operand" "") ++ (unspec:SI [(match_operand:SI 1 "guard_operand" "")] ++ UNSPEC_SP_TEST)) ++ (label_ref (match_operand 2)) ++ (pc))) ++ (clobber (match_scratch:SI 3 "")) ++ (clobber (match_scratch:SI 4 "")) ++ (clobber (reg:CC CC_REGNUM))])] ++ "" ++ "" ++) ++ ++;; Use a separate insn from the above expand to be able to have the mem outside ++;; the operand #1 when register allocation comes. This is needed to avoid LRA ++;; try to reload the guard since we need to control how PIC access is done in ++;; the -fpic/-fPIC case (see COMPUTE_NOW parameter when calling ++;; legitimize_pic_address ()). ++(define_insn_and_split "*stack_protect_combined_test_insn" ++ [(set (pc) ++ (if_then_else ++ (eq (match_operand:SI 0 "memory_operand" "m,m") ++ (unspec:SI [(mem:SI (match_operand:SI 1 "guard_addr_operand" "X,X"))] ++ UNSPEC_SP_TEST)) ++ (label_ref (match_operand 2)) ++ (pc))) ++ (clobber (match_scratch:SI 3 "=&l,&r")) ++ (clobber (match_scratch:SI 4 "=&l,&r")) ++ (clobber (reg:CC CC_REGNUM))] ++ "" ++ "#" ++ "reload_completed" ++ [(const_int 0)] ++{ ++ rtx eq; ++ ++ if (flag_pic) ++ { ++ /* Forces recomputing of GOT base now. */ ++ legitimize_pic_address (operands[1], SImode, operands[3], operands[4], ++ true /*compute_now*/); ++ } ++ else ++ { ++ if (address_operand (operands[1], SImode)) ++ operands[3] = operands[1]; ++ else ++ { ++ rtx mem = XEXP (force_const_mem (SImode, operands[1]), 0); ++ emit_move_insn (operands[3], mem); ++ } ++ } ++ if (TARGET_32BIT) ++ { ++ emit_insn (gen_arm_stack_protect_test_insn (operands[4], operands[0], ++ operands[3])); ++ rtx cc_reg = gen_rtx_REG (CC_Zmode, CC_REGNUM); ++ eq = gen_rtx_EQ (CC_Zmode, cc_reg, const0_rtx); ++ emit_jump_insn (gen_arm_cond_branch (operands[2], eq, cc_reg)); ++ } ++ else ++ { ++ emit_insn (gen_thumb1_stack_protect_test_insn (operands[4], operands[0], ++ operands[3])); ++ eq = gen_rtx_EQ (VOIDmode, operands[4], const0_rtx); ++ emit_jump_insn (gen_cbranchsi4 (eq, operands[4], const0_rtx, ++ operands[2])); ++ } ++ DONE; ++} ++ [(set_attr "arch" "t1,32")] ++) ++ ++(define_insn "arm_stack_protect_test_insn" ++ [(set (reg:CC_Z CC_REGNUM) ++ (compare:CC_Z (unspec:SI [(match_operand:SI 1 "memory_operand" "m,m") ++ (mem:SI (match_operand:SI 2 "register_operand" "+l,r"))] ++ UNSPEC_SP_TEST) ++ (const_int 0))) ++ (clobber (match_operand:SI 0 "register_operand" "=&l,&r")) ++ (clobber (match_dup 2))] ++ "TARGET_32BIT" ++ "ldr\t%0, [%2]\;ldr\t%2, %1\;eors\t%0, %2, %0" ++ [(set_attr "length" "8,12") ++ (set_attr "conds" "set") ++ (set_attr "type" "multiple") ++ (set_attr "arch" "t,32")] ++) ++ + (define_expand "casesi" + [(match_operand:SI 0 "s_register_operand" "") ; index to jump on + (match_operand:SI 1 "const_int_operand" "") ; lower bound +diff --git a/gcc/config/arm/predicates.md b/gcc/config/arm/predicates.md +index 7e198f9bce4..69718ee9c7a 100644 +--- a/gcc/config/arm/predicates.md ++++ b/gcc/config/arm/predicates.md +@@ -31,6 +31,23 @@ + || REGNO_REG_CLASS (REGNO (op)) != NO_REGS)); + }) + ++; Predicate for stack protector guard's address in ++; stack_protect_combined_set_insn and stack_protect_combined_test_insn patterns ++(define_predicate "guard_addr_operand" ++ (match_test "true") ++{ ++ return (CONSTANT_ADDRESS_P (op) ++ || !targetm.cannot_force_const_mem (mode, op)); ++}) ++ ++; Predicate for stack protector guard in stack_protect_combined_set and ++; stack_protect_combined_test patterns ++(define_predicate "guard_operand" ++ (match_code "mem") ++{ ++ return guard_addr_operand (XEXP (op, 0), mode); ++}) ++ + (define_predicate "imm_for_neon_inv_logic_operand" + (match_code "const_vector") + { +diff --git a/gcc/config/arm/thumb1.md b/gcc/config/arm/thumb1.md +index 19dcdbcdd73..cd199c9c529 100644 +--- a/gcc/config/arm/thumb1.md ++++ b/gcc/config/arm/thumb1.md +@@ -1962,4 +1962,17 @@ + }" + [(set_attr "type" "mov_reg")] + ) ++ ++(define_insn "thumb1_stack_protect_test_insn" ++ [(set (match_operand:SI 0 "register_operand" "=&l") ++ (unspec:SI [(match_operand:SI 1 "memory_operand" "m") ++ (mem:SI (match_operand:SI 2 "register_operand" "+l"))] ++ UNSPEC_SP_TEST)) ++ (clobber (match_dup 2))] ++ "TARGET_THUMB1" ++ "ldr\t%0, [%2]\;ldr\t%2, %1\;eors\t%0, %2, %0" ++ [(set_attr "length" "8") ++ (set_attr "conds" "set") ++ (set_attr "type" "multiple")] ++) + +diff --git a/gcc/config/arm/unspecs.md b/gcc/config/arm/unspecs.md +index 19416736ef9..8f9dbcb08dc 100644 +--- a/gcc/config/arm/unspecs.md ++++ b/gcc/config/arm/unspecs.md +@@ -86,6 +86,9 @@ + UNSPEC_PROBE_STACK ; Probe stack memory reference + UNSPEC_NONSECURE_MEM ; Represent non-secure memory in ARMv8-M with + ; security extension ++ UNSPEC_SP_SET ; Represent the setting of stack protector's canary ++ UNSPEC_SP_TEST ; Represent the testing of stack protector's canary ++ ; against the guard. + ]) + + (define_c_enum "unspec" [ +diff --git a/gcc/doc/md.texi b/gcc/doc/md.texi +index 295fc1f1143..895309b2f3c 100644 +--- a/gcc/doc/md.texi ++++ b/gcc/doc/md.texi +@@ -7450,22 +7450,61 @@ builtins. + The get/set patterns have a single output/input operand respectively, + with @var{mode} intended to be @code{Pmode}. + ++@cindex @code{stack_protect_combined_set} instruction pattern ++@item @samp{stack_protect_combined_set} ++This pattern, if defined, moves a @code{ptr_mode} value from an address ++whose declaration RTX is given in operand 1 to the memory in operand 0 ++without leaving the value in a register afterward. If several ++instructions are needed by the target to perform the operation (eg. to ++load the address from a GOT entry then load the @code{ptr_mode} value ++and finally store it), it is the backend's responsibility to ensure no ++intermediate result gets spilled. This is to avoid leaking the value ++some place that an attacker might use to rewrite the stack guard slot ++after having clobbered it. ++ ++If this pattern is not defined, then the address declaration is ++expanded first in the standard way and a @code{stack_protect_set} ++pattern is then generated to move the value from that address to the ++address in operand 0. ++ + @cindex @code{stack_protect_set} instruction pattern + @item @samp{stack_protect_set} +-This pattern, if defined, moves a @code{ptr_mode} value from the memory +-in operand 1 to the memory in operand 0 without leaving the value in +-a register afterward. This is to avoid leaking the value some place +-that an attacker might use to rewrite the stack guard slot after +-having clobbered it. ++This pattern, if defined, moves a @code{ptr_mode} value from the valid ++memory location in operand 1 to the memory in operand 0 without leaving ++the value in a register afterward. This is to avoid leaking the value ++some place that an attacker might use to rewrite the stack guard slot ++after having clobbered it. ++ ++Note: on targets where the addressing modes do not allow to load ++directly from stack guard address, the address is expanded in a standard ++way first which could cause some spills. + + If this pattern is not defined, then a plain move pattern is generated. + ++@cindex @code{stack_protect_combined_test} instruction pattern ++@item @samp{stack_protect_combined_test} ++This pattern, if defined, compares a @code{ptr_mode} value from an ++address whose declaration RTX is given in operand 1 with the memory in ++operand 0 without leaving the value in a register afterward and ++branches to operand 2 if the values were equal. If several ++instructions are needed by the target to perform the operation (eg. to ++load the address from a GOT entry then load the @code{ptr_mode} value ++and finally store it), it is the backend's responsibility to ensure no ++intermediate result gets spilled. This is to avoid leaking the value ++some place that an attacker might use to rewrite the stack guard slot ++after having clobbered it. ++ ++If this pattern is not defined, then the address declaration is ++expanded first in the standard way and a @code{stack_protect_test} ++pattern is then generated to compare the value from that address to the ++value at the memory in operand 0. ++ + @cindex @code{stack_protect_test} instruction pattern + @item @samp{stack_protect_test} + This pattern, if defined, compares a @code{ptr_mode} value from the +-memory in operand 1 with the memory in operand 0 without leaving the +-value in a register afterward and branches to operand 2 if the values +-were equal. ++valid memory location in operand 1 with the memory in operand 0 without ++leaving the value in a register afterward and branches to operand 2 if ++the values were equal. + + If this pattern is not defined, then a plain compare pattern and + conditional branch pattern is used. +diff --git a/gcc/function.c b/gcc/function.c +index 85a5d9f43f7..69523c1d723 100644 +--- a/gcc/function.c ++++ b/gcc/function.c +@@ -4937,18 +4937,34 @@ stack_protect_epilogue (void) + tree guard_decl = targetm.stack_protect_guard (); + rtx_code_label *label = gen_label_rtx (); + rtx x, y; +- rtx_insn *seq; ++ rtx_insn *seq = NULL; + + x = expand_normal (crtl->stack_protect_guard); +- if (guard_decl) +- y = expand_normal (guard_decl); ++ ++ if (targetm.have_stack_protect_combined_test () && guard_decl) ++ { ++ gcc_assert (DECL_P (guard_decl)); ++ y = DECL_RTL (guard_decl); ++ /* Allow the target to compute address of Y and compare it with X without ++ leaking Y into a register. This combined address + compare pattern ++ allows the target to prevent spilling of any intermediate results by ++ splitting it after register allocator. */ ++ seq = targetm.gen_stack_protect_combined_test (x, y, label); ++ } + else +- y = const0_rtx; ++ { ++ if (guard_decl) ++ y = expand_normal (guard_decl); ++ else ++ y = const0_rtx; ++ ++ /* Allow the target to compare Y with X without leaking either into ++ a register. */ ++ if (targetm.have_stack_protect_test ()) ++ seq = targetm.gen_stack_protect_test (x, y, label); ++ } + +- /* Allow the target to compare Y with X without leaking either into +- a register. */ +- if (targetm.have_stack_protect_test () +- && ((seq = targetm.gen_stack_protect_test (x, y, label)) != NULL_RTX)) ++ if (seq) + emit_insn (seq); + else + emit_cmp_and_jump_insns (x, y, EQ, NULL_RTX, ptr_mode, 1, label); +diff --git a/gcc/target-insns.def b/gcc/target-insns.def +index 9a552c3d11c..d39889b3522 100644 +--- a/gcc/target-insns.def ++++ b/gcc/target-insns.def +@@ -96,7 +96,9 @@ DEF_TARGET_INSN (sibcall_value, (rtx x0, rtx x1, rtx opt2, rtx opt3, + DEF_TARGET_INSN (simple_return, (void)) + DEF_TARGET_INSN (split_stack_prologue, (void)) + DEF_TARGET_INSN (split_stack_space_check, (rtx x0, rtx x1)) ++DEF_TARGET_INSN (stack_protect_combined_set, (rtx x0, rtx x1)) + DEF_TARGET_INSN (stack_protect_set, (rtx x0, rtx x1)) ++DEF_TARGET_INSN (stack_protect_combined_test, (rtx x0, rtx x1, rtx x2)) + DEF_TARGET_INSN (stack_protect_test, (rtx x0, rtx x1, rtx x2)) + DEF_TARGET_INSN (store_multiple, (rtx x0, rtx x1, rtx x2)) + DEF_TARGET_INSN (tablejump, (rtx x0, rtx x1)) +-- +2.21.0 diff --git a/poky/meta/recipes-devtools/gcc/gcc-9.1.inc b/poky/meta/recipes-devtools/gcc/gcc-9.1.inc index eb2538020..4c648a169 100644 --- a/poky/meta/recipes-devtools/gcc/gcc-9.1.inc +++ b/poky/meta/recipes-devtools/gcc/gcc-9.1.inc @@ -33,7 +33,6 @@ SRC_URI = "\ file://0003-gcc-4.3.3-SYSROOT_CFLAGS_FOR_TARGET.patch \ file://0004-64-bit-multilib-hack.patch \ file://0005-optional-libstdc.patch \ - file://0006-gcc-disable-MASK_RELAX_PIC_CALLS-bit.patch \ file://0007-COLLECT_GCC_OPTIONS.patch \ file://0008-Use-the-defaults.h-in-B-instead-of-S-and-t-oe-in-B.patch \ file://0009-fortran-cross-compile-hack.patch \ diff --git a/poky/meta/recipes-devtools/gcc/gcc-9.1/0006-gcc-disable-MASK_RELAX_PIC_CALLS-bit.patch b/poky/meta/recipes-devtools/gcc/gcc-9.1/0006-gcc-disable-MASK_RELAX_PIC_CALLS-bit.patch deleted file mode 100644 index 4a552d516..000000000 --- a/poky/meta/recipes-devtools/gcc/gcc-9.1/0006-gcc-disable-MASK_RELAX_PIC_CALLS-bit.patch +++ /dev/null @@ -1,59 +0,0 @@ -From ca3b3ac12d9b6e1065333dec89e7be2c733509d9 Mon Sep 17 00:00:00 2001 -From: Khem Raj <raj.khem@gmail.com> -Date: Fri, 29 Mar 2013 09:14:20 +0400 -Subject: [PATCH 06/37] gcc: disable MASK_RELAX_PIC_CALLS bit - -The new feature added after 4.3.3 -"http://www.pubbs.net/200909/gcc/94048-patch-add-support-for-rmipsjalr.html" -will cause cc1plus eat up all the system memory when build webkit-gtk. -The function mips_get_pic_call_symbol keeps on recursively calling itself. -Disable this feature to walk aside the bug. - -Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com> -Signed-off-by: Khem Raj <raj.khem@gmail.com> - -Upstream-Status: Inappropriate [configuration] ---- - gcc/configure | 7 ------- - gcc/configure.ac | 7 ------- - 2 files changed, 14 deletions(-) - -diff --git a/gcc/configure b/gcc/configure -index 2e08396622e..d36cb51bc2c 100755 ---- a/gcc/configure -+++ b/gcc/configure -@@ -27509,13 +27509,6 @@ $as_echo_n "checking assembler and linker for explicit JALR relocation... " >&6; - rm -f conftest.* - fi - fi -- if test $gcc_cv_as_ld_jalr_reloc = yes; then -- if test x$target_cpu_default = x; then -- target_cpu_default=MASK_RELAX_PIC_CALLS -- else -- target_cpu_default="($target_cpu_default)|MASK_RELAX_PIC_CALLS" -- fi -- fi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gcc_cv_as_ld_jalr_reloc" >&5 - $as_echo "$gcc_cv_as_ld_jalr_reloc" >&6; } - -diff --git a/gcc/configure.ac b/gcc/configure.ac -index 7d34911573e..dfa88c35f3f 100644 ---- a/gcc/configure.ac -+++ b/gcc/configure.ac -@@ -4816,13 +4816,6 @@ x: - rm -f conftest.* - fi - fi -- if test $gcc_cv_as_ld_jalr_reloc = yes; then -- if test x$target_cpu_default = x; then -- target_cpu_default=MASK_RELAX_PIC_CALLS -- else -- target_cpu_default="($target_cpu_default)|MASK_RELAX_PIC_CALLS" -- fi -- fi - AC_MSG_RESULT($gcc_cv_as_ld_jalr_reloc) - - AC_CACHE_CHECK([linker for .eh_frame personality relaxation], --- -2.20.1 - |