On 2/10/25 05:46, Philippe Mathieu-Daudé wrote:
On 10/2/25 14:31, Philippe Mathieu-Daudé wrote:
Since v1:
- Make XtensaConfigList::config not const (Max)
- Update / test rust (Paolo)
- Constify InterfaceInfo[]

Following Richard's suggestion [*], make QOM class data *const*.

[*] 
https://lore.kernel.org/qemu-devel/f4ec871d-e759-44bc-a10b-872322330...@linaro.org/

I'm only seeing +3KiB in .rodata for each binary...

Philippe Mathieu-Daudé (11):
   target/i386: Constify X86CPUModel uses
   target/sparc: Constify SPARCCPUClass::cpu_def
   target/xtensa: Finalize config in xtensa_register_core()
   target/riscv: Declare RISCVCPUClass::misa_mxl_max as RISCVMXL
   target/riscv: Convert misa_mxl_max using GLib macros
   hw: Declare various const data as 'const'
   hw: Make class data 'const'
   qom: Have class_base_init() take a const data argument
   qom: Have class_init() take a const data argument
   qom: Constify TypeInfo::class_data
   qom: Constify InterfaceInfo[] interfaces

There is some additional data that can be made const after this [1], though still not lots. But the additional data that Paolo was going to add for 99 riscv bottles of beer on the wall would have been quite a bit more than 3k.


r~


[1]

-static M48txxInfo m48txx_isa_info[] = {
+static const M48txxInfo m48txx_isa_info[] = {

-static M48txxInfo m48txx_sysbus_info[] = {
+static const M48txxInfo m48txx_sysbus_info[] = {

-static struct EHCIPCIInfo ehci_pci_info[] = {
+static const struct EHCIPCIInfo ehci_pci_info[] = {

-static UHCIInfo uhci_info[] = {
+static const UHCIInfo uhci_info[] = {

-static UHCIInfo uhci_info[] = {
+static const UHCIInfo uhci_info[] = {

-static StreamSinkClass xilinx_axidma_data_stream_class = {
+static const StreamSinkClass xilinx_axidma_data_stream_class = {

-static StreamSinkClass xilinx_axidma_control_stream_class = {
+static const StreamSinkClass xilinx_axidma_control_stream_class = {


Reply via email to