[bpf-next,2/8] samples: bpf: Makefile: remove target for native build

Message ID 20190904212212.13052-3-ivan.khoronzhuk@linaro.org
State New
Headers show
Series
  • [bpf-next,1/8] samples: bpf: Makefile: use --target from cross-compile
Related show

Commit Message

Ivan Khoronzhuk Sept. 4, 2019, 9:22 p.m.
No need to set --target for native build, at least for arm, the
default target will be used anyway. In case of arm, for at least
clang 5 - 10 it causes error like:

clang: warning: unknown platform, assuming -mfloat-abi=soft
LLVM ERROR: Unsupported calling convention
make[2]: *** [/home/root/snapshot/samples/bpf/Makefile:299:
/home/root/snapshot/samples/bpf/sockex1_kern.o] Error 1

Only set to real triple helps: --target=arm-linux-gnueabihf
or just drop the target key to use default one. Decision to just
drop it and thus default target will be used (wich is native),
looks better.

Signed-off-by: Ivan Khoronzhuk <ivan.khoronzhuk@linaro.org>

---
 samples/bpf/Makefile | 2 --
 1 file changed, 2 deletions(-)

-- 
2.17.1

Comments

Alexei Starovoitov Sept. 7, 2019, 12:04 a.m. | #1
On Fri, Sep 6, 2019 at 4:52 PM Ivan Khoronzhuk
<ivan.khoronzhuk@linaro.org> wrote:
>

> On Fri, Sep 06, 2019 at 04:31:39PM -0700, Alexei Starovoitov wrote:

> >On Thu, Sep 05, 2019 at 12:22:06AM +0300, Ivan Khoronzhuk wrote:

> >> No need to set --target for native build, at least for arm, the

> >> default target will be used anyway. In case of arm, for at least

> >> clang 5 - 10 it causes error like:

> >>

> >> clang: warning: unknown platform, assuming -mfloat-abi=soft

> >> LLVM ERROR: Unsupported calling convention

> >> make[2]: *** [/home/root/snapshot/samples/bpf/Makefile:299:

> >> /home/root/snapshot/samples/bpf/sockex1_kern.o] Error 1

> >>

> >> Only set to real triple helps: --target=arm-linux-gnueabihf

> >> or just drop the target key to use default one. Decision to just

> >> drop it and thus default target will be used (wich is native),

> >> looks better.

> >>

> >> Signed-off-by: Ivan Khoronzhuk <ivan.khoronzhuk@linaro.org>

> >> ---

> >>  samples/bpf/Makefile | 2 --

> >>  1 file changed, 2 deletions(-)

> >>

> >> diff --git a/samples/bpf/Makefile b/samples/bpf/Makefile

> >> index 61b7394b811e..a2953357927e 100644

> >> --- a/samples/bpf/Makefile

> >> +++ b/samples/bpf/Makefile

> >> @@ -197,8 +197,6 @@ BTF_PAHOLE ?= pahole

> >>  ifdef CROSS_COMPILE

> >>  HOSTCC = $(CROSS_COMPILE)gcc

> >>  CLANG_ARCH_ARGS = --target=$(notdir $(CROSS_COMPILE:%-=%))

> >> -else

> >> -CLANG_ARCH_ARGS = -target $(ARCH)

> >>  endif

> >

> >I don't follow here.

> >Didn't you introduce this bug in patch 1 and now fixing it in patch 2?

> >

>

> It looks like but that's not true.

> Previous patch adds target only for cross compiling,

> before the patch the target was used for both, cross compiling and w/o cc.

>

> This patch removes target only for native build (it's not cross compiling).

>

> By fact, it's two separate significant changes.


How so?
before first patch CLANG_ARCH_ARGS is only used under CROSS_COMPILE.
After the first patch CLANG_ARCH_ARGS is now suddenly defined w/o CROSS_COMPILE
and second patch brings it to the state before first patch.

Patch

diff --git a/samples/bpf/Makefile b/samples/bpf/Makefile
index 61b7394b811e..a2953357927e 100644
--- a/samples/bpf/Makefile
+++ b/samples/bpf/Makefile
@@ -197,8 +197,6 @@  BTF_PAHOLE ?= pahole
 ifdef CROSS_COMPILE
 HOSTCC = $(CROSS_COMPILE)gcc
 CLANG_ARCH_ARGS = --target=$(notdir $(CROSS_COMPILE:%-=%))
-else
-CLANG_ARCH_ARGS = -target $(ARCH)
 endif
 
 # Don't evaluate probes and warnings if we need to run make recursively