Hi,
In binutils I need to write an offset between two symbols shifted right by 2 bits. This offset is written to the xdata section. My
code currently looks like this:
exp.X_op = O_subtract;
exp.X_add_symbol = symbol1;
exp.X_op_symbol = symbol2;
emit_expr (&exp, 2);
This works fine but obviously the result value is not shifted. Anyone have a good option is to shift the output of emit_expr at
write time?
I cannot use resolve_expression because the symbols do not have correct addresses at the time this code executes.
Any help appreciated,
Zac
Hello,
# TCWG CI — GDB
- Changed tcwg_gnu-build.sh to apply GDB testsuite patch to avoid infinite
loop in tcwg_gdb_check--master-arm jobs, while it isn't committed
upstream.
- Started investigating corrupt gdb.sum.1 file in
tcwg_gdb_check--master-arm jobs. I can't reproduce it by manually
running the CI's "make check-gdb" command line, nor by using ABE. I can
reproduce it with tcwg_gnu-build.sh though.
- Came up with validate_failures.py change to make it cope with the
corrupt gdb.sum.1 file, while the underlying cause isn't known.
Submitted the change upstream.
# TCWG Infrastructure
- Reviewed some Gerrit requests for our CI scripts.
# Misc
- Did some travel planning for Linaro Employee Meeting and GNU Tools
Cauldron.
--
Thiago
Project Orko
============
- more virtio-gpu discussion, blog post soon
Enable Arm Architecture in QEMU
===============================
- prep for KVM Forum talk
Other
=====
- various syncs
Absences
========
- KVM Forum next week
Current Review Queue
====================
TODO [RFC v2 0/6] Native Library Calls
Message-Id: <20230607164750.829586-1-fufuyqqqqqq(a)gmail.com>
=================================================================================================
TODO [PATCH] Add virtio-sound and virtio-sound-pci devices
Message-Id: <20230526204845.673031-1-manos.pitsidianakis(a)linaro.org>
==============================================================================================================================
TODO [PATCH v2 00/10] hw/virtio: Build various target-agnostic objects just once
Message-Id: <20230524093744.88442-1-philmd(a)linaro.org>
======================================================================================================================================
--
Alex Bennée
Virtualisation Tech Lead @ Linaro
Progress:
* UM-2 [QEMU upstream maintainership]
- code review (including a new board-and-devices
patchseries for a TI Tiva C devboard)
- Put together an arm pull request
- Investigated some bug reports, sent patches:
* regression in Allwinner A10 interrupt controller
* hang in icount mode on microbit with Zephyr guest
* LDG doesn't return the right values when ATA==0
- prep for next week's KVM Forum trip
* QEMU-530 [QEMU ARM v9.4 Baseline CPU for TCG]
- handling review comments and rebasing of decodetree
load/store conversion
- investigating a few issues I noticed in the process
-- PMM
Hello,
# TCWG CI — GDB
- Addressed review comments and sent v2 and v3 of the patch fixing loop
in gdb.reverse/step-reverse.exp. The testcase's original author gave his
Reviewed-by, now waiting for approval by a maintainer. In the meantime,
set up our CI to apply the patch locally.
- Sent patch to the GDB mailing list implementing configure option
'--with-additional-debug-dirs' to allow building a GDB binary with a
custom install prefix but which also looks for debug info in
/usr/lib/debug. This should solve the SIGILL issue on armhf-linux in our
CI, and allow a few more tests to run on aarch64-linux.
# TCWG Infrastructure
- Reviewed some Gerrit requests related to notification and baseline
updating.
--
Thiago
Hello,
# TCWG CI — GDB
- Continued investigating issue with GDB on armhf-linux about getting
SIGILL when trying to detect shared library loading/unloading. Noticed
that the problem happens only in tests that use the distro's toolchain
(either because they're for a language we don't build in ABE gcc, or
because GDB itself is built with the distro toolchain), so the impact
isn't as widespread as I initially thought. It still frequently causes
trouble for our CI loop though. Working on a fix.
- Investigated and fixed loop in gdb.reverse/step-reverse.exp that was
causing tcwg_gdb_check--master-arm-build jobs to get stuck, as
reported by Maxim. Posted patch to the GDB mailing list.
# TCWG Infrastructure
- Reviewed Gerrit requests about testing mailing list patches in our CI.
--
Thiago
Progress (another short week, May is great this year):
* UM-2 [QEMU upstream maintainership]
- More review on some of RTH's atomics related patchsets
- Put together an arm pull request
- Sent out a call for agenda items for QEMU Summit
* QEMU-530 [QEMU ARM v9.4 Baseline CPU for TCG]
- decodetree load/store conversion done, patches sent out for review.
After this I plan to go back to the FEAT_MOPS implementation
(and then do the last part of the integer A64 decodetree
conversion later in this release cycle).
-- PMM
Hello,
# TCWG CI — GDB
- Investigating issue in CI jobs where touching all C files causes GDB
to show a warning about the source being newer than the executable.
This interferes with a few GDB tests.
- Continued investigating issue with GDB on armhf-linux about getting
SIGILL when trying to detect shared library loading/unloading. Found
out that the GDB testsuite binaries are using the distro's ld.so
rather than the one built by ABE and which is the one expected to be
used. Because we don't have debuginfo installed for the distro's
ld.so, we hit the GDB bug in armhf-linux. The ld.so built by ABE has
debuginfo and would avoid hitting the issue.
# TCWG Infrastructure
- Reworked CI job to sanity check tcwg_gnu_fast_check_{gcc,gdb} and
posted new version for review.
- Reviewed some Gerrit requests for jenkins-scripts and ABE.
--
Thiago
Progress (short week, three days):
* UM-2 [QEMU upstream maintainership]
- Sent a patch fixing a bug where we broke some M-profile uses
(resulting in assertion failures) when we added v8R support
* QEMU-530 [QEMU ARM v9.4 Baseline CPU for TCG]
- Implemented support for a new feature in the decodetree
generator that I need for the A64 decodetree conversion,
sent patches out for review
- More progress on A64 decodetree: loads and stores
-- PMM
Hello,
# TCWG CI — GDB
- Analysed a number of potential regressions found by our CI on
aarch64-linux and armhf-linux. They aren't exactly regressions but bug
fixes or new features that work on other arches (or perhaps whose
testcases correctly detect PASSes on other arches) but not on
aarch64-linux or armhf-linux.
- armhf-linux has an important problem where a bug with detecting shared
library loading/unloading is causing many tests to fail. The result is
that every new GDB commit that adds a test is flagged by the bisect
job. This was caused by a GDB commit from November 2022. Luis reported
it at the time and the patch author was going to look into it, but
this probably fell through the cracks. I'm investigating to understand
the problem better and provide a fix.
--
Thiago
Progress:
* UM-2 [QEMU upstream maintainership]
- Reviewed another round of RTH's patchset overhauling atomics
- Sent an arm pullreq
* QEMU-530 [QEMU ARM v9.4 Baseline CPU for TCG]
- Continued with the conversion of the A64 decoder to decodetree:
have converted hints, barriers, system register insns,
exception generation, and am halfway through the loads and stores.
-- PMM
Hi,
Has anyone noticed that https://lab.llvm.org/buildbot/#/builders/198 (clang-aarch64-sve-vla-2stage<https://lab.llvm.org/buildbot/#/builders/198>) has been timing out for the past few days? "Duration" is often less than 1hr, so that's odd. And all Flang buildbots are green, so it's unlikely caused by changes to that sub-project (https://lab.llvm.org/buildbot/#/builders/198/builds/1804). Would anyone be able to take a look?
Best regards,
Andrzej
IMPORTANT NOTICE: The contents of this email and any attachments are confidential and may also be privileged. If you are not the intended recipient, please notify the sender immediately and do not disclose the contents to any other person, use it for any purpose, or store or copy the information in any medium. Thank you.
Hello,
# TCWG Infrastructure
- Reviewed a bunch of Gerrit requests for our CI scripts.
- Finished job definition to run fast_check_{gcc,gdb} jobs triggered by
new Gerrit review requests for jenkins-scripts, benchmark scripts and
ABE. Sent Gerrit review request and now working on 2nd version.
- Rebased our DejaGNU debug patches to upstream dejagnu-1.6.3, tested
result and sent Gerrit review request for it.
# TCWG CI — GDB
- Confirmed regression found by CI job¹ and mentioned by Maxim. Found
out that it was fixed upstream already².
--
Thiago
¹ https://ci.linaro.org/job/tcwg_gnu_native_check_gdb--master-aarch64-bisect/…
² https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=5a6ad5c775a58367…
Progress (another short week, May is full of bank holidays :-)):
* UM-2 [QEMU upstream maintainership]
- usual background level of code review etc
- investigated a bug reported by Mozilla where people running x86 Firefox
on QEMU on Arm hardware were seeing crashes; narrowed down the cause
(aided by Mozilla kindly providing a minimal repro test case),
and Paolo produced a fix.
* QEMU-530 [QEMU ARM v9.4 Baseline CPU for TCG]
- Started looking at what is required for FEAT_MOPS (the
memcpy/memset/memmove insns), what they do and how QEMU ought
to implement them.
- The new insns are in the load/store part of the A64 instruction
space. To make this easier to do, we should really convert at
least the integer parts of the A64 decoder to decodetree (a
refactoring we've been putting off for a long time). Started on
the conversion: sent out a first 20-patch patchset that converts
the dp-immediate and branch insns.
-- PMM
Progress (combines two weeks):
* UM-2 [QEMU upstream maintainership]
- investigated various failures of avocado tests on s390x host.
These are at least four different unrelated endianness bugs in
different device, board or CPU models. Sent out a set of patches
fixing at most of these.
- TCWG / Arm syncup meeting
- Linaro Connect
- caught up on code review and sent a target-arm pull request
- sent patch fixing a bug where our PNG screenshots have the pixel
colour channels in the wrong order
- while I had a conversation from Connect fresh in my mind, went
back and re-looked at the page-table-walk bug with handling the
NSW/SW bits that I sent patches for a couple of weeks ago. Re-did
the code to consistently handle these bits in the right place and
sent out another version of the patchset
- reviewed a very large patchset from RTH that changes how
TCG handles atomic accesses so we can implement FEAT_LSE2
- investigated a bug report about a regression with AArch32 EL1
under an AArch64 EL2; wrote patch
-- PMM
Hello,
# TCWG Infrastructure
- Reviewed a bunch of Gerrit requests for our CI scripts.
- Learning Jenkins job builder syntax and working on a job definition to
run fast_check_{gcc,gdb} jobs on Gerrit review requests for
jenkins-scripts and ABE.
- Changed CI scripts to save ABE and component testsuite logs when the ABE
build or check step fails. This should help debug a case where a GDB CI
job failed due to (probably) a corruption of the gdb.sum testsuite
result file.
# Misc
- Some preparations for the trip to Linaro Connect.
--
Thiago
Progress:
* UM-2 [QEMU upstream maintainership]
- sent out v3 of the 'deprecate singlestep option' patchset
- sorted out the draft QEMU Summit invite list and invitation text
- spent some time trying to understand how the imx SoCs arrange
their ethernet controllers and PHYs so I can review a patchset
- sent patch fixing minor configure nit where it wasn't honouring
--cross-prefix for the ObjC compiler
- got the 8.0 release out of the door and handed over merge handling
to rth
- sent some patchsets updating a few old .txt files to reStructuredText
- still thinking about our page-table-walk code -- I'm not convinced
it's doing the right thing with NSW/SW bits, even after last
week's patchset...
-- PMM
Hello,
# TCWG Infrastructure
- Fixed problem in ABE with MinGW build of GDB's master branch.
- Fixed problem in upstream GDB with MinGW build of GDB's master branch.
- Analysed backlog of failed check_gdb jobs.
- A couple of "misbisected" commits, including one pointing to a glibc commit.
- One detected regression also noticed by Christophe, and fixed by the community.
- One Arm failure that passes on QEMU TCG.
- Reviewed a number of Gerrit requests about improving ABE and CI scripts.
--
Thiago
Progress:
* UM-2 [QEMU upstream maintainership]
* trying to get a release out of the door -- due among other things
to the Easter holiday weekend, rc4 is a bit late and has rather
more changes than I would prefer
* more triaging of Coverity issues
* sent a few trivial bug fix patches
* started reviewing and queueing arm patches for 8.1
* investigated a FEAT_SEL2 bug that showed up with some proposed
changes to TF-A/Hafnium. The architecture and QEMU's code
are pretty hairy in this area but I think I have identified
the correct fix...
-- PMM
Hello,
[GNU-796] Stabilize GDB testsuite results in the CI
- Submitted to GDB mailing list and committed patches fixing the
gdb.asm/asm-source.exp regression found by the check_gdb job. Turned out
to be a small bug in the stabs debug format support.
- Committed Gerrit review request disabling Python on MinGW cross builds.
[GNU-767] Support changing SVE vector length in remote debugging
- Investigating a follow-up question Simon asked during review of the
patch series fixing a corner case when reading auxv from multi-threaded
inferiors.
--
Thiago
Progress:
* UM-2 [QEMU upstream maintainership]
* rc3 this week
* reworked my "deprecate the misleading -singlestep option"
patchset to deal with review feedback, sent out v2
* KVM Forum programme committee work
* investigated a regression where the mps3-an547 board
asserts on startup; for 8.0 we will just revert the change
that introduced the failure, since it was only an optimization
* some triage of Coverity issue reports; sent some patches for
some easy ones, queried original code submitter for others
-- PMM
Hi Alexandros,
Linaro benchmarking CI flagged this patch. After it clang seems to miscompile 602.gcc_s from SPEC CPU2017 for "-O3 -flto" on aarch64-linux-gnu. Also, it appears that 600.perlbench_s slows down by 9%.
Could you investigate, please? Let me know if you need any assistance in reproducing the problem.
Our Benchmarking CI is still in active development, and there are false positives, but this report seems to be legit [1].
Kind regards,
[1] https://ci.linaro.org/job/tcwg_bmk-code_speed-cpu2017speed--llvm-aarch64-ma…
--
Maxim Kuvyrkov
https://www.linaro.org
Hello,
[GNU-796] Stabilize GDB testsuite results in the CI
- Committed ABE change suggested by Maxim to mention failures that cause
additional testsuite runs.
- Tried to update Python MinGW build to 3.x, but it's a rabbit hole.
Proposing to disable Python support when cross-building GDB with MinGW
instead.
- First regression detected by the tcwg_gnu_native_check_gdb CI job
reported upstream¹. Started investigating it.
[GNU-767] Support changing SVE vector length in remote debugging
- Created a testcase to exercise the corner case mentioned by Pedro.
Found out that GDB is also susceptible to it. Fixed both GDB and
gdbserver. Posted patch series upstream².
--
Thiago
¹ https://inbox.sourceware.org/gdb-patches/871ql6dhf4.fsf@linaro.org/
² https://inbox.sourceware.org/gdb-patches/20230331034432.3037148-1-thiago.ba…
Progress (short week, holiday and recovering from covid...):
* UM-2 [QEMU upstream maintainership]
* 8.0 release related work rumbles on
* debugged and fixed a regression caused by my work on HSTR_EL2 traps
* QEMU-530 [QEMU ARM v9.4 Baseline CPU for TCG]
* implemented FEAT_PAN3 (and fixed a minor bug in
syndrome reporting that I noticed in the process)
-- PMM
Hello,
[GNU-796] Stabilize GDB testsuite results in the CI:
- Enabled gdb.gdb/unittest.exp in fast_check_gdb job. It should be
stable now that tcwg-jade-02's kernel has been upgraded.
- Enabled bisections for check_gdb jobs.
- Implemented Maxim's idea to handle GDB testsuite's tests that can FAIL
but are silent when they pass (i.e., the "gdb_test -nopass"
statements).
[GNU-767] Support changing SVE vector length in remote debugging
- Back in February I upstreamed a couple of preparation patches and
Pedro noticed an unintended change in behaviour that can affect a
corner case, so I am working on a fix for that now.
--
Thiago
Hello,
[GNU-796] Stabilize GDB testsuite results in the CI:
- Finished implementing ABE's support for rerunning failed tests using
Maxim's idea of leveraging validate_failures.py to determine which
tests need to be rerun. Submitted v3 and v4 versions, and committed
v4.
- Investigated why tcwg-abet-tested jobs have been failing in the CI.
Found out that Jenkins sets a bogus core.hooksPath in the git repo
config. Submitted and merged a gerrit request fixing the problem.
- Investigated why cross-build gdbserver needs GMP and MPFR (and is thus
failing to build) in tcwg-gnu-build jobs. Submitted Gerrit review
request to fix it.
- Started looking into why re-enabling GDB testsuite parallelism makes
it run fewer tests.
--
Thiago
Progress:
* UM-2 [QEMU upstream maintainership]
- went through and made estimates for a pile of JIRA tasks
relating to implementing features we're missing to get to ARMv9.4
- diagnosed why --enable-werror wasn't affecting warnings from
the kerneldoc docs generator, and sent a patch fixing it
- some bug triage, looking for issues that ought to be fixed for 8.0
- fixed a division-by-zero bug in the cadence UART model
- fixed a documentation markup mistake that made the docs look odd
- investigating/fixing some more CI failures
- minor bits of travel/conference related admin
-- PMM
Hello,
[GNU-796] Stabilize GDB testsuite results in the CI:
- Submitted and merged a couple of review requests removing obsolete CI
jobs related to release automation and release regression detection
- Finished version of scripts that have most of the logic for rerunning
testsuites in ABE. Submitted as a review request. Addressed review
comments and submitted v2.
- Maxim found out a way to simplify the logic of determining whether a
new testsuite run is warranted by using validate_failures.py, which
I'm now implementing.
--
Thiago
Progress:
* UM-2 [QEMU upstream maintainership]
- Softfreeze was this Tuesday; lots of wrangling of pull requests
- Code review; last arm pullreq before softfreeze
- various admin type bits and pieces
-- PMM
Hello,
[GNU-796] Stabilize GDB testsuite results in the CI:
- Moved most of logic to rerun failed tests from tcwg_gnu-build.sh to
Abe and a new script based on the sum file parser of
compare_dg_tests.pl. The new script creates a "merged" sum file from
all the runs. Currently changing Abe to make use of it.
- Did a few cleanups in compare_dg_tests.pl as I was going through its
code. Also added KFAIL status support to it, which the GDB testsuite
needs.
- Removed a few obsolete CI jobs which came out of the woodwork when I
merged the compare_dg_tests.pl cleanups.
--
Thiago
Project Orko
============
- did [launch presentation] for SOAFEE and LEDGE SC
[launch presentation]
<https://docs.google.com/presentation/d/1CGYIK2W0VSo0kih9ExwfFlkGww7rL5fjMIb…>
Enable Arm Architecture in QEMU
===============================
- bunch of planning for FEAT_GCS, see [QEMU-517] and related
- spoke to Lauterbach on behalf of QC, gave pointers on debug
[QEMU-517] <https://linaro.atlassian.net/browse/QEMU-517>
FEAT_RME, CCA Realms ([QEMU-466])
=================================
- did a bit of review of rth's precursor patches
[QEMU-466] <https://linaro.atlassian.net/browse/QEMU-466>
QEMU Upstream Work ([UM-2])
===========================
- finished up [MR for using locally built QEMU in TuxRun]
- posted [PATCH v4 00/26] gdbstub/next: re-organise and split build
Message-Id: <20230302190846.2593720-1-alex.bennee(a)linaro.org>
- posted [PULL v2 00/24] testing updates (gitlab, cirrus, docker,
avocado, windows) Message-Id:
<20230301151604.1948813-1-alex.bennee(a)linaro.org>
- these help address the CI minutes we are burning through monthly
now
[UM-2] <https://linaro.atlassian.net/browse/UM-2>
[testing/next] <https://github.com/stsquad/qemu/tree/testing/next>
[MR for using locally built QEMU in TuxRun]
<https://gitlab.com/Linaro/tuxrun/-/merge_requests/179>
Completed Reviews [6/6]
=======================
[PATCH v2 0/4] Fix deadlock when dying because of a signal
Message-Id: <20230213125238.331881-1-iii(a)linux.ibm.com>
[PATCH 0/8] hw/arm: Cleanups around QOM style
Message-Id: <20230220115114.25237-1-philmd(a)linaro.org>
[PATCH v2 00/24] hw/ide: QOM/QDev housekeeping
Message-Id: <20230220091358.17038-1-philmd(a)linaro.org>
[PATCH v2] gdbstub: move update guest debug to accel ops
Message-Id: <20230207131721.49233-1-mads(a)ynddal.dk>
[PATCH 0/5] iotests: make meson aware of individual I/O tests
Message-Id: <20230302184606.418541-1-berrange(a)redhat.com>
[PATCH v2] TCG plugin API extension to read guest memory content by an address
Message-Id: <5c50db42136d4a908b261c66b132b043(a)yadro.com>
Other
=====
Absences
========
Current Review Queue
====================
TODO [PATCH 1/6] Add the Android Emulator hypervisor driver (AEHD) accelerator.
Message-Id: <20230303022618.4098825-1-hshan(a)google.com>
======================================================================================================================================
TODO [RFC PATCH v2 00/11] Add stage-2 translation for SMMUv3
Message-Id: <20230226220650.1480786-1-smostafa(a)google.com>
======================================================================================================================
TODO [PATCH v2 00/28] tcg: Simplify temporary usage
Message-Id: <20230222232715.15034-1-richard.henderson(a)linaro.org>
====================================================================================================================
--
Alex Bennée
Virtualisation Tech Lead @ Linaro
Hello,
# [GNU-796] Stabilize GDB testsuite results in the CI
- Cleaned up change in tcwg_gnu-build.sh that reruns failed tests and
created Gerrit review request¹.
- Based on Laurent's and Maxim's suggestions, decided to put the code which
retries the failed tests in Abe, so now I'm working on that.
--
Thiago
¹ https://review.linaro.org/c/toolchain/jenkins-scripts/+/43265
Progress:
* UM-2 [QEMU upstream maintainership]
- Code review: big FEAT_LSE2 support series, 8.3 pointer auth,
gdbstub support for M-profile sysregs, another round of
FEAT_RME, and more
- discussions about how to handle the fact that QEMU has
run out of gitlab CI minutes, and some tweaking of my scripts
to work around the lack of minutes
-- PMM
Hello,
# [GNU-796] Stabilize GDB testsuite results in the CI
- Merged Gerrit review requests removing unsupported and flaky tests
from the fast_check_gdb CI job, and also one that makes it flag
regressions in the stable tests.
- Implemented change in Abe to build glibc with SystemTap probes
enabled, but there's a kludge I still need to cleanup before
submitting it for review.
- Working on change to tcwg_gnu-build.sh to make it run failed tests
again to see if they change to passing status. I have a working
prototype. Now running further tests and cleaning up the code.
--
Thiago
Hi Bryan,
> On Feb 7, 2023, at 9:13 PM, Bryan Phillippe <bp(a)darkforest.org> wrote:
>
...
> -rwxr-xr-x 1 config root 2765178 Dec 9 2018 /lib/libuClibc-1.0.14.so
> /root # strings /lib/libuClibc-1.0.14.so |grep -i linaro|head -n 1
> GCC: (OpenWrt/Linaro GCC 4.8-2014.04 r35193) 4.8.3
This indicates that it was built with an OpenWRT toolchain, and OpenWRT project maintainers used Linaro GCC 4.8 source release, instead of FSF GCC 4.8 source release. In the days of GCC 4.8 it was very common to use Linaro GCC source release instead of FSF ones for building compilers for 32-bit and 64-bit ARM.
Try searching in OpenWRT archives for a copy of GCC 4.8-based toolchain.
> /root # strings /lib/libuClibc-1.0.14.so |grep -i gcc-4.8|head -n 1
> /home/test/work/sudhan-qsdk/qsdk/build_dir/toolchain-arm_cortex-a7_gcc-4.8-linaro_uClibc-1.0.14_eabi/uClibc-ng-1.0.14
> /root #
>
> I only need to rebuild a single binary on this platform, and I don't have the source or the toolchain for the existing binaries. If I have to recreate a toolchain based on the versions only, it should be possible, but will be a good deal of work and effort. If you know where I can find this toolchain - or have any advice on how I can build my own compatible version - I would be very grateful.
If you want to rebuild a single executable, then it may be easier to use a modern toolchain for arm-linux-gnueabihf [1] and build the static binary of your package (add "-static" to compiler flags). This was the binary will include all necessary bits of system libraries. This is a good approach if your package does not have dependencies outside of C library; otherwise you would need to find static versions of all other libraries.
--
Maxim Kuvyrkov
https://www.linaro.org
>
> Thank you so much!
>
> --
> -bp
>
>> On Feb 7, 2023, at 04:24, Maxim Kuvyrkov <maxim.kuvyrkov(a)linaro.org> wrote:
>>
>> [CC: linaro-toolchain@]
>>
>> Hi Bryan,
>>
>> I don't think that Linaro has ever released a toolchain with uClibc, but I may be wrong. Could you provide additional information about the target, rootfs and your setup?
>>
>> --
>> Maxim Kuvyrkov
>> https://www.linaro.org
>>
>>
>>
>>
>>> On Feb 7, 2023, at 10:31 AM, Bryan Phillippe <bp(a)darkforest.org> wrote:
>>>
>>>
>>> Hello! I know this is a long shot, but I have a few devices with code that was built using this toolchain: toolchain-arm_cortex-a7_gcc-4.8-linaro_uClibc-1.0.14_eabi
>>>
>>> I'm trying to find a copy of that so I can rebuild 1 binary/package on the system without blowing everything up. Do you have any idea where I can find this toolchain? Thank you so much in advance!
>>>
>>> --
>>> -bp
>>>
>>
>
Hey!
I'm the author and maintainer of libgpiod. I'm currently getting ready
to do a new major release. After giving some exposure to the release
candidate, I noticed that when using clang, I can't link against the
C++ bindings, while it works just fine in GCC.
The tree in question is here:
https://git.kernel.org/pub/scm/libs/libgpiod/libgpiod.git/log/
You can trigger the linking program by trying to build the C++ tests
with clang like that:
CC=clang CXX=clang++ ./autogen.sh --enable-bindings-cxx --enable-tests
&& make -j16
You'll get the following error:
/usr/bin/ld: tests-chip.o:(.data+0x0): undefined reference to
`typeinfo for gpiod::chip_closed'
/usr/bin/ld: tests-line-request.o:(.data+0x0): undefined reference to
`typeinfo for gpiod::request_released'
/usr/bin/ld: .libs/gpiod-cxx-test: hidden symbol
`_ZTIN5gpiod11chip_closedE' isn't defined
/usr/bin/ld: final link failed: bad value
The typoinfo is missing for exception types that should be visible to
users of the library.
The culprit is here:
https://git.kernel.org/pub/scm/libs/libgpiod/libgpiod.git/tree/bindings/cxx…
I added the GPIOD_CXX_BUILD macro in order to not re-export the
visible symbols if any user of the library would include the gpiod.hpp
header. When the library is being built, the symbols are visible, when
someone includes the header, the symbols are hidden.
If I make the symbols unconditionally visible here, clang starts to
work but I have no idea why and would like to avoid re-exporting the
symbols if I can.
I'm using the following version:
Ubuntu clang version 15.0.6
Target: x86_64-pc-linux-gnu
Thread model: posix
InstalledDir: /usr/bin
Host is: x86_64 GNU/Linux
It's not like gcc links fine but then fails to obtain typeid - I can
catch exceptions coming out from libgpiod just fine in external apps
linked using gcc and see their type.
Any hints?
Thanks
Bart
Hello,
# [GNU-767] Support changing SVE vector length in remote debugging
- Continued addressing review comments on v3 of the patches. Implemented
some of the suggestions in my local branch, and also engaged in
discussions.
# [GNU-796] Stabilize GDB testsuite results in the CI
- Fixed the problem in tcwg_gnu-build.sh noticed by Maxim where
no_regression_p ignored regressions in the fast_check_gdb CI job.
- Removed gdb.gdb/unittest.exp and gdb.server/unittest.exp from the
fast_check_gdb stable tests list. The former only temporarily while its
flakiness isn't fixed, and the latter because we don't run remote CI
jobs.
- Found out why gdb.base/break-probes.exp is unsupported in the
fast_check_gdb CI job: we don't build glibc with SystemTap static
probes. I have local changes to add them — and which do fix the GDB
test — but I need to clean them up a bit before pushing them.
--
Thiago
Progress:
* UM-2 [QEMU upstream maintainership]
- Code review. In particular: reviewed RTH's FEAT_RME series
- Wrote and sent an RFC patchset proposing renaming of the
badly misnamed '-singlestep' command line option (it actually
does "put only one guest instruction in each JIT basic block")
-- PMM
Project Stratos
===============
- more prep work for Project Orko
FEAT_RME, CCA Realms ([QEMU-466])
=================================
- sync up meeting with Huawei - see QEMU, FEAT_RME/CCA and next steps
Message-Id: <87mt5ln2t6.fsf(a)linaro.org>
QEMU Upstream Work ([UM-2])
===========================
- posted [RFC PATCH] tests/avocado: retire the Aarch64 TCG tests from
boot_linux.py Message-Id:
<20230203181632.2919715-1-alex.bennee(a)linaro.org>
- continued working on [testing/next] with tuxrun tests
- hacked up [PoC to use local QEMU in TuxRun]
[UM-2] <https://linaro.atlassian.net/browse/UM-2>
[testing/next] <https://github.com/stsquad/qemu/tree/testing/next>
[PoC to use local QEMU in TuxRun]
<https://gitlab.com/stsquad/tuxrun/-/commit/0f9711c18b7e723e1c50c8a8fd116b93…>
Completed Reviews [3/3]
=======================
[PATCH v3 0/9] virtio-gpu: Support Venus Vulkan driver
Message-Id: <20220926142422.22325-1-antonio.caggiano(a)collabora.com>
[PATCH] gdbstub: move update guest debug to accel ops
Message-Id: <20221123121712.72817-1-mads(a)ynddal.dk>
[PATCH v2 0/3] Add gdbstub support to HVF
Message-Id: <20221116174749.65175-1-fcagnin(a)quarkslab.com>
Current Review Queue
====================
TODO [PATCH 00/22] target/arm: Implement FEAT_RME
Message-Id: <20230124000027.3565716-1-richard.henderson(a)linaro.org>
====================================================================================================================
TODO [RFC PATCH 00/16] Add stage-2 translation for SMMUv3
Message-Id: <20230205094411.793816-1-smostafa(a)google.com>
==================================================================================================================
TODO [PATCH v2 0/2] fix for #285
Message-Id: <20230205163758.416992-1-cota(a)braap.org>
====================================================================================
--
Alex Bennée
Virtualisation Tech Lead @ Linaro
[CC: linaro-toolchain@]
Hi Bryan,
I don't think that Linaro has ever released a toolchain with uClibc, but I may be wrong. Could you provide additional information about the target, rootfs and your setup?
--
Maxim Kuvyrkov
https://www.linaro.org
> On Feb 7, 2023, at 10:31 AM, Bryan Phillippe <bp(a)darkforest.org> wrote:
>
>
> Hello! I know this is a long shot, but I have a few devices with code that was built using this toolchain: toolchain-arm_cortex-a7_gcc-4.8-linaro_uClibc-1.0.14_eabi
>
> I'm trying to find a copy of that so I can rebuild 1 binary/package on the system without blowing everything up. Do you have any idea where I can find this toolchain? Thank you so much in advance!
>
> --
> -bp
>
Hello,
# [GNU-767] Support changing SVE vector length in remote debugging
- The patches were already reviewed by 3 maintainers, so started addressing
their review comments and answering questions.
- Committed first two patches in the series, which were self-contained code
improvements.
--
Thiago
Project Stratos
===============
- posted [PATCH v2] backends/vhost-user: remove the ioeventfd check
Message-Id: <20230130124728.175610-1-alex.bennee(a)linaro.org>
- bunch of sync and planning for Project Orko
- see Project Orko requirements from TRS Message-Id:
<87sffmke2i.fsf(a)linaro.org>
- also debugging some TRS <-> QEMU interactions
- posted [RFC PATCH] target/arm: disable FEAT_SME if we turn off SVE
Message-Id: <20230203100551.2445547-1-alex.bennee(a)linaro.org>
[proposal for Unprivilaged VirtIO API]
<https://docs.google.com/document/d/18ijlX2Lguejyo3BV8Tri5Y_d1SmozocBIk2ajgq…>
QEMU Upstream Work ([UM-2])
===========================
- posted [PULL v2 00/36] Testing, docs, semihosting and plugin updates
Message-Id: <20230202160109.2061994-1-alex.bennee(a)linaro.org>
- posted [RFC PATCH] tests/avocado: retire the Aarch64 TCG tests from
boot_linux.py Message-Id:
<20230203181632.2919715-1-alex.bennee(a)linaro.org>
Other
=====
- Did some investigation into LKFT regressions
- posted Initial investigation of slowness kselftest job Message-Id:
<1ba91912e18492c7dafedc5fbd5aef817f109d53fdc95554870edf077a6e21dc(a)mu.id>
- posted Candidate patches for Debian's 7.2 release (and backports)
Message-Id: <87edr8kqqq.fsf(a)linaro.org>
Completed Reviews [4/4]
=======================
[PATCH v6 00/36] tcg: Support for Int128 with helpers
Message-Id: <20230130214844.1158612-1-richard.henderson(a)linaro.org>
[PATCH] vhost-user-gpio: Configure vhost_dev when connecting
Message-Id: <20230130140320.77999-1-akihiko.odaki(a)daynix.com>
[PATCH] configure: Bump minimum Clang version to 10.0
Message-Id: <20230131180239.1582302-1-thuth(a)redhat.com>
[PATCH v3 0/9] virtio-gpu: Support Venus Vulkan driver
Message-Id: <20220926142422.22325-1-antonio.caggiano(a)collabora.com>
Current Review Queue
====================
TODO [PATCH 0/4] Fix deadlock when dying because of a signal
Message-Id: <20230201004609.3005029-1-iii(a)linux.ibm.com>
====================================================================================================================
TODO [RFC PATCH v1 0/8] Look Ma! We made a XenStore
Message-Id: <20230201144358.1744876-1-dwmw2(a)infradead.org>
=============================================================================================================
TODO [QEMU][PATCH v5 00/10] Introduce xenpvh machine for arm architecture
Message-Id: <20230131225149.14764-1-vikram.garhwal(a)amd.com>
====================================================================================================================================
--
Alex Bennée
Virtualisation Tech Lead @ Linaro
Progress:
* UM-2 [QEMU upstream maintainership]
- usual upstream maintenance tasks
- the CI/tests have got rather flaky of late: trying to
find out why...
* QEMU-471 [QEMU ARM v9.0 Baseline CPU for TCG]
- FEAT_FGT: is now upstream
-- PMM
Hello,
# [GNU-767] Support changing SVE vector length in remote debugging
- Continued preparing patches for upstream submission. Did some final
code and testcase cleanups, updated/rewrote patch descriptions, wrote
the cover letter and the list of changes from v2.
- Posted the patches upstream¹.
--
Thiago
¹ https://inbox.sourceware.org/gdb-patches/20230130044518.3322695-1-thiago.ba…
Project Stratos
===============
- reading up on the linux-mm subsystem
- learning about struct vma_area
[proposal for Unprivilaged VirtIO API]
<https://docs.google.com/document/d/18ijlX2Lguejyo3BV8Tri5Y_d1SmozocBIk2ajgq…>
FEAT_RME, CCA Realms ([QEMU-466])
=================================
- more review of [PATCH v5 00/36] tcg: Support for Int128 with helpers
Message-Id: <20230126043824.54819-1-richard.henderson(a)linaro.org>
[QEMU-466] <https://linaro.atlassian.net/browse/QEMU-466>
QEMU Upstream Work ([UM-2])
===========================
- updated maintainer trees, running [CI over weekend]
- posted [PULL 00/35] Testing, docs, semihosting and plugin updates
Message-Id: <20230126112250.2584701-1-alex.bennee(a)linaro.org>
[UM-2] <https://linaro.atlassian.net/browse/UM-2>
[CI over weekend]
<https://gitlab.com/stsquad/qemu/-/pipelines/753447926>
Current Review Queue
====================
TODO [RFC PATCH 00/16] arm: Run Arm CCA VMs with KVM
Message-Id: <20230127150727.612594-1-jean-philippe(a)linaro.org>
==================================================================================================================
TODO [QEMU][PATCH v4 00/10] Introduce xenpvh machine for arm architecture
Message-Id: <20230125085407.7144-1-vikram.garhwal(a)amd.com>
===================================================================================================================================
TODO [PATCH v3 0/3] tcg: add perfmap and jitdump
Message-Id: <20230111014705.2275040-1-iii(a)linux.ibm.com>
========================================================================================================
--
Alex Bennée
Virtualisation Tech Lead @ Linaro
Progress:
* UM-2 [QEMU upstream maintainership]
- usual upstream maintenance tasks
* QEMU-471 [QEMU ARM v9.0 Baseline CPU for TCG]
- FEAT_FGT: finished coding, did some testing, sent patches for review
-- PMM
After gdb-13-branchpoint-527-g46758593515 commit 4675859351582f017b495ff13fb2ea72a99834af
Author: Tom Tromey <tom(a)tromey.com>
Rename to allow_ifunc_tests
the following benchmarks slowed down by more than 3%:
- 465.tonto failed to build
Below reproducer instructions can be used to re-build both "first_bad" and "last_good" cross-toolchains used in this bisection. Naturally, the scripts will fail when triggerring benchmarking jobs if you don\'t have access to Linaro TCWG CI.
Configuration:
- Benchmark: SPEC CPU2006
- Toolchain: GCC + Glibc + GNU Linker
- Version: all components were built from their tip of trunk
- Target: aarch64-linux-gnu
- Compiler flags: -O3
- Hardware:
This benchmarking CI is work-in-progress, and we welcome feedback and suggestions at linaro-toolchain(a)lists.linaro.org . In our improvement plans is to add support for SPEC CPU2017 benchmarks and provide "perf report/annotate" data behind these reports.
THIS IS THE END OF INTERESTING STUFF. BELOW ARE LINKS TO BUILDS, REPRODUCTION INSTRUCTIONS, AND THE RAW COMMIT.
For latest status see comments in https://linaro.atlassian.net/browse/GNU-692 .
Status of gdb-13-branchpoint-527-g46758593515 commit for tcwg_bmk-code_speed-spec2k6:
commit 4675859351582f017b495ff13fb2ea72a99834af
Author: Tom Tromey <tom(a)tromey.com>
Date: Sun Jan 8 11:41:19 2023 -0700
Rename to allow_ifunc_tests
This changes skip_ifunc_tests to invert the sense, and renames it to
allow_ifunc_tests.
* gnu-aarch64-master-O3
** After gdb-13-branchpoint-527-g46758593515 commit 4675859351582f017b495ff13fb2ea72a99834af
** Author: Tom Tromey <tom(a)tromey.com>
**
** Rename to allow_ifunc_tests
**
** the following benchmarks slowed down by more than 3%:
** - 465.tonto failed to build
** https://ci.linaro.org/job/tcwg_bmk-code_speed-spec2k6-gnu-aarch64-master-O3…
Bad build: https://ci.linaro.org/job/tcwg_bmk-code_speed-spec2k6-gnu-aarch64-master-O3…
Good build: https://ci.linaro.org/job/tcwg_bmk-code_speed-spec2k6-gnu-aarch64-master-O3…
Reproduce current build:
<cut>
mkdir -p investigate-binutils-4675859351582f017b495ff13fb2ea72a99834af
cd investigate-binutils-4675859351582f017b495ff13fb2ea72a99834af
# Fetch scripts
git clone https://git.linaro.org/toolchain/jenkins-scripts
# Fetch manifests for bad and good builds
mkdir -p bad/artifacts good/artifacts
curl -o bad/artifacts/manifest.sh https://ci.linaro.org/job/tcwg_bmk-code_speed-spec2k6-gnu-aarch64-master-O3… --fail
curl -o good/artifacts/manifest.sh https://ci.linaro.org/job/tcwg_bmk-code_speed-spec2k6-gnu-aarch64-master-O3… --fail
# Reproduce bad build
(cd bad; ../jenkins-scripts/tcwg_bmk-build.sh ^^ true %%rr[top_artifacts] artifacts)
# Reproduce good build
(cd good; ../jenkins-scripts/tcwg_bmk-build.sh ^^ true %%rr[top_artifacts] artifacts)
</cut>
Full commit (up to 1000 lines):
<cut>
commit 4675859351582f017b495ff13fb2ea72a99834af
Author: Tom Tromey <tom(a)tromey.com>
Date: Sun Jan 8 11:41:19 2023 -0700
Rename to allow_ifunc_tests
This changes skip_ifunc_tests to invert the sense, and renames it to
allow_ifunc_tests.
---
gdb/testsuite/gdb.base/gnu-ifunc.exp | 2 +-
gdb/testsuite/gdb.compile/compile-ifunc.exp | 2 +-
gdb/testsuite/lib/gdb.exp | 8 ++++----
3 files changed, 6 insertions(+), 6 deletions(-)
diff --git a/gdb/testsuite/gdb.base/gnu-ifunc.exp b/gdb/testsuite/gdb.base/gnu-ifunc.exp
index 967d1e053e7..81119f764b8 100644
--- a/gdb/testsuite/gdb.base/gnu-ifunc.exp
+++ b/gdb/testsuite/gdb.base/gnu-ifunc.exp
@@ -13,7 +13,7 @@
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
-require !skip_shlib_tests !skip_ifunc_tests
+require !skip_shlib_tests allow_ifunc_tests
standard_testfile .c
set staticexecutable ${testfile}-static
diff --git a/gdb/testsuite/gdb.compile/compile-ifunc.exp b/gdb/testsuite/gdb.compile/compile-ifunc.exp
index bfbe65a503b..990d35a53f6 100644
--- a/gdb/testsuite/gdb.compile/compile-ifunc.exp
+++ b/gdb/testsuite/gdb.compile/compile-ifunc.exp
@@ -15,7 +15,7 @@
load_lib compile-support.exp
-require !skip_ifunc_tests
+require allow_ifunc_tests
standard_testfile
diff --git a/gdb/testsuite/lib/gdb.exp b/gdb/testsuite/lib/gdb.exp
index 7143908bbc2..3a1936ffc82 100644
--- a/gdb/testsuite/lib/gdb.exp
+++ b/gdb/testsuite/lib/gdb.exp
@@ -3972,17 +3972,17 @@ gdb_caching_proc has_int128_cxx {
return [gdb_int128_helper c++]
}
-# Return true if the IFUNC feature is unsupported.
-gdb_caching_proc skip_ifunc_tests {
+# Return true if the IFUNC feature is supported.
+gdb_caching_proc allow_ifunc_tests {
if [gdb_can_simple_compile ifunc {
extern void f_ ();
typedef void F (void);
F* g (void) { return &f_; }
void f () __attribute__ ((ifunc ("g")));
} object] {
- return 0
- } else {
return 1
+ } else {
+ return 0
}
}
</cut>
Hello,
# [GNU-767] Support changing SVE vector length in remote debugging
- Continued preparing patches for upstream submission. Realised I had to
document my changes to the remote protocol in the GDB manual, so did
that. Also making small code cleanups and updating/rewriting patch
descriptions.
- Noticed I could to a small optimisation in one patch, but it would
involve a lot of refactoring to move GDB-specific code so that it could
also be used by gdbserver, so saved the WIP branch for later.
# TCWG CI
- Investigated failure report from yesterday's email. Reproduced on
tcwg-jade-03 with a slightly different build failure, but wasn't able to
make much progress¹.
--
Thiago
¹ https://lists.linaro.org/archives/list/linaro-toolchain@lists.linaro.org/th…
Progress:
* UM-2 [QEMU upstream maintainership]
- usual upstream maintenance tasks
* QEMU-471 [QEMU ARM v9.0 Baseline CPU for TCG]
- FEAT_FGT getting closer towards being done: I just have
to mark up the ARMCPRegInfo structs for HDFGRTR traps, and
write the code to handle traps on ERET and SVC
-- PMM
After gdb-13-branchpoint-388-g71fa8692930 commit 71fa8692930cd5fc3f332415cf642d3aa5f55fc6
Author: Mike Frysinger <vapier(a)gentoo.org>
sim: cris: move arch-specific file compilation to top-level
the following benchmarks slowed down by more than 3%:
- 481.wrf failed to build
- 416.gamess failed to build
Below reproducer instructions can be used to re-build both "first_bad" and "last_good" cross-toolchains used in this bisection. Naturally, the scripts will fail when triggerring benchmarking jobs if you don\'t have access to Linaro TCWG CI.
Configuration:
- Benchmark: SPEC CPU2006
- Toolchain: GCC + Glibc + GNU Linker
- Version: all components were built from their tip of trunk
- Target: arm-linux-gnueabihf
- Compiler flags: -O3 -flto -marm
- Hardware:
This benchmarking CI is work-in-progress, and we welcome feedback and suggestions at linaro-toolchain(a)lists.linaro.org . In our improvement plans is to add support for SPEC CPU2017 benchmarks and provide "perf report/annotate" data behind these reports.
THIS IS THE END OF INTERESTING STUFF. BELOW ARE LINKS TO BUILDS, REPRODUCTION INSTRUCTIONS, AND THE RAW COMMIT.
For latest status see comments in https://linaro.atlassian.net/browse/GNU-692 .
Status of gdb-13-branchpoint-388-g71fa8692930 commit for tcwg_bmk-code_speed-spec2k6:
commit 71fa8692930cd5fc3f332415cf642d3aa5f55fc6
Author: Mike Frysinger <vapier(a)gentoo.org>
Date: Sun Jan 1 13:40:11 2023 -0500
sim: cris: move arch-specific file compilation to top-level
* gnu-arm-master-O3_LTO
** After gdb-13-branchpoint-388-g71fa8692930 commit 71fa8692930cd5fc3f332415cf642d3aa5f55fc6
** Author: Mike Frysinger <vapier(a)gentoo.org>
**
** sim: cris: move arch-specific file compilation to top-level
**
** the following benchmarks slowed down by more than 3%:
** - 481.wrf failed to build
** - 416.gamess failed to build
** https://ci.linaro.org/job/tcwg_bmk-code_speed-spec2k6-gnu-arm-master-O3_LTO…
Bad build: https://ci.linaro.org/job/tcwg_bmk-code_speed-spec2k6-gnu-arm-master-O3_LTO…
Good build: https://ci.linaro.org/job/tcwg_bmk-code_speed-spec2k6-gnu-arm-master-O3_LTO…
Reproduce current build:
<cut>
mkdir -p investigate-binutils-71fa8692930cd5fc3f332415cf642d3aa5f55fc6
cd investigate-binutils-71fa8692930cd5fc3f332415cf642d3aa5f55fc6
# Fetch scripts
git clone https://git.linaro.org/toolchain/jenkins-scripts
# Fetch manifests for bad and good builds
mkdir -p bad/artifacts good/artifacts
curl -o bad/artifacts/manifest.sh https://ci.linaro.org/job/tcwg_bmk-code_speed-spec2k6-gnu-arm-master-O3_LTO… --fail
curl -o good/artifacts/manifest.sh https://ci.linaro.org/job/tcwg_bmk-code_speed-spec2k6-gnu-arm-master-O3_LTO… --fail
# Reproduce bad build
(cd bad; ../jenkins-scripts/tcwg_bmk-build.sh ^^ true %%rr[top_artifacts] artifacts)
# Reproduce good build
(cd good; ../jenkins-scripts/tcwg_bmk-build.sh ^^ true %%rr[top_artifacts] artifacts)
</cut>
Full commit (up to 1000 lines):
<cut>
commit 71fa8692930cd5fc3f332415cf642d3aa5f55fc6
Author: Mike Frysinger <vapier(a)gentoo.org>
Date: Sun Jan 1 13:40:11 2023 -0500
sim: cris: move arch-specific file compilation to top-level
---
sim/Makefile.in | 3 ---
sim/cris/local.mk | 3 ---
2 files changed, 6 deletions(-)
diff --git a/sim/Makefile.in b/sim/Makefile.in
index 435c36b2b83..0ad692126e7 100644
--- a/sim/Makefile.in
+++ b/sim/Makefile.in
@@ -4801,9 +4801,6 @@ testsuite/common/bits64m63.c: testsuite/common/bits-gen$(EXEEXT) testsuite/commo
@SIM_ENABLE_ARCH_cr16_TRUE@ $(AM_V_GEN)$< >$@
@SIM_ENABLE_ARCH_cris_TRUE@$(cris_libsim_a_OBJECTS) $(cris_libsim_a_LIBADD): cris/hw-config.h
-@SIM_ENABLE_ARCH_cris_TRUE@cris/%.o: cris/%.c
-@SIM_ENABLE_ARCH_cris_TRUE@ $(AM_V_at)$(MAKE) $(AM_MAKEFLAGS) -C $(@D) $(@F)
-
@SIM_ENABLE_ARCH_cris_TRUE@cris/%.o: common/%.c
@SIM_ENABLE_ARCH_cris_TRUE@ $(AM_V_at)$(MAKE) $(AM_MAKEFLAGS) -C $(@D) $(@F)
@SIM_ENABLE_ARCH_cris_TRUE@cris/modules.c: | $(cris_BUILD_OUTPUTS)
diff --git a/sim/cris/local.mk b/sim/cris/local.mk
index 912ca12a32f..3950baed7a1 100644
--- a/sim/cris/local.mk
+++ b/sim/cris/local.mk
@@ -47,9 +47,6 @@ $(%C%_libsim_a_OBJECTS) $(%C%_libsim_a_LIBADD): %D%/hw-config.h
noinst_LIBRARIES += %D%/libsim.a
-%D%/%.o: %D%/%.c
- $(AM_V_at)$(MAKE) $(AM_MAKEFLAGS) -C $(@D) $(@F)
-
%D%/%.o: common/%.c
$(AM_V_at)$(MAKE) $(AM_MAKEFLAGS) -C $(@D) $(@F)
</cut>
After glibc-2.36.9000-435-g569cfcc6bf commit 569cfcc6bf35c28112ca8d7112e9eb4a22bed5b8
Author: Samuel Thibault <samuel.thibault(a)ens-lyon.org>
hurd: Fix _NOFLSH value
the following benchmarks slowed down by more than 3%:
- 459.GemsFDTD failed to build
- 436.cactusADM failed to build
Below reproducer instructions can be used to re-build both "first_bad" and "last_good" cross-toolchains used in this bisection. Naturally, the scripts will fail when triggerring benchmarking jobs if you don\'t have access to Linaro TCWG CI.
For your convenience, we have uploaded tarballs with pre-processed source and assembly files at:
- First_bad save-temps: $FIRST_BAD_ARTIFACTS/save-temps/
- Last_good save-temps: $LAST_GOOD_ARTIFACTS/save-temps/
- Baseline save-temps: $BASELINE_ARTIFACTS/save-temps/
Configuration:
- Benchmark: SPEC CPU2006
- Toolchain: GCC + Glibc + GNU Linker
- Version: all components were built from their tip of trunk
- Target: aarch64-linux-gnu
- Compiler flags: -O3 -flto
- Hardware:
This benchmarking CI is work-in-progress, and we welcome feedback and suggestions at linaro-toolchain(a)lists.linaro.org . In our improvement plans is to add support for SPEC CPU2017 benchmarks and provide "perf report/annotate" data behind these reports.
THIS IS THE END OF INTERESTING STUFF. BELOW ARE LINKS TO BUILDS, REPRODUCTION INSTRUCTIONS, AND THE RAW COMMIT.
For latest status see comments in https://linaro.atlassian.net/browse/GNU-692 .
Status of glibc-2.36.9000-435-g569cfcc6bf commit for tcwg_bmk-code_speed-spec2k6:
commit 569cfcc6bf35c28112ca8d7112e9eb4a22bed5b8
Author: Samuel Thibault <samuel.thibault(a)ens-lyon.org>
Date: Sun Jan 15 20:54:42 2023 +0100
hurd: Fix _NOFLSH value
shifting 1 (thus an integer) left 31 bit is undefined behavior. We have to
make it an unsigned integer to properly get 0x80000000 (like done in other
places).
* gnu-aarch64-master-O3_LTO
** After glibc-2.36.9000-435-g569cfcc6bf commit 569cfcc6bf35c28112ca8d7112e9eb4a22bed5b8
** Author: Samuel Thibault <samuel.thibault(a)ens-lyon.org>
**
** hurd: Fix _NOFLSH value
**
** the following benchmarks slowed down by more than 3%:
** - 459.GemsFDTD failed to build
** - 436.cactusADM failed to build
** https://ci.linaro.org/job/tcwg_bmk-code_speed-spec2k6-gnu-aarch64-master-O3…
Bad build: https://ci.linaro.org/job/tcwg_bmk-code_speed-spec2k6-gnu-aarch64-master-O3…
Good build: https://ci.linaro.org/job/tcwg_bmk-code_speed-spec2k6-gnu-aarch64-master-O3…
Reproduce current build:
<cut>
mkdir -p investigate-glibc-569cfcc6bf35c28112ca8d7112e9eb4a22bed5b8
cd investigate-glibc-569cfcc6bf35c28112ca8d7112e9eb4a22bed5b8
# Fetch scripts
git clone https://git.linaro.org/toolchain/jenkins-scripts
# Fetch manifests for bad and good builds
mkdir -p bad/artifacts good/artifacts
curl -o bad/artifacts/manifest.sh https://ci.linaro.org/job/tcwg_bmk-code_speed-spec2k6-gnu-aarch64-master-O3… --fail
curl -o good/artifacts/manifest.sh https://ci.linaro.org/job/tcwg_bmk-code_speed-spec2k6-gnu-aarch64-master-O3… --fail
# Reproduce bad build
(cd bad; ../jenkins-scripts/tcwg_bmk-build.sh ^^ true %%rr[top_artifacts] artifacts)
# Reproduce good build
(cd good; ../jenkins-scripts/tcwg_bmk-build.sh ^^ true %%rr[top_artifacts] artifacts)
</cut>
Full commit (up to 1000 lines):
<cut>
commit 569cfcc6bf35c28112ca8d7112e9eb4a22bed5b8
Author: Samuel Thibault <samuel.thibault(a)ens-lyon.org>
Date: Sun Jan 15 20:54:42 2023 +0100
hurd: Fix _NOFLSH value
shifting 1 (thus an integer) left 31 bit is undefined behavior. We have to
make it an unsigned integer to properly get 0x80000000 (like done in other
places).
---
bits/termios.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/bits/termios.h b/bits/termios.h
index ae62d00853..4439c2f14e 100644
--- a/bits/termios.h
+++ b/bits/termios.h
@@ -246,7 +246,7 @@ struct termios
# define NOKERNINFO (1 << 25) /* Disable VSTATUS. */
# define PENDIN (1 << 29) /* Retype pending input (state). */
#endif
-#define _NOFLSH (1 << 31) /* Disable flush after interrupt. */
+#define _NOFLSH (1U << 31) /* Disable flush after interrupt. */
#define NOFLSH _NOFLSH
/* Control characters. */
</cut>
Hello,
# [GNU-767] Support changing SVE vector length in remote debugging
- Fixed a regression found when preparing the new patches. Rebased on the
current mainline branch and continued preparing patches for upstream
submission.
# Misc
- Found a minor problem with a script in upstream GDB. Submitted and
committed a quick patch¹ to fix it.
--
Thiago
¹ https://inbox.sourceware.org/gdb-patches/20230111174501.3699871-1-thiago.ba…
Progress:
* UM-2 [QEMU upstream maintainership]
- another round of patch review and a pull request
* QEMU-471 [QEMU ARM v9.0 Baseline CPU for TCG]
- Made some useful progress with the FEAT_FGT implementation
-- PMM
* A couple of attempts at minimizing arm per-cpu init work.
I've posted a short/medium-term solution for the lookup issue,
so that we can re-apply Alex's CPUState unrealize patch.
* TCG patch queue flushed, including call abi reorg.
- Rebase TCGv_i128 patch set
- Rebase goto_tb race condition patch set
r~
Project Stratos
===============
vhost-device maintainer effort ([UM-196])
- a few version bump reviews
Plugin register access ([QEMU-495])
===================================
- posted [PATCH v2 00/21] gdbstub: re-organise to for better
compilation behaviour Message-Id:
<20230105164320.2164095-1-alex.bennee(a)linaro.org>
[QEMU-495] <https://linaro.atlassian.net/browse/QEMU-495>
QEMU Upstream Work ([UM-2])
===========================
- posted [RFC PATCH] docs: add some details about compilation units to
coding style Message-Id:
<20230103104758.767266-1-alex.bennee(a)linaro.org>
- posted [RFC PATCH] target/arm: fix handling of HLT semihosting in
system mode Message-Id:
<20230105114304.2017493-1-alex.bennee(a)linaro.org>
- posted [RFC PATCH] testing: probe gdb for supported architectures
ahead of time Message-Id:
<20230105181533.2235792-1-alex.bennee(a)linaro.org>
- posted [PATCH v2] scripts/ci: update gitlab-runner playbook to use
latest runner Message-Id:
<20230106152338.2599827-1-alex.bennee(a)linaro.org>
[UM-2] <https://linaro.atlassian.net/browse/UM-2>
Completed Reviews [5/5]
=======================
[PATCH] semihosting: Write back semihosting data before completion callback
Message-Id: <20221012014822.1242170-1-keithp(a)keithp.com>
[PATCH] semihosting: Write back semihosting data before completion callback
Message-Id: <20221012014822.1242170-1-keithp(a)keithp.com>
[PATCH v2] semihosting: add O_BINARY flag in host_open for NT compatibility
Message-Id: <20230106102018.20520-1-eiakovlev(a)linux.microsoft.com>
[PATCH] linux-user: fix bug about incorrect base addresss of idt and gdt on i386 and x86_64
Message-Id: <75da8346.1fd34.1856e0d08ef.Coremail.fanwj(a)mail.ustc.edu.cn>
[PATCH v2 0/1] tcg: add perfmap and jitdump
Message-Id: <20221114161321.3364875-1-iii(a)linux.ibm.com>
Other
=====
- bit of travel forecasting
Current Review Queue
====================
TODO [RFC PATCH 00/40] Toward class init of cpu features
Message-Id: <20230103181646.55711-1-richard.henderson(a)linaro.org>
=========================================================================================================================
TODO [RFC PATCH v6] virtio-video: Add virtio video device specification
Message-Id: <20221208072325.2259940-1-acourbot(a)chromium.org>
===================================================================================================================================
TODO [RFC PATCH kvmtool v1 00/32] Add support for restricted guest memory in kvmtool
Message-Id: <20221202174417.1310826-1-tabba(a)google.com>
===========================================================================================================================================
--
Alex Bennée
Virtualisation Tech Lead @ Linaro
Progress (short week, 2 days):
* UM-2 [QEMU upstream maintainership]
- Pretty much entirely trying to catch up with the code review
backlog that had built up over the holidays. Got it down from
35 items to 7...
Absences:
* NB: I work a 4 day week, excluding Wednesdays
* Apr 26 -- 28 : Linaro Connect (London)
In office (provisional; let me know if you have preferences!):
* week of the 9 Jan
-- PMM
Hello,
# [GNU-767] Support changing SVE vector length in remote debugging
- Identified a regression on systems that do not support SVE. Debugged it
and now working on a fix.
--
Thiago
Hello,
# [GNU-767] Support changing SVE vector length in remote debugging
- Finished implementing the new approach of sending new XML target
descriptions through the wire.
- Fixed a couple of minor regressions I introduced and rebased the code
on the current main branch.
- Now preparing the patches for submitting upstream.
# Community participation
- Reviewed mailing list patch “[PATCH] [AArch64] Enable pointer
authentication support for aarch64 bare metal/kernel mode addresses”.
--
Thiago
Project Stratos
===============
- started reviewing [PATCH v9 0/8] KVM: mm: fd-based approach for
supporting KVM Message-Id:
<20221025151344.3784230-1-chao.p.peng(a)linux.intel.com>
- trying to assess if user-space facing solution for memory sharing
- writing up a [proposal for an API]
[proposal for an API]
<https://docs.google.com/document/d/18ijlX2Lguejyo3BV8Tri5Y_d1SmozocBIk2ajgq…>
vhost-device maintainer effort ([UM-196])
- debugged regression in virtio-vsock and QEMU
- should have some error message patches to post
- QEMU 7.2 shipped with stubs for virtio-gpio and virtio-i2c
[UM-196] <https://linaro.atlassian.net/browse/UM-196>
Single Binary ([QEMU-487])
==========================
- posted [PATCH for 8.0 v5 00/20] use MemTxAttrs to avoid current_cpu
in hw/ Message-Id: <20221111182535.64844-1-alex.bennee(a)linaro.org>
[QEMU-487] <https://linaro.atlassian.net/browse/QEMU-487>
Plugin register access ([QEMU-495])
===================================
- While experimenting with [the register API] ran into issues
integrating to gdbstub
- started a [re-factor] to make the process less painful
- posted [PATCH v1 00/10] split user and system code in gdbstub
Message-Id: <20221216112206.3171578-1-alex.bennee(a)linaro.org>
[QEMU-495] <https://linaro.atlassian.net/browse/QEMU-495>
[the register API]
<https://github.com/stsquad/qemu/tree/introspection/registers>
[re-factor] <https://github.com/stsquad/qemu/tree/gdbstub/next>
QEMU Upstream Work ([UM-2])
===========================
- posted [PULL 0/6] testing updates Message-Id:
<20221221144019.2149905-1-alex.bennee(a)linaro.org>
- posted [PATCH 00/11] gitdm metadata updates Message-Id:
<20221219121914.851488-1-alex.bennee(a)linaro.org>
[UM-2] <https://linaro.atlassian.net/browse/UM-2>
Completed Reviews [5/5]
=======================
[QEMU][PATCH v2 00/11] Introduce xenpv machine for arm architecture
Message-Id: <20221202030003.11441-1-vikram.garhwal(a)amd.com>
[PATCH] configure: Fix check-tcg not executing any tests
Message-Id: <20221207082309.9966-1-quic_mthiyaga(a)quicinc.com>
[PATCH v4 00/27] tcg misc patches
Message-Id: <20221213212541.1820840-1-richard.henderson(a)linaro.org>
[PATCH v3 0/8] accel/tcg: Rewrite user-only vma tracking
Message-Id: <20221209051914.398215-1-richard.henderson(a)linaro.org>
[PATCH-for-8.0 0/5] accel/tcg: Restrict page_collection structure to system TB maintainance
Message-Id: <20221209093649.43738-1-philmd(a)linaro.org>
Absences
========
Christmas holidays - merry Christmas!
Current Review Queue
====================
TODO [RFC PATCH v6] virtio-video: Add virtio video device specification
Message-Id: <20221208072325.2259940-1-acourbot(a)chromium.org>
===================================================================================================================================
TODO [RFC PATCH kvmtool v1 00/32] Add support for restricted guest memory in kvmtool
Message-Id: <20221202174417.1310826-1-tabba(a)google.com>
===========================================================================================================================================
TODO [PATCH v10 0/9] KVM: mm: fd-based approach for supporting KVM
Message-Id: <20221202061347.1070246-1-chao.p.peng(a)linux.intel.com>
====================================================================================================================================
--
Alex Bennée
Virtualisation Tech Lead @ Linaro
Progress:
* UM-2 [QEMU upstream maintainership]
- I'm now back on merging duty for the 8.0 release cycle, so some
time spent on pull request processing
- Sent pull requests with accumulated arm and reset-refactoring
patches from the freeze period
- Trying to cut down my code review backlog before the holidays
-- PMM
# [GNU-767] Support changing SVE vector length in remote debugging
- Patches to gdbserver to support changing the SVE vector length: About
halfway through implementing the new approach of sending new XML
target descriptions through the wire.
# Misc
- Experimented with using a GDB wrapper to run the testsuite. Came up
with a small patch that fixes the tests that fail when using the
wrapper.
--
Thiago
Failure after basepoints/gcc-13-4618-g17ae956c0fa: AArch64: Support new tbranch optab.:
Results changed to
-10
# build_abe binutils:
-9
# build_abe stage1:
-5
# build_abe qemu:
-2
# linux_n_obj:
7572
# First few build errors in logs:
# 00:10:43 drivers/gpu/drm/v3d/v3d_perfmon.c:57:1: internal compiler error: in decompose, at rtl.h:2288
# 00:10:44 make[5]: *** [scripts/Makefile.build:250: drivers/gpu/drm/v3d/v3d_perfmon.o] Error 1
# 00:10:53 make[4]: *** [scripts/Makefile.build:502: drivers/gpu/drm/v3d] Error 2
# 00:13:52 drivers/media/mc/mc-device.c:198:1: internal compiler error: in decompose, at rtl.h:2288
# 00:13:53 make[4]: *** [scripts/Makefile.build:250: drivers/media/mc/mc-device.o] Error 1
# 00:13:57 make[3]: *** [scripts/Makefile.build:502: drivers/media/mc] Error 2
# 00:15:27 make[2]: *** [scripts/Makefile.build:502: drivers/media] Error 2
# 00:17:50 make[3]: *** [scripts/Makefile.build:502: drivers/gpu/drm] Error 2
# 00:17:50 make[2]: *** [scripts/Makefile.build:502: drivers/gpu] Error 2
# 00:17:50 make[1]: *** [scripts/Makefile.build:502: drivers] Error 2
from
-10
# build_abe binutils:
-9
# build_abe stage1:
-5
# build_abe qemu:
-2
# linux_n_obj:
8625
# linux build successful:
all
# linux boot successful:
boot
THIS IS THE END OF INTERESTING STUFF. BELOW ARE LINKS TO BUILDS, REPRODUCTION INSTRUCTIONS, AND THE RAW COMMIT.
For latest status see comments in https://linaro.atlassian.net/browse/GNU-680 .
Status of basepoints/gcc-13-4618-g17ae956c0fa commit for tcwg_kernel:
commit 17ae956c0fa6baac3d22764019d5dd5ebf5c2b11
Author: Tamar Christina <tamar.christina(a)arm.com>
Date: Mon Dec 12 15:18:56 2022 +0000
AArch64: Support new tbranch optab.
This implements the new tbranch optab for AArch64.
we cannot emit one big RTL for the final instruction immediately.
The reason that all comparisons in the AArch64 backend expand to separate CC
compares, and separate testing of the operands is for ifcvt.
The separate CC compare is needed so ifcvt can produce csel, cset etc from the
compares. Unlike say combine, ifcvt can not do recog on a parallel with a
clobber. Should we emit the instruction directly then ifcvt will not be able
to say, make a csel, because we have no patterns which handle zero_extract and
compare. (unlike combine ifcvt cannot transform the extract into an AND).
While you could provide various patterns for this (and I did try) you end up
with broken patterns because you can't add the clobber to the CC register. If
you do, ifcvt recog fails.
i.e.
int
f1 (int x)
{
if (x & 1)
return 1;
return x;
}
We lose csel here.
Secondly the reason the compare with an explicit CC mode is needed is so that
ifcvt can transform the operation into a version that doesn't require the flags
to be set. But it only does so if it know the explicit usage of the CC reg.
For instance
int
foo (int a, int b)
{
return ((a & (1 << 25)) ? 5 : 4);
}
Doesn't require a comparison, the optimal form is:
foo(int, int):
ubfx x0, x0, 25, 1
add w0, w0, 4
ret
and no compare is actually needed. If you represent the instruction using an
ANDS instead of a zero_extract then you get close, but you end up with an ands
followed by an add, which is a slower operation.
gcc/ChangeLog:
* config/aarch64/aarch64.md (*tb<optab><mode>1): Rename to...
(*tb<optab><ALLI:mode><GPI:mode>1): ... this.
(tbranch_<code><mode>4): New.
* config/aarch64/iterators.md(ZEROM, zerom): New.
gcc/testsuite/ChangeLog:
* gcc.target/aarch64/tbz_1.c: New test.
* gnu-master-aarch64-mainline-defconfig
** Failure after basepoints/gcc-13-4618-g17ae956c0fa: AArch64: Support new tbranch optab.:
** https://ci.linaro.org/job/tcwg_kernel-gnu-build-gnu-master-aarch64-mainline…
Bad build: https://ci.linaro.org/job/tcwg_kernel-gnu-build-gnu-master-aarch64-mainline…
Good build: https://ci.linaro.org/job/tcwg_kernel-gnu-build-gnu-master-aarch64-mainline…
Reproduce current build:
<cut>
mkdir -p investigate-gcc-17ae956c0fa6baac3d22764019d5dd5ebf5c2b11
cd investigate-gcc-17ae956c0fa6baac3d22764019d5dd5ebf5c2b11
# Fetch scripts
git clone https://git.linaro.org/toolchain/jenkins-scripts
# Fetch manifests for bad and good builds
mkdir -p bad/artifacts good/artifacts
curl -o bad/artifacts/manifest.sh https://ci.linaro.org/job/tcwg_kernel-gnu-build-gnu-master-aarch64-mainline… --fail
curl -o good/artifacts/manifest.sh https://ci.linaro.org/job/tcwg_kernel-gnu-build-gnu-master-aarch64-mainline… --fail
# Reproduce bad build
(cd bad; ../jenkins-scripts/tcwg_kernel-build.sh ^^ true %%rr[top_artifacts] artifacts)
# Reproduce good build
(cd good; ../jenkins-scripts/tcwg_kernel-build.sh ^^ true %%rr[top_artifacts] artifacts)
</cut>
Full commit (up to 1000 lines):
<cut>
commit 17ae956c0fa6baac3d22764019d5dd5ebf5c2b11
Author: Tamar Christina <tamar.christina(a)arm.com>
Date: Mon Dec 12 15:18:56 2022 +0000
AArch64: Support new tbranch optab.
This implements the new tbranch optab for AArch64.
we cannot emit one big RTL for the final instruction immediately.
The reason that all comparisons in the AArch64 backend expand to separate CC
compares, and separate testing of the operands is for ifcvt.
The separate CC compare is needed so ifcvt can produce csel, cset etc from the
compares. Unlike say combine, ifcvt can not do recog on a parallel with a
clobber. Should we emit the instruction directly then ifcvt will not be able
to say, make a csel, because we have no patterns which handle zero_extract and
compare. (unlike combine ifcvt cannot transform the extract into an AND).
While you could provide various patterns for this (and I did try) you end up
with broken patterns because you can't add the clobber to the CC register. If
you do, ifcvt recog fails.
i.e.
int
f1 (int x)
{
if (x & 1)
return 1;
return x;
}
We lose csel here.
Secondly the reason the compare with an explicit CC mode is needed is so that
ifcvt can transform the operation into a version that doesn't require the flags
to be set. But it only does so if it know the explicit usage of the CC reg.
For instance
int
foo (int a, int b)
{
return ((a & (1 << 25)) ? 5 : 4);
}
Doesn't require a comparison, the optimal form is:
foo(int, int):
ubfx x0, x0, 25, 1
add w0, w0, 4
ret
and no compare is actually needed. If you represent the instruction using an
ANDS instead of a zero_extract then you get close, but you end up with an ands
followed by an add, which is a slower operation.
gcc/ChangeLog:
* config/aarch64/aarch64.md (*tb<optab><mode>1): Rename to...
(*tb<optab><ALLI:mode><GPI:mode>1): ... this.
(tbranch_<code><mode>4): New.
* config/aarch64/iterators.md(ZEROM, zerom): New.
gcc/testsuite/ChangeLog:
* gcc.target/aarch64/tbz_1.c: New test.
---
gcc/config/aarch64/aarch64.md | 33 ++++++++---
gcc/config/aarch64/iterators.md | 2 +
gcc/testsuite/gcc.target/aarch64/tbz_1.c | 95 ++++++++++++++++++++++++++++++++
3 files changed, 122 insertions(+), 8 deletions(-)
diff --git a/gcc/config/aarch64/aarch64.md b/gcc/config/aarch64/aarch64.md
index 896b6a8ac79..d749c98eef6 100644
--- a/gcc/config/aarch64/aarch64.md
+++ b/gcc/config/aarch64/aarch64.md
@@ -947,12 +947,29 @@
(const_int 1)))]
)
-(define_insn "*tb<optab><mode>1"
+(define_expand "tbranch_<code><mode>3"
[(set (pc) (if_then_else
- (EQL (zero_extract:DI (match_operand:GPI 0 "register_operand" "r")
- (const_int 1)
- (match_operand 1
- "aarch64_simd_shift_imm_<mode>" "n"))
+ (EQL (match_operand:ALLI 0 "register_operand")
+ (match_operand 1 "aarch64_simd_shift_imm_<mode>"))
+ (label_ref (match_operand 2 ""))
+ (pc)))]
+ ""
+{
+ rtx bitvalue = gen_reg_rtx (<ZEROM>mode);
+ rtx reg = gen_lowpart (<ZEROM>mode, operands[0]);
+ rtx val = GEN_INT (1UL << UINTVAL (operands[1]));
+ emit_insn (gen_and<zerom>3 (bitvalue, reg, val));
+ operands[1] = const0_rtx;
+ operands[0] = aarch64_gen_compare_reg (<CODE>, bitvalue,
+ operands[1]);
+})
+
+(define_insn "*tb<optab><ALLI:mode><GPI:mode>1"
+ [(set (pc) (if_then_else
+ (EQL (zero_extract:GPI (match_operand:ALLI 0 "register_operand" "r")
+ (const_int 1)
+ (match_operand 1
+ "aarch64_simd_shift_imm_<ALLI:mode>" "n"))
(const_int 0))
(label_ref (match_operand 2 "" ""))
(pc)))
@@ -963,15 +980,15 @@
{
if (get_attr_far_branch (insn) == 1)
return aarch64_gen_far_branch (operands, 2, "Ltb",
- "<inv_tb>\\t%<w>0, %1, ");
+ "<inv_tb>\\t%<ALLI:w>0, %1, ");
else
{
operands[1] = GEN_INT (HOST_WIDE_INT_1U << UINTVAL (operands[1]));
- return "tst\t%<w>0, %1\;<bcond>\t%l2";
+ return "tst\t%<ALLI:w>0, %1\;<bcond>\t%l2";
}
}
else
- return "<tbz>\t%<w>0, %1, %l2";
+ return "<tbz>\t%<ALLI:w>0, %1, %l2";
}
[(set_attr "type" "branch")
(set (attr "length")
diff --git a/gcc/config/aarch64/iterators.md b/gcc/config/aarch64/iterators.md
index d10cf93572e..a521dbde1ec 100644
--- a/gcc/config/aarch64/iterators.md
+++ b/gcc/config/aarch64/iterators.md
@@ -1107,6 +1107,8 @@
;; Give the number of bits in the mode
(define_mode_attr sizen [(QI "8") (HI "16") (SI "32") (DI "64")])
+(define_mode_attr ZEROM [(QI "SI") (HI "SI") (SI "SI") (DI "DI")])
+(define_mode_attr zerom [(QI "si") (HI "si") (SI "si") (DI "di")])
;; Give the ordinal of the MSB in the mode
(define_mode_attr sizem1 [(QI "#7") (HI "#15") (SI "#31") (DI "#63")
diff --git a/gcc/testsuite/gcc.target/aarch64/tbz_1.c b/gcc/testsuite/gcc.target/aarch64/tbz_1.c
new file mode 100644
index 00000000000..39deb58e278
--- /dev/null
+++ b/gcc/testsuite/gcc.target/aarch64/tbz_1.c
@@ -0,0 +1,95 @@
+/* { dg-do compile } */
+/* { dg-additional-options "-O2 -std=c99 -fno-unwind-tables -fno-asynchronous-unwind-tables" } */
+/* { dg-final { check-function-bodies "**" "" "" { target { le } } } } */
+
+#include <stdbool.h>
+
+void h(void);
+
+/*
+** g1:
+** tbnz w[0-9]+, #?0, .L([0-9]+)
+** ret
+** ...
+*/
+void g1(bool x)
+{
+ if (__builtin_expect (x, 0))
+ h ();
+}
+
+/*
+** g2:
+** tbz w[0-9]+, #?0, .L([0-9]+)
+** b h
+** ...
+*/
+void g2(bool x)
+{
+ if (__builtin_expect (x, 1))
+ h ();
+}
+
+/*
+** g3_ge:
+** tbnz w[0-9]+, #?31, .L[0-9]+
+** b h
+** ...
+*/
+void g3_ge(int x)
+{
+ if (__builtin_expect (x >= 0, 1))
+ h ();
+}
+
+/*
+** g3_gt:
+** cmp w[0-9]+, 0
+** ble .L[0-9]+
+** b h
+** ...
+*/
+void g3_gt(int x)
+{
+ if (__builtin_expect (x > 0, 1))
+ h ();
+}
+
+/*
+** g3_lt:
+** tbz w[0-9]+, #?31, .L[0-9]+
+** b h
+** ...
+*/
+void g3_lt(int x)
+{
+ if (__builtin_expect (x < 0, 1))
+ h ();
+}
+
+/*
+** g3_le:
+** cmp w[0-9]+, 0
+** bgt .L[0-9]+
+** b h
+** ...
+*/
+void g3_le(int x)
+{
+ if (__builtin_expect (x <= 0, 1))
+ h ();
+}
+
+/*
+** g5:
+** mov w[0-9]+, 65279
+** tst w[0-9]+, w[0-9]+
+** beq .L[0-9]+
+** b h
+** ...
+*/
+void g5(int x)
+{
+ if (__builtin_expect (x & 0xfeff, 1))
+ h ();
+}
</cut>
# [GNU-767] Support changing SVE vector length in remote debugging
- Patches to gdbserver to support changing the SVE vector length: There
was an upstream discussion about whether changing the implementation
from relying on expedited registers to relying on sending target
descriptions over the wire was a better approach. Simon Marchi
detailed his idea on how to do that and it does seem better.
- Started implementing Simon's approach of sending target descriptions
over the wire for each thread.
# Misc
- Sent and later committed a couple of patches¹ fixing whitespace issues
in a Python script that generates a GDB source file.
--
Thiago
¹ https://inbox.sourceware.org/gdb-patches/20221202192200.405379-1-thiago.bau…
Hello,
# [GNU-767] Support changing SVE vector length in remote debugging
- v2 of the gdbserver patches to support changing the SVE vector length
was quickly reviewed by both Luis and Simon Marchi. I applied their
review suggestions and I'm now working on fixing a bug with
multi-threaded programs that they spotted.
- Submitted a couple of small patches¹ fixing tab vs spaces issues in
the gdbarch.py script that generates some source code in GDB.
# Misc
- Fixed problem in the tcwg-dev/start.sh script where asking docker to
expose /dev/kvm to a dev container on a host which doesn't have KVM
support causes docker to error out (reported by David Spickett). Sent
Gerrit change request “42669: tcwg-dev: Add heuristic to check for KVM
support on the host” to fix it. David reviewed and merged it. Thanks!
--
Thiago
¹ https://inbox.sourceware.org/gdb-patches/20221202192200.405379-1-thiago.bau…
Hello,
# [GNU-767] Support changing SVE vector length in remote debugging
- Worked on v2 of the gdbserver patches improving SVE support. Found a
couple of simplifications that could be made to the code. Rebased on
current master branch and finished regression testing and patch
preparation. Wrote the cover letter.
- Finally posted the patch series upstream¹.
--
Thiago
¹ https://inbox.sourceware.org/gdb-patches/20221126020452.1686509-1-thiago.ba…
Progress:
* UM-2 [QEMU upstream maintainership]
- More conversions of devices to 3-phase reset in pursuit of the
interim goal of getting rid of device_class_set_parent_reset()
- Investigated a regression in a TF-A workload: this was due to
recent pagetable walk refactoring breaking debug accesses.
- code review, etc; mostly this has been of for-8.0 material, as
(other than the above mentioned ptw regression) there haven't
been many release-worthy issues this freeze cycle.
-- PMM
Hi David,
Our CI flagged your commit; it seems it miscompiles 403.gcc from SPEC CPU2006 at -O3 -flto for aarch64-linux-gnu. Would you please investigate?
Let me know if you need any assistance in reproducing this.
Thanks!
===
After working-3971-g5f7f484ee54e commit 5f7f484ee54ebbf702ee4c5fe9852502dc237121
Author: David Green <david.green(a)arm.com>
[AArch64] Add GPR rr instructions to isAssociativeAndCommutative
the following benchmarks slowed down by more than 3%:
- 403.gcc failed to run
Configuration:
- Benchmark: SPEC CPU2006
- Toolchain: Clang + Glibc + LLVM Linker
- Version: all components were built from their tip of trunk
- Target: aarch64-linux-gnu
- Compiler flags: -O3 -flto
- Hardware: NVidia TX1 4x Cortex-A57
--
Maxim Kuvyrkov
https://www.linaro.org
Hello,
# [GNU-767] Support changing SVE vector length in remote debugging
- Working on v2 of the gdbserver patches improving SVE support. Found
and fixed a memory leak in my code while preparing patches for
upstream submission. Continuing preparing the patches.
# [GNU-796] Stabilise GDB testsuite results in the CI
- Analysed failures of “fast_check_gdb” CI jobs over the weekend. They
were caused by unrelated build issues in GCC and libstdc++.
--
Thiago
Project Stratos
===============
- finished [blog post for virtio-camera]
- now live [on web site]
- did a review of [virtio-loopback]
- started reviewing [PATCH v9 0/8] KVM: mm: fd-based approach for
supporting KVM Message-Id:
<20221025151344.3784230-1-chao.p.peng(a)linux.intel.com>
- trying to assess if user-space facing solution for memory sharing
[blog post for virtio-camera]
<https://linaro.atlassian.net/jira/core/projects/LBO/board?selectedIssue=LBO…>
[on web site]
<https://www.linaro.org/blog/the-challenges-of-abstracting-virtio/>
[virtio-loopback] <https://git.virtualopensystems.com/virtio-loopback>
vhost-device maintainer effort ([UM-196])
- debugged regression in virtio-vsock and QEMU
- should have some error message patches to post
[UM-196] <https://linaro.atlassian.net/browse/UM-196>
Single Binary ([QEMU-487])
==========================
- posted [PATCH for 8.0 v5 00/20] use MemTxAttrs to avoid current_cpu
in hw/ Message-Id: <20221111182535.64844-1-alex.bennee(a)linaro.org>
[QEMU-487] <https://linaro.atlassian.net/browse/QEMU-487>
QEMU Upstream Work ([UM-2])
===========================
- posted [PATCH for 7.2-rc1 v2 00/12] testing, docs, plugins, arm
pre-PR Message-Id: <20221111145529.4020801-1-alex.bennee(a)linaro.org>
- posted [PULL for 7.2 00/10] testing and doc updates Message-Id:
<20221115133439.2348929-1-alex.bennee(a)linaro.org>
- did a bunch of follow-up testing to shake out other console bugs
- posted [PATCH for 7.2-rc1 v2 00/12] testing, docs, plugins, arm
pre-PR Message-Id:
<20221111145529.4020801-1-alex.bennee(a)linaro.org>
- posted [PATCH for 7.2? v1 0/2] Arm GICv2 patches Message-Id:
<20221115134048.2352715-1-alex.bennee(a)linaro.org>
[UM-2] <https://linaro.atlassian.net/browse/UM-2>
Other
=====
- hackbox2 upgrade follow-up
- health check content
Completed Reviews [1/1]
=======================
[PATCH] ci: replace x86_64 macos-11 with aarch64 macos-12
Message-Id: <20221116175023.80627-1-berrange(a)redhat.com>
Absences
========
Current Review Queue
====================
TODO [PATCH v6 00/21] Drivers for gunyah hypervisor
Message-Id: <20221026185846.3983888-1-quic_eberman(a)quicinc.com>
==================================================================================================================
TODO [PATCH v2 0/1] tcg: add perfmap and jitdump
Message-Id: <20221114161321.3364875-1-iii(a)linux.ibm.com>
========================================================================================================
TODO [PATCH for-8.0 v3 00/45] tcg: Support for Int128 with helpers
Message-Id: <20221111074101.2069454-1-richard.henderson(a)linaro.org>
=====================================================================================================================================
--
Alex Bennée
Progress:
* UM-2 [QEMU upstream maintainership]
-- the usual release cycle work. Looks relatively quiet this
time around.
-- taking the opportunity to try to catch up on some of the for-8.0
code review
* QEMU-471 [QEMU ARM v9.0 Baseline CPU for TCG]
-- started thinking about how to implement FEAT_FGT. Looking at
the code where this ought to go, I found a minor bug with how
we implement the existing HSTR_EL2 traps, and a case where we
trap AArch32 ATS12NSO* with the wrong syndrome.
-- PMM
Hello,
# [GNU-767] Support changing SVE vector length in remote debugging
- Working on v2 of the gdbserver patches improving SVE support. Tested new
code for regressions in different systems and configurations and found
none. Preparing new version of the patches for upstream submission. Will
likely post them early next week.
--
Thiago
Project Stratos
===============
- finished [blog post for virtio-camera]
- did a review of [virtio-loopback]
[blog post for virtio-camera]
<https://linaro.atlassian.net/jira/core/projects/LBO/board?selectedIssue=LBO…>
[virtio-loopback] <https://git.virtualopensystems.com/virtio-loopback>
vhost-device maintainer effort ([UM-196])
- review work
Single Binary ([QEMU-487])
==========================
- cleaning up current_cpu in [with mxtxattrs]
- stumbled into regressions in the way of testing
- posted [PATCH for 8.0 v5 00/20] use MemTxAttrs to avoid current_cpu
in hw/ Message-Id: <20221111182535.64844-1-alex.bennee(a)linaro.org>
[QEMU-487] <https://linaro.atlassian.net/browse/QEMU-487>
[with mxtxattrs]
<https://github.com/stsquad/qemu/tree/memtxattrs/cpuid-v5>
QEMU Upstream Work ([UM-2])
===========================
- posted [PATCH for 7.2-rc1 v2 00/12] testing, docs, plugins, arm
pre-PR Message-Id: <20221111145529.4020801-1-alex.bennee(a)linaro.org>
[UM-2] <https://linaro.atlassian.net/browse/UM-2>
Other
=====
- hackbox2 upgrade follow-up
- health check content
Completed Reviews [7/7]
=======================
[PATCH 00/24] accel/tcg: Rewrite user-only vma tracking
Message-Id: <20221006031113.1139454-1-richard.henderson(a)linaro.org>
[PATCH v1 00/12] Introduce xenpv machine for arm architecture
Message-Id: <20221015050750.4185-1-vikram.garhwal(a)amd.com>
[PATCH] Run docker probe only if docker or podman are available
Message-Id: <20221030083510.310584-1-sw(a)weilnetz.de>
[PULL 3/3] linux-test (tests/tcg/multiarch/linux-test.c) add check
Message-Id: <1626902375-7002-4-git-send-email-tsimpson(a)quicinc.com>
[PATCH v5 00/18] tests/qtest: Enable running qtest on Windows
Message-Id: <20221006151927.2079583-3-bmeng.cn(a)gmail.com>
[PATCH v1 00/12] Introduce xenpv machine for arm architecture
Message-Id: <20221015050750.4185-1-vikram.garhwal(a)amd.com>
[PATCH RFC 0/1] tcg: add perfmap and jitdump
Message-Id: <20221012051846.1432050-1-iii(a)linux.ibm.com>
Absences
========
Current Review Queue
====================
TODO [PATCH for-8.0 v3 00/45] tcg: Support for Int128 with helpers
Message-Id: <20221111074101.2069454-1-richard.henderson(a)linaro.org>
=====================================================================================================================================
TODO [PATCH v3 0/7] memory: prevent dma-reentracy issues
Message-Id: <20221028191648.964076-1-alxndr(a)bu.edu>
===========================================================================================================
TODO [QEMU][PATCH v2 0/5] Introduce Xilinx Versal CANFD
Message-Id: <20221022054746.28217-1-vikram.garhwal(a)amd.com>
==================================================================================================================
--
Alex Bennée
Progress:
* UM-2 [QEMU upstream maintainership]
-- identified another piece of the reset mechanics that can be
tractably cleaned up: I think we should be able to get
everything (effectively) moved over to the 3-phase reset system
-- sent out various for-8.0 patchsets that convert devices that
were using device_class_set_parent_reset(), since getting rid
of that function is step 1 of that cleanup
-- code review etc
-- PMM
Hello,
# [GNU-767] Support changing SVE vector length in remote debugging
- Confirmed that gdbserver doesn't send a new XML target description
over the wire when the vector length changes, so there's no impact of
these patches on the amount of remote protocol traffic, which was a
concern for GDB maintainers.
- Started doing some up code cleanup and regression tests to prepare for
submitting v2 of the patches.
# [GNU-796] Stabilise GDB testsuite results in the CI
- Committed Gerrit change request adding the new CI job¹ to run fast
subset of GDB tests, which also has stable results. The list of tests
comes from Sourceware's builder project.
--
Thiago
¹ https://ci.linaro.org/view/tcwg_gnu_native/job/tcwg_gnu_native_fast_check_g…
Progress:
* UM-2 [QEMU upstream maintainership]
-- investigated and thought a bit more about a race condition involving
display devices. I know think I understand the problem but the
best idea I could come up with for a solution is pretty painful...
(Still hoping for feedback on whether I've missed something.)
-- collated and sent out a pull request with various bug fixes for rc0
-- sent some more reset-cleanup patches (these will be for 8.0)
-- PMM
Hi guys,
I will attempt to join today, but we've been finding that connectivity is dependent on the
number of rain drops and/or hail in between here and the mast. So I'm not overly hopeful
for later this evening.
Status report:
- Fixed a failure in my x86 TARGET_TB_PCREL patches, which caused
non-booting of some images (in today's tcg PR).
- Revised the TCGv_i128 patch set (not yet posted).
- Lots of work on accel/tcg/{cputlb,user-exec}.c, to honor
atomicity requirements of FEAT_LSE2.
Next up: Adding qemu_ld/st helpers and patterns for i128.
r~
Hello,
# [GNU-767] Support changing SVE vector length in remote debugging
- Finished implementing Luis' idea of having a process-wide target
description in addition to the thread-specific one. Started checking
changes for regressions.
--
Thiago
Progress:
* UM-2 [QEMU upstream maintainership]
- Usual code review and patch handling work
- Cross-checked our boot.c code against the kernel's booting.rst,
and sent patch fixing a few EL3 config bits we weren't setting
- Sent out the minutes from QEMU Summit
* QEMU-471 [QEMU ARM v9.0 Baseline CPU for TCG]
- Wrote and sent out patches to implement the extra traps
required for FEAT_EVT
-- PMM
Hello,
# [GNU-796] Stabilise GDB testsuite results in the CI
- Reworked and committed Gerrit change request for jenkins-scripts
adding a new CI job definition in tcwg_gnu-build.sh.
- Also reworked and committed another one to the same script adding a
default manifest file if one isn't specified on the command line.
# [GNU-767] Support changing SVE vector length in remote debugging
- Implemented Luis' suggestion of assuming that if ptrace can't read the
SVE state, then SVE is disabled (which is what gdbserver does before
my patches). It turns out that the only situation where this happens,
gdbserver doesn't actually care about the target description.
- Started exploring/implementing Luis' idea of having a process-wide
target description in addition to the thread-specific one. As Luis
suggests, it may simplify the code.
--
Thiago
Progress:
* UM-2 [QEMU upstream maintainership]
- Usual code review and patch handling work
- Spent a couple of days investigating a long-standing intermittent
test case failure booting a kernel on the raspberry pi. This turned
out to be caused by two linked bugs:
- the test framework unhelpfully disconnects immediately from the
guest serial console when the test ends, rather than staying
connected until the QEMU process exits to capture all the output
- QEMU's socket chardev loses data when the remote end closes the
connection if the guest UART hasn't read all of it
So the test was failing because the guest sometimes only saw
the 'h' of the final 'halt' command the test sent...
- Investigated and fixed a regression caused by some of last week's
reset patches. (Turns out the patch to fix it had been sent back
in 2021 but we accidentally dropped it on the floor. Oops.)
thanks
-- PMM
Hello,
# [GNU-767] Support changing SVE vector length in remote debugging
- Continued incorporating suggestions from Luis' review of the patches.
Working on a few regressions I introduced in the process.
# [GNU-796] Stabilise GDB testsuite results in the CI
- Started addressing Maxim's comments to my change requests for
jenkins-scripts.
--
Thiago
Progress:
* UM-2 [QEMU upstream maintainership]
- Started looking again at QEMU's rather messy set of reset related APIs.
Dug out the half-a-plan I wrote up a long time back and refreshed my
memory of what I was hoping we might be able to do.
- As an initial step, wrote some patches to get rid of uses of
several deprecated reset-related functions so that I only have to
think about one set of functions and not two...
-- PMM
Hello,
I haven't sent a report since week #36. For that reason, this report
covers three weeks.
# [GNU-796] Stabilise GDB testsuite results in the CI
- Implemented CI job to run fast GDB tests based on the list from
Sourceware's builder. Submitted Gerrit change requests for
jenkins-scripts and ci/job/configs.
- Posted Gerrit change request for jenkins-scripts with an improvement
to tcwg_gnu-build.sh to use a default path for the artifacts file if
one isn't given on the command line.
# [GNU-767] Support changing SVE vector length in remote debugging
- Started incorporating suggestions from Luis' review of the patches.
# Community participation
- Reviewed mailing list patch “[PATCH v3] gdb/arm: Handle lazy FPU
register stacking”
- Attended GNU Tools Cauldron 2022.
--
Thiago
Progress:
* UM-2 [QEMU upstream maintainership]
- sent out patch which adds a retry-on-EINTR loop to KVM_CREATE_VM ioctls
- wrote up the draft of the minutes for the QEMU Summit for review
- more code review and pullrequest collation (notably the Arm v8R support
patchset)
* QEMU-471 [QEMU ARM v9.0 Baseline CPU for TCG]
- read up on the remaining unimplemented features under this epic;
closed out one we'd already implemented, and wrote up enough detail
on the others to be happy with putting them all into the current
sprint (they're all small features)
- started looking at FEAT_GTG
thanks
-- PMM
Project Stratos
===============
- held poll for next meeting
- started planning for virtio-camera/sensor
QEMU Upstream Work ([UM-2])
===========================
- posted [PULL for 7.1 0/3] memory leak and testing tweaks Message-Id:
<CAFEAcA8oPjTq9quHxOCSczckwmmBSP0fY6dtCzwrNs59pMrNCw(a)mail.gmail.com>
- sadly one patch had to be reverted as it exposed another race
- posted [PATCH v1 00/10] plugins/next (disas, monitor, docs, execlog)
Message-Id: <20220921160801.1490125-6-alex.bennee(a)linaro.org>
- posted [PULL 00/30] testing updates (docker, avocado, deprecate
32bit BE MIPS) Message-Id:
<20220920171533.1098094-4-alex.bennee(a)linaro.org>
[UM-2] <https://linaro.atlassian.net/browse/UM-2>
Update docs
- mention -d plugin
- document features of tests/plugin plugins
- clean up command lines to drop builddir
KVM Forum
=========
- Attended KVM forum, gave a talk, helper with another
Completed Reviews [3/3]
=======================
[PATCH 00/62] target/arm: Implement FEAT_HAFDBS
Message-Id: <20220703082419.770989-1-richard.henderson(a)linaro.org>
[RFC PATCH v2] gdbstub: only send stop-reply packets when allowed to
Message-Id: <ba99db564c3aeb1812bdfbc9116849092334482f.1661362557.git.quic_mathbern(a)quicinc.com>
[RFC 0/4] Support interactions between TCG plugins
Message-Id: <20220901182734.2987337-1-fasano(a)mit.edu>
Absences
========
Current Review Queue
====================
TODO [PATCH v4 0/7] tcg: pc-relative translation blocks
Message-Id: <20220906091126.298041-1-richard.henderson(a)linaro.org>
=========================================================================================================================
TODO [PATCH 00/51] tests/qtest: Enable running qtest on Windows
Message-Id: <20220824094029.1634519-1-bmeng.cn(a)gmail.com>
========================================================================================================================
TODO [PATCH v2 00/33] accel/tcg + target/arm: pc-relative translation
Message-Id: <20220816203400.161187-1-richard.henderson(a)linaro.org>
=======================================================================================================================================
--
Alex Bennée