On Thursday, 31 March 2016 at 20:21:00 UTC, Nordlöw wrote:
On Thursday, 31 March 2016 at 19:09:20 UTC, Basile B. wrote:
You need to install the "-devel" version to get the it as a static library. On OpenSuse it's named gperftools-devel.

Maybe on ubuntu it's this one:

"libgoogle-perftools-dev"

http://packages.ubuntu.com/fr/trusty/amd64/libgoogle-perftools-dev/filelist, because it 
contains the "*.a" static library you wanna link in.

Works. Wonderful. Thanks.

BTW: Will this affect D's builtin GC or does it use mmap directly?

It looks like if you manage to hook default malloc, free etc the GC will be affected.

But a simple try to call the functions from the static lib fails (the first script line is passed to DMD by my editor):


    #!runnable flags: -L-ltcmalloc
    extern(C) void* tc_malloc(size_t size);
    extern(C) void  tc_free(void* ptr);

    void main(string[] args)
    {
        auto p = tc_malloc(16);
        tc_free(p);
    }

/tmp/temp_7FCC33C16DF0.d:(.text._Dmain+0xa): référence indéfinie vers « tc_malloc » /tmp/temp_7FCC33C16DF0.d:(.text._Dmain+0x12): référence indéfinie vers « tc_free »

interface seems to be this:
https://github.com/gperftools/gperftools/blob/master/src/gperftools/tcmalloc.h.in#L88

Do you have the interface or the D sources to call the functions ?

Reply via email to