xref: /spdk/mk/spdk.mock.unittest.mk (revision 35948d8fa1067b2602a9de28cc183cae5b9e17cd)
1488570ebSJim Harris#  SPDX-License-Identifier: BSD-3-Clause
2a6dbe372Spaul luse#  Copyright (C) 2015 Intel Corporation.
395a2dcb3SPaul Luse#  All rights reserved.
495a2dcb3SPaul Luse#
5a6dbe372Spaul luse
6*35948d8fSKonrad SztyberSPDK_MOCK_SYMBOLS += \
72a8065b5SNick Connolly	calloc \
82a8065b5SNick Connolly	pthread_mutexattr_init \
92a8065b5SNick Connolly	pthread_mutex_init \
102a8065b5SNick Connolly	recvmsg \
112a8065b5SNick Connolly	sendmsg \
122a8065b5SNick Connolly	writev
132a8065b5SNick Connolly
142a8065b5SNick Connollydefine add_wrap_with_prefix
152a8065b5SNick Connolly$(2:%=-Wl,--wrap,$(1)%)
162a8065b5SNick Connollyendef
172a8065b5SNick Connolly
182a8065b5SNick Connollyifeq ($(OS),Windows)
192a8065b5SNick Connolly# Windows needs a thin layer above the system calls to provide POSIX
202a8065b5SNick Connolly# functionality. For GCC, use the prefix wpdk_ to ensure that the layer
212a8065b5SNick Connolly# is called. For other compilers, --wrap is not supported so the layer
222a8065b5SNick Connolly# implements an alternative mechanism to enable mocking.
232a8065b5SNick Connollyifeq ($(CC_TYPE),gcc)
24*35948d8fSKonrad SztyberLDFLAGS += $(call add_wrap_with_prefix,wpdk_,$(SPDK_MOCK_SYMBOLS))
252a8065b5SNick Connollyendif
262a8065b5SNick Connollyelse
27*35948d8fSKonrad SztyberLDFLAGS += $(call add_wrap_with_prefix,,$(SPDK_MOCK_SYMBOLS))
282a8065b5SNick Connollyendif
29