Home | History | Annotate | Line # | Download | only in lib
      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