[Tarantool-patches] [PATCH] Add a check whether glibc is used

lvasiliev lvasiliev at tarantool.org
Thu Apr 23 14:37:32 MSK 2020



On 23.04.2020 13:52, Alexander Turenko wrote:
> LGTM.
> 
> Several minor comments are below.
> 
>> Add a check whether glibc is used
> 
> Please, add 'build' prefix.
> 
> On Tue, Apr 21, 2020 at 08:44:57PM +0300, Leonid Vasiliev wrote:
>> The cbus hang test uses glibc pthread mutex implementation details.
>> Therefore, it should not compile in case of using another library.
> 
> Reviewed-by: Alexander Turenko <alexander.turenko at tarantool.org>
> 
>> ---
>> Now the compilation for alpine 3.5 is broken.
> 
> It worth to include certain motivation right into the commit message:
> fix compilation on Alpine 3.5 is this case.
> 
>>
>> https://github.com/tarantool/tarantool/tree/lvasiliev/gh-noticket-glibc-check
> 
> I would check it on '-full-ci' branch just in case.
> 
>>
>>   test/unit/CMakeLists.txt | 4 +++-
>>   1 file changed, 3 insertions(+), 1 deletion(-)
>>
>> diff --git a/test/unit/CMakeLists.txt b/test/unit/CMakeLists.txt
>> index 24586c2..699cd8c 100644
>> --- a/test/unit/CMakeLists.txt
>> +++ b/test/unit/CMakeLists.txt
>> @@ -104,7 +104,9 @@ target_link_libraries(cbus_stress.test core stat)
>>   add_executable(cbus.test cbus.c)
>>   target_link_libraries(cbus.test core unit stat)
>>   
>> -if (${CMAKE_HOST_SYSTEM_NAME} MATCHES "Linux")
>> +include(CheckSymbolExists)
>> +check_symbol_exists(__GLIBC__ stdio.h GLIBC_USED)
> 
> On my system the macro is defined in features.h.
> 
>> +if (GLIBC_USED)
>>       add_executable(cbus_hang.test cbus_hang.c)
>>       target_link_libraries(cbus_hang.test core unit stat)
>>   endif ()
Updated.

diff --git a/test/unit/CMakeLists.txt b/test/unit/CMakeLists.txt
index 699cd8c..84eb066 100644
--- a/test/unit/CMakeLists.txt
+++ b/test/unit/CMakeLists.txt
@@ -105,7 +105,7 @@ add_executable(cbus.test cbus.c)
  target_link_libraries(cbus.test core unit stat)

  include(CheckSymbolExists)
-check_symbol_exists(__GLIBC__ stdio.h GLIBC_USED)
+check_symbol_exists(__GLIBC__ features.h GLIBC_USED)
  if (GLIBC_USED)
      add_executable(cbus_hang.test cbus_hang.c)
      target_link_libraries(cbus_hang.test core unit stat)

Message:
commit 7afdd51bf559a27565302067a078996139fec4b8
Author: Leonid Vasiliev <lvasiliev at tarantool.org>
Date:   Tue Apr 21 19:16:17 2020 +0300

     build: fix compilation on Alpine 3.5

     The cbus hang test uses glibc pthread mutex implementation details.
     The reason why mutex implementation details is used:
     "For the bug reproducing the canceled thread must be canceled
     during processing cpipe_flush_cb. We need to synchronize
     the main thread and the canceled worker thread for that.
     So, thread synchronization has been realized by means of
     endpoint's mutex internal field(__data.__lock)."
     Therefore, it should not compile in case of using another library.


More information about the Tarantool-patches mailing list