brintos

brintos / linux-shallow public Read only

0
0
Text · 12.5 KiB · 1658596 Raw
433 lines · plain
1# SPDX-License-Identifier: GPL-2.02include ../../scripts/Makefile.include3 4FILES=                                          \5         test-all.bin                           \6         test-backtrace.bin                     \7         test-bionic.bin                        \8         test-dwarf.bin                         \9         test-dwarf_getlocations.bin            \10         test-dwarf_getcfi.bin                  \11         test-eventfd.bin                       \12         test-fortify-source.bin                \13         test-get_current_dir_name.bin          \14         test-glibc.bin                         \15         test-gtk2.bin                          \16         test-gtk2-infobar.bin                  \17         test-hello.bin                         \18         test-libaudit.bin                      \19         test-libbfd.bin                        \20         test-libbfd-buildid.bin		\21         test-disassembler-four-args.bin        \22         test-disassembler-init-styled.bin	\23         test-reallocarray.bin			\24         test-libbfd-liberty.bin                \25         test-libbfd-liberty-z.bin              \26         test-cplus-demangle.bin                \27         test-cxa-demangle.bin                  \28         test-libcap.bin			\29         test-libelf.bin                        \30         test-libelf-getphdrnum.bin             \31         test-libelf-gelf_getnote.bin           \32         test-libelf-getshdrstrndx.bin          \33         test-libdebuginfod.bin                 \34         test-libnuma.bin                       \35         test-numa_num_possible_cpus.bin        \36         test-libperl.bin                       \37         test-libpython.bin                     \38         test-libslang.bin                      \39         test-libslang-include-subdir.bin       \40         test-libtraceevent.bin                 \41         test-libtracefs.bin                    \42         test-libcrypto.bin                     \43         test-libunwind.bin                     \44         test-libunwind-debug-frame.bin         \45         test-libunwind-x86.bin                 \46         test-libunwind-x86_64.bin              \47         test-libunwind-arm.bin                 \48         test-libunwind-aarch64.bin             \49         test-libunwind-debug-frame-arm.bin     \50         test-libunwind-debug-frame-aarch64.bin \51         test-pthread-attr-setaffinity-np.bin   \52         test-pthread-barrier.bin		\53         test-stackprotector-all.bin            \54         test-timerfd.bin                       \55         test-libdw-dwarf-unwind.bin            \56         test-libbabeltrace.bin                 \57         test-libcapstone.bin			\58         test-compile-32.bin                    \59         test-compile-x32.bin                   \60         test-zlib.bin                          \61         test-lzma.bin                          \62         test-bpf.bin                           \63         test-libbpf.bin                        \64         test-get_cpuid.bin                     \65         test-sdt.bin                           \66         test-cxx.bin                           \67         test-gettid.bin			\68         test-jvmti.bin				\69         test-jvmti-cmlr.bin			\70         test-scandirat.bin			\71         test-sched_getcpu.bin			\72         test-setns.bin				\73         test-libopencsd.bin			\74         test-clang.bin				\75         test-llvm.bin				\76         test-llvm-perf.bin   \77         test-libaio.bin			\78         test-libzstd.bin			\79         test-clang-bpf-co-re.bin		\80         test-file-handle.bin			\81         test-libpfm4.bin82 83FILES := $(addprefix $(OUTPUT),$(FILES))84 85# Some distros provide the command $(CROSS_COMPILE)pkg-config for86# searching packges installed with Multiarch. Use it for cross87# compilation if it is existed.88ifneq (, $(shell which $(CROSS_COMPILE)pkg-config))89  PKG_CONFIG ?= $(CROSS_COMPILE)pkg-config90else91  PKG_CONFIG ?= pkg-config92 93  # PKG_CONFIG_PATH or PKG_CONFIG_LIBDIR, alongside PKG_CONFIG_SYSROOT_DIR94  # for modified system root, are required for the cross compilation.95  # If these PKG_CONFIG environment variables are not set, Multiarch library96  # paths are used instead.97  ifdef CROSS_COMPILE98    ifeq ($(PKG_CONFIG_LIBDIR)$(PKG_CONFIG_PATH)$(PKG_CONFIG_SYSROOT_DIR),)99      CROSS_ARCH = $(shell $(CC) -dumpmachine)100      PKG_CONFIG_LIBDIR := /usr/local/$(CROSS_ARCH)/lib/pkgconfig/101      PKG_CONFIG_LIBDIR := $(PKG_CONFIG_LIBDIR):/usr/local/lib/$(CROSS_ARCH)/pkgconfig/102      PKG_CONFIG_LIBDIR := $(PKG_CONFIG_LIBDIR):/usr/lib/$(CROSS_ARCH)/pkgconfig/103      PKG_CONFIG_LIBDIR := $(PKG_CONFIG_LIBDIR):/usr/local/share/pkgconfig/104      PKG_CONFIG_LIBDIR := $(PKG_CONFIG_LIBDIR):/usr/share/pkgconfig/105      export PKG_CONFIG_LIBDIR106    endif107  endif108endif109 110all: $(FILES)111 112__BUILD = $(CC) $(CFLAGS) -MD -Wall -Werror -o $@ $(patsubst %.bin,%.c,$(@F)) $(LDFLAGS)113  BUILD = $(__BUILD) > $(@:.bin=.make.output) 2>&1114  BUILD_BFD = $(BUILD) -DPACKAGE='"perf"' -lbfd -ldl115  BUILD_ALL = $(BUILD) -fstack-protector-all -O2 -D_FORTIFY_SOURCE=2 -ldw -lelf -lnuma -lelf -lslang $(FLAGS_PERL_EMBED) $(FLAGS_PYTHON_EMBED) -DPACKAGE='"perf"' -lbfd -ldl -lz -llzma -lzstd -lcap116 117__BUILDXX = $(CXX) $(CXXFLAGS) -MD -Wall -Werror -o $@ $(patsubst %.bin,%.cpp,$(@F)) $(LDFLAGS)118  BUILDXX = $(__BUILDXX) > $(@:.bin=.make.output) 2>&1119 120###############################121 122$(OUTPUT)test-all.bin:123	$(BUILD_ALL) || $(BUILD_ALL) -lopcodes -liberty124 125$(OUTPUT)test-hello.bin:126	$(BUILD)127 128$(OUTPUT)test-pthread-attr-setaffinity-np.bin:129	$(BUILD) -D_GNU_SOURCE -lpthread130 131$(OUTPUT)test-pthread-barrier.bin:132	$(BUILD) -lpthread133 134$(OUTPUT)test-stackprotector-all.bin:135	$(BUILD) -fstack-protector-all136 137$(OUTPUT)test-fortify-source.bin:138	$(BUILD) -O2 -D_FORTIFY_SOURCE=2139 140$(OUTPUT)test-bionic.bin:141	$(BUILD)142 143$(OUTPUT)test-libcap.bin:144	$(BUILD) -lcap145 146$(OUTPUT)test-libelf.bin:147	$(BUILD) -lelf148 149$(OUTPUT)test-eventfd.bin:150	$(BUILD)151 152$(OUTPUT)test-get_current_dir_name.bin:153	$(BUILD)154 155$(OUTPUT)test-glibc.bin:156	$(BUILD)157 158$(OUTPUT)test-scandirat.bin:159	$(BUILD)160 161$(OUTPUT)test-sched_getcpu.bin:162	$(BUILD)163 164$(OUTPUT)test-setns.bin:165	$(BUILD)166 167$(OUTPUT)test-libopencsd.bin:168	$(BUILD) # -lopencsd_c_api -lopencsd provided by169		 # $(FEATURE_CHECK_LDFLAGS-libopencsd)170 171DWARFLIBS := -ldw172ifeq ($(findstring -static,${LDFLAGS}),-static)173  DWARFLIBS += -lelf -lz -llzma -lbz2 -lzstd174 175  LIBDW_VERSION := $(shell $(PKG_CONFIG) --modversion libdw).0.0176  LIBDW_VERSION_1 := $(word 1, $(subst ., ,$(LIBDW_VERSION)))177  LIBDW_VERSION_2 := $(word 2, $(subst ., ,$(LIBDW_VERSION)))178 179  # Elfutils merged libebl.a into libdw.a starting from version 0.177,180  # Link libebl.a only if libdw is older than this version.181  ifeq ($(shell test $(LIBDW_VERSION_2) -lt 177; echo $$?),0)182    DWARFLIBS += -lebl183  endif184 185  # Must put -ldl after -lebl for dependency186  DWARFLIBS += -ldl187endif188 189$(OUTPUT)test-dwarf.bin:190	$(BUILD) $(DWARFLIBS)191 192$(OUTPUT)test-dwarf_getlocations.bin:193	$(BUILD) $(DWARFLIBS)194 195$(OUTPUT)test-dwarf_getcfi.bin:196	$(BUILD) $(DWARFLIBS)197 198$(OUTPUT)test-libelf-getphdrnum.bin:199	$(BUILD) -lelf200 201$(OUTPUT)test-libelf-gelf_getnote.bin:202	$(BUILD) -lelf203 204$(OUTPUT)test-libelf-getshdrstrndx.bin:205	$(BUILD) -lelf206 207$(OUTPUT)test-libdebuginfod.bin:208	$(BUILD) -ldebuginfod209 210$(OUTPUT)test-libnuma.bin:211	$(BUILD) -lnuma212 213$(OUTPUT)test-numa_num_possible_cpus.bin:214	$(BUILD) -lnuma215 216$(OUTPUT)test-libunwind.bin:217	$(BUILD) -lelf -llzma218 219$(OUTPUT)test-libunwind-debug-frame.bin:220	$(BUILD) -lelf -llzma221$(OUTPUT)test-libunwind-x86.bin:222	$(BUILD) -lelf -llzma -lunwind-x86223 224$(OUTPUT)test-libunwind-x86_64.bin:225	$(BUILD) -lelf -llzma -lunwind-x86_64226 227$(OUTPUT)test-libunwind-arm.bin:228	$(BUILD) -lelf -llzma -lunwind-arm229 230$(OUTPUT)test-libunwind-aarch64.bin:231	$(BUILD) -lelf -llzma -lunwind-aarch64232 233$(OUTPUT)test-libunwind-debug-frame-arm.bin:234	$(BUILD) -lelf -llzma -lunwind-arm235 236$(OUTPUT)test-libunwind-debug-frame-aarch64.bin:237	$(BUILD) -lelf -llzma -lunwind-aarch64238 239$(OUTPUT)test-libaudit.bin:240	$(BUILD) -laudit241 242$(OUTPUT)test-libslang.bin:243	$(BUILD) -lslang244 245$(OUTPUT)test-libslang-include-subdir.bin:246	$(BUILD) -lslang247 248$(OUTPUT)test-libtraceevent.bin:249	$(BUILD) -ltraceevent250 251$(OUTPUT)test-libtracefs.bin:252	 $(BUILD) $(shell $(PKG_CONFIG) --cflags libtracefs 2>/dev/null) -ltracefs253 254$(OUTPUT)test-libcrypto.bin:255	$(BUILD) -lcrypto256 257$(OUTPUT)test-gtk2.bin:258	$(BUILD) $(shell $(PKG_CONFIG) --libs --cflags gtk+-2.0 2>/dev/null) -Wno-deprecated-declarations259 260$(OUTPUT)test-gtk2-infobar.bin:261	$(BUILD) $(shell $(PKG_CONFIG) --libs --cflags gtk+-2.0 2>/dev/null)262 263grep-libs  = $(filter -l%,$(1))264strip-libs = $(filter-out -l%,$(1))265 266PERL_EMBED_LDOPTS = $(shell perl -MExtUtils::Embed -e ldopts 2>/dev/null)267PERL_EMBED_LDFLAGS = $(call strip-libs,$(PERL_EMBED_LDOPTS))268PERL_EMBED_LIBADD = $(call grep-libs,$(PERL_EMBED_LDOPTS))269PERL_EMBED_CCOPTS = $(shell perl -MExtUtils::Embed -e ccopts 2>/dev/null)270FLAGS_PERL_EMBED=$(PERL_EMBED_CCOPTS) $(PERL_EMBED_LDOPTS)271 272ifeq ($(CC_NO_CLANG), 0)273  PERL_EMBED_LDOPTS := $(filter-out -specs=%,$(PERL_EMBED_LDOPTS))274  PERL_EMBED_CCOPTS := $(filter-out -flto=auto -ffat-lto-objects, $(PERL_EMBED_CCOPTS))275  PERL_EMBED_CCOPTS := $(filter-out -specs=%,$(PERL_EMBED_CCOPTS))276  FLAGS_PERL_EMBED += -Wno-compound-token-split-by-macro277endif278 279$(OUTPUT)test-libperl.bin:280	$(BUILD) $(FLAGS_PERL_EMBED)281 282$(OUTPUT)test-libpython.bin:283	$(BUILD) $(FLAGS_PYTHON_EMBED)284 285$(OUTPUT)test-libbfd.bin:286	$(BUILD_BFD)287 288$(OUTPUT)test-libbfd-buildid.bin:289	$(BUILD_BFD) || $(BUILD_BFD) -liberty || $(BUILD_BFD) -liberty -lz290 291$(OUTPUT)test-disassembler-four-args.bin:292	$(BUILD_BFD) -lopcodes || $(BUILD_BFD) -lopcodes -liberty || \293	$(BUILD_BFD) -lopcodes -liberty -lz294 295$(OUTPUT)test-disassembler-init-styled.bin:296	$(BUILD_BFD) -lopcodes || $(BUILD_BFD) -lopcodes -liberty || \297	$(BUILD_BFD) -lopcodes -liberty -lz298 299$(OUTPUT)test-reallocarray.bin:300	$(BUILD)301 302$(OUTPUT)test-libbfd-liberty.bin:303	$(CC) $(CFLAGS) -Wall -Werror -o $@ test-libbfd.c -DPACKAGE='"perf"' $(LDFLAGS) -lbfd -ldl -liberty304 305$(OUTPUT)test-libbfd-liberty-z.bin:306	$(CC) $(CFLAGS) -Wall -Werror -o $@ test-libbfd.c -DPACKAGE='"perf"' $(LDFLAGS) -lbfd -ldl -liberty -lz307 308$(OUTPUT)test-cplus-demangle.bin:309	$(BUILD) -liberty310 311$(OUTPUT)test-cxa-demangle.bin:312	$(BUILDXX)313 314$(OUTPUT)test-backtrace.bin:315	$(BUILD)316 317$(OUTPUT)test-timerfd.bin:318	$(BUILD)319 320$(OUTPUT)test-libdw-dwarf-unwind.bin:321	$(BUILD) # -ldw provided by $(FEATURE_CHECK_LDFLAGS-libdw-dwarf-unwind)322 323$(OUTPUT)test-libbabeltrace.bin:324	$(BUILD) # -lbabeltrace provided by $(FEATURE_CHECK_LDFLAGS-libbabeltrace)325 326$(OUTPUT)test-libcapstone.bin:327	$(BUILD) # -lcapstone provided by $(FEATURE_CHECK_LDFLAGS-libcapstone)328 329$(OUTPUT)test-compile-32.bin:330	$(CC) -m32 -o $@ test-compile.c331 332$(OUTPUT)test-compile-x32.bin:333	$(CC) -mx32 -o $@ test-compile.c334 335$(OUTPUT)test-zlib.bin:336	$(BUILD) -lz337 338$(OUTPUT)test-lzma.bin:339	$(BUILD) -llzma340 341$(OUTPUT)test-get_cpuid.bin:342	$(BUILD)343 344$(OUTPUT)test-bpf.bin:345	$(BUILD)346 347$(OUTPUT)test-libbpf.bin:348	$(BUILD) -lbpf349 350$(OUTPUT)test-libbpf-btf__load_from_kernel_by_id.bin:351	$(BUILD) -lbpf352 353$(OUTPUT)test-libbpf-bpf_prog_load.bin:354	$(BUILD) -lbpf355 356$(OUTPUT)test-libbpf-bpf_map_create.bin:357	$(BUILD) -lbpf358 359$(OUTPUT)test-libbpf-bpf_object__next_program.bin:360	$(BUILD) -lbpf361 362$(OUTPUT)test-libbpf-bpf_object__next_map.bin:363	$(BUILD) -lbpf364 365$(OUTPUT)test-libbpf-bpf_program__set_insns.bin:366	$(BUILD) -lbpf367 368$(OUTPUT)test-libbpf-btf__raw_data.bin:369	$(BUILD) -lbpf370 371$(OUTPUT)test-sdt.bin:372	$(BUILD)373 374$(OUTPUT)test-cxx.bin:375	$(BUILDXX) -std=gnu++11376 377$(OUTPUT)test-gettid.bin:378	$(BUILD)379 380$(OUTPUT)test-jvmti.bin:381	$(BUILD)382 383$(OUTPUT)test-jvmti-cmlr.bin:384	$(BUILD)385 386$(OUTPUT)test-llvm.bin:387	$(BUILDXX) -std=gnu++17 				\388		-I$(shell $(LLVM_CONFIG) --includedir) 		\389		-L$(shell $(LLVM_CONFIG) --libdir)		\390		$(shell $(LLVM_CONFIG) --libs Core BPF)		\391		$(shell $(LLVM_CONFIG) --system-libs)		\392		> $(@:.bin=.make.output) 2>&1393 394$(OUTPUT)test-llvm-perf.bin:395	$(BUILDXX) -std=gnu++17 				\396		-I$(shell $(LLVM_CONFIG) --includedir) 		\397		-L$(shell $(LLVM_CONFIG) --libdir)		\398		$(shell $(LLVM_CONFIG) --libs Core BPF)		\399		$(shell $(LLVM_CONFIG) --system-libs)		\400		> $(@:.bin=.make.output) 2>&1401 402$(OUTPUT)test-clang.bin:403	$(BUILDXX) -std=gnu++17					\404		-I$(shell $(LLVM_CONFIG) --includedir) 		\405		-L$(shell $(LLVM_CONFIG) --libdir)		\406		-Wl,--start-group -lclang-cpp -Wl,--end-group	\407		$(shell $(LLVM_CONFIG) --libs Core option)	\408		$(shell $(LLVM_CONFIG) --system-libs)		\409		> $(@:.bin=.make.output) 2>&1410 411-include $(OUTPUT)*.d412 413$(OUTPUT)test-libaio.bin:414	$(BUILD) -lrt415 416$(OUTPUT)test-libzstd.bin:417	$(BUILD) -lzstd418 419$(OUTPUT)test-clang-bpf-co-re.bin:420	$(CLANG) -S -g --target=bpf -o - $(patsubst %.bin,%.c,$(@F)) |	\421		grep BTF_KIND_VAR422 423$(OUTPUT)test-file-handle.bin:424	$(BUILD)425 426$(OUTPUT)test-libpfm4.bin:427	$(BUILD) -lpfm428 429###############################430 431clean:432	rm -f $(FILES) $(OUTPUT)*.d $(FILES:.bin=.make.output)433