1 # $NetBSD: Makefile.inc,v 1.26 2026/01/07 18:14:17 christos Exp $ 2 3 JEMALLOC:=${.PARSEDIR}/.. 4 5 JEMALLOC_SRCS+= \ 6 jemalloc.c \ 7 arena.c \ 8 background_thread.c \ 9 base.c \ 10 bin.c \ 11 bin_info.c \ 12 bitmap.c \ 13 buf_writer.c \ 14 cache_bin.c \ 15 ckh.c \ 16 ctl.c \ 17 counter.c \ 18 decay.c \ 19 divide.c \ 20 ecache.c \ 21 edata.c \ 22 edata_cache.c \ 23 ehooks.c \ 24 emap.c \ 25 eset.c \ 26 exp_grow.c \ 27 extent.c \ 28 extent_dss.c \ 29 extent_mmap.c \ 30 fxp.c \ 31 hash.c \ 32 hpa.c \ 33 hpa_hooks.c \ 34 hpdata.c \ 35 hook.c \ 36 inspect.c \ 37 large.c \ 38 log.c \ 39 malloc_io.c \ 40 mutex.c \ 41 nstime.c \ 42 pa.c \ 43 pa_extra.c \ 44 pac.c \ 45 pai.c \ 46 pages.c \ 47 peak_event.c \ 48 prof.c \ 49 prof_data.c \ 50 prof_recent.c \ 51 psset.c \ 52 rtree.c \ 53 safety_check.c \ 54 san.c \ 55 san_bump.c \ 56 sc.c \ 57 sec.c \ 58 stats.c \ 59 sz.c \ 60 test_hooks.c \ 61 tcache.c \ 62 thread_event.c \ 63 ticker.c \ 64 tsd.c \ 65 witness.c 66 67 .PATH: ${JEMALLOC}/dist/src ${JEMALLOC}/lib 68 .SUFFIXES: .3 69 .PATH.3: ${JEMALLOC}/dist/doc 70 .for i in ${JEMALLOC_SRCS} 71 # we need gnu11 for clang because of structure redefinitions. 72 # this is a c11 feature, that is accepted by gcc and gnu99 73 CPPFLAGS.${i}+=-I${JEMALLOC}/include -std=gnu11 74 # helps in tracking bad malloc/pointer usage, but has a serious 75 # performance penalty: 76 # CPPFLAGS.${i}+= -DDJEMALLOC_PROTECT_NOSTD -DJEMALLOC_DEBUG 77 CPPFLAGS.${i}+=-DJEMALLOC_PROTECT_NOSTD 78 COPTS.${i}+= -fvisibility=hidden -funroll-loops 79 COPTS.${i}+= ${${ACTIVE_CC} == "clang":? -Wno-atomic-alignment -Wno-error=missing-noreturn:} 80 LINTFLAGS.${i}+= -X 231 # argument unused 81 LINTFLAGS.${i}+= -X 220 # fallthrough on case statement 82 .endfor 83 84 COPTS.background_thread.c+=-Wno-error=stack-protector 85 COPTS.ctl.c+=-Wno-error=stack-protector 86 COPTS.stats.c+=-Wno-error=stack-protector 87 COPTS.tcache.c+=-Wno-error=stack-protector 88 COPTS.tsd.c+=-Wno-error=missing-braces -Wno-missing-braces 89 90 SRCS+=${JEMALLOC_SRCS} 91 92 jemalloc.d jemalloc.pico jemalloc.o jemalloc.ln jemalloc.po jemalloc.go: \ 93 ${JEMALLOC}/dist/src/jemalloc.c 94 95 # jemalloc 96 .for i in ${JEMALLOC_SRCS} 97 LINTFLAGS.${i} += -X 86,89,117,132,191,193,217,226,261 98 .endfor 99 100 .if ${MACHINE_ARCH} == "sparc" 101 .for i in ${JEMALLOC_SRCS} 102 LINTFLAGS.${i} += -X 298 103 .endfor 104 .endif 105 106 LINTFLAGS.arena.c += -X 298 107 LINTFLAGS.ctl.c += -X 135,298 108 LINTFLAGS.hpa.c += -X 135 # i386: alignment pai_s[4] -> hpa_shard_s[8] 109 LINTFLAGS.jemalloc.c += -X 236 # XXX: lint bug, it is a constructor 110 LINTFLAGS.jemalloc.c += -X 141 # i386: lint is right, overflow is on purpose. 111 LINTFLAGS.pac.c += -X 135 # i386: alignment pai_s[4] -> hpa_shard_s[8] 112 LINTFLAGS.pages.c += -X 298 113 LINTFLAGS.prof_data.c += -X 236 114 LINTFLAGS.prof_recent.c += -X 42 115 LINTFLAGS.sc.c += -X 119 116 LINTFLAGS.sec.c += -X 247 117 LINTFLAGS.stats.c += -X 42,135,247 118 LINTFLAGS.tcache.c += -X 309 119