Message ID | 20180607105712.553-1-anders.roxell@linaro.org |
---|---|
State | Superseded |
Headers | show |
Series | selftests: bpf: fix urandom_read build issue | expand |
On Thu, Jun 7, 2018 at 3:57 AM, Anders Roxell <anders.roxell@linaro.org> wrote: > gcc complains that urandom_read gets built twice. > > gcc -o tools/testing/selftests/bpf/urandom_read > -static urandom_read.c -Wl,--build-id > gcc -Wall -O2 -I../../../include/uapi -I../../../lib -I../../../lib/bpf > -I../../../../include/generated -I../../../include urandom_read.c > urandom_read -lcap -lelf -lrt -lpthread -o > tools/testing/selftests/bpf/urandom_read > gcc: fatal error: input file > ‘tools/testing/selftests/bpf/urandom_read’ is the > same as output file > compilation terminated. > ../lib.mk:110: recipe for target > 'tools/testing/selftests/bpf/urandom_read' failed What is the build/make command to reproduce the above failure? > To fix this issue remove the urandom_read target and so target > TEST_CUSTOM_PROGS gets used. > > Fixes: 81f77fd0deeb ("bpf: add selftest for stackmap with BPF_F_STACK_BUILD_ID") > Signed-off-by: Anders Roxell <anders.roxell@linaro.org> > --- > tools/testing/selftests/bpf/Makefile | 6 ++---- > 1 file changed, 2 insertions(+), 4 deletions(-) > > diff --git a/tools/testing/selftests/bpf/Makefile b/tools/testing/selftests/bpf/Makefile > index 607ed8729c06..67285591ffd7 100644 > --- a/tools/testing/selftests/bpf/Makefile > +++ b/tools/testing/selftests/bpf/Makefile > @@ -16,10 +16,8 @@ LDLIBS += -lcap -lelf -lrt -lpthread > TEST_CUSTOM_PROGS = $(OUTPUT)/urandom_read > all: $(TEST_CUSTOM_PROGS) > > -$(TEST_CUSTOM_PROGS): urandom_read > - > -urandom_read: urandom_read.c > - $(CC) -o $(TEST_CUSTOM_PROGS) -static $< -Wl,--build-id > +$(TEST_CUSTOM_PROGS): $(OUTPUT)/%: %.c > + $(CC) -o $@ -static $< -Wl,--build-id > > # Order correspond to 'make run_tests' order > TEST_GEN_PROGS = test_verifier test_tag test_maps test_lru_map test_lpm_map test_progs \ > -- > 2.17.1 >
On 7 June 2018 at 19:52, Y Song <ys114321@gmail.com> wrote: > On Thu, Jun 7, 2018 at 3:57 AM, Anders Roxell <anders.roxell@linaro.org> wrote: >> gcc complains that urandom_read gets built twice. >> >> gcc -o tools/testing/selftests/bpf/urandom_read >> -static urandom_read.c -Wl,--build-id >> gcc -Wall -O2 -I../../../include/uapi -I../../../lib -I../../../lib/bpf >> -I../../../../include/generated -I../../../include urandom_read.c >> urandom_read -lcap -lelf -lrt -lpthread -o >> tools/testing/selftests/bpf/urandom_read >> gcc: fatal error: input file >> ‘tools/testing/selftests/bpf/urandom_read’ is the >> same as output file >> compilation terminated. >> ../lib.mk:110: recipe for target >> 'tools/testing/selftests/bpf/urandom_read' failed > > What is the build/make command to reproduce the above failure? make -C tools/testing/selftests Cheers, Anders > >> To fix this issue remove the urandom_read target and so target >> TEST_CUSTOM_PROGS gets used. >> >> Fixes: 81f77fd0deeb ("bpf: add selftest for stackmap with BPF_F_STACK_BUILD_ID") >> Signed-off-by: Anders Roxell <anders.roxell@linaro.org> >> --- >> tools/testing/selftests/bpf/Makefile | 6 ++---- >> 1 file changed, 2 insertions(+), 4 deletions(-) >> >> diff --git a/tools/testing/selftests/bpf/Makefile b/tools/testing/selftests/bpf/Makefile >> index 607ed8729c06..67285591ffd7 100644 >> --- a/tools/testing/selftests/bpf/Makefile >> +++ b/tools/testing/selftests/bpf/Makefile >> @@ -16,10 +16,8 @@ LDLIBS += -lcap -lelf -lrt -lpthread >> TEST_CUSTOM_PROGS = $(OUTPUT)/urandom_read >> all: $(TEST_CUSTOM_PROGS) >> >> -$(TEST_CUSTOM_PROGS): urandom_read >> - >> -urandom_read: urandom_read.c >> - $(CC) -o $(TEST_CUSTOM_PROGS) -static $< -Wl,--build-id >> +$(TEST_CUSTOM_PROGS): $(OUTPUT)/%: %.c >> + $(CC) -o $@ -static $< -Wl,--build-id >> >> # Order correspond to 'make run_tests' order >> TEST_GEN_PROGS = test_verifier test_tag test_maps test_lru_map test_lpm_map test_progs \ >> -- >> 2.17.1 >>
On Thu, Jun 7, 2018 at 12:07 PM, Anders Roxell <anders.roxell@linaro.org> wrote: > On 7 June 2018 at 19:52, Y Song <ys114321@gmail.com> wrote: >> On Thu, Jun 7, 2018 at 3:57 AM, Anders Roxell <anders.roxell@linaro.org> wrote: >>> gcc complains that urandom_read gets built twice. >>> >>> gcc -o tools/testing/selftests/bpf/urandom_read >>> -static urandom_read.c -Wl,--build-id >>> gcc -Wall -O2 -I../../../include/uapi -I../../../lib -I../../../lib/bpf >>> -I../../../../include/generated -I../../../include urandom_read.c >>> urandom_read -lcap -lelf -lrt -lpthread -o >>> tools/testing/selftests/bpf/urandom_read >>> gcc: fatal error: input file >>> ‘tools/testing/selftests/bpf/urandom_read’ is the >>> same as output file >>> compilation terminated. >>> ../lib.mk:110: recipe for target >>> 'tools/testing/selftests/bpf/urandom_read' failed >> >> What is the build/make command to reproduce the above failure? > > make -C tools/testing/selftests Thanks. The patch will break make -C tools/testing/selftests/bpf [yhs@localhost bpf-next]$ make -C tools/testing/selftests/bpf make: Entering directory '/home/yhs/work/bpf-next/tools/testing/selftests/bpf' gcc -o /urandom_read -static urandom_read.c -Wl,--build-id /usr/bin/ld: cannot open output file /urandom_read: Permission denied collect2: error: ld returned 1 exit status make: *** [Makefile:20: /urandom_read] Error 1 make: Leaving directory '/home/yhs/work/bpf-next/tools/testing/selftests/bpf' [yhs@localhost bpf-next]$ Could you still make the above command work? > > Cheers, > Anders > >> >>> To fix this issue remove the urandom_read target and so target >>> TEST_CUSTOM_PROGS gets used. >>> >>> Fixes: 81f77fd0deeb ("bpf: add selftest for stackmap with BPF_F_STACK_BUILD_ID") >>> Signed-off-by: Anders Roxell <anders.roxell@linaro.org> >>> --- >>> tools/testing/selftests/bpf/Makefile | 6 ++---- >>> 1 file changed, 2 insertions(+), 4 deletions(-) >>> >>> diff --git a/tools/testing/selftests/bpf/Makefile b/tools/testing/selftests/bpf/Makefile >>> index 607ed8729c06..67285591ffd7 100644 >>> --- a/tools/testing/selftests/bpf/Makefile >>> +++ b/tools/testing/selftests/bpf/Makefile >>> @@ -16,10 +16,8 @@ LDLIBS += -lcap -lelf -lrt -lpthread >>> TEST_CUSTOM_PROGS = $(OUTPUT)/urandom_read >>> all: $(TEST_CUSTOM_PROGS) >>> >>> -$(TEST_CUSTOM_PROGS): urandom_read >>> - >>> -urandom_read: urandom_read.c >>> - $(CC) -o $(TEST_CUSTOM_PROGS) -static $< -Wl,--build-id >>> +$(TEST_CUSTOM_PROGS): $(OUTPUT)/%: %.c >>> + $(CC) -o $@ -static $< -Wl,--build-id >>> >>> # Order correspond to 'make run_tests' order >>> TEST_GEN_PROGS = test_verifier test_tag test_maps test_lru_map test_lpm_map test_progs \ >>> -- >>> 2.17.1 >>>
On 7 June 2018 at 23:17, Y Song <ys114321@gmail.com> wrote: > On Thu, Jun 7, 2018 at 12:07 PM, Anders Roxell <anders.roxell@linaro.org> wrote: >> On 7 June 2018 at 19:52, Y Song <ys114321@gmail.com> wrote: >>> On Thu, Jun 7, 2018 at 3:57 AM, Anders Roxell <anders.roxell@linaro.org> wrote: >>>> gcc complains that urandom_read gets built twice. >>>> >>>> gcc -o tools/testing/selftests/bpf/urandom_read >>>> -static urandom_read.c -Wl,--build-id >>>> gcc -Wall -O2 -I../../../include/uapi -I../../../lib -I../../../lib/bpf >>>> -I../../../../include/generated -I../../../include urandom_read.c >>>> urandom_read -lcap -lelf -lrt -lpthread -o >>>> tools/testing/selftests/bpf/urandom_read >>>> gcc: fatal error: input file >>>> ‘tools/testing/selftests/bpf/urandom_read’ is the >>>> same as output file >>>> compilation terminated. >>>> ../lib.mk:110: recipe for target >>>> 'tools/testing/selftests/bpf/urandom_read' failed >>> >>> What is the build/make command to reproduce the above failure? >> >> make -C tools/testing/selftests > > Thanks. The patch will break > make -C tools/testing/selftests/bpf > > [yhs@localhost bpf-next]$ make -C tools/testing/selftests/bpf > make: Entering directory '/home/yhs/work/bpf-next/tools/testing/selftests/bpf' > gcc -o /urandom_read -static urandom_read.c -Wl,--build-id > /usr/bin/ld: cannot open output file /urandom_read: Permission denied > collect2: error: ld returned 1 exit status > make: *** [Makefile:20: /urandom_read] Error 1 > make: Leaving directory '/home/yhs/work/bpf-next/tools/testing/selftests/bpf' > [yhs@localhost bpf-next]$ urgh, I'm sorry, missed that. > > Could you still make the above command work? $(TEST_CUSTOM_PROGS): $(OUTPUT)/%: %.c $(CC) -o $(TEST_CUSTOM_PROGS) -static $< -Wl,--build-id That worked both with: make -C tools/testing/selftests and make -C tools/testing/selftests/bpf for me. what do you think? > >> >> Cheers, >> Anders >> >>> >>>> To fix this issue remove the urandom_read target and so target >>>> TEST_CUSTOM_PROGS gets used. >>>> >>>> Fixes: 81f77fd0deeb ("bpf: add selftest for stackmap with BPF_F_STACK_BUILD_ID") >>>> Signed-off-by: Anders Roxell <anders.roxell@linaro.org> >>>> --- >>>> tools/testing/selftests/bpf/Makefile | 6 ++---- >>>> 1 file changed, 2 insertions(+), 4 deletions(-) >>>> >>>> diff --git a/tools/testing/selftests/bpf/Makefile b/tools/testing/selftests/bpf/Makefile >>>> index 607ed8729c06..67285591ffd7 100644 >>>> --- a/tools/testing/selftests/bpf/Makefile >>>> +++ b/tools/testing/selftests/bpf/Makefile >>>> @@ -16,10 +16,8 @@ LDLIBS += -lcap -lelf -lrt -lpthread >>>> TEST_CUSTOM_PROGS = $(OUTPUT)/urandom_read >>>> all: $(TEST_CUSTOM_PROGS) >>>> >>>> -$(TEST_CUSTOM_PROGS): urandom_read >>>> - >>>> -urandom_read: urandom_read.c >>>> - $(CC) -o $(TEST_CUSTOM_PROGS) -static $< -Wl,--build-id >>>> +$(TEST_CUSTOM_PROGS): $(OUTPUT)/%: %.c >>>> + $(CC) -o $@ -static $< -Wl,--build-id >>>> >>>> # Order correspond to 'make run_tests' order >>>> TEST_GEN_PROGS = test_verifier test_tag test_maps test_lru_map test_lpm_map test_progs \ >>>> -- >>>> 2.17.1 >>>>
On Thu, Jun 7, 2018 at 2:43 PM, Anders Roxell <anders.roxell@linaro.org> wrote: > On 7 June 2018 at 23:17, Y Song <ys114321@gmail.com> wrote: >> On Thu, Jun 7, 2018 at 12:07 PM, Anders Roxell <anders.roxell@linaro.org> wrote: >>> On 7 June 2018 at 19:52, Y Song <ys114321@gmail.com> wrote: >>>> On Thu, Jun 7, 2018 at 3:57 AM, Anders Roxell <anders.roxell@linaro.org> wrote: >>>>> gcc complains that urandom_read gets built twice. >>>>> >>>>> gcc -o tools/testing/selftests/bpf/urandom_read >>>>> -static urandom_read.c -Wl,--build-id >>>>> gcc -Wall -O2 -I../../../include/uapi -I../../../lib -I../../../lib/bpf >>>>> -I../../../../include/generated -I../../../include urandom_read.c >>>>> urandom_read -lcap -lelf -lrt -lpthread -o >>>>> tools/testing/selftests/bpf/urandom_read >>>>> gcc: fatal error: input file >>>>> ‘tools/testing/selftests/bpf/urandom_read’ is the >>>>> same as output file >>>>> compilation terminated. >>>>> ../lib.mk:110: recipe for target >>>>> 'tools/testing/selftests/bpf/urandom_read' failed >>>> >>>> What is the build/make command to reproduce the above failure? >>> >>> make -C tools/testing/selftests >> >> Thanks. The patch will break >> make -C tools/testing/selftests/bpf >> >> [yhs@localhost bpf-next]$ make -C tools/testing/selftests/bpf >> make: Entering directory '/home/yhs/work/bpf-next/tools/testing/selftests/bpf' >> gcc -o /urandom_read -static urandom_read.c -Wl,--build-id >> /usr/bin/ld: cannot open output file /urandom_read: Permission denied >> collect2: error: ld returned 1 exit status >> make: *** [Makefile:20: /urandom_read] Error 1 >> make: Leaving directory '/home/yhs/work/bpf-next/tools/testing/selftests/bpf' >> [yhs@localhost bpf-next]$ > > urgh, I'm sorry, missed that. > >> >> Could you still make the above command work? > > $(TEST_CUSTOM_PROGS): $(OUTPUT)/%: %.c > $(CC) -o $(TEST_CUSTOM_PROGS) -static $< -Wl,--build-id > > That worked both with: > make -C tools/testing/selftests > and > make -C tools/testing/selftests/bpf > > for me. > > what do you think? This indeed works. You can submit a revised patch and add my Ack. Acked-by: Yonghong Song <yhs@fb.com>
On 8 June 2018 at 07:08, Y Song <ys114321@gmail.com> wrote: > On Thu, Jun 7, 2018 at 2:43 PM, Anders Roxell <anders.roxell@linaro.org> wrote: >> On 7 June 2018 at 23:17, Y Song <ys114321@gmail.com> wrote: >>> On Thu, Jun 7, 2018 at 12:07 PM, Anders Roxell <anders.roxell@linaro.org> wrote: >>>> On 7 June 2018 at 19:52, Y Song <ys114321@gmail.com> wrote: >>>>> On Thu, Jun 7, 2018 at 3:57 AM, Anders Roxell <anders.roxell@linaro.org> wrote: >>>>>> gcc complains that urandom_read gets built twice. >>>>>> >>>>>> gcc -o tools/testing/selftests/bpf/urandom_read >>>>>> -static urandom_read.c -Wl,--build-id >>>>>> gcc -Wall -O2 -I../../../include/uapi -I../../../lib -I../../../lib/bpf >>>>>> -I../../../../include/generated -I../../../include urandom_read.c >>>>>> urandom_read -lcap -lelf -lrt -lpthread -o >>>>>> tools/testing/selftests/bpf/urandom_read >>>>>> gcc: fatal error: input file >>>>>> ‘tools/testing/selftests/bpf/urandom_read’ is the >>>>>> same as output file >>>>>> compilation terminated. >>>>>> ../lib.mk:110: recipe for target >>>>>> 'tools/testing/selftests/bpf/urandom_read' failed >>>>> >>>>> What is the build/make command to reproduce the above failure? >>>> >>>> make -C tools/testing/selftests >>> >>> Thanks. The patch will break >>> make -C tools/testing/selftests/bpf >>> >>> [yhs@localhost bpf-next]$ make -C tools/testing/selftests/bpf >>> make: Entering directory '/home/yhs/work/bpf-next/tools/testing/selftests/bpf' >>> gcc -o /urandom_read -static urandom_read.c -Wl,--build-id >>> /usr/bin/ld: cannot open output file /urandom_read: Permission denied >>> collect2: error: ld returned 1 exit status >>> make: *** [Makefile:20: /urandom_read] Error 1 >>> make: Leaving directory '/home/yhs/work/bpf-next/tools/testing/selftests/bpf' >>> [yhs@localhost bpf-next]$ >> >> urgh, I'm sorry, missed that. >> >>> >>> Could you still make the above command work? >> >> $(TEST_CUSTOM_PROGS): $(OUTPUT)/%: %.c >> $(CC) -o $(TEST_CUSTOM_PROGS) -static $< -Wl,--build-id >> >> That worked both with: >> make -C tools/testing/selftests >> and >> make -C tools/testing/selftests/bpf >> >> for me. >> >> what do you think? > > This indeed works. You can submit a revised patch and add my Ack. > Acked-by: Yonghong Song <yhs@fb.com> Thank you for your time reviewing this. I will send that out shortly. Cheers, Anders
diff --git a/tools/testing/selftests/bpf/Makefile b/tools/testing/selftests/bpf/Makefile index 607ed8729c06..67285591ffd7 100644 --- a/tools/testing/selftests/bpf/Makefile +++ b/tools/testing/selftests/bpf/Makefile @@ -16,10 +16,8 @@ LDLIBS += -lcap -lelf -lrt -lpthread TEST_CUSTOM_PROGS = $(OUTPUT)/urandom_read all: $(TEST_CUSTOM_PROGS) -$(TEST_CUSTOM_PROGS): urandom_read - -urandom_read: urandom_read.c - $(CC) -o $(TEST_CUSTOM_PROGS) -static $< -Wl,--build-id +$(TEST_CUSTOM_PROGS): $(OUTPUT)/%: %.c + $(CC) -o $@ -static $< -Wl,--build-id # Order correspond to 'make run_tests' order TEST_GEN_PROGS = test_verifier test_tag test_maps test_lru_map test_lpm_map test_progs \
gcc complains that urandom_read gets built twice. gcc -o tools/testing/selftests/bpf/urandom_read -static urandom_read.c -Wl,--build-id gcc -Wall -O2 -I../../../include/uapi -I../../../lib -I../../../lib/bpf -I../../../../include/generated -I../../../include urandom_read.c urandom_read -lcap -lelf -lrt -lpthread -o tools/testing/selftests/bpf/urandom_read gcc: fatal error: input file ‘tools/testing/selftests/bpf/urandom_read’ is the same as output file compilation terminated. ../lib.mk:110: recipe for target 'tools/testing/selftests/bpf/urandom_read' failed To fix this issue remove the urandom_read target and so target TEST_CUSTOM_PROGS gets used. Fixes: 81f77fd0deeb ("bpf: add selftest for stackmap with BPF_F_STACK_BUILD_ID") Signed-off-by: Anders Roxell <anders.roxell@linaro.org> --- tools/testing/selftests/bpf/Makefile | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) -- 2.17.1