[ELF,SPARC] Handle more relocation types and fix simm13 field writes (#212157)
Add the absolute (R_SPARC_8/16/UA16, R_SPARC_13, R_SPARC_HIX22/LOX10),
PC-relative (R_SPARC_DISP8/16/64, R_SPARC_WDISP16/19/22) and GOT
(R_SPARC_GOT13) forms. The assembler emits these, but lld reports
"unknown relocation".
Since aff950e95d4a, R_SPARC_LO10, R_SPARC_HM10 and R_SPARC_L44 clear the
whole simm13 field while writing only its low 10, 10 and 12 bits,
dropping
bits that GNU ld preserves. Narrow each mask to the bits it writes.
Give R_SPARC_PC22 its own case, as a displacement needing a range check.
Express the R_SPARC_HI22 and R_SPARC_H44 checks in terms of the
unshifted
value to improve the diagnostic, and drop the R_SPARC_HH22 check, which
no 64-bit value can fail.
Co-authored-by: Kirill A. Korinsky <kirill at korins.ky>
[5 lines not shown]
sysutils/liburcu: backup upstream patch that changes library version
ca541c6b8c6ce1c166329fa1c19345d8f7794a5a adds a new API and bumps versions
We only need the other patches for now, this change can come in as part of
the next version update.
Reported by: Dan Mahoney
Sponsored by: Klara, Inc.
It has been observed in the wild that some individual instances of
ISP10[24]0 controllers don't seem to like getting a 64-bit DMA address
from our driver (at least, there seems to be some sort of incorrect
handling vis a vis the RQSTYPE_A64 message in isp_intr()).
Upon inspection, it was noted that in isp_pci_dmasetup(), the decision
to use RQSTYPE_T3RQS vs RQSTYPE_T2RQS was conditional on sizeof(bus_addr_t)
being larger than sizeof(uint32_t).
However, this isn't the correct predicate; instead, the choice should
be dependent on what the largest value that bus_addr_t will have. As
it happans, the PCI layer makes a distinction between 32-bit and 64-bit
DMA windows, and isp_pci's use of the regular "pa->pa_dmat" would ensure
that the DMA address always fits within 32-bits. Therefore, there was
never a reason to use RQSTYPE_T3RQS, regardless of the size of bus_addr_t.
As such, we tweak the code to depend explicitly on a new isp_use_dma64
flag, which is initialized by the bus front-end according to the DMA
window selection that's been made.
[4 lines not shown]
[mlir][arith] Fix folds crashing on dynamic-shaped tensors (#212072)
`Builder::getZeroAttr` asserts when asked to build a constant of a
ranked tensor with a dynamic shape (`DenseElementsAttr` requires a
static shape). Three self-identity folds/patterns reached it without a
guard and aborted on dynamic-shaped operands:
```mlir
arith.xori %x, %x : tensor<?xi32>
arith.subui_extended %x, %x : tensor<?xi32>, tensor<?xi1>
arith.subi (arith.subi %a, %b), %a : tensor<?xi32> (SubISubILHSRHSLHS)
```
Guard each with a static-shape check (as `arith.subi(x,x)` already does)
so they leave the op unfolded instead of crashing. The TableGen pattern
gets a new `IsScalarOrHasStaticShape` constraint.
Signed-off-by: Víctor Pérez Carrasco <victor.pc.upm at gmail.com>
[ELF,SPARC] Support ABS and RELATIVE dynamic relocations (#212155)
... and test some previously uncovered GOT relocation types.
Test convention follows ppc32-*, which I added in 2019.
The SPARC psABI only defines Elf64_Rela. Add EM_SPARCV9 to getIsRela so
that dynamic relocations use .rela.dyn/.rela.plt instead of the
unsupported SHT_REL form.
Co-authored-by: Kirill A. Korinsky <kirill at korins.ky>
Co-authored-by: Kirill A. Korinsky <kirill at korins.ky>
sysutils/goreman: New port: Foreman clone written in go language
Goreman is a Go-based clone of Foreman designed to manage and run
applications based on a Procfile. It reads process definitions,
spawns each command, aggregates standard output streams with prefixed
tags, and forwards signals (such as SIGINT, SIGTERM, and SIGHUP)
down to all managed child processes.
WWW: https://github.com/mattn/goreman
Update to py-steam 1.5.3, unbreaking the auth process that changed on
Steam in June. This led to steamctl stating "Invalid password" - now
resolved with this update.
Includes a fix for outdated protobuf API that is hit.
rust197: complete the transition to the "new fix" for the memchr crate.
Apply the vector.rs patch consistently also to the 2.7.4 memchr crate,
so that we do not get checksum conflicts for files in newer crates
which are un-changed from 2.7.4 with the older set of patches.
Should complete the fix of https://github.com/rust-lang/rust/issues/159919.