selftests: bpf: fix urandom_read build issue

Message ID 20180607105712.553-1-anders.roxell@linaro.org
State Superseded
Headers show
Series
  • selftests: bpf: fix urandom_read build issue
Related show

Commit Message

Anders Roxell June 7, 2018, 10:57 a.m.
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

Comments

Y Song June 7, 2018, 5:52 p.m. | #1
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

>
Anders Roxell June 7, 2018, 7:07 p.m. | #2
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

>>
Y Song June 7, 2018, 9:17 p.m. | #3
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

>>>
Anders Roxell June 7, 2018, 9:43 p.m. | #4
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

>>>>
Y Song June 8, 2018, 5:08 a.m. | #5
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>
Anders Roxell June 8, 2018, 6:45 a.m. | #6
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

Patch

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 \