Only use --whole-archive with gcc.
Conditionalize use of --whole-archive on the platform plus compiler,
rather than on the ABI. This fixes a regression caused by
7b24c6e557
(Use --whole-archive when
linking integration tests on MinGW.).
This commit is contained in:
parent
1eb801bcad
commit
875ff15e6a
@ -52,6 +52,7 @@ enable_prof := @enable_prof@
|
|||||||
enable_valgrind := @enable_valgrind@
|
enable_valgrind := @enable_valgrind@
|
||||||
enable_zone_allocator := @enable_zone_allocator@
|
enable_zone_allocator := @enable_zone_allocator@
|
||||||
MALLOC_CONF := @JEMALLOC_CPREFIX@MALLOC_CONF
|
MALLOC_CONF := @JEMALLOC_CPREFIX@MALLOC_CONF
|
||||||
|
link_whole_archive := @link_whole_archive@
|
||||||
DSO_LDFLAGS = @DSO_LDFLAGS@
|
DSO_LDFLAGS = @DSO_LDFLAGS@
|
||||||
SOREV = @SOREV@
|
SOREV = @SOREV@
|
||||||
PIC_CFLAGS = @PIC_CFLAGS@
|
PIC_CFLAGS = @PIC_CFLAGS@
|
||||||
@ -125,7 +126,7 @@ DSOS := $(objroot)lib/$(LIBJEMALLOC).$(SOREV)
|
|||||||
ifneq ($(SOREV),$(SO))
|
ifneq ($(SOREV),$(SO))
|
||||||
DSOS += $(objroot)lib/$(LIBJEMALLOC).$(SO)
|
DSOS += $(objroot)lib/$(LIBJEMALLOC).$(SO)
|
||||||
endif
|
endif
|
||||||
ifeq (pecoff, $(ABI))
|
ifeq (1, $(link_whole_archive))
|
||||||
LJEMALLOC := -Wl,--whole-archive -L$(objroot)lib -l$(LIBJEMALLOC) -Wl,--no-whole-archive
|
LJEMALLOC := -Wl,--whole-archive -L$(objroot)lib -l$(LIBJEMALLOC) -Wl,--no-whole-archive
|
||||||
else
|
else
|
||||||
LJEMALLOC := $(objroot)lib/$(LIBJEMALLOC).$(IMPORTLIB)
|
LJEMALLOC := $(objroot)lib/$(LIBJEMALLOC).$(IMPORTLIB)
|
||||||
@ -141,7 +142,7 @@ C_TESTLIB_SRCS := $(srcroot)test/src/btalloc.c $(srcroot)test/src/btalloc_0.c \
|
|||||||
$(srcroot)test/src/mtx.c $(srcroot)test/src/mq.c \
|
$(srcroot)test/src/mtx.c $(srcroot)test/src/mq.c \
|
||||||
$(srcroot)test/src/SFMT.c $(srcroot)test/src/test.c \
|
$(srcroot)test/src/SFMT.c $(srcroot)test/src/test.c \
|
||||||
$(srcroot)test/src/thd.c $(srcroot)test/src/timer.c
|
$(srcroot)test/src/thd.c $(srcroot)test/src/timer.c
|
||||||
ifeq (pecoff, $(ABI))
|
ifeq (1, $(link_whole_archive))
|
||||||
C_UTIL_INTEGRATION_SRCS :=
|
C_UTIL_INTEGRATION_SRCS :=
|
||||||
else
|
else
|
||||||
C_UTIL_INTEGRATION_SRCS := $(srcroot)src/nstime.c $(srcroot)src/util.c
|
C_UTIL_INTEGRATION_SRCS := $(srcroot)src/nstime.c $(srcroot)src/util.c
|
||||||
|
@ -313,6 +313,7 @@ o="$ac_objext"
|
|||||||
a="a"
|
a="a"
|
||||||
exe="$ac_exeext"
|
exe="$ac_exeext"
|
||||||
libprefix="lib"
|
libprefix="lib"
|
||||||
|
link_whole_archive="0"
|
||||||
DSO_LDFLAGS='-shared -Wl,-soname,$(@F)'
|
DSO_LDFLAGS='-shared -Wl,-soname,$(@F)'
|
||||||
RPATH='-Wl,-rpath,$(1)'
|
RPATH='-Wl,-rpath,$(1)'
|
||||||
SOREV="${so}.${rev}"
|
SOREV="${so}.${rev}"
|
||||||
@ -442,6 +443,7 @@ case "${host}" in
|
|||||||
else
|
else
|
||||||
importlib="${so}"
|
importlib="${so}"
|
||||||
DSO_LDFLAGS="-shared"
|
DSO_LDFLAGS="-shared"
|
||||||
|
link_whole_archive="1"
|
||||||
fi
|
fi
|
||||||
a="lib"
|
a="lib"
|
||||||
libprefix=""
|
libprefix=""
|
||||||
@ -479,6 +481,7 @@ AC_SUBST([o])
|
|||||||
AC_SUBST([a])
|
AC_SUBST([a])
|
||||||
AC_SUBST([exe])
|
AC_SUBST([exe])
|
||||||
AC_SUBST([libprefix])
|
AC_SUBST([libprefix])
|
||||||
|
AC_SUBST([link_whole_archive])
|
||||||
AC_SUBST([DSO_LDFLAGS])
|
AC_SUBST([DSO_LDFLAGS])
|
||||||
AC_SUBST([EXTRA_LDFLAGS])
|
AC_SUBST([EXTRA_LDFLAGS])
|
||||||
AC_SUBST([SOREV])
|
AC_SUBST([SOREV])
|
||||||
|
@ -17,7 +17,7 @@ How to build jemalloc for Windows
|
|||||||
(note: x86/x64 doesn't matter at this point)
|
(note: x86/x64 doesn't matter at this point)
|
||||||
|
|
||||||
5. Generate header files:
|
5. Generate header files:
|
||||||
sh -c "./autogen.sh" CC=cl --enable-lazy-lock=no
|
sh -c "CC=cl ./autogen.sh"
|
||||||
|
|
||||||
6. Now the project can be opened and built in Visual Studio:
|
6. Now the project can be opened and built in Visual Studio:
|
||||||
msvc\jemalloc_vc2015.sln
|
msvc\jemalloc_vc2015.sln
|
||||||
|
Loading…
Reference in New Issue
Block a user