Message ID | 1405276974-17323-3-git-send-email-sam@ravnborg.org (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Hi Sam, On Sun, 13 Jul 2014 20:42:51 +0200 Sam Ravnborg <sam@ravnborg.org> wrote: > Reduce complexity of seccomp Makefile by introducing use of uapiprogs support. > Build testet with i686 only. tested ? (Ditto in 4/6) > --- a/samples/seccomp/Makefile > +++ b/samples/seccomp/Makefile > @@ -1,48 +1,4 @@ > -# kbuild trick to avoid linker error. Can be omitted if a module is built. > -obj- := dummy.o > +uapiprogs-$(CONFIG_SECCOMP_FILTER) := bpf-fancy dropper bpf-direct > > -hostprogs-$(CONFIG_SECCOMP_FILTER) := bpf-fancy dropper bpf-direct > +bpf-fancy-y := bpf-fancy.o bpf-helper.o > > -HOSTCFLAGS_bpf-fancy.o += -I$(objtree)/usr/include > -HOSTCFLAGS_bpf-fancy.o += -idirafter $(objtree)/include > -HOSTCFLAGS_bpf-helper.o += -I$(objtree)/usr/include > -HOSTCFLAGS_bpf-helper.o += -idirafter $(objtree)/include > -bpf-fancy-objs := bpf-fancy.o bpf-helper.o > - I am interested in this series. Forgive me if I am asking a stupid question.. How can I build hostprogs for the same host as the kernel? (I mean, how can I override $(HOSTCC) for cross-compiling ?) Best Regards Masahiro Yamada -- To unsubscribe from this list: send the line "unsubscribe linux-kbuild" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On Wed, Jul 16, 2014 at 06:43:51PM +0900, Masahiro Yamada wrote: > Hi Sam, > > > On Sun, 13 Jul 2014 20:42:51 +0200 > Sam Ravnborg <sam@ravnborg.org> wrote: > > > Reduce complexity of seccomp Makefile by introducing use of uapiprogs support. > > Build testet with i686 only. > > tested ? > > (Ditto in 4/6) Thanks - will fix. > I am interested in this series. > > Forgive me if I am asking a stupid question.. > > > How can I build hostprogs for the same host as the kernel? > (I mean, how can I override $(HOSTCC) for cross-compiling ?) One way to do this: make ARCH=sparc CROSS_COMPILE=sparc-leon-linux-gnu- HOSTCC=sparc-leon-linux-gnu-gcc Notice that I override HOSTCC as part of the make comand line. This allows me to override the "=" assignment in the top-level Makefile. But then my build breaks as fixdep do not run on my host. If you in general want to build a binary for the target then uapiprogs come in handy. Only caveat here is that you will be using the exported kernel headers. Sam -- To unsubscribe from this list: send the line "unsubscribe linux-kbuild" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On Wed, 16 Jul 2014 12:31:21 +0200 Sam Ravnborg <sam@ravnborg.org> wrote: > > How can I build hostprogs for the same host as the kernel? > > (I mean, how can I override $(HOSTCC) for cross-compiling ?) > > One way to do this: > > make ARCH=sparc CROSS_COMPILE=sparc-leon-linux-gnu- HOSTCC=sparc-leon-linux-gnu-gcc > > Notice that I override HOSTCC as part of the make comand line. > This allows me to override the "=" assignment in the top-level Makefile. > > But then my build breaks as fixdep do not run on my host. > > If you in general want to build a binary for the target then uapiprogs come in handy. > Only caveat here is that you will be using the exported kernel headers. > Thanks for explaining this. It is clearer to me now. At first I thought this patch was a clean-up, but it is indeed a big improvement. Thanks! Best Regards Masahiro Yamada -- To unsubscribe from this list: send the line "unsubscribe linux-kbuild" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
diff --git a/samples/Makefile b/samples/Makefile index 7c08028..b4d7d66 100644 --- a/samples/Makefile +++ b/samples/Makefile @@ -11,5 +11,5 @@ obj-$(CONFIG_SAMPLES) += rpmsg/ obj-$(CONFIG_SAMPLES) += kdb/ # user space programs -obj-$(CONFIG_SAMPLES) += seccomp/ +subdir-$(CONFIG_SAMPLES) += seccomp obj-$(CONFIG_SAMPLES) += hidraw/ diff --git a/samples/seccomp/Makefile b/samples/seccomp/Makefile index 1b4e4b8..8f11cf4 100644 --- a/samples/seccomp/Makefile +++ b/samples/seccomp/Makefile @@ -1,48 +1,4 @@ -# kbuild trick to avoid linker error. Can be omitted if a module is built. -obj- := dummy.o +uapiprogs-$(CONFIG_SECCOMP_FILTER) := bpf-fancy dropper bpf-direct -hostprogs-$(CONFIG_SECCOMP_FILTER) := bpf-fancy dropper bpf-direct +bpf-fancy-y := bpf-fancy.o bpf-helper.o -HOSTCFLAGS_bpf-fancy.o += -I$(objtree)/usr/include -HOSTCFLAGS_bpf-fancy.o += -idirafter $(objtree)/include -HOSTCFLAGS_bpf-helper.o += -I$(objtree)/usr/include -HOSTCFLAGS_bpf-helper.o += -idirafter $(objtree)/include -bpf-fancy-objs := bpf-fancy.o bpf-helper.o - -HOSTCFLAGS_dropper.o += -I$(objtree)/usr/include -HOSTCFLAGS_dropper.o += -idirafter $(objtree)/include -dropper-objs := dropper.o - -HOSTCFLAGS_bpf-direct.o += -I$(objtree)/usr/include -HOSTCFLAGS_bpf-direct.o += -idirafter $(objtree)/include -bpf-direct-objs := bpf-direct.o - -# Try to match the kernel target. -ifndef CROSS_COMPILE -ifndef CONFIG_64BIT - -# s390 has -m31 flag to build 31 bit binaries -ifndef CONFIG_S390 -MFLAG = -m32 -else -MFLAG = -m31 -endif - -HOSTCFLAGS_bpf-direct.o += $(MFLAG) -HOSTCFLAGS_dropper.o += $(MFLAG) -HOSTCFLAGS_bpf-helper.o += $(MFLAG) -HOSTCFLAGS_bpf-fancy.o += $(MFLAG) -HOSTLOADLIBES_bpf-direct += $(MFLAG) -HOSTLOADLIBES_bpf-fancy += $(MFLAG) -HOSTLOADLIBES_dropper += $(MFLAG) -endif -always := $(hostprogs-y) -else -# MIPS system calls are defined based on the -mabi that is passed -# to the toolchain which may or may not be a valid option -# for the host toolchain. So disable tests if target architecture -# is MIPS but the host isn't. -ifndef CONFIG_MIPS -always := $(hostprogs-y) -endif -endif
Reduce complexity of seccomp Makefile by introducing use of uapiprogs support. Build testet with i686 only. Signed-off-by: Sam Ravnborg <sam@ravnborg.org> --- samples/Makefile | 2 +- samples/seccomp/Makefile | 48 ++---------------------------------------------- 2 files changed, 3 insertions(+), 47 deletions(-)