Message ID | 20190904212212.13052-3-ivan.khoronzhuk@linaro.org |
---|---|
State | Changes Requested |
Delegated to: | BPF Maintainers |
Headers | show |
Series | samples: bpf: improve/fix cross-compilation | expand |
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?
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.
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.
On Fri, Sep 06, 2019 at 05:04:08PM -0700, Alexei Starovoitov wrote: >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. Oh sorry ), messed with my local exp with target bpf, after rebase, even forgot that's mine. Will drop it, with removing "else" for previous 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
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(-)