* [DPDK/core Bug 2101] soring: stringop warnings on LTO build
@ 2026-11-10 1:10 bugzilla
0 siblings, 0 replies; only message in thread
From: bugzilla @ 2026-11-10 1:10 UTC (permalink / raw)
To: dev
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.
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2026-11-10 1:10 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-11-10 1:10 [DPDK/core Bug 2101] soring: stringop warnings on LTO build bugzilla
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.