google / tcmalloc

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Unable to compile tcmalloc on Alpine Linux

jvoisin opened this issue · comments

I'm currently trying to add tcmalloc to the mimalloc-bench repository, and run it on Alpine Linux. Unfortunately, it doesn't compile:

/__w/mimalloc-bench/mimalloc-bench/extern /__w/mimalloc-bench/mimalloc-bench
Cloning into 'tcg'...
HEAD is now at 0fdd7dc Make SampledAllocation accept a stack trace at initialization.
Extracting Bazel installation...
Starting local Bazel server and connecting to it...
Loading: 
Loading: 0 packages loaded
Loading: 0 packages loaded
Loading: 0 packages loaded
Loading: 0 packages loaded
    currently loading: tcmalloc
Analyzing: target //tcmalloc:tcmalloc (1 packages loaded, 0 targets configured)
Analyzing: target //tcmalloc:tcmalloc (12 packages loaded, 23 targets configured)
INFO: Analyzed target //tcmalloc:tcmalloc (34 packages loaded, 487 targets configured).
INFO: Found 1 target...
[0 / 4] [Prepa] BazelWorkspaceStatusAction stable-status.txt
[3 / 47] Compiling absl/synchronization/internal/graphcycles.cc; 1s processwrapper-sandbox ... (2 actions running)
[6 / 49] Compiling tcmalloc/tcmalloc.cc; 2s processwrapper-sandbox ... (2 actions running)
ERROR: /__w/mimalloc-bench/mimalloc-bench/extern/tcg/tcmalloc/BUILD:87:10: Compiling tcmalloc/tcmalloc.cc failed: (Exit 1): gcc failed: error executing command /usr/bin/gcc -U_FORTIFY_SOURCE -fstack-protector -Wall -Wunused-but-set-parameter -Wno-free-nonheap-object -fno-omit-frame-pointer -g0 -O2 '-D_FORTIFY_SOURCE=1' -DNDEBUG -ffunction-sections ... (remaining 37 argument(s) skipped)
Use --sandbox_debug to see verbose messages from the sandbox
tcmalloc/tcmalloc.cc:2210:41: error: declaration of 'void* TCMallocInternalMalloc(size_t) noexcept' has a different exception specifier
 2210 | extern "C" ABSL_CACHELINE_ALIGNED void* TCMallocInternalMalloc(
      |                                         ^~~~~~~~~~~~~~~~~~~~~~
In file included from tcmalloc/tcmalloc.cc:49:
./tcmalloc/tcmalloc.h:43:7: note: from previous declaration 'void* TCMallocInternalMalloc(size_t)'
   43 | void* TCMallocInternalMalloc(size_t size) __THROW
      |       ^~~~~~~~~~~~~~~~~~~~~~
tcmalloc/tcmalloc.cc:2266:40: error: declaration of 'void TCMallocInternalFree(void*) noexcept' has a different exception specifier
 2266 | extern "C" ABSL_CACHELINE_ALIGNED void TCMallocInternalFree(
      |                                        ^~~~~~~~~~~~~~~~~~~~
In file included from tcmalloc/tcmalloc.cc:49:
./tcmalloc/tcmalloc.h:45:6: note: from previous declaration 'void TCMallocInternalFree(void*)'
   45 | void TCMallocInternalFree(void* ptr) __THROW
      |      ^~~~~~~~~~~~~~~~~~~~
tcmalloc/tcmalloc.cc:2271:17: error: declaration of 'void TCMallocInternalSdallocx(void*, size_t, int) noexcept' has a different exception specifier
 2271 | extern "C" void TCMallocInternalSdallocx(void* ptr, size_t size,
      |                 ^~~~~~~~~~~~~~~~~~~~~~~~
In file included from tcmalloc/tcmalloc.cc:49:
./tcmalloc/tcmalloc.h:47:6: note: from previous declaration 'void TCMallocInternalSdallocx(void*, size_t, int)'
   47 | void TCMallocInternalSdallocx(void* ptr, size_t size, int flags) __THROW
      |      ^~~~~~~~~~~~~~~~~~~~~~~~
tcmalloc/tcmalloc.cc:2283:18: error: declaration of 'void* TCMallocInternalCalloc(size_t, size_t) noexcept' has a different exception specifier
 2283 | extern "C" void* TCMallocInternalCalloc(size_t n, size_t elem_size) noexcept {
      |                  ^~~~~~~~~~~~~~~~~~~~~~
In file included from tcmalloc/tcmalloc.cc:49:
./tcmalloc/tcmalloc.h:51:7: note: from previous declaration 'void* TCMallocInternalCalloc(size_t, size_t)'
   51 | void* TCMallocInternalCalloc(size_t n, size_t size) __THROW
      |       ^~~~~~~~~~~~~~~~~~~~~~
tcmalloc/tcmalloc.cc:2299:17: error: declaration of 'void TCMallocInternalCfree(void*) noexcept' has a different exception specifier
 2299 | extern "C" void TCMallocInternalCfree(void* ptr) noexcept
      |                 ^~~~~~~~~~~~~~~~~~~~~
In file included from tcmalloc/tcmalloc.cc:49:
./tcmalloc/tcmalloc.h:53:6: note: from previous declaration 'void TCMallocInternalCfree(void*)'
   53 | void TCMallocInternalCfree(void* ptr) __THROW
      |      ^~~~~~~~~~~~~~~~~~~~~
tcmalloc/tcmalloc.cc:2356:18: error: declaration of 'void* TCMallocInternalRealloc(void*, size_t) noexcept' has a different exception specifier
 2356 | extern "C" void* TCMallocInternalRealloc(void* old_ptr,
      |                  ^~~~~~~~~~~~~~~~~~~~~~~
In file included from tcmalloc/tcmalloc.cc:49:
./tcmalloc/tcmalloc.h:49:7: note: from previous declaration 'void* TCMallocInternalRealloc(void*, size_t)'
   49 | void* TCMallocInternalRealloc(void* ptr, size_t size) __THROW
      |       ^~~~~~~~~~~~~~~~~~~~~~~
tcmalloc/tcmalloc.cc:2368:18: error: declaration of 'void* TCMallocInternalNewNothrow(size_t, const std::nothrow_t&) noexcept' has a different exception specifier
 2368 | extern "C" void* TCMallocInternalNewNothrow(size_t size,
      |                  ^~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from tcmalloc/tcmalloc.cc:49:
./tcmalloc/tcmalloc.h:92:7: note: from previous declaration 'void* TCMallocInternalNewNothrow(size_t, const std::nothrow_t&)'
   92 | void* TCMallocInternalNewNothrow(size_t size, const std::nothrow_t&) __THROW
      |       ^~~~~~~~~~~~~~~~~~~~~~~~~~
tcmalloc/tcmalloc.cc:2391:40: error: declaration of 'void TCMallocInternalDelete(void*) noexcept' has a different exception specifier
 2391 | extern "C" ABSL_CACHELINE_ALIGNED void TCMallocInternalDelete(void* p) noexcept
      |                                        ^~~~~~~~~~~~~~~~~~~~~~
In file included from tcmalloc/tcmalloc.cc:49:
./tcmalloc/tcmalloc.h:94:6: note: from previous declaration 'void TCMallocInternalDelete(void*)'
   94 | void TCMallocInternalDelete(void* p) __THROW
      |      ^~~~~~~~~~~~~~~~~~~~~~
tcmalloc/tcmalloc.cc:2400:17: error: declaration of 'void TCMallocInternalDeleteAligned(void*, std::align_val_t) noexcept' has a different exception specifier
 2400 | extern "C" void TCMallocInternalDeleteAligned(
      |                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from tcmalloc/tcmalloc.cc:49:
./tcmalloc/tcmalloc.h:96:6: note: from previous declaration 'void TCMallocInternalDeleteAligned(void*, std::align_val_t)'
   96 | void TCMallocInternalDeleteAligned(void* p, std::align_val_t alignment) __THROW
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
tcmalloc/tcmalloc.cc:2414:40: error: declaration of 'void TCMallocInternalDeleteSized(void*, size_t) noexcept' has a different exception specifier
 2414 | extern "C" ABSL_CACHELINE_ALIGNED void TCMallocInternalDeleteSized(
      |                                        ^~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from tcmalloc/tcmalloc.cc:49:
./tcmalloc/tcmalloc.h:98:6: note: from previous declaration 'void TCMallocInternalDeleteSized(void*, size_t)'
   98 | void TCMallocInternalDeleteSized(void* p, size_t size) __THROW
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~
tcmalloc/tcmalloc.cc:2420:17: error: declaration of 'void TCMallocInternalDeleteSizedAligned(void*, size_t, std::align_val_t) noexcept' has a different exception specifier
 2420 | extern "C" void TCMallocInternalDeleteSizedAligned(
      |                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from tcmalloc/tcmalloc.cc:49:
./tcmalloc/tcmalloc.h:100:6: note: from previous declaration 'void TCMallocInternalDeleteSizedAligned(void*, size_t, std::align_val_t)'
  100 | void TCMallocInternalDeleteSizedAligned(void* p, size_t t,
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
tcmalloc/tcmalloc.cc:2425:17: error: declaration of 'void TCMallocInternalDeleteArraySized(void*, size_t) noexcept' has a different exception specifier
 2425 | extern "C" void TCMallocInternalDeleteArraySized(void* p, size_t size) noexcept
      |                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from tcmalloc/tcmalloc.cc:49:
./tcmalloc/tcmalloc.h:117:6: note: from previous declaration 'void TCMallocInternalDeleteArraySized(void*, size_t)'
  117 | void TCMallocInternalDeleteArraySized(void* p, size_t size) __THROW
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
tcmalloc/tcmalloc.cc:2434:17: error: declaration of 'void TCMallocInternalDeleteArraySizedAligned(void*, size_t, std::align_val_t) noexcept' has a different exception specifier
 2434 | extern "C" void TCMallocInternalDeleteArraySizedAligned(
      |                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from tcmalloc/tcmalloc.cc:49:
./tcmalloc/tcmalloc.h:119:6: note: from previous declaration 'void TCMallocInternalDeleteArraySizedAligned(void*, size_t, std::align_val_t)'
  119 | void TCMallocInternalDeleteArraySizedAligned(void* p, size_t t,
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
tcmalloc/tcmalloc.cc:2447:17: error: declaration of 'void TCMallocInternalDeleteNothrow(void*, const std::nothrow_t&) noexcept' has a different exception specifier
 2447 | extern "C" void TCMallocInternalDeleteNothrow(void* p,
      |                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from tcmalloc/tcmalloc.cc:49:
./tcmalloc/tcmalloc.h:103:6: note: from previous declaration 'void TCMallocInternalDeleteNothrow(void*, const std::nothrow_t&)'
  103 | void TCMallocInternalDeleteNothrow(void* p, const std::nothrow_t&) __THROW
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
tcmalloc/tcmalloc.cc:2493:18: error: declaration of 'void* TCMallocInternalNewArrayNothrow(size_t, const std::nothrow_t&) noexcept' has a different exception specifier
 2493 | extern "C" void* TCMallocInternalNewArrayNothrow(size_t size,
      |                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from tcmalloc/tcmalloc.cc:49:
./tcmalloc/tcmalloc.h:109:7: note: from previous declaration 'void* TCMallocInternalNewArrayNothrow(size_t, const std::nothrow_t&)'
  109 | void* TCMallocInternalNewArrayNothrow(size_t size,
      |       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
tcmalloc/tcmalloc.cc:2520:17: error: declaration of 'void TCMallocInternalDeleteArray(void*) noexcept' has a different exception specifier
 2520 | extern "C" void TCMallocInternalDeleteArray(void* p) noexcept
      |                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from tcmalloc/tcmalloc.cc:49:
./tcmalloc/tcmalloc.h:112:6: note: from previous declaration 'void TCMallocInternalDeleteArray(void*)'
  112 | void TCMallocInternalDeleteArray(void* p) __THROW
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~
tcmalloc/tcmalloc.cc:2529:17: error: declaration of 'void TCMallocInternalDeleteArrayAligned(void*, std::align_val_t) noexcept' has a different exception specifier
 2529 | extern "C" void TCMallocInternalDeleteArrayAligned(
      |                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from tcmalloc/tcmalloc.cc:49:
./tcmalloc/tcmalloc.h:114:6: note: from previous declaration 'void TCMallocInternalDeleteArrayAligned(void*, std::align_val_t)'
  114 | void TCMallocInternalDeleteArrayAligned(void* p,
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
tcmalloc/tcmalloc.cc:2540:17: error: declaration of 'void TCMallocInternalDeleteArrayNothrow(void*, const std::nothrow_t&) noexcept' has a different exception specifier
 2540 | extern "C" void TCMallocInternalDeleteArrayNothrow(
      |                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from tcmalloc/tcmalloc.cc:49:
./tcmalloc/tcmalloc.h:122:6: note: from previous declaration 'void TCMallocInternalDeleteArrayNothrow(void*, const std::nothrow_t&)'
  122 | void TCMallocInternalDeleteArrayNothrow(void* p, const std::nothrow_t&) __THROW
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
tcmalloc/tcmalloc.cc:2566:18: error: declaration of 'void* TCMallocInternalMemalign(size_t, size_t) noexcept' has a different exception specifier
 2566 | extern "C" void* TCMallocInternalMemalign(size_t align, size_t size) noexcept {
      |                  ^~~~~~~~~~~~~~~~~~~~~~~~
In file included from tcmalloc/tcmalloc.cc:49:
./tcmalloc/tcmalloc.h:58:7: note: from previous declaration 'void* TCMallocInternalMemalign(size_t, size_t)'
   58 | void* TCMallocInternalMemalign(size_t align, size_t __size) __THROW
      |       ^~~~~~~~~~~~~~~~~~~~~~~~
tcmalloc/tcmalloc.cc:2571:18: error: declaration of 'void* TCMallocInternalAlignedAlloc(size_t, size_t) noexcept' has a different exception specifier
 2571 | extern "C" void* TCMallocInternalAlignedAlloc(size_t align,
      |                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from tcmalloc/tcmalloc.cc:49:
./tcmalloc/tcmalloc.h:56:7: note: from previous declaration 'void* TCMallocInternalAlignedAlloc(size_t, size_t)'
   56 | void* TCMallocInternalAlignedAlloc(size_t align, size_t __size) __THROW
      |       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
tcmalloc/tcmalloc.cc:2587:16: error: declaration of 'int TCMallocInternalPosixMemalign(void**, size_t, size_t) noexcept' has a different exception specifier
 2587 | extern "C" int TCMallocInternalPosixMemalign(void** result_ptr, size_t align,
      |                ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from tcmalloc/tcmalloc.cc:49:
./tcmalloc/tcmalloc.h:60:5: note: from previous declaration 'int TCMallocInternalPosixMemalign(void**, size_t, size_t)'
   60 | int TCMallocInternalPosixMemalign(void** ptr, size_t align, size_t size) __THROW
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
tcmalloc/tcmalloc.cc:2603:18: error: declaration of 'void* TCMallocInternalValloc(size_t) noexcept' has a different exception specifier
 2603 | extern "C" void* TCMallocInternalValloc(size_t size) noexcept {
      |                  ^~~~~~~~~~~~~~~~~~~~~~
In file included from tcmalloc/tcmalloc.cc:49:
./tcmalloc/tcmalloc.h:62:7: note: from previous declaration 'void* TCMallocInternalValloc(size_t)'
   62 | void* TCMallocInternalValloc(size_t __size) __THROW
      |       ^~~~~~~~~~~~~~~~~~~~~~
tcmalloc/tcmalloc.cc:2609:18: error: declaration of 'void* TCMallocInternalPvalloc(size_t) noexcept' has a different exception specifier
 2609 | extern "C" void* TCMallocInternalPvalloc(size_t size) noexcept {
      |                  ^~~~~~~~~~~~~~~~~~~~~~~
In file included from tcmalloc/tcmalloc.cc:49:
./tcmalloc/tcmalloc.h:64:7: note: from previous declaration 'void* TCMallocInternalPvalloc(size_t)'
   64 | void* TCMallocInternalPvalloc(size_t __size) __THROW
      |       ^~~~~~~~~~~~~~~~~~~~~~~
tcmalloc/tcmalloc.cc:2619:17: error: declaration of 'void TCMallocInternalMallocStats() noexcept' has a different exception specifier
 2619 | extern "C" void TCMallocInternalMallocStats(void) noexcept {
      |                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from tcmalloc/tcmalloc.cc:49:
./tcmalloc/tcmalloc.h:67:6: note: from previous declaration 'void TCMallocInternalMallocStats()'
   67 | void TCMallocInternalMallocStats(void) __THROW
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~
tcmalloc/tcmalloc.cc:2629:16: error: declaration of 'int TCMallocInternalMallOpt(int, int) noexcept' has a different exception specifier
 2629 | extern "C" int TCMallocInternalMallOpt(int cmd, int value) noexcept {
      |                ^~~~~~~~~~~~~~~~~~~~~~~
In file included from tcmalloc/tcmalloc.cc:49:
./tcmalloc/tcmalloc.h:73:5: note: from previous declaration 'int TCMallocInternalMallOpt(int, int)'
   73 | int TCMallocInternalMallOpt(int cmd, int value) __THROW
      |     ^~~~~~~~~~~~~~~~~~~~~~~
tcmalloc/tcmalloc.cc:2639:19: error: declaration of 'size_t TCMallocInternalMallocSize(void*) noexcept' has a different exception specifier
 2639 | extern "C" size_t TCMallocInternalMallocSize(void* ptr) noexcept {
      |                   ^~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from tcmalloc/tcmalloc.cc:49:
./tcmalloc/tcmalloc.h:85:8: note: from previous declaration 'size_t TCMallocInternalMallocSize(void*)'
   85 | size_t TCMallocInternalMallocSize(void* ptr) __THROW
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~
Target //tcmalloc:tcmalloc failed to build
Use --verbose_failures to see the command lines of failed build steps.
INFO: Elapsed time: 12.221s, Critical Path: 3.09s
INFO: 8 processes: 6 internal, 2 processwrapper-sandbox.
FAILED: Build did NOT complete successfully
FAILED: Build did NOT complete successfully
Error: Process completed with exit code 1.