All of lore.kernel.org
 help / color / mirror / Atom feed
From: bugzilla@dpdk.org
To: dev@dpdk.org
Subject: [DPDK/core Bug 2101] soring: stringop warnings on LTO build
Date: Tue, 10 Nov 2026 01:10:16 +0000	[thread overview]
Message-ID: <bug-2101-3@https.bugs.dpdk.org/> (raw)

https://bugs.dpdk.org/show_bug.cgi?id=2101

            Bug ID: 2101
           Summary: soring: stringop warnings on LTO build
           Product: DPDK
           Version: 26.11
          Hardware: All
                OS: All
            Status: UNCONFIRMED
          Severity: minor
          Priority: Normal
         Component: core
          Assignee: dev@dpdk.org
          Reporter: stephen@networkplumber.org
  Target Milestone: ---

Build with LTO fails:
FAILED: [code=1] app/dpdk-test 
cc  -o app/dpdk-test app/dpdk-test.p/test_commands.c.o
app/dpdk-test.p/test_test.c.o app/dpdk-test.p/test_process.c.o
app/dpdk-test.p/test_packet_burst_generator.c.o
app/dpdk-test.p/test_sample_packet_forward.c.o
app/dpdk-test.p/test_virtual_pmd.c.o app/dpdk-test.p/test_test_acl.c.o
app/dpdk-test.p/test_test_alarm.c.o app/dpdk-test.p/test_test_argparse.c.o
app/dpdk-test.p/test_test_atomic.c.o app/dpdk-test.p/test_test_barrier.c.o
app/dpdk-test.p/test_test_bitcount.c.o app/dpdk-test.p/test_test_bitmap.c.o
app/dpdk-test.p/test_test_bitops.c.o app/dpdk-test.p/test_test_bitset.c.o
app/dpdk-test.p/test_test_bitratestats.c.o app/dpdk-test.p/test_test_bpf.c.o
app/dpdk-test.p/test_test_bpf_validate.c.o
app/dpdk-test.p/test_test_byteorder.c.o app/dpdk-test.p/test_test_cfgfile.c.o
app/dpdk-test.p/test_test_cksum.c.o app/dpdk-test.p/test_test_cksum_perf.c.o
app/dpdk-test.p/test_test_cmdline.c.o
app/dpdk-test.p/test_test_cmdline_cirbuf.c.o
app/dpdk-test.p/test_test_cmdline_etheraddr.c.o
app/dpdk-test.p/test_test_cmdline_ipaddr.c.o
app/dpdk-test.p/test_test_cmdline_lib.c.o
app/dpdk-test.p/test_test_cmdline_num.c.o
app/dpdk-test.p/test_test_cmdline_portlist.c.o
app/dpdk-test.p/test_test_cmdline_string.c.o
app/dpdk-test.p/test_test_common.c.o app/dpdk-test.p/test_test_compressdev.c.o
app/dpdk-test.p/test_test_cpuflags.c.o app/dpdk-test.p/test_test_crc.c.o
app/dpdk-test.p/test_test_cryptodev.c.o
app/dpdk-test.p/test_test_cryptodev_asym.c.o
app/dpdk-test.p/test_test_cryptodev_blockcipher.c.o
app/dpdk-test.p/test_test_cryptodev_crosscheck.c.o
app/dpdk-test.p/test_test_cryptodev_security_ipsec.c.o
app/dpdk-test.p/test_test_cryptodev_security_pdcp.c.o
app/dpdk-test.p/test_test_cryptodev_security_tls_record.c.o
app/dpdk-test.p/test_test_cycles.c.o app/dpdk-test.p/test_test_debug.c.o
app/dpdk-test.p/test_test_devargs.c.o app/dpdk-test.p/test_test_dispatcher.c.o
app/dpdk-test.p/test_test_distributor.c.o
app/dpdk-test.p/test_test_distributor_perf.c.o
app/dpdk-test.p/test_test_dmadev.c.o app/dpdk-test.p/test_test_dmadev_api.c.o
app/dpdk-test.p/test_test_eal_flags.c.o app/dpdk-test.p/test_test_eal_fs.c.o
app/dpdk-test.p/test_test_efd.c.o app/dpdk-test.p/test_test_efd_perf.c.o
app/dpdk-test.p/test_test_errno.c.o app/dpdk-test.p/test_test_ethdev_api.c.o
app/dpdk-test.p/test_test_ethdev_flow_conv.c.o
app/dpdk-test.p/test_test_ethdev_link.c.o
app/dpdk-test.p/test_test_ethdev_module_eeprom.c.o
app/dpdk-test.p/test_test_event_crypto_adapter.c.o
app/dpdk-test.p/test_test_event_dma_adapter.c.o
app/dpdk-test.p/test_test_event_eth_rx_adapter.c.o
app/dpdk-test.p/test_test_event_eth_tx_adapter.c.o
app/dpdk-test.p/test_test_event_ring.c.o
app/dpdk-test.p/test_test_event_timer_adapter.c.o
app/dpdk-test.p/test_test_event_vector_adapter.c.o
app/dpdk-test.p/test_test_eventdev.c.o
app/dpdk-test.p/test_test_external_mem.c.o
app/dpdk-test.p/test_test_fbarray.c.o app/dpdk-test.p/test_test_fib.c.o
app/dpdk-test.p/test_test_fib6.c.o app/dpdk-test.p/test_test_fib6_perf.c.o
app/dpdk-test.p/test_test_fib_perf.c.o
app/dpdk-test.p/test_test_func_reentrancy.c.o
app/dpdk-test.p/test_test_graph.c.o
app/dpdk-test.p/test_test_graph_feature_arc.c.o
app/dpdk-test.p/test_test_graph_perf.c.o app/dpdk-test.p/test_test_hash.c.o
app/dpdk-test.p/test_test_hash_functions.c.o
app/dpdk-test.p/test_test_hash_multiwriter.c.o
app/dpdk-test.p/test_test_hash_perf.c.o
app/dpdk-test.p/test_test_hash_readwrite.c.o
app/dpdk-test.p/test_test_hash_readwrite_lf_perf.c.o
app/dpdk-test.p/test_test_interrupts.c.o app/dpdk-test.p/test_test_ipfrag.c.o
app/dpdk-test.p/test_test_ipsec.c.o app/dpdk-test.p/test_test_ipsec_perf.c.o
app/dpdk-test.p/test_test_ipsec_sad.c.o app/dpdk-test.p/test_test_kvargs.c.o
app/dpdk-test.p/test_test_latencystats.c.o
app/dpdk-test.p/test_test_lcore_var.c.o
app/dpdk-test.p/test_test_lcore_var_perf.c.o
app/dpdk-test.p/test_test_lcores.c.o app/dpdk-test.p/test_test_link_bonding.c.o
app/dpdk-test.p/test_test_link_bonding_mode4.c.o
app/dpdk-test.p/test_test_link_bonding_rssconf.c.o
app/dpdk-test.p/test_test_logs.c.o app/dpdk-test.p/test_test_lpm.c.o
app/dpdk-test.p/test_test_lpm6.c.o app/dpdk-test.p/test_test_lpm6_perf.c.o
app/dpdk-test.p/test_test_lpm_perf.c.o app/dpdk-test.p/test_test_malloc.c.o
app/dpdk-test.p/test_test_malloc_perf.c.o app/dpdk-test.p/test_test_mbuf.c.o
app/dpdk-test.p/test_test_mcslock.c.o app/dpdk-test.p/test_test_member.c.o
app/dpdk-test.p/test_test_member_perf.c.o app/dpdk-test.p/test_test_memcpy.c.o
app/dpdk-test.p/test_test_memcpy_perf.c.o app/dpdk-test.p/test_test_memory.c.o
app/dpdk-test.p/test_test_mempool.c.o
app/dpdk-test.p/test_test_mempool_perf.c.o
app/dpdk-test.p/test_test_memzone.c.o app/dpdk-test.p/test_test_meter.c.o
app/dpdk-test.p/test_test_metrics.c.o
app/dpdk-test.p/test_test_mp_secondary.c.o
app/dpdk-test.p/test_test_net_ether.c.o app/dpdk-test.p/test_test_net_ip6.c.o
app/dpdk-test.p/test_test_pcapng.c.o app/dpdk-test.p/test_test_pdcp.c.o
app/dpdk-test.p/test_test_pdump.c.o app/dpdk-test.p/test_test_per_lcore.c.o
app/dpdk-test.p/test_test_pflock.c.o app/dpdk-test.p/test_test_pie.c.o
app/dpdk-test.p/test_test_pmd_af_packet.c.o
app/dpdk-test.p/test_test_pmd_memif.c.o app/dpdk-test.p/test_test_pmd_pcap.c.o
app/dpdk-test.p/test_test_pmd_perf.c.o app/dpdk-test.p/test_test_pmd_ring.c.o
app/dpdk-test.p/test_test_pmd_ring_perf.c.o
app/dpdk-test.p/test_test_pmd_tap.c.o app/dpdk-test.p/test_test_pmu.c.o
app/dpdk-test.p/test_test_power.c.o app/dpdk-test.p/test_test_power_cpufreq.c.o
app/dpdk-test.p/test_test_power_intel_uncore.c.o
app/dpdk-test.p/test_test_power_kvm_vm.c.o
app/dpdk-test.p/test_test_prefetch.c.o
app/dpdk-test.p/test_test_ptr_compress.c.o
app/dpdk-test.p/test_test_rand_perf.c.o app/dpdk-test.p/test_test_rawdev.c.o
app/dpdk-test.p/test_test_rcu_qsbr.c.o
app/dpdk-test.p/test_test_rcu_qsbr_perf.c.o
app/dpdk-test.p/test_test_reassembly.c.o
app/dpdk-test.p/test_test_reassembly_perf.c.o
app/dpdk-test.p/test_test_reciprocal_division.c.o
app/dpdk-test.p/test_test_reciprocal_division_perf.c.o
app/dpdk-test.p/test_test_red.c.o app/dpdk-test.p/test_test_reorder.c.o
app/dpdk-test.p/test_test_rib.c.o app/dpdk-test.p/test_test_rib6.c.o
app/dpdk-test.p/test_test_ring.c.o
app/dpdk-test.p/test_test_ring_hts_stress.c.o
app/dpdk-test.p/test_test_ring_mpmc_stress.c.o
app/dpdk-test.p/test_test_ring_mt_peek_stress.c.o
app/dpdk-test.p/test_test_ring_mt_peek_stress_zc.c.o
app/dpdk-test.p/test_test_ring_perf.c.o
app/dpdk-test.p/test_test_ring_rts_stress.c.o
app/dpdk-test.p/test_test_ring_st_peek_stress.c.o
app/dpdk-test.p/test_test_ring_st_peek_stress_zc.c.o
app/dpdk-test.p/test_test_ring_stress.c.o app/dpdk-test.p/test_test_rwlock.c.o
app/dpdk-test.p/test_test_sched.c.o app/dpdk-test.p/test_test_security.c.o
app/dpdk-test.p/test_test_security_inline_macsec.c.o
app/dpdk-test.p/test_test_security_inline_proto.c.o
app/dpdk-test.p/test_test_security_proto.c.o
app/dpdk-test.p/test_test_seqlock.c.o
app/dpdk-test.p/test_test_service_cores.c.o
app/dpdk-test.p/test_test_soring.c.o
app/dpdk-test.p/test_test_soring_mt_stress.c.o
app/dpdk-test.p/test_test_soring_peek_stress.c.o
app/dpdk-test.p/test_test_soring_stress.c.o
app/dpdk-test.p/test_test_spinlock.c.o app/dpdk-test.p/test_test_stack.c.o
app/dpdk-test.p/test_test_stack_perf.c.o
app/dpdk-test.p/test_test_string_fns.c.o app/dpdk-test.p/test_test_tailq.c.o
app/dpdk-test.p/test_test_telemetry_data.c.o
app/dpdk-test.p/test_test_telemetry_json.c.o
app/dpdk-test.p/test_test_thash.c.o app/dpdk-test.p/test_test_thash_perf.c.o
app/dpdk-test.p/test_test_threads.c.o app/dpdk-test.p/test_test_ticketlock.c.o
app/dpdk-test.p/test_test_timer.c.o app/dpdk-test.p/test_test_timer_perf.c.o
app/dpdk-test.p/test_test_timer_racecond.c.o
app/dpdk-test.p/test_test_timer_secondary.c.o
app/dpdk-test.p/test_test_trace.c.o app/dpdk-test.p/test_test_trace_perf.c.o
app/dpdk-test.p/test_test_trace_register.c.o app/dpdk-test.p/test_test_vdev.c.o
app/dpdk-test.p/test_test_version.c.o -Wl,--fatal-warnings -Werror -flto=auto
-Wl,--as-needed -Wl,--no-undefined -Wl,-O1 -Wl,--whole-archive
-Wl,--start-group lib/librte_node.a lib/librte_graph.a lib/librte_pipeline.a
lib/librte_table.a lib/librte_pdump.a lib/librte_port.a lib/librte_fib.a
lib/librte_pdcp.a lib/librte_ipsec.a lib/librte_vhost.a lib/librte_stack.a
lib/librte_security.a lib/librte_sched.a lib/librte_reorder.a lib/librte_rib.a
lib/librte_mldev.a lib/librte_regexdev.a lib/librte_rawdev.a lib/librte_power.a
lib/librte_pcapng.a lib/librte_member.a lib/librte_lpm.a
lib/librte_latencystats.a lib/librte_jobstats.a lib/librte_ip_frag.a
lib/librte_gso.a lib/librte_gro.a lib/librte_gpudev.a lib/librte_dispatcher.a
lib/librte_eventdev.a lib/librte_efd.a lib/librte_dmadev.a
lib/librte_distributor.a lib/librte_cryptodev.a lib/librte_compressdev.a
lib/librte_cfgfile.a lib/librte_bpf.a lib/librte_bitratestats.a
lib/librte_bbdev.a lib/librte_acl.a lib/librte_timer.a lib/librte_hash.a
lib/librte_metrics.a lib/librte_cmdline.a lib/librte_pci.a lib/librte_ethdev.a
lib/librte_meter.a lib/librte_net.a lib/librte_mbuf.a lib/librte_mempool.a
lib/librte_rcu.a lib/librte_ring.a lib/librte_eal.a lib/librte_pmu.a
lib/librte_telemetry.a lib/librte_argparse.a lib/librte_kvargs.a
lib/librte_log.a drivers/librte_common_cpt.a drivers/librte_common_dpaax.a
drivers/librte_common_ionic.a drivers/librte_common_octeontx.a
drivers/librte_bus_auxiliary.a drivers/librte_bus_cdx.a
drivers/librte_bus_dpaa.a drivers/librte_bus_fslmc.a drivers/librte_bus_ifpga.a
drivers/librte_bus_pci.a drivers/librte_bus_platform.a
drivers/librte_bus_uacce.a drivers/librte_bus_vdev.a drivers/librte_bus_vmbus.a
drivers/librte_common_cnxk.a drivers/librte_common_mlx5.a
drivers/librte_common_nfp.a drivers/librte_common_nitrox.a
drivers/librte_common_qat.a drivers/librte_common_sfc_efx.a
drivers/librte_common_sxe2.a drivers/librte_common_zsda.a
drivers/librte_mempool_bucket.a drivers/librte_mempool_cnxk.a
drivers/librte_mempool_dpaa.a drivers/librte_mempool_dpaa2.a
drivers/librte_mempool_octeontx.a drivers/librte_mempool_ring.a
drivers/librte_mempool_stack.a drivers/librte_dma_ae4dma.a
drivers/librte_dma_cnxk.a drivers/librte_dma_dpaa.a drivers/librte_dma_dpaa2.a
drivers/librte_dma_hisi_acc.a drivers/librte_dma_hisi_pciep.a
drivers/librte_dma_idxd.a drivers/librte_dma_imx_edma5.a
drivers/librte_dma_ioat.a drivers/librte_dma_odm.a
drivers/librte_dma_skeleton.a drivers/librte_net_af_packet.a
drivers/librte_net_af_xdp.a drivers/librte_net_ark.a
drivers/librte_net_atlantic.a drivers/librte_net_avp.a
drivers/librte_net_axgbe.a drivers/librte_net_bnx2x.a drivers/librte_net_bnxt.a
drivers/librte_net_bond.a drivers/librte_net_cnxk.a drivers/librte_net_cxgbe.a
drivers/librte_net_dpaa.a drivers/librte_net_dpaa2.a drivers/librte_net_ena.a
drivers/librte_net_enetc.a drivers/librte_net_enetfec.a
drivers/librte_net_enic.a drivers/librte_net_failsafe.a
drivers/librte_net_gve.a drivers/librte_net_hinic.a drivers/librte_net_hinic3.a
drivers/librte_net_hns3.a drivers/librte_net_e1000.a drivers/librte_net_fm10k.a
drivers/librte_net_i40e.a drivers/librte_net_iavf.a drivers/librte_net_ice.a
drivers/librte_net_idpf.a drivers/librte_net_ipn3ke.a
drivers/librte_net_ixgbe.a drivers/librte_net_cpfl.a drivers/librte_net_ionic.a
drivers/librte_net_mana.a drivers/librte_net_memif.a drivers/librte_net_mlx4.a
drivers/librte_net_mlx5.a drivers/librte_net_nbl.a drivers/librte_net_netvsc.a
drivers/librte_net_nfb.a drivers/librte_net_nfp.a drivers/librte_net_ngbe.a
drivers/librte_net_ntnic.a drivers/librte_net_null.a
drivers/librte_net_octeontx.a drivers/librte_net_octeon_ep.a
drivers/librte_net_pcap.a drivers/librte_net_pfe.a drivers/librte_net_qede.a
drivers/librte_net_r8169.a drivers/librte_net_ring.a drivers/librte_net_rnp.a
drivers/librte_net_sfc.a drivers/librte_net_softnic.a drivers/librte_net_sxe2.a
drivers/librte_net_tap.a drivers/librte_net_thunderx.a
drivers/librte_net_txgbe.a drivers/librte_net_vdev_netvsc.a
drivers/librte_net_vhost.a drivers/librte_net_virtio.a
drivers/librte_net_vmxnet3.a drivers/librte_net_xsc.a drivers/librte_net_zxdh.a
drivers/librte_raw_cnxk_bphy.a drivers/librte_raw_cnxk_gpio.a
drivers/librte_raw_cnxk_rvu_lf.a drivers/librte_raw_dpaa2_cmdif.a
drivers/librte_raw_gdtc.a drivers/librte_raw_ifpga.a drivers/librte_raw_ntb.a
drivers/librte_raw_skeleton.a drivers/librte_crypto_bcmfs.a
drivers/librte_crypto_caam_jr.a drivers/librte_crypto_ccp.a
drivers/librte_crypto_cnxk.a drivers/librte_crypto_dpaa_sec.a
drivers/librte_crypto_dpaa2_sec.a drivers/librte_crypto_ionic.a
drivers/librte_crypto_ipsec_mb.a drivers/librte_crypto_mlx5.a
drivers/librte_crypto_nitrox.a drivers/librte_crypto_null.a
drivers/librte_crypto_octeontx.a drivers/librte_crypto_openssl.a
drivers/librte_crypto_scheduler.a drivers/librte_crypto_virtio.a
drivers/librte_compress_isal.a drivers/librte_compress_mlx5.a
drivers/librte_compress_nitrox.a drivers/librte_compress_octeontx.a
drivers/librte_compress_zlib.a drivers/librte_regex_mlx5.a
drivers/librte_regex_cn9k.a drivers/librte_ml_cnxk.a drivers/librte_vdpa_ifc.a
drivers/librte_vdpa_mlx5.a drivers/librte_vdpa_nfp.a drivers/librte_vdpa_sfc.a
drivers/librte_event_cnxk.a drivers/librte_event_dlb2.a
drivers/librte_event_dpaa.a drivers/librte_event_dpaa2.a
drivers/librte_event_dsw.a drivers/librte_event_octeontx.a
drivers/librte_event_opdl.a drivers/librte_event_skeleton.a
drivers/librte_event_sw.a drivers/librte_baseband_acc.a
drivers/librte_baseband_fpga_5gnr_fec.a drivers/librte_baseband_fpga_lte_fec.a
drivers/librte_baseband_la12xx.a drivers/librte_baseband_null.a
drivers/librte_baseband_turbo_sw.a drivers/librte_power_acpi.a
drivers/librte_power_amd_pstate.a drivers/librte_power_amd_uncore.a
drivers/librte_power_cppc.a drivers/librte_power_intel_pstate.a
drivers/librte_power_intel_uncore.a drivers/librte_power_kvm_vm.a
-Wl,--no-whole-archive -Wl,--no-as-needed -Wl,--undefined-version -pthread -lm
-ldl -lnuma -lfdt -Wl,-rpath,XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
-Wl,--export-dynamic /usr/lib/x86_64-linux-gnu/libz.so
-Wl,-rpath,/usr/local/lib /usr/local/lib/libpcap.so
/usr/lib/x86_64-linux-gnu/libarchive.so /usr/lib/x86_64-linux-gnu/libjansson.so
/usr/lib/x86_64-linux-gnu/libelf.so /usr/lib/x86_64-linux-gnu/libbpf.so
/usr/lib/x86_64-linux-gnu/libmlx5.so /usr/lib/x86_64-linux-gnu/libibverbs.so
-lIPSec_MB /usr/lib/x86_64-linux-gnu/libcrypto.so
/usr/lib/x86_64-linux-gnu/libxdp.so /usr/lib/x86_64-linux-gnu/libmana.so
/usr/lib/x86_64-linux-gnu/libmlx4.so /usr/lib/x86_64-linux-gnu/libfdt.so -lnfb
-lrt -lIPSec_MB /usr/lib/x86_64-linux-gnu/libisal.so -le_smi64 -Wl,--end-group
In function ‘__rte_ring_dequeue_elems_128’,
    inlined from ‘__rte_ring_do_dequeue_elems’ at
../lib/ring/rte_ring_elem_pvt.h:273:3,
    inlined from ‘soring_acquire’ at ../lib/ring/soring.c:576:3,
    inlined from ‘rte_soring_acquirx_bulk’ at ../lib/ring/soring.c:741:9,
    inlined from ‘test_soring_stages’ at ../app/test/test_soring.c:186:14:
../lib/ring/rte_ring_elem_pvt.h:244:25: error: writing 32 bytes into a region
of size 0 [-Werror=stringop-overflow=]
  244 |                         memcpy((obj + i), (const void *)(ring + idx),
32);
      |                         ^
../app/test/test_soring.c: In function ‘test_soring_stages’:
../app/test/test_soring.c:154:18: note: at offset 128 into destination object
‘acquired_objs’ of size 128
  154 |         uint32_t acquired_objs[32];
      |                  ^
In function ‘__rte_ring_dequeue_elems_128’,
    inlined from ‘__rte_ring_do_dequeue_elems’ at
../lib/ring/rte_ring_elem_pvt.h:273:3,
    inlined from ‘soring_acquire’ at ../lib/ring/soring.c:576:3,
    inlined from ‘rte_soring_acquirx_bulk’ at ../lib/ring/soring.c:741:9,
    inlined from ‘test_soring_stages’ at ../app/test/test_soring.c:186:14:
../lib/ring/rte_ring_elem_pvt.h:244:25: error: writing 32 bytes into a region
of size 0 [-Werror=stringop-overflow=]
  244 |                         memcpy((obj + i), (const void *)(ring + idx),
32);
      |                         ^
../app/test/test_soring.c: In function ‘test_soring_stages’:
../app/test/test_soring.c:154:18: note: at offset 160 into destination object
‘acquired_objs’ of size 128
  154 |         uint32_t acquired_objs[32];
      |                  ^
In function ‘__rte_ring_dequeue_elems_128’,
    inlined from ‘__rte_ring_do_dequeue_elems’ at
../lib/ring/rte_ring_elem_pvt.h:273:3,
    inlined from ‘soring_acquire’ at ../lib/ring/soring.c:576:3,
    inlined from ‘rte_soring_acquirx_bulk’ at ../lib/ring/soring.c:741:9,
    inlined from ‘test_soring_stages’ at ../app/test/test_soring.c:186:14:
../lib/ring/rte_ring_elem_pvt.h:244:25: error: writing 32 bytes into a region
of size 0 [-Werror=stringop-overflow=]
  244 |                         memcpy((obj + i), (const void *)(ring + idx),
32);
      |                         ^
../app/test/test_soring.c: In function ‘test_soring_stages’:
../app/test/test_soring.c:154:18: note: at offset 192 into destination object
‘acquired_objs’ of size 128
  154 |         uint32_t acquired_objs[32];
      |                  ^
In function ‘__rte_ring_dequeue_elems_128’,
    inlined from ‘__rte_ring_do_dequeue_elems’ at
../lib/ring/rte_ring_elem_pvt.h:273:3,
    inlined from ‘soring_acquire’ at ../lib/ring/soring.c:576:3,
    inlined from ‘rte_soring_acquirx_bulk’ at ../lib/ring/soring.c:741:9,
    inlined from ‘test_soring_stages’ at ../app/test/test_soring.c:186:14:
../lib/ring/rte_ring_elem_pvt.h:244:25: error: writing 32 bytes into a region
of size 0 [-Werror=stringop-overflow=]
  244 |                         memcpy((obj + i), (const void *)(ring + idx),
32);
      |                         ^
../app/test/test_soring.c: In function ‘test_soring_stages’:
../app/test/test_soring.c:154:18: note: at offset 224 into destination object
‘acquired_objs’ of size 128
  154 |         uint32_t acquired_objs[32];
      |                  ^
In function ‘__rte_ring_dequeue_elems_128’,
    inlined from ‘__rte_ring_do_dequeue_elems’ at
../lib/ring/rte_ring_elem_pvt.h:273:3,
    inlined from ‘soring_acquire’ at ../lib/ring/soring.c:576:3,
    inlined from ‘rte_soring_acquirx_bulk’ at ../lib/ring/soring.c:741:9,
    inlined from ‘test_soring_stages’ at ../app/test/test_soring.c:186:14:
../lib/ring/rte_ring_elem_pvt.h:244:25: error: writing 32 bytes into a region
of size 0 [-Werror=stringop-overflow=]
  244 |                         memcpy((obj + i), (const void *)(ring + idx),
32);
      |                         ^
../app/test/test_soring.c: In function ‘test_soring_stages’:
../app/test/test_soring.c:154:18: note: at offset 256 into destination object
‘acquired_objs’ of size 128
  154 |         uint32_t acquired_objs[32];
      |                  ^
In function ‘__rte_ring_dequeue_elems_128’,
    inlined from ‘__rte_ring_do_dequeue_elems’ at
../lib/ring/rte_ring_elem_pvt.h:273:3,
    inlined from ‘soring_acquire’ at ../lib/ring/soring.c:576:3,
    inlined from ‘rte_soring_acquirx_bulk’ at ../lib/ring/soring.c:741:9,
    inlined from ‘test_soring_stages’ at ../app/test/test_soring.c:186:14:
../lib/ring/rte_ring_elem_pvt.h:244:25: error: writing 32 bytes into a region
of size 0 [-Werror=stringop-overflow=]
  244 |                         memcpy((obj + i), (const void *)(ring + idx),
32);
      |                         ^
../app/test/test_soring.c: In function ‘test_soring_stages’:
../app/test/test_soring.c:154:18: note: at offset 288 into destination object
‘acquired_objs’ of size 128
  154 |         uint32_t acquired_objs[32];
      |                  ^
In function ‘__rte_ring_dequeue_elems_128’,
    inlined from ‘__rte_ring_do_dequeue_elems’ at
../lib/ring/rte_ring_elem_pvt.h:273:3,
    inlined from ‘soring_acquire’ at ../lib/ring/soring.c:576:3,
    inlined from ‘rte_soring_acquirx_bulk’ at ../lib/ring/soring.c:741:9,
    inlined from ‘test_soring_stages’ at ../app/test/test_soring.c:186:14:
../lib/ring/rte_ring_elem_pvt.h:244:25: error: writing 32 bytes into a region
of size 0 [-Werror=stringop-overflow=]
  244 |                         memcpy((obj + i), (const void *)(ring + idx),
32);
      |                         ^
../app/test/test_soring.c: In function ‘test_soring_stages’:
../app/test/test_soring.c:154:18: note: at offset 320 into destination object
‘acquired_objs’ of size 128
  154 |         uint32_t acquired_objs[32];
      |                  ^
In function ‘__rte_ring_dequeue_elems_128’,
    inlined from ‘__rte_ring_do_dequeue_elems’ at
../lib/ring/rte_ring_elem_pvt.h:273:3,
    inlined from ‘soring_acquire’ at ../lib/ring/soring.c:576:3,
    inlined from ‘rte_soring_acquirx_bulk’ at ../lib/ring/soring.c:741:9,
    inlined from ‘test_soring_stages’ at ../app/test/test_soring.c:186:14:
../lib/ring/rte_ring_elem_pvt.h:244:25: error: writing 32 bytes into a region
of size 0 [-Werror=stringop-overflow=]
  244 |                         memcpy((obj + i), (const void *)(ring + idx),
32);
      |                         ^
../app/test/test_soring.c: In function ‘test_soring_stages’:
../app/test/test_soring.c:154:18: note: at offset 352 into destination object
‘acquired_objs’ of size 128
  154 |         uint32_t acquired_objs[32];
      |                  ^
In function ‘__rte_ring_dequeue_elems_128’,
    inlined from ‘__rte_ring_do_dequeue_elems’ at
../lib/ring/rte_ring_elem_pvt.h:273:3,
    inlined from ‘soring_acquire’ at ../lib/ring/soring.c:576:3,
    inlined from ‘rte_soring_acquirx_bulk’ at ../lib/ring/soring.c:741:9,
    inlined from ‘test_soring_stages’ at ../app/test/test_soring.c:186:14:
../lib/ring/rte_ring_elem_pvt.h:244:25: error: writing 32 bytes into a region
of size 0 [-Werror=stringop-overflow=]
  244 |                         memcpy((obj + i), (const void *)(ring + idx),
32);
      |                         ^
../app/test/test_soring.c: In function ‘test_soring_stages’:
../app/test/test_soring.c:154:18: note: at offset 384 into destination object
‘acquired_objs’ of size 128
  154 |         uint32_t acquired_objs[32];
      |                  ^
In function ‘__rte_ring_dequeue_elems_128’,
    inlined from ‘__rte_ring_do_dequeue_elems’ at
../lib/ring/rte_ring_elem_pvt.h:273:3,
    inlined from ‘soring_acquire’ at ../lib/ring/soring.c:576:3,
    inlined from ‘rte_soring_acquirx_bulk’ at ../lib/ring/soring.c:741:9,
    inlined from ‘test_soring_stages’ at ../app/test/test_soring.c:186:14:
../lib/ring/rte_ring_elem_pvt.h:244:25: error: writing 32 bytes into a region
of size 0 [-Werror=stringop-overflow=]
  244 |                         memcpy((obj + i), (const void *)(ring + idx),
32);
      |                         ^
../app/test/test_soring.c: In function ‘test_soring_stages’:
../app/test/test_soring.c:154:18: note: at offset 416 into destination object
‘acquired_objs’ of size 128
  154 |         uint32_t acquired_objs[32];
      |                  ^
In function ‘__rte_ring_dequeue_elems_128’,
    inlined from ‘__rte_ring_do_dequeue_elems’ at
../lib/ring/rte_ring_elem_pvt.h:273:3,
    inlined from ‘soring_acquire’ at ../lib/ring/soring.c:576:3,
    inlined from ‘rte_soring_acquirx_bulk’ at ../lib/ring/soring.c:741:9,
    inlined from ‘test_soring_stages’ at ../app/test/test_soring.c:186:14:
../lib/ring/rte_ring_elem_pvt.h:244:25: error: writing 32 bytes into a region
of size 0 [-Werror=stringop-overflow=]
  244 |                         memcpy((obj + i), (const void *)(ring + idx),
32);
      |                         ^
../app/test/test_soring.c: In function ‘test_soring_stages’:
../app/test/test_soring.c:154:18: note: at offset 448 into destination object
‘acquired_objs’ of size 128
  154 |         uint32_t acquired_objs[32];
      |                  ^
In function ‘__rte_ring_dequeue_elems_128’,
    inlined from ‘__rte_ring_do_dequeue_elems’ at
../lib/ring/rte_ring_elem_pvt.h:273:3,
    inlined from ‘soring_acquire’ at ../lib/ring/soring.c:576:3,
    inlined from ‘rte_soring_acquirx_bulk’ at ../lib/ring/soring.c:741:9,
    inlined from ‘test_soring_stages’ at ../app/test/test_soring.c:186:14:
../lib/ring/rte_ring_elem_pvt.h:244:25: error: writing 32 bytes into a region
of size 0 [-Werror=stringop-overflow=]
  244 |                         memcpy((obj + i), (const void *)(ring + idx),
32);
      |                         ^
../app/test/test_soring.c: In function ‘test_soring_stages’:
../app/test/test_soring.c:154:18: note: at offset 480 into destination object
‘acquired_objs’ of size 128
  154 |         uint32_t acquired_objs[32];
      |                  ^
In function ‘__rte_ring_dequeue_elems_128’,
    inlined from ‘__rte_ring_do_dequeue_elems’ at
../lib/ring/rte_ring_elem_pvt.h:273:3,
    inlined from ‘soring_acquire’ at ../lib/ring/soring.c:579:4,
    inlined from ‘rte_soring_acquirx_bulk’ at ../lib/ring/soring.c:741:9,
    inlined from ‘test_soring_stages’ at ../app/test/test_soring.c:186:14:
../lib/ring/rte_ring_elem_pvt.h:244:25: error: writing 32 bytes into a region
of size 0 [-Werror=stringop-overflow=]
  244 |                         memcpy((obj + i), (const void *)(ring + idx),
32);
      |                         ^
../app/test/test_soring.c: In function ‘test_soring_stages’:
../app/test/test_soring.c:155:18: note: at offset 128 into destination object
‘acquired_rcs’ of size 128
  155 |         uint32_t acquired_rcs[32];
      |                  ^
In function ‘__rte_ring_dequeue_elems_128’,
    inlined from ‘__rte_ring_do_dequeue_elems’ at
../lib/ring/rte_ring_elem_pvt.h:273:3,
    inlined from ‘soring_acquire’ at ../lib/ring/soring.c:579:4,
    inlined from ‘rte_soring_acquirx_bulk’ at ../lib/ring/soring.c:741:9,
    inlined from ‘test_soring_stages’ at ../app/test/test_soring.c:186:14:
../lib/ring/rte_ring_elem_pvt.h:244:25: error: writing 32 bytes into a region
of size 0 [-Werror=stringop-overflow=]
  244 |                         memcpy((obj + i), (const void *)(ring + idx),
32);
      |                         ^
../app/test/test_soring.c: In function ‘test_soring_stages’:
../app/test/test_soring.c:155:18: note: at offset 160 into destination object
‘acquired_rcs’ of size 128
  155 |         uint32_t acquired_rcs[32];
      |                  ^
In function ‘__rte_ring_dequeue_elems_128’,
    inlined from ‘__rte_ring_do_dequeue_elems’ at
../lib/ring/rte_ring_elem_pvt.h:273:3,
    inlined from ‘soring_acquire’ at ../lib/ring/soring.c:579:4,
    inlined from ‘rte_soring_acquirx_bulk’ at ../lib/ring/soring.c:741:9,
    inlined from ‘test_soring_stages’ at ../app/test/test_soring.c:186:14:
../lib/ring/rte_ring_elem_pvt.h:244:25: error: writing 32 bytes into a region
of size 0 [-Werror=stringop-overflow=]
  244 |                         memcpy((obj + i), (const void *)(ring + idx),
32);
      |                         ^
../app/test/test_soring.c: In function ‘test_soring_stages’:
../app/test/test_soring.c:155:18: note: at offset 192 into destination object
‘acquired_rcs’ of size 128
  155 |         uint32_t acquired_rcs[32];
      |                  ^
In function ‘__rte_ring_dequeue_elems_128’,
    inlined from ‘__rte_ring_do_dequeue_elems’ at
../lib/ring/rte_ring_elem_pvt.h:273:3,
    inlined from ‘soring_acquire’ at ../lib/ring/soring.c:579:4,
    inlined from ‘rte_soring_acquirx_bulk’ at ../lib/ring/soring.c:741:9,
    inlined from ‘test_soring_stages’ at ../app/test/test_soring.c:186:14:
../lib/ring/rte_ring_elem_pvt.h:244:25: error: writing 32 bytes into a region
of size 0 [-Werror=stringop-overflow=]
  244 |                         memcpy((obj + i), (const void *)(ring + idx),
32);
      |                         ^
../app/test/test_soring.c: In function ‘test_soring_stages’:
../app/test/test_soring.c:155:18: note: at offset 224 into destination object
‘acquired_rcs’ of size 128
  155 |         uint32_t acquired_rcs[32];
      |                  ^
In function ‘__rte_ring_dequeue_elems_128’,
    inlined from ‘__rte_ring_do_dequeue_elems’ at
../lib/ring/rte_ring_elem_pvt.h:273:3,
    inlined from ‘soring_acquire’ at ../lib/ring/soring.c:579:4,
    inlined from ‘rte_soring_acquirx_bulk’ at ../lib/ring/soring.c:741:9,
    inlined from ‘test_soring_stages’ at ../app/test/test_soring.c:186:14:
../lib/ring/rte_ring_elem_pvt.h:244:25: error: writing 32 bytes into a region
of size 0 [-Werror=stringop-overflow=]
  244 |                         memcpy((obj + i), (const void *)(ring + idx),
32);
      |                         ^
../app/test/test_soring.c: In function ‘test_soring_stages’:
../app/test/test_soring.c:155:18: note: at offset 256 into destination object
‘acquired_rcs’ of size 128
  155 |         uint32_t acquired_rcs[32];
      |                  ^
In function ‘__rte_ring_dequeue_elems_128’,
    inlined from ‘__rte_ring_do_dequeue_elems’ at
../lib/ring/rte_ring_elem_pvt.h:273:3,
    inlined from ‘soring_acquire’ at ../lib/ring/soring.c:579:4,
    inlined from ‘rte_soring_acquirx_bulk’ at ../lib/ring/soring.c:741:9,
    inlined from ‘test_soring_stages’ at ../app/test/test_soring.c:186:14:
../lib/ring/rte_ring_elem_pvt.h:244:25: error: writing 32 bytes into a region
of size 0 [-Werror=stringop-overflow=]
  244 |                         memcpy((obj + i), (const void *)(ring + idx),
32);
      |                         ^
../app/test/test_soring.c: In function ‘test_soring_stages’:
../app/test/test_soring.c:155:18: note: at offset 288 into destination object
‘acquired_rcs’ of size 128
  155 |         uint32_t acquired_rcs[32];
      |                  ^
In function ‘__rte_ring_dequeue_elems_128’,
    inlined from ‘__rte_ring_do_dequeue_elems’ at
../lib/ring/rte_ring_elem_pvt.h:273:3,
    inlined from ‘soring_acquire’ at ../lib/ring/soring.c:579:4,
    inlined from ‘rte_soring_acquirx_bulk’ at ../lib/ring/soring.c:741:9,
    inlined from ‘test_soring_stages’ at ../app/test/test_soring.c:186:14:
../lib/ring/rte_ring_elem_pvt.h:244:25: error: writing 32 bytes into a region
of size 0 [-Werror=stringop-overflow=]
  244 |                         memcpy((obj + i), (const void *)(ring + idx),
32);
      |                         ^
../app/test/test_soring.c: In function ‘test_soring_stages’:
../app/test/test_soring.c:155:18: note: at offset 320 into destination object
‘acquired_rcs’ of size 128
  155 |         uint32_t acquired_rcs[32];
      |                  ^
In function ‘__rte_ring_dequeue_elems_128’,
    inlined from ‘__rte_ring_do_dequeue_elems’ at
../lib/ring/rte_ring_elem_pvt.h:273:3,
    inlined from ‘soring_acquire’ at ../lib/ring/soring.c:579:4,
    inlined from ‘rte_soring_acquirx_bulk’ at ../lib/ring/soring.c:741:9,
    inlined from ‘test_soring_stages’ at ../app/test/test_soring.c:186:14:
../lib/ring/rte_ring_elem_pvt.h:244:25: error: writing 32 bytes into a region
of size 0 [-Werror=stringop-overflow=]
  244 |                         memcpy((obj + i), (const void *)(ring + idx),
32);
      |                         ^
../app/test/test_soring.c: In function ‘test_soring_stages’:
../app/test/test_soring.c:155:18: note: at offset 352 into destination object
‘acquired_rcs’ of size 128
  155 |         uint32_t acquired_rcs[32];
      |                  ^
In function ‘__rte_ring_dequeue_elems_128’,
    inlined from ‘__rte_ring_do_dequeue_elems’ at
../lib/ring/rte_ring_elem_pvt.h:273:3,
    inlined from ‘soring_acquire’ at ../lib/ring/soring.c:579:4,
    inlined from ‘rte_soring_acquirx_bulk’ at ../lib/ring/soring.c:741:9,
    inlined from ‘test_soring_stages’ at ../app/test/test_soring.c:186:14:
../lib/ring/rte_ring_elem_pvt.h:244:25: error: writing 32 bytes into a region
of size 0 [-Werror=stringop-overflow=]
  244 |                         memcpy((obj + i), (const void *)(ring + idx),
32);
      |                         ^
../app/test/test_soring.c: In function ‘test_soring_stages’:
../app/test/test_soring.c:155:18: note: at offset 384 into destination object
‘acquired_rcs’ of size 128
  155 |         uint32_t acquired_rcs[32];
      |                  ^
In function ‘__rte_ring_dequeue_elems_128’,
    inlined from ‘__rte_ring_do_dequeue_elems’ at
../lib/ring/rte_ring_elem_pvt.h:273:3,
    inlined from ‘soring_acquire’ at ../lib/ring/soring.c:579:4,
    inlined from ‘rte_soring_acquirx_bulk’ at ../lib/ring/soring.c:741:9,
    inlined from ‘test_soring_stages’ at ../app/test/test_soring.c:186:14:
../lib/ring/rte_ring_elem_pvt.h:244:25: error: writing 32 bytes into a region
of size 0 [-Werror=stringop-overflow=]
  244 |                         memcpy((obj + i), (const void *)(ring + idx),
32);
      |                         ^
../app/test/test_soring.c: In function ‘test_soring_stages’:
../app/test/test_soring.c:155:18: note: at offset 416 into destination object
‘acquired_rcs’ of size 128
  155 |         uint32_t acquired_rcs[32];
      |                  ^
In function ‘__rte_ring_dequeue_elems_128’,
    inlined from ‘__rte_ring_do_dequeue_elems’ at
../lib/ring/rte_ring_elem_pvt.h:273:3,
    inlined from ‘soring_acquire’ at ../lib/ring/soring.c:579:4,
    inlined from ‘rte_soring_acquirx_bulk’ at ../lib/ring/soring.c:741:9,
    inlined from ‘test_soring_stages’ at ../app/test/test_soring.c:186:14:
../lib/ring/rte_ring_elem_pvt.h:244:25: error: writing 32 bytes into a region
of size 0 [-Werror=stringop-overflow=]
  244 |                         memcpy((obj + i), (const void *)(ring + idx),
32);
      |                         ^
../app/test/test_soring.c: In function ‘test_soring_stages’:
../app/test/test_soring.c:155:18: note: at offset 448 into destination object
‘acquired_rcs’ of size 128
  155 |         uint32_t acquired_rcs[32];
      |                  ^
In function ‘__rte_ring_dequeue_elems_128’,
    inlined from ‘__rte_ring_do_dequeue_elems’ at
../lib/ring/rte_ring_elem_pvt.h:273:3,
    inlined from ‘soring_acquire’ at ../lib/ring/soring.c:579:4,
    inlined from ‘rte_soring_acquirx_bulk’ at ../lib/ring/soring.c:741:9,
    inlined from ‘test_soring_stages’ at ../app/test/test_soring.c:186:14:
../lib/ring/rte_ring_elem_pvt.h:244:25: error: writing 32 bytes into a region
of size 0 [-Werror=stringop-overflow=]
  244 |                         memcpy((obj + i), (const void *)(ring + idx),
32);
      |                         ^
../app/test/test_soring.c: In function ‘test_soring_stages’:
../app/test/test_soring.c:155:18: note: at offset 480 into destination object
‘acquired_rcs’ of size 128
  155 |         uint32_t acquired_rcs[32];
      |                  ^
lto1: all warnings being treated as errors
make: *** [/tmp/ccls3Hk8.mk:120: /tmp/ccN5iSOB.ltrans59.ltrans.o] Error 1
make: *** Waiting for unfinished jobs....
lto-wrapper: fatal error: make returned 2 exit status
compilation terminated.
/usr/bin/x86_64-linux-gnu-ld.bfd: error: lto-wrapper failed
collect2: error: ld returned 1 exit status
[3942/3976] Linking target app/dpdk-testpmd


The problem is with LTO, gcc inlines rte_soring_acquirx_bulk() into
test_soring_stages(). The element copy switches on the runtime
r->esize, so the 16-byte copy path stays live and gcc reports
-Wstringop-overflow writing into the 32 x uint32_t stack arrays.
That path is never taken since the ring is created with 4 byte
elements and metadata.

-- 
You are receiving this mail because:
You are the assignee for the bug.

                 reply	other threads:[~2026-11-10  1:10 UTC|newest]

Thread overview: [no followups] expand[flat|nested]  mbox.gz  Atom feed

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=bug-2101-3@https.bugs.dpdk.org/ \
    --to=bugzilla@dpdk.org \
    --cc=dev@dpdk.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.