Skip to content

Commit bd820a0

Browse files
authored
Fix compilation on Trixie (#1768)
* Fix compilation on Trixie Fix compiling sairedis on Debian Trixie. Additionally, add a step in the CI to build for Trixie to ensure there are no new breakages. Signed-off-by: Saikrishna Arcot <sarcot@microsoft.com> * Fix pipeline yaml Signed-off-by: Saikrishna Arcot <sarcot@microsoft.com> * Update swig package name Signed-off-by: Saikrishna Arcot <sarcot@microsoft.com> * Download libpcre3 for Trixie build Signed-off-by: Saikrishna Arcot <sarcot@microsoft.com> * Add missing task line Signed-off-by: Saikrishna Arcot <sarcot@microsoft.com> * Fix armhf compile error when building with 64-bit time Signed-off-by: Saikrishna Arcot <sarcot@microsoft.com> * Try to fix build and gcovr errors Signed-off-by: Saikrishna Arcot <sarcot@microsoft.com> * Exclude libswsscommon inside for-loop as well Signed-off-by: Saikrishna Arcot <sarcot@microsoft.com> * Delete code coverage files from libswsscommon Signed-off-by: Saikrishna Arcot <sarcot@microsoft.com> --------- Signed-off-by: Saikrishna Arcot <sarcot@microsoft.com>
1 parent 985742f commit bd820a0

File tree

12 files changed

+105
-18
lines changed

12 files changed

+105
-18
lines changed

.azure-pipelines/build-template.yml

Lines changed: 32 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -98,7 +98,7 @@ jobs:
9898
docbook-utils \
9999
aspell-en \
100100
libhiredis-dev \
101-
swig4.0 \
101+
swig \
102102
libzmq3-dev \
103103
autoconf-archive
104104
@@ -130,7 +130,7 @@ jobs:
130130
displayName: "Install libnl for arm dependencies"
131131
- task: DownloadPipelineArtifact@2
132132
# amd64 artifact name does not has arch suffix
133-
condition: eq('${{ parameters.arch }}', 'amd64')
133+
condition: and(ne('${{ parameters.debian_version }}', 'trixie'), eq('${{ parameters.arch }}', 'amd64'))
134134
inputs:
135135
source: specific
136136
project: build
@@ -143,7 +143,33 @@ jobs:
143143
target/debs/${{ parameters.debian_version }}/libyang_*.deb
144144
displayName: "Download libyang from amd64 common lib"
145145
- task: DownloadPipelineArtifact@2
146-
condition: ne('${{ parameters.arch }}', 'amd64')
146+
condition: and(ne('${{ parameters.debian_version }}', 'trixie'), ne('${{ parameters.arch }}', 'amd64'))
147+
inputs:
148+
source: specific
149+
project: build
150+
pipeline: Azure.sonic-buildimage.common_libs
151+
runVersion: 'latestFromBranch'
152+
runBranch: 'refs/heads/$(BUILD_BRANCH)'
153+
path: $(Build.ArtifactStagingDirectory)/download
154+
artifact: common-lib.${{ parameters.arch }}
155+
patterns: |
156+
target/debs/${{ parameters.debian_version }}/libyang_*.deb
157+
- task: DownloadPipelineArtifact@2
158+
condition: and(eq('${{ parameters.debian_version }}', 'trixie'), eq('${{ parameters.arch }}', 'amd64'))
159+
inputs:
160+
source: specific
161+
project: build
162+
pipeline: Azure.sonic-buildimage.common_libs
163+
runVersion: 'latestFromBranch'
164+
runBranch: 'refs/heads/$(BUILD_BRANCH)'
165+
path: $(Build.ArtifactStagingDirectory)/download
166+
artifact: common-lib
167+
patterns: |
168+
target/debs/${{ parameters.debian_version }}/libyang_*.deb
169+
target/debs/${{ parameters.debian_version }}/libpcre3_*.deb
170+
displayName: "Download libyang from amd64 common lib"
171+
- task: DownloadPipelineArtifact@2
172+
condition: and(eq('${{ parameters.debian_version }}', 'trixie'), ne('${{ parameters.arch }}', 'amd64'))
147173
inputs:
148174
source: specific
149175
project: build
@@ -154,6 +180,7 @@ jobs:
154180
artifact: common-lib.${{ parameters.arch }}
155181
patterns: |
156182
target/debs/${{ parameters.debian_version }}/libyang_*.deb
183+
target/debs/${{ parameters.debian_version }}/libpcre3_*.deb
157184
displayName: "Download libyang from common lib"
158185
- script: |
159186
set -ex
@@ -235,7 +262,8 @@ jobs:
235262
sudo setcap "cap_dac_override,cap_ipc_lock,cap_ipc_owner,cap_sys_time=eip" unittest/syncd/.libs/tests
236263
make check
237264
gcovr --version
238-
find SAI/meta -name "*.gc*" | xargs rm -vf
265+
find SAI/meta -name "*.gc*" -print -delete
266+
find -name 'libswsscommon_la*.gcda' -print -delete
239267
gcov_dirs=$(find . -path "*.libs*gcda" | xargs dirname | sort -u | cut -c"3-")
240268
for dir in ${gcov_dirs}; do
241269
source_dir=$(dirname $dir)

azure-pipelines.yml

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -99,6 +99,39 @@ stages:
9999
syslog_artifact_name: sonic-sairedis.syslog.arm64
100100
debian_version: ${{ parameters.debian_version }}
101101

102+
- stage: BuildTrixie
103+
dependsOn: BuildArm
104+
condition: succeeded('BuildArm')
105+
jobs:
106+
- template: .azure-pipelines/build-template.yml
107+
parameters:
108+
arch: amd64
109+
swss_common_artifact_name: sonic-swss-common-trixie
110+
artifact_name: sonic-sairedis-trixie
111+
syslog_artifact_name: sonic-sairedis-trixie.syslog
112+
run_unit_test: true
113+
debian_version: trixie
114+
115+
- template: .azure-pipelines/build-template.yml
116+
parameters:
117+
arch: armhf
118+
timeout: 180
119+
pool: sonicso1ES-armhf
120+
swss_common_artifact_name: sonic-swss-common-trixie.armhf
121+
artifact_name: sonic-sairedis-trixie.armhf
122+
syslog_artifact_name: sonic-sairedis-trixie.syslog.armhf
123+
debian_version: trixie
124+
125+
- template: .azure-pipelines/build-template.yml
126+
parameters:
127+
arch: arm64
128+
timeout: 180
129+
pool: sonicso1ES-arm64
130+
swss_common_artifact_name: sonic-swss-common-trixie.arm64
131+
artifact_name: sonic-sairedis-trixie.arm64
132+
syslog_artifact_name: sonic-sairedis-trixie.syslog.arm64
133+
debian_version: trixie
134+
102135
- stage: BuildSwss
103136
dependsOn: Build
104137
condition: succeeded('Build')

configure.ac

Lines changed: 0 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -205,17 +205,6 @@ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([])],
205205
[AC_MSG_RESULT([no])])
206206
CXXFLAGS="$SAVED_FLAGS"
207207

208-
AC_SUBST(NO_CAST_FUNCTION_TYPE)
209-
210-
SAVED_FLAGS="$CXXFLAGS"
211-
CXXFLAGS="-Wno-cast-function-type"
212-
AC_MSG_CHECKING([whether CXX supports -Wno-cast-function-type])
213-
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([])],
214-
[AC_MSG_RESULT([yes])]
215-
[AC_SUBST([NO_CAST_FUNCTION_TYPE], ["-Wno-cast-function-type"])],
216-
[AC_MSG_RESULT([no])])
217-
CXXFLAGS="$SAVED_FLAGS"
218-
219208
AC_SUBST(CXXFLAGS_COMMON)
220209

221210
# -lvlibapi -lvapiclient -lvppapiclient -lvlibmemoryclient -lsvm -lvppinfra -lvlib -lvatplugin

lib/ClientSai.h

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -97,6 +97,13 @@ namespace sairedis
9797
_In_ sai_bulk_op_error_mode_t mode,
9898
_Out_ sai_status_t *object_statuses) override;
9999

100+
public: // QUAD meta key
101+
102+
using SaiInterface::remove;
103+
using SaiInterface::get;
104+
using SaiInterface::create;
105+
using SaiInterface::set;
106+
100107
public: // stats API
101108

102109
virtual sai_status_t getStats(

lib/Recorder.cpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
#include "meta/Globals.h"
66
#include "meta/SaiInterface.h"
77

8+
#include <cstdint>
89
#include <unistd.h>
910
#include <inttypes.h>
1011

@@ -269,7 +270,7 @@ std::string Recorder::getTimestamp()
269270

270271
size_t size = strftime(buffer, 32, "%Y-%m-%d.%T.", &now);
271272

272-
snprintf(&buffer[size], 32, "%06ld", tv.tv_usec);
273+
snprintf(&buffer[size], 32, "%06" PRIdMAX, (int64_t) tv.tv_usec);
273274

274275
return std::string(buffer);
275276
}

lib/RedisRemoteSaiInterface.h

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -108,6 +108,13 @@ namespace sairedis
108108
_In_ sai_bulk_op_error_mode_t mode,
109109
_Out_ sai_status_t *object_statuses) override;
110110

111+
public: // QUAD meta key
112+
113+
using SaiInterface::remove;
114+
using SaiInterface::get;
115+
using SaiInterface::create;
116+
using SaiInterface::set;
117+
111118
public: // stats API
112119

113120
virtual sai_status_t getStats(

lib/Sai.h

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -98,6 +98,13 @@ namespace sairedis
9898
_In_ sai_bulk_op_error_mode_t mode,
9999
_Out_ sai_status_t *object_statuses) override;
100100

101+
public: // QUAD meta key
102+
103+
using SaiInterface::remove;
104+
using SaiInterface::get;
105+
using SaiInterface::create;
106+
using SaiInterface::set;
107+
101108
public: // stats API
102109

103110
virtual sai_status_t getStats(

proxylib/Sai.h

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -100,6 +100,13 @@ namespace saiproxy
100100
_In_ sai_bulk_op_error_mode_t mode,
101101
_Out_ sai_status_t *object_statuses) override;
102102

103+
public: // QUAD meta key
104+
105+
using SaiInterface::remove;
106+
using SaiInterface::get;
107+
using SaiInterface::create;
108+
using SaiInterface::set;
109+
103110
public: // stats API
104111

105112
virtual sai_status_t getStats(

pyext/py3/Makefile.am

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ BUILT_SOURCES = pysairedis_wrap.cpp
1010

1111
_pysairedis_la_SOURCES = pysairedis_wrap.cpp $(SOURCES)
1212
_pysairedis_la_CXXFLAGS = $(PYTHON3_CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS_COMMON) \
13-
-Wno-cast-qual -Wno-shadow -Wno-redundant-decls -Wno-conversion $(NO_CAST_FUNCTION_TYPE)
13+
-Wno-cast-align -Wno-cast-qual -Wno-shadow -Wno-redundant-decls
1414

1515
_pysairedis_la_LDFLAGS = -module \
1616
-lhiredis -lswsscommon -lpthread \

syncd/ConcurrentQueue.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ namespace syncd
3737
std::queue<T> m_queue;
3838
size_t m_queueSizeLimit;
3939

40-
ConcurrentQueue<T>(const ConcurrentQueue<T>&) = delete;
40+
ConcurrentQueue(const ConcurrentQueue<T>&) = delete;
4141
ConcurrentQueue<T>& operator=(const ConcurrentQueue<T>&) = delete;
4242
};
4343

0 commit comments

Comments
 (0)