
This commit adds the libbnxt_re Infiniband verbs library to Debian-based StarlingX. In comparison to commit 9baff8aa884a ("Introduce libbnxt_re version 220.0.5.0") and commit 4112936362c6 ("libbnxt_re: Add support for rdma-core v37") that introduce the same library to CentOS-based StarlingX, the only change in this commit was to remove the use of the "stdatomic.h" header's compatibility-oriented version shipped with libbxnt_re. This header file is already provided by Debian's newer toolchain. The two patches make the library compatible with rdma-core v37 provided by Mellanox OFED's version of rdma-core. For further information, please see commit 4112936362c6 ("libbnxt_re: Add support for rdma-core v37"). Verification notes: - An ISO image with the standard kernel was successfully built with this commit and the resulting ISO image was installed onto a physical server with a quad-port Broadcom NetXtreme-E network adapter, of which the third and fourth ports were connected to each other with a loopback cable. - When we installed the Linux RDMA community's perftest package on Debian-based StarlingX with apt-get and attempted to run the benchmark programs, we encountered a dynamically-linked library error caused by the "libefa.so" Infiniband verbs library (that perftest's utilities appear to link against) not existing on the system. This occurs because the Mellanox OFED version of the rdma-core package in StarlingX does not build the libefa.so library. To work around this, we built the perftest package in a Debian Bullseye container, after having modified perftest's configure.ac file to avoid linking against libefa.so. The resulting binaries were successfully used on the aforementioned server to verify the libbnxt_re Infiniband verbs library and the bnxt_re driver. The test procedure consisted of using a server ib_write_bw instance on the 3rd port of the network adapter and another instance as a client on the 4th port of the network adapter. (Recall that ports 3 and 4 were connected to each other.) - The preempt-rt kernel was not tested due to not being able to generate a working ISO image that installed onto a virtual machine. (The installation process was aborted with a kickstart file parse error.) Story: 2009915 Task: 45139 Change-Id: I917c18ef262afdf3ddfaa7e31af2583b8f74300b Signed-off-by: M. Vefa Bicakci <vefa.bicakci@windriver.com>
54 lines
2.0 KiB
Makefile
Executable File
54 lines
2.0 KiB
Makefile
Executable File
#!/usr/bin/make -f
|
|
#
|
|
# Copyright (c) 2022 Wind River Systems, Inc.
|
|
#
|
|
# Licensed to the Apache Software Foundation (ASF) under one
|
|
# or more contributor license agreements. The ASF licenses this
|
|
# file to you under the Apache License, Version 2.0 (the
|
|
# "License"); you may not use this file except in compliance
|
|
# with the License. You may obtain a copy of the License at
|
|
#
|
|
# http://www.apache.org/licenses/LICENSE-2.0
|
|
#
|
|
# Unless required by applicable law or agreed to in writing,
|
|
# software distributed under the License is distributed on an
|
|
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
|
# KIND, either express or implied. See the License for the
|
|
# specific language governing permissions and limitations
|
|
# under the License.
|
|
#
|
|
|
|
# output every command that modifies files on the build system.
|
|
#export DH_VERBOSE = 1
|
|
|
|
include /usr/share/dpkg/architecture.mk
|
|
|
|
libdir=/usr/lib/$(DEB_HOST_MULTIARCH)
|
|
debdir=debian/libbnxt-re
|
|
|
|
%:
|
|
dh $@
|
|
|
|
override_dh_auto_install:
|
|
dh_auto_install
|
|
# Now, the following symbolic link exists:
|
|
# /usr/lib/x86_64-linux-gnu/libbnxt_re.so -> libbnxt_re-rdmav34.so
|
|
#
|
|
# We need to create the following symbolic link as well:
|
|
# /usr/lib/x86_64-linux-gnu/libibverbs/libbnxt_re-rdmav34.so -> ../libbnxt_re-rdmav34.so
|
|
#
|
|
# To avoid hard-coding the version (v34), read the link.
|
|
libname="$$(readlink "$(debdir)/$(libdir)/libbnxt_re.so")" && \
|
|
mkdir -p "$(debdir)/$(libdir)/libibverbs/" && \
|
|
ln -s "../$${libname}" "$(debdir)/$(libdir)/libibverbs/$${libname}"
|
|
# Remove static library and libtool archive files.
|
|
# - Static library is not necessary given that no other packages statically
|
|
# link against the libbnxt_re library.
|
|
# - Libtool archive files (*.la) are not recommended to be included in
|
|
# Debian packages:
|
|
# https://www.debian.org/doc/manuals/maint-guide/advanced.en.html#library
|
|
# https://wiki.debian.org/ReleaseGoals/LAFileRemoval
|
|
rm -vf \
|
|
$(debdir)/$(libdir)/libbnxt_re.a \
|
|
$(debdir)/$(libdir)/libbnxt_re.la
|