Re: [PATCH v2 00/15] kbuild: support 'userprogs' syntax

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed, Apr 29, 2020 at 12:45 PM Masahiro Yamada <masahiroy@xxxxxxxxxx> wrote:
>
>
> Several Makefiles use 'hostprogs' to build programs for the host
> architecture where it is not appropriate to do so.
> This is just because Kbuild lacks the support for building programs
> for the target architecture.
>
> This series introduce 'userprogs' syntax and use it from
> sample and bpf Makefiles.
>
> Sam worked on this in 2014.
> https://lkml.org/lkml/2014/7/13/154
>
> He used 'uapiprogs-y' but I just thought the meaning of
> "UAPI programs" is unclear.
>
> Naming the syntax is one of the most difficult parts.
>
> I chose 'userprogs'. Anothor choice I had in my mind was 'targetprogs'.
>
> You can test this series quickly by 'make allmodconfig samples/'
>
> When building objects for userspace, [U] is displayed.
>
> masahiro@oscar:~/workspace/linux$ make allmodconfig samples/


All applied to linux-kbuild.


>   [snip]
>   AR      samples/vfio-mdev/built-in.a
>   CC [M]  samples/vfio-mdev/mtty.o
>   CC [M]  samples/vfio-mdev/mdpy.o
>   CC [M]  samples/vfio-mdev/mdpy-fb.o
>   CC [M]  samples/vfio-mdev/mbochs.o
>   AR      samples/mei/built-in.a
>   CC [U]  samples/mei/mei-amt-version
>   CC [U]  samples/auxdisplay/cfag12864b-example
>   CC [M]  samples/configfs/configfs_sample.o
>   CC [M]  samples/connector/cn_test.o
>   CC [U]  samples/connector/ucon
>   CC [M]  samples/ftrace/ftrace-direct.o
>   CC [M]  samples/ftrace/ftrace-direct-too.o
>   CC [M]  samples/ftrace/ftrace-direct-modify.o
>   CC [M]  samples/ftrace/sample-trace-array.o
>   CC [U]  samples/hidraw/hid-example
>   CC [M]  samples/hw_breakpoint/data_breakpoint.o
>   CC [M]  samples/kdb/kdb_hello.o
>   CC [M]  samples/kfifo/bytestream-example.o
>   CC [M]  samples/kfifo/dma-example.o
>   CC [M]  samples/kfifo/inttype-example.o
>   CC [M]  samples/kfifo/record-example.o
>   CC [M]  samples/kobject/kobject-example.o
>   CC [M]  samples/kobject/kset-example.o
>   CC [M]  samples/kprobes/kprobe_example.o
>   CC [M]  samples/kprobes/kretprobe_example.o
>   CC [M]  samples/livepatch/livepatch-sample.o
>   CC [M]  samples/livepatch/livepatch-shadow-mod.o
>   CC [M]  samples/livepatch/livepatch-shadow-fix1.o
>   CC [M]  samples/livepatch/livepatch-shadow-fix2.o
>   CC [M]  samples/livepatch/livepatch-callbacks-demo.o
>   CC [M]  samples/livepatch/livepatch-callbacks-mod.o
>   CC [M]  samples/livepatch/livepatch-callbacks-busymod.o
>   CC [M]  samples/rpmsg/rpmsg_client_sample.o
>   CC [U]  samples/seccomp/bpf-fancy.o
>   CC [U]  samples/seccomp/bpf-helper.o
>   LD [U]  samples/seccomp/bpf-fancy
>   CC [U]  samples/seccomp/dropper
>   CC [U]  samples/seccomp/bpf-direct
>   CC [U]  samples/seccomp/user-trap
>   CC [U]  samples/timers/hpet_example
>   CC [M]  samples/trace_events/trace-events-sample.o
>   CC [M]  samples/trace_printk/trace-printk.o
>   CC [U]  samples/uhid/uhid-example
>   CC [M]  samples/v4l/v4l2-pci-skeleton.o
>   CC [U]  samples/vfs/test-fsmount
>   CC [U]  samples/vfs/test-statx
> samples/vfs/test-statx.c:24:15: warning: ‘struct foo’ declared inside parameter list will not be visible outside of this definition or declaration
>    24 | #define statx foo
>       |               ^~~
>   CC [U]  samples/watchdog/watchdog-simple
>   AR      samples/built-in.a
>
> Changes for v2:
>   - Fix ARCH=i386 build error for bpfilter_umh
>   - Rename 'user-ccflags' to 'userccflags'
>     because 'user-ccflags' would conflict if an object
>     called 'user.o' exists in the directory.
>   - Support 'userldflags'
>
> Masahiro Yamada (14):
>   bpfilter: match bit size of bpfilter_umh to that of the kernel
>   kbuild: add infrastructure to build userspace programs
>   bpfilter: use 'userprogs' syntax to build bpfilter_umh
>   samples: seccomp: build sample programs for target architecture
>   kbuild: doc: document the new syntax 'userprogs'
>   samples: uhid: build sample program for target architecture
>   samples: hidraw: build sample program for target architecture
>   samples: connector: build sample program for target architecture
>   samples: vfs: build sample programs for target architecture
>   samples: pidfd: build sample program for target architecture
>   samples: mei: build sample program for target architecture
>   samples: auxdisplay: use 'userprogs' syntax
>   samples: timers: use 'userprogs' syntax
>   samples: watchdog: use 'userprogs' syntax
>
> Sam Ravnborg (1):
>   samples: uhid: fix warnings in uhid-example
>
>  Documentation/kbuild/makefiles.rst | 183 +++++++++++++++++++++--------
>  Makefile                           |  13 +-
>  init/Kconfig                       |   4 +-
>  net/bpfilter/Makefile              |  11 +-
>  samples/Kconfig                    |  26 +++-
>  samples/Makefile                   |   4 +
>  samples/auxdisplay/Makefile        |  11 +-
>  samples/connector/Makefile         |  12 +-
>  samples/hidraw/Makefile            |   9 +-
>  samples/mei/Makefile               |   9 +-
>  samples/pidfd/Makefile             |   8 +-
>  samples/seccomp/Makefile           |  42 +------
>  samples/timers/Makefile            |  17 +--
>  samples/uhid/.gitignore            |   2 +
>  samples/uhid/Makefile              |   9 +-
>  samples/uhid/uhid-example.c        |   4 +-
>  samples/vfs/Makefile               |  11 +-
>  samples/watchdog/Makefile          |  10 +-
>  scripts/Makefile.build             |   6 +
>  scripts/Makefile.clean             |   2 +-
>  scripts/Makefile.userprogs         |  45 +++++++
>  usr/include/Makefile               |   4 +
>  22 files changed, 267 insertions(+), 175 deletions(-)
>  create mode 100644 samples/uhid/.gitignore
>  create mode 100644 scripts/Makefile.userprogs
>
> --
> 2.25.1
>


-- 
Best Regards
Masahiro Yamada




[Index of Archives]     [Linux Samsung SoC]     [Linux Rockchip SoC]     [Linux Actions SoC]     [Linux for Synopsys ARC Processors]     [Linux NFS]     [Linux NILFS]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]


  Powered by Linux