From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: ARC-Seal: i=1; a=rsa-sha256; t=1516314387; cv=none; d=google.com; s=arc-20160816; b=GpEyhzY0WziCOJ/9BK9zvk9n8t8kb46yw8hbORoSxHhqVKDiTjWFj62yxz5FqIhNAf O46GwAkubKahRj8/aQfT7RWDsXC0EiKZaZtPTFDaBq16KQlmSd5JJuQh5CZ4w8b67qGX m+avI9FNae412hWfMyJiXjl9LV6Sth5x0S0gg1+dqClllkEFk3uKGYWqxFpHfWhEjf5K R3sFdPWxnsvIGAiyIox8rTeiOBg1GXWMlyX4HJNuzktsXL1jveXnlHMlqqgERxN1VuYM pf0c5Xlm5JDzf9xfPZDG6zj/5ays2SGgetVcRVPDlKPpqm6WIAc5pAkKCvYUlBbUKa2o yYuQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=message-id:date:subject:cc:to:from:dkim-signature :arc-authentication-results; bh=pcphPSwuhZwbUO2HmVJmy3zBPp52S5QvhEVYv8ULehI=; b=tFJcmSaxTbkJD9i5V0/TElQBW8Fb9kCaaLzo3tzr1NyjPhUqWWXEPJMxdHPZLUZElT NeQ+jPzeyoSNvDa6kuok6DFuMMffiZPC8aXHQkoEd3DftDFWydo5ukUNWeZcCfVTL5nv DyvSfSi7ffKsZX1p9yiA3oKn27fts1wfLxbsbpOZaOlLIlJzkS6IyfkBwacOJjNJ8A+b ztEkYrytC+bp3OsM5RE6rrL74rFUWrsu47Ff0R0+k9j4nXUJGU0M3Eu0Z+gr6/utnYhB bEOL/F54lmMDwhkCohD8nizvn1KycGSdZCgbJVhlrvTsvEUEtPOaNXPnRh9Eg7h8fu7w tR6Q== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@arista.com header.s=google header.b=Nqauxl+s; spf=pass (google.com: domain of dima@arista.com designates 209.85.220.65 as permitted sender) smtp.mailfrom=dima@arista.com; dmarc=pass (p=QUARANTINE sp=REJECT dis=NONE) header.from=arista.com Authentication-Results: mx.google.com; dkim=pass header.i=@arista.com header.s=google header.b=Nqauxl+s; spf=pass (google.com: domain of dima@arista.com designates 209.85.220.65 as permitted sender) smtp.mailfrom=dima@arista.com; dmarc=pass (p=QUARANTINE sp=REJECT dis=NONE) header.from=arista.com X-Google-Smtp-Source: ACJfBotUPE61NWuznuY5/qdWztgebNQNrP9zanlv9lHr18jc0MPl5n8/LUQgMZ+teolTJUi2r6Bvjg== From: Dmitry Safonov To: linux-kernel@vger.kernel.org Cc: 0x7f454c46@gmail.com, Dmitry Safonov , Ingo Molnar , Andy Lutomirski , Greg Kroah-Hartman , Shuah Khan , Thomas Gleixner , linux-kselftest@vger.kernel.org, x86@kernel.org Subject: [PATCHv2] selftests/x86: Add {,_32,_64} targets Date: Thu, 18 Jan 2018 22:26:25 +0000 Message-Id: <20180118222625.24408-1-dima@arista.com> X-Mailer: git-send-email 2.13.6 X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: =?utf-8?q?1589970455221827423?= X-GMAIL-MSGID: =?utf-8?q?1589970874871052625?= X-Mailing-List: linux-kernel@vger.kernel.org List-ID: One can only use `make all` or `make _` as make targets. `make ` doesn't work as Ingo noticed: x86> make test_vsyscall gcc -O2 -g -std=gnu99 -pthread -Wall -no-pie test_vsyscall.c -o test_vsyscall /tmp/aBaoo3nb.o: In function `init_vdso': test_vsyscall.c:68: undefined reference to `dlopen' test_vsyscall.c:76: undefined reference to `dlsym' test_vsyscall.c:80: undefined reference to `dlsym' test_vsyscall.c:84: undefined reference to `dlsym' test_vsyscall.c:88: undefined reference to `dlsym' test_vsyscall.c:70: undefined reference to `dlopen' collect2: error: ld returned 1 exit status : recipe for target 'test_vsyscall' failed make: *** [test_vsyscall] Error 1 Makefile target substitution neither works :-/ Generate .PHONY targets per-test and fix target substitution. Cc: Andy Lutomirski Cc: Greg Kroah-Hartman Cc: Shuah Khan Cc: Thomas Gleixner Cc: linux-kselftest@vger.kernel.org Cc: x86@kernel.org Reported-by: Ingo Molnar Signed-off-by: Dmitry Safonov --- v2: collide two target lines $(1) and $(1)_{64,32} tools/testing/selftests/x86/Makefile | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/tools/testing/selftests/x86/Makefile b/tools/testing/selftests/x86/Makefile index 5d4f10ac2af2..10ca46df1449 100644 --- a/tools/testing/selftests/x86/Makefile +++ b/tools/testing/selftests/x86/Makefile @@ -27,14 +27,26 @@ UNAME_M := $(shell uname -m) CAN_BUILD_I386 := $(shell ./check_cc.sh $(CC) trivial_32bit_program.c -m32) CAN_BUILD_X86_64 := $(shell ./check_cc.sh $(CC) trivial_64bit_program.c) +define gen-target-rule-32 +$(1) $(1)_32: $(OUTPUT)/$(1)_32 +.PHONY: $(1) $(1)_32 +endef + +define gen-target-rule-64 +$(1) $(1)_64: $(OUTPUT)/$(1)_64 +.PHONY: $(1) $(1)_64 +endef + ifeq ($(CAN_BUILD_I386),1) all: all_32 TEST_PROGS += $(BINARIES_32) +$(foreach t,$(TARGETS_C_32BIT_ALL),$(eval $(call gen-target-rule-32,$(t)))) endif ifeq ($(CAN_BUILD_X86_64),1) all: all_64 TEST_PROGS += $(BINARIES_64) +$(foreach t,$(TARGETS_C_64BIT_ALL),$(eval $(call gen-target-rule-64,$(t)))) endif all_32: $(BINARIES_32) -- 2.13.6