Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 3 additions & 2 deletions dockers/docker-orchagent/docker-init.j2
Original file line number Diff line number Diff line change
Expand Up @@ -8,9 +8,10 @@ mkdir -p /dev/shm/supervisor/
CFGGEN_PARAMS=" \
-d \
{% if ENABLE_ASAN == "y" %}
-a "{\"ENABLE_ASAN\":\"{{ENABLE_ASAN}}\"}" \
{% endif %}
-a "{\"ENABLE_ASAN\":\"{{ENABLE_ASAN}}\",\"ASIC_VENDOR\":\"${ASIC_VENDOR:-unknown}\"}" \
{% else %}
-a "{\"ASIC_VENDOR\":\"${ASIC_VENDOR:-unknown}\"}" \
{% endif %}
-y /etc/sonic/constants.yml \
-t /usr/share/sonic/templates/orch_zmq_tables.conf.j2,/etc/swss/orch_zmq_tables.conf \
-t /usr/share/sonic/templates/switch.json.j2,/etc/swss/config.d/switch.json \
Expand Down
2 changes: 1 addition & 1 deletion platform/mellanox/docker-syncd-mlnx.dep
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ DEP_FILES += $(SONIC_COMMON_BASE_FILES_LIST)
DEP_FILES += $(shell git ls-files -- $(DPATH))

$(DOCKER_SYNCD_BASE)_CACHE_MODE := GIT_CONTENT_SHA
$(DOCKER_SYNCD_BASE)_DEP_FLAGS := $(SONIC_COMMON_FLAGS_LIST) $(ENABLE_ASAN) $(MLNX_SDK_VERSION) $(MLNX_SAI_VERSION)
$(DOCKER_SYNCD_BASE)_DEP_FLAGS := $(SONIC_COMMON_FLAGS_LIST) $(MLNX_SDK_VERSION) $(MLNX_SAI_VERSION)
$(DOCKER_SYNCD_BASE)_DEP_FILES := $(DEP_FILES)

$(eval $(call add_dbg_docker,$(DOCKER_SYNCD_BASE),$(DOCKER_SYNCD_BASE_DBG)))
4 changes: 2 additions & 2 deletions platform/mellanox/docker-syncd-mlnx.mk
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
#
# SPDX-FileCopyrightText: NVIDIA CORPORATION & AFFILIATES
# Copyright (c) 2016-2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
# Copyright (c) 2016-2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
# Apache-2.0
#
# Licensed under the Apache License, Version 2.0 (the "License");
Expand All @@ -23,7 +23,7 @@ include $(PLATFORM_PATH)/../template/docker-syncd-bookworm.mk
$(DOCKER_SYNCD_BASE)_DEPENDS += $(SYNCD) $(PYTHON_SDK_API) $(MFT) $(MFT_FWTRACE_CFG) $(IPROUTE2_MLNX)

ifeq ($(ENABLE_ASAN), y)
$(DOCKER_SYNCD_BASE)_DEPENDS += $(SYNCD_DBG)
$(DOCKER_SYNCD_BASE)_DEPENDS += $(SYNCD_DBG) $(LIBSWSSCOMMON_DBG) $(LIBSAIMETADATA_DBG) $(LIBSAIREDIS_DBG)
endif

$(DOCKER_SYNCD_BASE)_FILES += $(RDB-CLI) $(ISSU_VERSION_FILE)
Expand Down
6 changes: 5 additions & 1 deletion platform/template/docker-syncd-bookworm.mk
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,12 @@


DOCKER_SYNCD_BASE_STEM = docker-syncd-$(DOCKER_SYNCD_PLATFORM_CODE)
ifeq ($(ENABLE_ASAN), y)
DOCKER_SYNCD_BASE = $(DOCKER_SYNCD_BASE_STEM)-asan.gz
else
DOCKER_SYNCD_BASE = $(DOCKER_SYNCD_BASE_STEM).gz
DOCKER_SYNCD_BASE_DBG = $(DOCKER_SYNCD_BASE_STEM)-$(DBG_IMAGE_MARK).gz
endif
DOCKER_SYNCD_BASE_DBG = $(basename $(DOCKER_SYNCD_BASE))-$(DBG_IMAGE_MARK).gz

$(DOCKER_SYNCD_BASE)_PATH = $(PLATFORM_PATH)/docker-syncd-$(DOCKER_SYNCD_PLATFORM_CODE)

Expand Down
2 changes: 1 addition & 1 deletion rules/docker-orchagent.dep
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ DEP_FILES += $(SONIC_COMMON_BASE_FILES_LIST)
DEP_FILES += $(shell git ls-files $(DPATH))

$(DOCKER_ORCHAGENT)_CACHE_MODE := GIT_CONTENT_SHA
$(DOCKER_ORCHAGENT)_DEP_FLAGS := $(SONIC_COMMON_FLAGS_LIST) $(ENABLE_ASAN)
$(DOCKER_ORCHAGENT)_DEP_FLAGS := $(SONIC_COMMON_FLAGS_LIST)
$(DOCKER_ORCHAGENT)_DEP_FILES := $(DEP_FILES)

$(eval $(call add_dbg_docker,$(DOCKER_ORCHAGENT),$(DOCKER_ORCHAGENT_DBG)))
8 changes: 6 additions & 2 deletions rules/docker-orchagent.mk
Original file line number Diff line number Diff line change
@@ -1,13 +1,17 @@
# docker image for orchagent

DOCKER_ORCHAGENT_STEM = docker-orchagent
ifeq ($(ENABLE_ASAN), y)
DOCKER_ORCHAGENT = $(DOCKER_ORCHAGENT_STEM)-asan.gz
else
DOCKER_ORCHAGENT = $(DOCKER_ORCHAGENT_STEM).gz
DOCKER_ORCHAGENT_DBG = $(DOCKER_ORCHAGENT_STEM)-$(DBG_IMAGE_MARK).gz
endif
DOCKER_ORCHAGENT_DBG = $(basename $(DOCKER_ORCHAGENT))-$(DBG_IMAGE_MARK).gz

$(DOCKER_ORCHAGENT)_DEPENDS += $(SWSS) $(LIB_SONIC_DASH_API)

ifeq ($(ENABLE_ASAN), y)
$(DOCKER_ORCHAGENT)_DEPENDS += $(SWSS_DBG)
$(DOCKER_ORCHAGENT)_DEPENDS += $(SWSS_DBG) $(LIBSWSSCOMMON_DBG) $(LIBSAIREDIS_DBG)
endif

$(DOCKER_ORCHAGENT)_DBG_DEPENDS = $($(DOCKER_SWSS_LAYER_BOOKWORM)_DBG_DEPENDS)
Expand Down
2 changes: 1 addition & 1 deletion rules/swss.dep
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ DEP_FILES += $(SONIC_COMMON_BASE_FILES_LIST)
SMDEP_FILES := $(addprefix $(SPATH)/,$(shell cd $(SPATH) && git ls-files))

$(SWSS)_CACHE_MODE := GIT_CONTENT_SHA
$(SWSS)_DEP_FLAGS := $(SONIC_COMMON_FLAGS_LIST) $(ENABLE_ASAN)
$(SWSS)_DEP_FLAGS := $(SONIC_COMMON_FLAGS_LIST)
$(SWSS)_DEP_FILES := $(DEP_FILES)
$(SWSS)_SMDEP_FILES := $(SMDEP_FILES)
$(SWSS)_SMDEP_PATHS := $(SPATH)
Expand Down
11 changes: 11 additions & 0 deletions rules/swss.mk
Original file line number Diff line number Diff line change
@@ -1,19 +1,30 @@
# swss package

ifeq ($(ENABLE_ASAN), y)
SWSS = swss-asan_1.0.0_$(CONFIGURED_ARCH).deb
else
SWSS = swss_1.0.0_$(CONFIGURED_ARCH).deb
endif
Comment thread
croos12 marked this conversation as resolved.
$(SWSS)_SRC_PATH = $(SRC_PATH)/sonic-swss
$(SWSS)_DEPENDS += $(LIBSAIREDIS_DEV) $(LIBSAIMETADATA_DEV) $(LIBTEAM_DEV) \
$(LIBTEAMDCTL) $(LIBTEAM_UTILS) $(LIBSWSSCOMMON_DEV) \
$(LIBSAIVS) $(LIBSAIVS_DEV) $(STP)\
$(PROTOBUF) $(PROTOBUF_LITE) $(PROTOBUF_DEV) $(LIB_SONIC_DASH_API)
$(SWSS)_UNINSTALLS = $(LIBSAIVS_DEV)
ifeq ($(ENABLE_ASAN), y)
$(SWSS)_DEB_BUILD_PROFILES += asan
endif

$(SWSS)_RDEPENDS += $(LIBSAIREDIS) $(LIBSAIMETADATA) $(LIBTEAM) \
$(LIBTEAMDCTL) $(LIBSWSSCOMMON) $(PYTHON3_SWSSCOMMON) \
$(PROTOBUF) $(PROTOBUF_LITE) $(PYTHON3_PROTOBUF) $(LIB_SONIC_DASH_API)
SONIC_DPKG_DEBS += $(SWSS)

ifeq ($(ENABLE_ASAN), y)
SWSS_DBG = swss-dbg-asan_1.0.0_$(CONFIGURED_ARCH).deb
else
SWSS_DBG = swss-dbg_1.0.0_$(CONFIGURED_ARCH).deb
endif
$(SWSS_DBG)_DEPENDS += $(SWSS)
$(SWSS_DBG)_RDEPENDS += $(SWSS)
$(eval $(call add_derived_package,$(SWSS),$(SWSS_DBG)))
Expand Down
2 changes: 1 addition & 1 deletion rules/syncd.dep
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ $(foreach path, $(SMDEP_PATHS), $(eval $(path) :=$(filter-out $(SMDEP_PATHS),$(a


$(SYNCD)_CACHE_MODE := GIT_CONTENT_SHA
$(SYNCD)_DEP_FLAGS := $(SONIC_COMMON_FLAGS_LIST) $(ENABLE_ASAN)
$(SYNCD)_DEP_FLAGS := $(SONIC_COMMON_FLAGS_LIST)
$(SYNCD)_DEP_FILES := $(DEP_FILES)
$(SYNCD)_SMDEP_FILES := $(foreach path, $(SMDEP_PATHS), $($(path)))
$(SYNCD)_SMDEP_PATHS := $(SMDEP_PATHS)
Expand Down
11 changes: 11 additions & 0 deletions rules/syncd.mk
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,16 @@

ifneq ($(CONFIGURED_PLATFORM),vs)

ifeq ($(ENABLE_ASAN), y)
SYNCD = syncd-asan_1.0.0_$(CONFIGURED_ARCH).deb
Copy link

Copilot AI Apr 10, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

When ENABLE_ASAN=y, the target filename is changed to syncd-asan_..., but no <deb>_DPKG_DEB_NAME mapping is provided to tell slave.mk what filename dpkg actually produced. If dpkg output remains syncd_..., the move step will not find the source artifact. Add the appropriate $(SYNCD)_DPKG_DEB_NAME mapping for ASAN builds (and keep the target name as the desired renamed output).

Suggested change
SYNCD = syncd-asan_1.0.0_$(CONFIGURED_ARCH).deb
SYNCD = syncd-asan_1.0.0_$(CONFIGURED_ARCH).deb
$(SYNCD)_DPKG_DEB_NAME = syncd_1.0.0_$(CONFIGURED_ARCH).deb

Copilot uses AI. Check for mistakes.
else
SYNCD = syncd_1.0.0_$(CONFIGURED_ARCH).deb
endif
Comment thread
croos12 marked this conversation as resolved.
$(SYNCD)_RDEPENDS += $(LIBSAIREDIS) $(LIBSAIMETADATA)
$(SYNCD)_DEB_BUILD_PROFILES += syncd
Comment thread
croos12 marked this conversation as resolved.
ifeq ($(ENABLE_ASAN), y)
$(SYNCD)_DEB_BUILD_PROFILES += asan
endif
$(SYNCD)_SRC_PATH = $(SRC_PATH)/sonic-sairedis
$(SYNCD)_DEPENDS += $(LIBSWSSCOMMON_DEV) $(LIBSAIREDIS)
$(SYNCD)_RDEPENDS += $(LIBSWSSCOMMON)
Expand All @@ -21,7 +28,11 @@ $(SYNCD)_DEPENDS += $(LIBSWSSCOMMON_DEV) $(LIBTHRIFT_DEV)
$(SYNCD)_DEB_BUILD_PROFILES += rpc
endif

ifeq ($(ENABLE_ASAN), y)
SYNCD_DBG = syncd-asan-dbgsym_1.0.0_$(CONFIGURED_ARCH).deb
Copy link

Copilot AI Apr 10, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ASAN-specific debug package target is renamed to syncd-asan-dbgsym_..., but there is no <deb>_DPKG_DEB_NAME mapping for the produced dbgsym .deb name. Unless the underlying packaging changes the dbgsym artifact name, slave.mk will not be able to move/rename it correctly. Add $(SYNCD_DBG)_DPKG_DEB_NAME for the ASAN case to match the dpkg output filename.

Suggested change
SYNCD_DBG = syncd-asan-dbgsym_1.0.0_$(CONFIGURED_ARCH).deb
SYNCD_DBG = syncd-asan-dbgsym_1.0.0_$(CONFIGURED_ARCH).deb
$(SYNCD_DBG)_DPKG_DEB_NAME = syncd-dbgsym_1.0.0_$(CONFIGURED_ARCH).deb

Copilot uses AI. Check for mistakes.
else
SYNCD_DBG = syncd-dbgsym_1.0.0_$(CONFIGURED_ARCH).deb
endif
$(SYNCD_DBG)_DEPENDS += $(SYNCD)
$(SYNCD_DBG)_RDEPENDS += $(SYNCD)
$(eval $(call add_derived_package,$(SYNCD),$(SYNCD_DBG)))
Expand Down
2 changes: 1 addition & 1 deletion rules/sysmgr.dep
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ $(foreach path, $(SMDEP_PATHS), $(eval $(path) :=$(filter-out $(SMDEP_PATHS),$(a
$(shell cd $(path) && git ls-files | grep -v " ")))))

$(SYSMGR)_CACHE_MODE := GIT_CONTENT_SHA
$(SYSMGR)_DEP_FLAGS := $(SONIC_COMMON_FLAGS_LIST) $(ENABLE_ASAN)
$(SYSMGR)_DEP_FLAGS := $(SONIC_COMMON_FLAGS_LIST)
$(SYSMGR)_DEP_FILES := $(DEP_FILES)
$(SYSMGR)_SMDEP_FILES := $(foreach path, $(SMDEP_PATHS), $($(path)))
$(SYSMGR)_SMDEP_PATHS := $(SPATH)
3 changes: 2 additions & 1 deletion slave.mk
Original file line number Diff line number Diff line change
Expand Up @@ -860,7 +860,7 @@ $(addprefix $(DEBS_PATH)/, $(SONIC_DPKG_DEBS)) : $(DEBS_PATH)/% : .platform $$(a
# Clean up
if [ -f $($*_SRC_PATH).patch/series ]; then pushd $($*_SRC_PATH) && quilt pop -a -f; [ -d .pc ] && rm -rf .pc; popd; fi
# Take built package(s)
mv -f $(addprefix $($*_SRC_PATH)/../, $* $($*_DERIVED_DEBS) $($*_EXTRA_DEBS)) $(DEBS_PATH) $(LOG)
$(foreach deb,$* $($*_DERIVED_DEBS) $($*_EXTRA_DEBS),mv -f $($*_SRC_PATH)/../$(or $($(deb)_DPKG_DEB_NAME),$(deb)) $(DEBS_PATH)/$(deb) $(LOG) ;)
Copy link

Copilot AI Apr 10, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The new move/rename logic relies on per-deb variables like $(<deb>_DPKG_DEB_NAME), but _DPKG_DEB_NAME is not defined anywhere else in the repo (only referenced here). As a result, the $(or ...) always falls back to $(deb), so this change does not actually support dpkg output-name→target-name remapping and will fail if dpkg still emits the original filenames (e.g. swss_...). Add the missing <deb>_DPKG_DEB_NAME assignments for renamed targets (or ensure the underlying build really produces the renamed filenames).

Suggested change
$(foreach deb,$* $($*_DERIVED_DEBS) $($*_EXTRA_DEBS),mv -f $($*_SRC_PATH)/../$(or $($(deb)_DPKG_DEB_NAME),$(deb)) $(DEBS_PATH)/$(deb) $(LOG) ;)
$(foreach deb,$* $($*_DERIVED_DEBS) $($*_EXTRA_DEBS), \
deb='$(deb)'; \
src_deb_name='$(or $($(deb)_DPKG_DEB_NAME),$(deb))'; \
src_deb="$($*_SRC_PATH)/../$$src_deb_name"; \
if [ -f "$$src_deb" ]; then \
mv -f "$$src_deb" "$(DEBS_PATH)/$$deb" $(LOG); \
else \
shopt -s nullglob; \
deb_suffix="_$${deb#*_}"; \
candidates=("$($*_SRC_PATH)/../"*"$${deb_suffix}"); \
shopt -u nullglob; \
if [ "$${#candidates[@]}" -eq 1 ]; then \
mv -f "$${candidates[0]}" "$(DEBS_PATH)/$$deb" $(LOG); \
else \
echo "Unable to resolve built deb for $$deb (expected $$src_deb_name, candidates: $${candidates[*]:-none})" >&2; \
exit 1; \
fi; \
fi; \
)

Copilot uses AI. Check for mistakes.

# Save the target deb into DPKG cache
$(call SAVE_CACHE,$*,$@)
Expand Down Expand Up @@ -1228,6 +1228,7 @@ $(addprefix $(TARGET_PATH)/, $(DOCKER_IMAGES)) : $(TARGET_PATH)/%.gz : .platform
# Export variables for j2. Use path for unique variable names, e.g. docker_orchagent_debs
export include_system_eventd="$(INCLUDE_SYSTEM_EVENTD)"
export build_reduce_image_size="$(BUILD_REDUCE_IMAGE_SIZE)"
export enable_asan="$(ENABLE_ASAN)"
export sonic_asic_platform="$(patsubst %-$(CONFIGURED_ARCH),%,$(CONFIGURED_PLATFORM))"
Comment thread
croos12 marked this conversation as resolved.
$(eval export $(subst -,_,$(notdir $($*.gz_PATH)))_debs=$(shell printf "$(subst $(SPACE),\n,$(call expand,$($*.gz_DEPENDS),RDEPENDS))\n" | awk '!a[$$0]++'))
$(eval export $(subst -,_,$(notdir $($*.gz_PATH)))_pydebs=$(shell printf "$(subst $(SPACE),\n,$(call expand,$($*.gz_PYTHON_DEBS)))\n" | awk '!a[$$0]++'))
Expand Down