[compiler-rt] r364332 - [scudo][standalone] Introduce the C & C++ wrappers

Hans Wennborg via llvm-commits llvm-commits at lists.llvm.org
Wed Jun 26 02:47:28 PDT 2019


It broke Chromium's build too:
https://logs.chromium.org/logs/chromium/buildbucket/cr-buildbucket.appspot.com/8909601197093055184/+/steps/gclient_runhooks/0/stdout

I've reverted in r364400.

On Wed, Jun 26, 2019 at 4:07 AM via llvm-commits
<llvm-commits at lists.llvm.org> wrote:
>
> Hi Kostya,
>
> This commit failed to build on our internal build bot. The build is bot is running linux and using gcc 5.4.0 to build which results in the following error:
>
> FAILED: CCACHE_CPP2=yes CCACHE_HASHDIR=yes /usr/bin/ccache /usr/lib/ccache/g++   -D_DEBUG -D_GNU_SOURCE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -Iprojects/compiler-rt/lib/scudo/standalone -I/home/siadmin/jenkins/w/opensource/opensource_build/llvm/projects/compiler-rt/lib/scudo/standalone -Iinclude -I/home/siadmin/jenkins/w/opensource/opensource_build/llvm/include -I/home/siadmin/jenkins/w/opensource/opensource_build/llvm/projects/compiler-rt/lib/scudo/standalone/../.. -fPIC -fvisibility-inlines-hidden -Werror=date-time -std=c++11 -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wno-missing-field-initializers -pedantic -Wno-long-long -Wno-maybe-uninitialized -Wdelete-non-virtual-dtor -Wno-comment -fdiagnostics-color -ffunction-sections -fdata-sections -Wall -std=c++11 -Wno-unused-parameter -O3    -UNDEBUG  -m64 -Wall -nostdinc++ -ffreestanding -fvisibility=hidden -O3 -MMD -MT projects/compiler-rt/lib/scudo/standalone/CMakeFiles/RTScudoStandaloneCWrappers.x86_64.dir/wrappers_c.cc.o -MF projects/compiler-rt/lib/scudo/standalone/CMakeFiles/RTScudoStandaloneCWrappers.x86_64.dir/wrappers_c.cc.o.d -o projects/compiler-rt/lib/scudo/standalone/CMakeFiles/RTScudoStandaloneCWrappers.x86_64.dir/wrappers_c.cc.o -c /home/siadmin/jenkins/w/opensource/opensource_build/llvm/projects/compiler-rt/lib/scudo/standalone/wrappers_c.cc
> In file included from /home/siadmin/jenkins/w/opensource/opensource_build/llvm/projects/compiler-rt/lib/scudo/standalone/wrappers_c.cc:31:0:
> /home/siadmin/jenkins/w/opensource/opensource_build/llvm/projects/compiler-rt/lib/scudo/standalone/wrappers_c.inc: In function 'void* calloc(size_t, size_t)':
> /home/siadmin/jenkins/w/opensource/opensource_build/llvm/projects/compiler-rt/lib/scudo/standalone/wrappers_c.inc:20:68: error: declaration of 'void* calloc(size_t, size_t)' has a different exception specifier
>  INTERFACE WEAK void *SCUDO_PREFIX(calloc)(size_t nmemb, size_t size) {
>                                                                     ^
> In file included from /home/siadmin/jenkins/w/opensource/opensource_build/llvm/projects/compiler-rt/lib/scudo/standalone/flags_parser.h:16:0,
>                  from /home/siadmin/jenkins/w/opensource/opensource_build/llvm/projects/compiler-rt/lib/scudo/standalone/combined.h:15,
>                  from /home/siadmin/jenkins/w/opensource/opensource_build/llvm/projects/compiler-rt/lib/scudo/standalone/allocator_config.h:12,
>                  from /home/siadmin/jenkins/w/opensource/opensource_build/llvm/projects/compiler-rt/lib/scudo/standalone/wrappers_c.cc:14:
> /usr/include/stdlib.h:468:14: error: from previous declaration 'void* calloc(size_t, size_t) throw ()'
>  extern void *calloc (size_t __nmemb, size_t __size)
>               ^
>
> Identical compiler errors are emitted for your definitions of calloc, free, malloc, posix_memalign, realloc, valloc, and aligned_alloc.
>
> Can you take a look?
>
> Douglas Yung
>
> -----Original Message-----
> From: llvm-commits <llvm-commits-bounces at lists.llvm.org> On Behalf Of Kostya Kortchinsky via llvm-commits
> Sent: Tuesday, June 25, 2019 9:51
> To: llvm-commits at lists.llvm.org
> Subject: [compiler-rt] r364332 - [scudo][standalone] Introduce the C & C++ wrappers
>
> Author: cryptoad
> Date: Tue Jun 25 09:51:27 2019
> New Revision: 364332
>
> URL: http://llvm.org/viewvc/llvm-project?rev=364332&view=rev
> Log:
> [scudo][standalone] Introduce the C & C++ wrappers
>
> Summary:
> This CL adds C & C++ wrappers and associated tests. Those use default configurations for a Scudo combined allocator that will likely be tweaked in the future.
>
> This is the final CL required to have a functional C & C++ allocator based on Scudo.
>
> The structure I have chosen is to define the core C allocation primitives in an `.inc` file that can be customized through defines.
> This allows to easily have 2 (or more) sets of wrappers backed by different combined allocators, as demonstrated by the `Bionic`
> wrappers: one set for the "default" allocator, one set for the "svelte"
> allocator.
>
> Currently all the tests added have been gtests, but I am planning to add some more lit tests as well.
>
> Reviewers: morehouse, eugenis, vitalybuka, hctim, rengolin
>
> Reviewed By: morehouse
>
> Subscribers: srhines, mgorny, delcypher, jfb, #sanitizers, llvm-commits
>
> Tags: #llvm, #sanitizers
>
> Differential Revision: https://reviews.llvm.org/D63612


More information about the llvm-commits mailing list