feat(azurelinux-rpm-config): set x86_64 cpu level to v2#18044
Conversation
|
Azure Pipelines: There may be pipelines that require an authorized user to comment /azp run to run. |
There was a problem hiding this comment.
Pull request overview
Sets x86_64-v2 as Azure Linux’s fixed minimum CPU baseline.
Changes:
- Overrides the upstream architecture-level macro.
- Refreshes generated spec metadata and component lock data.
Reviewed changes
Copilot reviewed 3 out of 4 changed files in this pull request and generated 1 comment.
| File | Description |
|---|---|
base/comps/azurelinux-rpm-config/azurelinux-rpm-config.comp.toml |
Adds the CPU-level overlay. |
specs/a/azurelinux-rpm-config/macros |
Applies the x86_64-v2 baseline. |
specs/a/azurelinux-rpm-config/azurelinux-rpm-config.spec |
Updates generated release metadata. |
locks/azurelinux-rpm-config.lock |
Refreshes the input fingerprint. |
| # Update vendor macro. | ||
| { type = "file-search-replace", file = "macros", regex = "%_vendor.*", replacement = "%_vendor azurelinux" }, | ||
|
|
||
| { type = "file-search-replace", file = "macros", regex = "%__cflags_arch_x86_64_level .*", replacement = "%__cflags_arch_x86_64_level -v2" }, |
🔒❌ Lock files are out of dateFIX: — run this and commit the result: azldev component update -p azurelinux-rpm-configOr download the fix patch and apply it: gh run download 29550962797 -R microsoft/azurelinux -n locks-patch
git apply locks.patchChanged components (1)
|
|
Note that this only sets the I'm not a compiler expert, but my assumption is that gcc is generating multiple optimized code paths, that use the I did check RHEL 10.1, since that definitely does build specifically for Maybe we need to also adjust/remove the |
|
That's definitely interesting. Was glibc also rebuilt with Looks like the ISA Needed ELF note in the final binary is an OR of the ISA Needed property ( |
Replace the logic that sets the x86_64 cpu level to either v2 or v3 depending on the RHEL release, to hardcoding it to v2, as we consider v2 to be our baseline for supported hardware, and we do not plan to support (or function on) older x86_64 v1 hardware. Fixes: AB#20423
|
Yep that was it, glibc rebuilds with ISA needed set to |
| # Update vendor macro. | ||
| { type = "file-search-replace", file = "macros", regex = "%_vendor.*", replacement = "%_vendor azurelinux" }, | ||
|
|
||
| { type = "file-search-replace", file = "macros", regex = "%__cflags_arch_x86_64_level .*", replacement = "%__cflags_arch_x86_64_level -v2" }, |
reubeno
left a comment
There was a problem hiding this comment.
Change looks righteous to me.
Do we also have an aarch64 CPU level change in the works (in parallel)? Don't quote me on it, but aarch64 SKUs in Azure seem to be armv8.2 (the Ampere ones) or armv9 (Cobalt 100+)?
I'll defer to @christopherco on that? I am not aware of any open bug for aarch64... |
We do not. There was some waffling on the exact ARM hardware to target, so baseline ARMv8 is what we had originally landed on. |
christopherco
left a comment
There was a problem hiding this comment.
Changes themselves LGTM. One optional style nit-pick.
Requesting changes to squash the commits together into one commit, which should also get the CI checks passing
| # Update vendor macro. | ||
| { type = "file-search-replace", file = "macros", regex = "%_vendor.*", replacement = "%_vendor azurelinux" }, | ||
|
|
||
| { type = "file-search-replace", file = "macros", regex = "%__cflags_arch_x86_64_level .*", replacement = "%__cflags_arch_x86_64_level -v2" }, |
There was a problem hiding this comment.
nit (style): Add a comment above this or include a description field in the overlay itself.
Replace the logic that sets the x86_64 cpu level to either v2 or v3
depending on the RHEL release, to hardcoding it to v2, as we consider
v2 to be our baseline for supported hardware, and we do not plan to
support (or function on) older x86_64 v1 hardware.
Fixes: AB#20423