All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 1/3] kbuild: call adjust_autoksyms.sh from source directory
@ 2016-04-25 13:17 Arnd Bergmann
  2016-04-25 13:17 ` [PATCH 2/3] samples: connector: from Documentation to samples directory Arnd Bergmann
                   ` (2 more replies)
  0 siblings, 3 replies; 7+ messages in thread
From: Arnd Bergmann @ 2016-04-25 13:17 UTC (permalink / raw)
  To: Michal Marek
  Cc: Nicolas Pitre, Rusty Russell, Arnd Bergmann, linux-kbuild, linux-kernel

When building with separate object trees, scripts/adjust_autoksyms.sh
cannot be called from the object directory:

/bin/bash: scripts/adjust_autoksyms.sh: No such file or directory

This adds a $(src) prefix, as we do for all other shell scripts.

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Fixes: 23121ca2b56b ("kbuild: create/adjust generated/autoksyms.h")
---
 Makefile | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/Makefile b/Makefile
index 81534210dcb9..b5c67617a98d 100644
--- a/Makefile
+++ b/Makefile
@@ -945,7 +945,7 @@ quiet_cmd_link-vmlinux = LINK    $@
 # execute if the rest of the kernel build went well.
 vmlinux: scripts/link-vmlinux.sh $(vmlinux-deps) FORCE
 ifdef CONFIG_TRIM_UNUSED_KSYMS
-	$(Q)$(CONFIG_SHELL) scripts/adjust_autoksyms.sh \
+	$(Q)$(CONFIG_SHELL) $(src)/scripts/adjust_autoksyms.sh \
 	  "$(MAKE) KBUILD_MODULES=1 -f $(srctree)/Makefile autoksyms_recursive"
 endif
 ifdef CONFIG_HEADERS_CHECK
@@ -960,13 +960,13 @@ endif
 	+$(call if_changed,link-vmlinux)
 
 autoksyms_recursive: $(vmlinux-deps)
-	$(Q)$(CONFIG_SHELL) scripts/adjust_autoksyms.sh \
+	$(Q)$(CONFIG_SHELL) $(src)/scripts/adjust_autoksyms.sh \
 	  "$(MAKE) KBUILD_MODULES=1 -f $(srctree)/Makefile autoksyms_recursive"
 PHONY += autoksyms_recursive
 
 # standalone target for easier testing
 include/generated/autoksyms.h: FORCE
-	$(Q)$(CONFIG_SHELL) scripts/adjust_autoksyms.sh true
+	$(Q)$(CONFIG_SHELL) $(src)/scripts/adjust_autoksyms.sh true
 
 # Build samples along the rest of the kernel
 ifdef CONFIG_SAMPLES
-- 
2.7.0

^ permalink raw reply related	[flat|nested] 7+ messages in thread

* [PATCH 2/3] samples: connector: from Documentation to samples directory
  2016-04-25 13:17 [PATCH 1/3] kbuild: call adjust_autoksyms.sh from source directory Arnd Bergmann
@ 2016-04-25 13:17 ` Arnd Bergmann
  2016-04-25 13:17 ` [PATCH 3/3] samples: v4l: " Arnd Bergmann
  2016-04-25 14:18 ` [PATCH 1/3] kbuild: call adjust_autoksyms.sh from source directory Nicolas Pitre
  2 siblings, 0 replies; 7+ messages in thread
From: Arnd Bergmann @ 2016-04-25 13:17 UTC (permalink / raw)
  To: Michal Marek, Jonathan Corbet, Arnd Bergmann, Nicholas Bellinger
  Cc: Nicolas Pitre, Rusty Russell, linux-doc, linux-kernel

With the new autoksyms support, we can run into a situation where
the connector sample module is the only one using some exported
symbols that get dropped because they are never referenced by
the kernel otherwise, causing a build problem:

ERROR: "cn_del_callback" [Documentation/connector/cn_test.ko] undefined!
ERROR: "cn_add_callback" [Documentation/connector/cn_test.ko] undefined!
ERROR: "cn_netlink_send" [Documentation/connector/cn_test.ko] undefined!

Specifically, we do look in the samples directory for users of
symbols, but not the Documentation directory.

This solves the build problem by moving the connector sample into
the same directory as the other samples.

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Fixes: 23121ca2b56b ("kbuild: create/adjust generated/autoksyms.h")
---
 Documentation/Makefile                          | 2 +-
 Documentation/connector/connector.txt           | 8 ++++++++
 samples/Kconfig                                 | 9 +++++++++
 samples/Makefile                                | 2 +-
 {Documentation => samples}/connector/.gitignore | 0
 {Documentation => samples}/connector/Makefile   | 6 +++---
 {Documentation => samples}/connector/cn_test.c  | 0
 {Documentation => samples}/connector/ucon.c     | 0
 8 files changed, 22 insertions(+), 5 deletions(-)
 rename {Documentation => samples}/connector/.gitignore (100%)
 rename {Documentation => samples}/connector/Makefile (76%)
 rename {Documentation => samples}/connector/cn_test.c (100%)
 rename {Documentation => samples}/connector/ucon.c (100%)

diff --git a/Documentation/Makefile b/Documentation/Makefile
index 1207d7907650..13b5ae1b87aa 100644
--- a/Documentation/Makefile
+++ b/Documentation/Makefile
@@ -1,4 +1,4 @@
-subdir-y := accounting auxdisplay blackfin connector \
+subdir-y := accounting auxdisplay blackfin \
 	filesystems filesystems ia64 laptops mic misc-devices \
 	networking pcmcia prctl ptp timers vDSO video4linux \
 	watchdog
diff --git a/Documentation/connector/connector.txt b/Documentation/connector/connector.txt
index f6215f95149b..ab7ca897fab7 100644
--- a/Documentation/connector/connector.txt
+++ b/Documentation/connector/connector.txt
@@ -186,3 +186,11 @@ only cn_test.c test module used it.
 Some work in netlink area is still being done, so things can be changed in
 2.6.15 timeframe, if it will happen, documentation will be updated for that
 kernel.
+
+/*****************************************/
+Code samples
+/*****************************************/
+
+Sample code for a connector test module and user space can be found
+in samples/connector/. To build this code, enable CONFIG_CONNECTOR
+and CONFIG_SAMPLES.
diff --git a/samples/Kconfig b/samples/Kconfig
index d54f28c6dc5e..559a58baff6e 100644
--- a/samples/Kconfig
+++ b/samples/Kconfig
@@ -76,4 +76,13 @@ config SAMPLE_CONFIGFS
 	help
 	  Builds a sample configfs interface.
 
+config SAMPLE_CONNECTOR
+	tristate "Build connector sample -- loadable modules only"
+	depends on CONNECTOR && m
+	help
+	  When enabled, this builds both a sample kernel module for
+	  the connector interface and a user space tool to communicate
+	  with it.
+	  See also Documentation/connector/connector.txt
+
 endif # SAMPLES
diff --git a/samples/Makefile b/samples/Makefile
index 48001d7e23f0..594ef7d9fa2a 100644
--- a/samples/Makefile
+++ b/samples/Makefile
@@ -2,4 +2,4 @@
 
 obj-$(CONFIG_SAMPLES)	+= kobject/ kprobes/ trace_events/ livepatch/ \
 			   hw_breakpoint/ kfifo/ kdb/ hidraw/ rpmsg/ seccomp/ \
-			   configfs/
+			   configfs/ connector/
diff --git a/Documentation/connector/.gitignore b/samples/connector/.gitignore
similarity index 100%
rename from Documentation/connector/.gitignore
rename to samples/connector/.gitignore
diff --git a/Documentation/connector/Makefile b/samples/connector/Makefile
similarity index 76%
rename from Documentation/connector/Makefile
rename to samples/connector/Makefile
index d98e4df98e24..04b9622b6f51 100644
--- a/Documentation/connector/Makefile
+++ b/samples/connector/Makefile
@@ -1,9 +1,9 @@
-ifneq ($(CONFIG_CONNECTOR),)
-obj-m += cn_test.o
-endif
+obj-$(CONFIG_SAMPLE_CONNECTOR) += cn_test.o
 
 # List of programs to build
+ifdef CONFIG_SAMPLE_CONNECTOR
 hostprogs-y := ucon
+endif
 
 # Tell kbuild to always build the programs
 always := $(hostprogs-y)
diff --git a/Documentation/connector/cn_test.c b/samples/connector/cn_test.c
similarity index 100%
rename from Documentation/connector/cn_test.c
rename to samples/connector/cn_test.c
diff --git a/Documentation/connector/ucon.c b/samples/connector/ucon.c
similarity index 100%
rename from Documentation/connector/ucon.c
rename to samples/connector/ucon.c
-- 
2.7.0

^ permalink raw reply related	[flat|nested] 7+ messages in thread

* [PATCH 3/3] samples: v4l: from Documentation to samples directory
  2016-04-25 13:17 [PATCH 1/3] kbuild: call adjust_autoksyms.sh from source directory Arnd Bergmann
  2016-04-25 13:17 ` [PATCH 2/3] samples: connector: from Documentation to samples directory Arnd Bergmann
@ 2016-04-25 13:17 ` Arnd Bergmann
  2016-04-25 14:18 ` [PATCH 1/3] kbuild: call adjust_autoksyms.sh from source directory Nicolas Pitre
  2 siblings, 0 replies; 7+ messages in thread
From: Arnd Bergmann @ 2016-04-25 13:17 UTC (permalink / raw)
  To: Michal Marek
  Cc: Nicolas Pitre, Rusty Russell, Arnd Bergmann, Jonathan Corbet,
	Mauro Carvalho Chehab, linux-doc, linux-kernel, linux-media

With the new autoksyms support, we can run into a situation where
the v4l pci skeleton module is the only one using some exported
symbols that get dropped because they are never referenced by
the kernel otherwise, causing a build problem:

ERROR: "vb2_dma_contig_memops" [Documentation/video4linux/v4l2-pci-skeleton.ko] undefined!
ERROR: "vb2_dma_contig_init_ctx_attrs" [Documentation/video4linux/v4l2-pci-skeleton.ko] undefined!
ERROR: "v4l2_match_dv_timings" [Documentation/video4linux/v4l2-pci-skeleton.ko] undefined!
ERROR: "v4l2_find_dv_timings_cap" [Documentation/video4linux/v4l2-pci-skeleton.ko] undefined!
ERROR: "v4l2_valid_dv_timings" [Documentation/video4linux/v4l2-pci-skeleton.ko] undefined!
ERROR: "v4l2_enum_dv_timings_cap" [Documentation/video4linux/v4l2-pci-skeleton.ko] undefined!
ERROR: "vb2_dma_contig_cleanup_ctx" [Documentation/video4linux/v4l2-pci-skeleton.ko] undefined!

Specifically, we do look in the samples directory for users of
symbols, but not the Documentation directory.

This solves the build problem by moving the connector sample into
the same directory as the other samples.

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Fixes: 23121ca2b56b ("kbuild: create/adjust generated/autoksyms.h")
---
 Documentation/Makefile                                         | 3 +--
 Documentation/video4linux/v4l2-framework.txt                   | 2 +-
 samples/Makefile                                               | 2 +-
 {Documentation/video4linux => samples/v4l}/Makefile            | 0
 {Documentation/video4linux => samples/v4l}/v4l2-pci-skeleton.c | 0
 5 files changed, 3 insertions(+), 4 deletions(-)
 rename {Documentation/video4linux => samples/v4l}/Makefile (100%)
 rename {Documentation/video4linux => samples/v4l}/v4l2-pci-skeleton.c (100%)

diff --git a/Documentation/Makefile b/Documentation/Makefile
index 13b5ae1b87aa..de955e151af8 100644
--- a/Documentation/Makefile
+++ b/Documentation/Makefile
@@ -1,4 +1,3 @@
 subdir-y := accounting auxdisplay blackfin \
 	filesystems filesystems ia64 laptops mic misc-devices \
-	networking pcmcia prctl ptp timers vDSO video4linux \
-	watchdog
+	networking pcmcia prctl ptp timers vDSO watchdog
diff --git a/Documentation/video4linux/v4l2-framework.txt b/Documentation/video4linux/v4l2-framework.txt
index fa41608ab2b4..cbefc7902f5f 100644
--- a/Documentation/video4linux/v4l2-framework.txt
+++ b/Documentation/video4linux/v4l2-framework.txt
@@ -35,7 +35,7 @@ need and this same framework should make it much easier to refactor
 common code into utility functions shared by all drivers.
 
 A good example to look at as a reference is the v4l2-pci-skeleton.c
-source that is available in this directory. It is a skeleton driver for
+source that is available in samples/v4l/. It is a skeleton driver for
 a PCI capture card, and demonstrates how to use the V4L2 driver
 framework. It can be used as a template for real PCI video capture driver.
 
diff --git a/samples/Makefile b/samples/Makefile
index 594ef7d9fa2a..2e3b523d7097 100644
--- a/samples/Makefile
+++ b/samples/Makefile
@@ -2,4 +2,4 @@
 
 obj-$(CONFIG_SAMPLES)	+= kobject/ kprobes/ trace_events/ livepatch/ \
 			   hw_breakpoint/ kfifo/ kdb/ hidraw/ rpmsg/ seccomp/ \
-			   configfs/ connector/
+			   configfs/ connector/ v4l/
diff --git a/Documentation/video4linux/Makefile b/samples/v4l/Makefile
similarity index 100%
rename from Documentation/video4linux/Makefile
rename to samples/v4l/Makefile
diff --git a/Documentation/video4linux/v4l2-pci-skeleton.c b/samples/v4l/v4l2-pci-skeleton.c
similarity index 100%
rename from Documentation/video4linux/v4l2-pci-skeleton.c
rename to samples/v4l/v4l2-pci-skeleton.c
-- 
2.7.0

^ permalink raw reply related	[flat|nested] 7+ messages in thread

* Re: [PATCH 1/3] kbuild: call adjust_autoksyms.sh from source directory
  2016-04-25 13:17 [PATCH 1/3] kbuild: call adjust_autoksyms.sh from source directory Arnd Bergmann
  2016-04-25 13:17 ` [PATCH 2/3] samples: connector: from Documentation to samples directory Arnd Bergmann
  2016-04-25 13:17 ` [PATCH 3/3] samples: v4l: " Arnd Bergmann
@ 2016-04-25 14:18 ` Nicolas Pitre
  2016-04-25 15:20   ` Arnd Bergmann
  2 siblings, 1 reply; 7+ messages in thread
From: Nicolas Pitre @ 2016-04-25 14:18 UTC (permalink / raw)
  To: Arnd Bergmann; +Cc: Michal Marek, Rusty Russell, linux-kbuild, linux-kernel

On Mon, 25 Apr 2016, Arnd Bergmann wrote:

> When building with separate object trees, scripts/adjust_autoksyms.sh
> cannot be called from the object directory:
> 
> /bin/bash: scripts/adjust_autoksyms.sh: No such file or directory
> 
> This adds a $(src) prefix, as we do for all other shell scripts.
> 
> Signed-off-by: Arnd Bergmann <arnd@arndb.de>

I posted fixes for all those problems already, plus another.

You may grab them all at once from this branch where I committed them on 
top of Michal's kbuild branch:

	git://git.linaro.org/people/nicolas.pitre/linux kbuild


Nicolas

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH 1/3] kbuild: call adjust_autoksyms.sh from source directory
  2016-04-25 14:18 ` [PATCH 1/3] kbuild: call adjust_autoksyms.sh from source directory Nicolas Pitre
@ 2016-04-25 15:20   ` Arnd Bergmann
  2016-04-25 15:31     ` Nicolas Pitre
  0 siblings, 1 reply; 7+ messages in thread
From: Arnd Bergmann @ 2016-04-25 15:20 UTC (permalink / raw)
  To: Nicolas Pitre
  Cc: Michal Marek, Rusty Russell, linux-kbuild, linux-kernel,
	Mauro Carvalho Chehab

On Monday 25 April 2016 10:18:56 Nicolas Pitre wrote:
> On Mon, 25 Apr 2016, Arnd Bergmann wrote:
> 
> > When building with separate object trees, scripts/adjust_autoksyms.sh
> > cannot be called from the object directory:
> > 
> > /bin/bash: scripts/adjust_autoksyms.sh: No such file or directory
> > 
> > This adds a $(src) prefix, as we do for all other shell scripts.
> > 
> > Signed-off-by: Arnd Bergmann <arnd@arndb.de>
> 
> I posted fixes for all those problems already, plus another.
> 
> You may grab them all at once from this branch where I committed them on 
> top of Michal's kbuild branch:
> 
>         git://git.linaro.org/people/nicolas.pitre/linux kbuild
> 

Ok, thanks!

I liked the idea of moving the samples from Documentation to samples,
but with your patches that is no longer required to fix the bug.

If the respective maintainers want to pick up my patches 2 and 3
independent of your fixes, I can rewrite the changelogs for those,
otherwise I'll just drop them all.

	Arnd

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH 1/3] kbuild: call adjust_autoksyms.sh from source directory
  2016-04-25 15:20   ` Arnd Bergmann
@ 2016-04-25 15:31     ` Nicolas Pitre
  2016-04-25 16:03       ` Arnd Bergmann
  0 siblings, 1 reply; 7+ messages in thread
From: Nicolas Pitre @ 2016-04-25 15:31 UTC (permalink / raw)
  To: Arnd Bergmann
  Cc: Michal Marek, Rusty Russell, linux-kbuild, linux-kernel,
	Mauro Carvalho Chehab

On Mon, 25 Apr 2016, Arnd Bergmann wrote:

> On Monday 25 April 2016 10:18:56 Nicolas Pitre wrote:
> > On Mon, 25 Apr 2016, Arnd Bergmann wrote:
> > 
> > > When building with separate object trees, scripts/adjust_autoksyms.sh
> > > cannot be called from the object directory:
> > > 
> > > /bin/bash: scripts/adjust_autoksyms.sh: No such file or directory
> > > 
> > > This adds a $(src) prefix, as we do for all other shell scripts.
> > > 
> > > Signed-off-by: Arnd Bergmann <arnd@arndb.de>
> > 
> > I posted fixes for all those problems already, plus another.
> > 
> > You may grab them all at once from this branch where I committed them on 
> > top of Michal's kbuild branch:
> > 
> >         git://git.linaro.org/people/nicolas.pitre/linux kbuild
> > 
> 
> Ok, thanks!
> 
> I liked the idea of moving the samples from Documentation to samples,
> but with your patches that is no longer required to fix the bug.
> 
> If the respective maintainers want to pick up my patches 2 and 3
> independent of your fixes, I can rewrite the changelogs for those,
> otherwise I'll just drop them all.

I agree this was a bit unexpected to have compiled code in the docs 
directory.  Whatever the reason, I didn't want autoksyms to interfere 
here.  Still, I think it is still a good idea you rewrite your changelog 
to judge those patches in the context of the reasons for having code 
there in the first place.


Nicolas

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH 1/3] kbuild: call adjust_autoksyms.sh from source directory
  2016-04-25 15:31     ` Nicolas Pitre
@ 2016-04-25 16:03       ` Arnd Bergmann
  0 siblings, 0 replies; 7+ messages in thread
From: Arnd Bergmann @ 2016-04-25 16:03 UTC (permalink / raw)
  To: Nicolas Pitre
  Cc: Michal Marek, Rusty Russell, linux-kbuild, linux-kernel,
	Mauro Carvalho Chehab

On Monday 25 April 2016 11:31:22 Nicolas Pitre wrote:
> I agree this was a bit unexpected to have compiled code in the docs 
> directory.  Whatever the reason, I didn't want autoksyms to interfere 
> here.  Still, I think it is still a good idea you rewrite your changelog 
> to judge those patches in the context of the reasons for having code 
> there in the first place.
> 

Ok, I've sent them out again now.

	Arnd

^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2016-04-25 16:04 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-04-25 13:17 [PATCH 1/3] kbuild: call adjust_autoksyms.sh from source directory Arnd Bergmann
2016-04-25 13:17 ` [PATCH 2/3] samples: connector: from Documentation to samples directory Arnd Bergmann
2016-04-25 13:17 ` [PATCH 3/3] samples: v4l: " Arnd Bergmann
2016-04-25 14:18 ` [PATCH 1/3] kbuild: call adjust_autoksyms.sh from source directory Nicolas Pitre
2016-04-25 15:20   ` Arnd Bergmann
2016-04-25 15:31     ` Nicolas Pitre
2016-04-25 16:03       ` Arnd Bergmann

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.