X-Git-Url: http://plrg.eecs.uci.edu/git/?p=folly.git;a=blobdiff_plain;f=folly%2Fdetail%2FMalloc.h;h=74358f1ce39fb38118521dcbba389a1cdbfd1200;hp=2a04ff284777a8e38c99df59866afc6ea00c3eb5;hb=ed8c80a0e0988e4ce687f51ca832a00e4a6b7930;hpb=e9df6f7912089f65e85bb1dc160cae431992f8e5 diff --git a/folly/detail/Malloc.h b/folly/detail/Malloc.h index 2a04ff28..74358f1c 100644 --- a/folly/detail/Malloc.h +++ b/folly/detail/Malloc.h @@ -1,5 +1,5 @@ /* - * Copyright 2015 Facebook, Inc. + * Copyright 2017 Facebook, Inc. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -14,8 +14,7 @@ * limitations under the License. */ -#ifndef FOLLY_DETAIL_MALLOC_H -#define FOLLY_DETAIL_MALLOC_H +#pragma once #include @@ -48,8 +47,20 @@ extern int (*mallctl)(const char*, void*, size_t*, void*, size_t); extern int (*mallctlnametomib)(const char*, size_t*, size_t*); extern int (*mallctlbymib)(const size_t*, size_t, void*, size_t*, void*, size_t); +#ifdef _MSC_VER +// We emulate weak linkage for MSVC. The symbols we're +// aliasing to are hiding in MallocImpl.cpp +#pragma comment(linker, "/alternatename:mallocx=mallocxWeak") +#pragma comment(linker, "/alternatename:rallocx=rallocxWeak") +#pragma comment(linker, "/alternatename:xallocx=xallocxWeak") +#pragma comment(linker, "/alternatename:sallocx=sallocxWeak") +#pragma comment(linker, "/alternatename:dallocx=dallocxWeak") +#pragma comment(linker, "/alternatename:sdallocx=sdallocxWeak") +#pragma comment(linker, "/alternatename:nallocx=nallocxWeak") +#pragma comment(linker, "/alternatename:mallctl=mallctlWeak") +#pragma comment(linker, "/alternatename:mallctlnametomib=mallctlnametomibWeak") +#pragma comment(linker, "/alternatename:mallctlbymib=mallctlbymibWeak") +#endif #endif } - -#endif