No edit summary |
|||
(7 intermediate revisions by the same user not shown) | |||
Line 34: | Line 34: | ||
<!-- Select proper category, default is Self Contained Change --> | <!-- Select proper category, default is Self Contained Change --> | ||
[[Category:SelfContainedChange]] | <!--[[Category:SelfContainedChange]] --> | ||
[[Category:SystemWideChange]] | |||
* Targeted release: [[Releases/36 | Fedora Linux 36 ]] | * Targeted release: [[Releases/36 | Fedora Linux 36 ]] | ||
Line 55: | Line 55: | ||
* brp-strip-lto | * brp-strip-lto | ||
* brp-llvm-compile-lto-elf | |||
* redhat-hardened-ld | * redhat-hardened-ld | ||
* redhat-hardened-cc1 | * redhat-hardened-cc1 | ||
Line 62: | Line 63: | ||
* redhat-hardened-clang.cfg | * redhat-hardened-clang.cfg | ||
* buildflags.md | * buildflags.md | ||
In addition the following macros from the macros file will be moved into a macros.c-cxx file in the new package: | In addition the following macros from the macros file will be moved into a macros.c-cxx file in the new package: | ||
Line 117: | Line 119: | ||
* %__global_compiler_flags | * %__global_compiler_flags | ||
* %__brp_strip_lto | * %__brp_strip_lto | ||
* %__brp_llvm_compile_lto_elf | |||
The full implementation of these changes can be found here: | |||
[https://src.fedoraproject.org/fork/tstellar/rpms/redhat-rpm-config/c/402d1145170b8e3ea3b2861c88e757b33b1e74c9?branch=c-cxx-macros-split redhat-rpm-config] | |||
[https://pagure.io/fork/tstellar/c-cxx-rpm-macros/c/884c98a2274282fbac195d521d82efae9814c309?branch=rawhide c-cxx-rpm-macros] | |||
== Feedback == | == Feedback == | ||
Line 122: | Line 130: | ||
== Benefit to Fedora == | == Benefit to Fedora == | ||
This change will not be visible to Fedora end-users, but it will provide some benefits to Fedora packagers: | |||
* Moving some of the brp scripts out of redhat-rpm-config and into c-cxx-rpm-macros means that they won't be run for packages that don't depend on clang or gcc. This will help speed up some builds. | |||
* This will help reduce the review burden of redhat-rpm-config maintainers who aren't interested in C/C++ changes. | |||
<!-- What is the benefit to the distribution? Will the software we generate be improved? How will the process of creating Fedora releases be improved? | <!-- What is the benefit to the distribution? Will the software we generate be improved? How will the process of creating Fedora releases be improved? | ||
Line 152: | Line 165: | ||
== Scope == | == Scope == | ||
* Proposal owners: | * Proposal owners: | ||
* Create new c-cxx-rpm-macros package and move the relevant content from redhat-rpm-config. | |||
* Test the changes. | |||
<!-- What work do the feature owners have to accomplish to complete the feature in time for release? Is it a large change affecting many parts of the distribution or is it a very isolated change? What are those changes?--> | <!-- What work do the feature owners have to accomplish to complete the feature in time for release? Is it a large change affecting many parts of the distribution or is it a very isolated change? What are those changes?--> | ||
* Other developers: <!-- REQUIRED FOR SYSTEM WIDE CHANGES --> | * Other developers: N/A <!-- REQUIRED FOR SYSTEM WIDE CHANGES --> | ||
<!-- What work do other developers have to accomplish to complete the feature in time for release? Is it a large change affecting many parts of the distribution or is it a very isolated change? What are those changes?--> | <!-- What work do other developers have to accomplish to complete the feature in time for release? Is it a large change affecting many parts of the distribution or is it a very isolated change? What are those changes?--> | ||
Line 192: | Line 207: | ||
<!-- REQUIRED FOR SYSTEM WIDE CHANGES --> | <!-- REQUIRED FOR SYSTEM WIDE CHANGES --> | ||
These changes will be tested by doing test builds of a sampling of Fedora packages. | |||
== User Experience == | == User Experience == | ||
Line 215: | Line 230: | ||
<!-- If you cannot complete your feature by the final development freeze, what is the backup plan? This might be as simple as "Revert the shipped configuration". Or it might not (e.g. rebuilding a number of dependent packages). If you feature is not completed in time we want to assure others that other parts of Fedora will not be in jeopardy. --> | <!-- If you cannot complete your feature by the final development freeze, what is the backup plan? This might be as simple as "Revert the shipped configuration". Or it might not (e.g. rebuilding a number of dependent packages). If you feature is not completed in time we want to assure others that other parts of Fedora will not be in jeopardy. --> | ||
* Contingency mechanism: (What to do? Who will do it?) | * Contingency mechanism: (What to do? Who will do it?) The proposal owners will revert the changes in redhat-rpm-config and removed the c-cxx-rpm-macros package <!-- REQUIRED FOR SYSTEM WIDE CHANGES --> | ||
<!-- When is the last time the contingency mechanism can be put in place? This will typically be the beta freeze. --> | <!-- When is the last time the contingency mechanism can be put in place? This will typically be the beta freeze. --> | ||
* Contingency deadline: | * Contingency deadline: Beta Freeze <!-- REQUIRED FOR SYSTEM WIDE CHANGES --> | ||
<!-- Does finishing this feature block the release, or can we ship with the feature in incomplete state? --> | <!-- Does finishing this feature block the release, or can we ship with the feature in incomplete state? --> | ||
* Blocks release? | * Blocks release? No <!-- REQUIRED FOR SYSTEM WIDE CHANGES --> | ||
== Documentation == | == Documentation == | ||
Line 226: | Line 240: | ||
<!-- REQUIRED FOR SYSTEM WIDE CHANGES --> | <!-- REQUIRED FOR SYSTEM WIDE CHANGES --> | ||
No documentation changes planned. | |||
== Release Notes == | == Release Notes == |
Latest revision as of 08:25, 1 December 2021
Change Proposal Name
C and C++ RPM Macros Package
Summary
Create a new package called c-cxx-rpm-macros and move all C and C++ related macros into it from redhat-rpm-config.
Owner
- Name: Tom Stellard
- Email: <tstellar@redhat.com>
Current status
- Targeted release: Fedora Linux 36
- Last updated: 2021-12-01
- FESCo issue: <will be assigned by the Wrangler>
- Tracker bug: <will be assigned by the Wrangler>
- Release notes tracker: <will be assigned by the Wrangler>
Detailed Description
A new package called c-cxx-rpm-macros will be created and added as a dependency of redhat-rpm-config. The following files and directories be moved into it from redhat-rpm-config:
- brp-strip-lto
- brp-llvm-compile-lto-elf
- redhat-hardened-ld
- redhat-hardened-cc1
- redhat-annobin-cc1
- rpmrc
- tests/
- redhat-hardened-clang.cfg
- buildflags.md
In addition the following macros from the macros file will be moved into a macros.c-cxx file in the new package:
- %__cc_gcc
- %__cxx_gcc
- %__cpp_gcc
- %__cc_clang
- %__cxx_clang
- %__cpp_clang
- %toolchain
- %__cc
- %__cxx
- %__cpp
- %build_cc
- %build_cxx
- %build_cpp
- %build_cflags
- %build_cxxflags
- %build_ldflags
- %__extension_strip_flags()
- %extension_cflags
- %extension_cxxflags
- %extension_fflags
- %extension_ldflags
- %__global_cflags
- %__global_cxxflags
- %__global_fflags
- %__global_fcflags
- %__global_ldflags
- %__cflags_arch_x86_64
- %__cflags_arch_s390x
- %_hardening_clang_cflags
- %_hardening_cflags
- %_hardening_ldflags
- %_hardened_build
- %_hardened_cflags
- %_hardened_ldflags
- %_annotated_build
- %_annobin_gcc_plugin
- %_annobin_clang_plugin
- %_annotation_plugin
- %_annotation_cflags
- %_annotation_ldflags
- %_ld_symbols_flags
- %_ld_as_needed
- %_ld_as_needed_flags
- %_gcc_lto_cflags
- %_clang_lto_cflags
- %_lto_cflags
- %_general_options
- %_warning_options
- %_preprocessor_defines
- %_legacy_options
- %__global_compiler_flags
- %__brp_strip_lto
- %__brp_llvm_compile_lto_elf
The full implementation of these changes can be found here:
redhat-rpm-config
c-cxx-rpm-macros
Feedback
Benefit to Fedora
This change will not be visible to Fedora end-users, but it will provide some benefits to Fedora packagers:
- Moving some of the brp scripts out of redhat-rpm-config and into c-cxx-rpm-macros means that they won't be run for packages that don't depend on clang or gcc. This will help speed up some builds.
- This will help reduce the review burden of redhat-rpm-config maintainers who aren't interested in C/C++ changes.
Scope
- Proposal owners:
* Create new c-cxx-rpm-macros package and move the relevant content from redhat-rpm-config. * Test the changes.
- Other developers: N/A
- Release engineering: #Releng issue number
- Policies and guidelines: N/A (not needed for this Change)
- Trademark approval: N/A (not needed for this Change)
- Alignment with Objectives:
Upgrade/compatibility impact
How To Test
These changes will be tested by doing test builds of a sampling of Fedora packages.
User Experience
Dependencies
Contingency Plan
- Contingency mechanism: (What to do? Who will do it?) The proposal owners will revert the changes in redhat-rpm-config and removed the c-cxx-rpm-macros package
- Contingency deadline: Beta Freeze
- Blocks release? No
Documentation
No documentation changes planned.