On Wednesday 10 May 2006 04:47, Trent Piepho wrote: > On Tue, 9 May 2006, Rusty Scott wrote: > > Hey is anyone working on making sure this still supports older kernels? > > I'm working with a hardware vendor who is making linux his area of > > primary support. We are having a lot of trouble compiling the current > > Hg against anything other than 2.6.16. > > > > I saw a Trent Piepho patch a while back that came by this list > > concerning the renaming of semaphore to mutex at 2.6.16. I haven't seen > > it applied (I think he was reworking it possibly?) > > The original patch was applied, but the reworked one: > http://www.linuxtv.org/pipermail/linux-dvb/2006-April/009510.html > > Wasn't commented apon. It didn't add new compatability, just changed the > way existing compatability worked to do more in compat.h and less in the > drivers. I don't know enough about what LKML's reaction to this would be - can anyone say if this would be acceptable? I find it OK myself... > The make *config targets don't work properly on older kernels. They don't > always work correctly on 2.6.16 either for that matter. I posted a patch > that fixed this: > http://www.linuxtv.org/pipermail/linux-dvb/2006-April/009940.html > but no response to that either. Well I tried this, but it doesn't work right for me (update patch against latest v4l-dvb attached). I went into my /usr/src/linux and ran "make distclean" to make sure everything was gone. Then I went into v4l-dvb and typed "make menuconfig": orac v4l-dvb.usbfix # make menuconfig make -C /home/adq/dev/dvb/linuxtv.org/v4l-dvb.usbfix/v4l menuconfig make[1]: Entering directory `/home/adq/dev/dvb/linuxtv.org/v4l-dvb.usbfix/v4l' scripts/make_makefile.pl make[1]: Leaving directory `/home/adq/dev/dvb/linuxtv.org/v4l-dvb.usbfix/v4l' make[1]: Entering directory `/home/adq/dev/dvb/linuxtv.org/v4l-dvb.usbfix/v4l' make[1]: Warning: File `Makefile.media' has modification time 4.5 s in the future creating symbolic links... make -C /lib/modules/2.6.16.1/build -f /home/adq/dev/dvb/linuxtv.org/v4l-dvb.usbfix/v4l/Makefile.kernel config-targets=1 mixed-targets=0 dot-config=0 v4l-mconf make[2]: Entering directory `/usr/src/linux-2.6.16.1' /home/adq/dev/dvb/linuxtv.org/v4l-dvb.usbfix/v4l/Makefile.kernel:22: /Makefile: No such file or directory make[2]: *** No rule to make target `/Makefile'. Stop. make[2]: Leaving directory `/usr/src/linux-2.6.16.1' make[1]: *** [/lib/modules/2.6.16.1/build/scripts/kconfig/mconf] Error 2 make[1]: Leaving directory `/home/adq/dev/dvb/linuxtv.org/v4l-dvb.usbfix/v4l' make: *** [menuconfig] Error 2 Perhaps something has become broken with the newer v4l-dvb makefile?
diff -r 6325d19e2e93 v4l/Makefile --- a/v4l/Makefile Fri May 12 23:38:03 2006 +0100 +++ b/v4l/Makefile Sat May 13 00:23:48 2006 +0100 @@ -244,65 +244,55 @@ reload:: ################################################# # Configuration rules -# SHELL used by kbuild -CONFIG_SHELL := $(shell if [ -x "$$BASH" ]; then echo $$BASH; \ - else if [ -x /bin/bash ]; then echo /bin/bash; \ - else echo sh; fi ; fi) - -build := srctree=$(KDIR) HOSTCXX="$(CXX)" HOSTCC="$(HOSTCC)" CONFIG_SHELL="$(CONFIG_SHELL)" -f $(KDIR)/scripts/Makefile.build obj - -xconfig:: links .version - -if [ ! -f $(KDIR)/scripts/kconfig/qconf ]; then \ - $(MAKE) -C $(KDIR) $(build)=scripts/kconfig qconf-target=1 scripts/kconfig/qconf; \ - fi - ./scripts/make_kconfig.pl - $(KDIR)/scripts/kconfig/qconf Kconfig - ./scripts/make_noconfig.pl - -gconfig:: links .version - -if [ ! -f $(KDIR)/scripts/kconfig/gconf ]; then \ - $(MAKE) -C $(KDIR) $(build)=scripts/kconfig scripts/kconfig/gconf; \ - fi - ./scripts/make_kconfig.pl - $(KDIR)/scripts/kconfig/gconf Kconfig - ./scripts/make_noconfig.pl - -config:: links .version - -if [ ! -f $(KDIR)/scripts/kconfig/conf ]; then \ - $(MAKE) -C $(KDIR) $(build)=scripts/kconfig scripts/kconfig/conf; \ - fi - ./scripts/make_kconfig.pl - $(KDIR)/scripts/kconfig/conf Kconfig - ./scripts/make_noconfig.pl - -menuconfig:: links .version - ./scripts/make_kconfig.pl - -rm scripts/lxdialog scripts/kconfig - -if [ -d $(KDIR)/scripts/lxdialog ]; then \ - if [ ! -f $(KDIR)/scripts/lxdialog/lxdialog ]; then \ - $(MAKE) -C $(KDIR) $(build)=scripts/lxdialog; \ - fi; \ - ln -s $(KDIR)/scripts/lxdialog scripts/lxdialog; \ - fi - - -if [ -d $(KDIR)/scripts/kconfig ]; then \ - if [ -d $(KDIR)/scripts/kconfig/lxdialog ]; then \ - if [ ! -f $(KDIR)/scripts/kconfig/lxdialog ]; then \ - $(MAKE) -C $(KDIR) $(build)=scripts/kconfig/lxdialog; \ - fi; \ - fi; \ - if [ ! -f $(KDIR)/scripts/kconfig/mconf ]; then \ - $(MAKE) -C $(KDIR) $(build)=scripts/kconfig scripts/kconfig/mconf; \ - fi; \ - ln -s $(KDIR)/scripts/kconfig scripts/kconfig; \ - fi - - $(KDIR)/scripts/kconfig/mconf Kconfig +# Kernel config programs +QCONF := $(KDIR)/scripts/kconfig/qconf +GCONF := $(KDIR)/scripts/kconfig/gconf +MCONF := $(KDIR)/scripts/kconfig/mconf +CONF := $(KDIR)/scripts/kconfig/conf + +# lxdialog can be in either scripts/lxdialog or scripts/kconfig/lxdialog +LXDIALOG_DIR := $(shell if [ -d $(KDIR)/scripts/kconfig/lxdialog ]; then echo kconfig/ ; fi) +LXDIALOG_LNK := $(if $(LXDIALOG_DIR),scripts/kconfig,scripts/lxdialog) +LXDIALOG := $(KDIR)/scripts/$(LXDIALOG_DIR)lxdialog/lxdialog + +xconfig:: links .version $(QCONF) + ./scripts/make_kconfig.pl + $(QCONF) Kconfig + ./scripts/make_noconfig.pl + +gconfig:: links .version $(GCONF) + ./scripts/make_kconfig.pl + $(QCONF) Kconfig + ./scripts/make_noconfig.pl + +config:: links .version $(CONF) + ./scripts/make_kconfig.pl + $(CONF) Kconfig + ./scripts/make_noconfig.pl + +menuconfig:: links .version $(MCONF) lxdialog + ./scripts/make_kconfig.pl + $(MCONF) Kconfig ./scripts/make_noconfig.pl allyesconfig allmodconfig:: links .version ./scripts/make_kconfig.pl 1 ./scripts/make_noconfig.pl + +# rule to build kernel conf programs +KMAKEVARS := config-targets=1 mixed-targets=0 dot-config=0 +$(QCONF) $(GCONF) $(MCONF) $(CONF): + $(MAKE) -C $(KDIR) -f $(PWD)/Makefile.kernel $(KMAKEVARS) v4l-$(notdir $@) + +# lxdialog has two parts, a symlink and the actual binary +.PHONY: lxdialog +lxdialog: $(LXDIALOG) $(LXDIALOG_LNK) + +$(LXDIALOG_LNK): + ln -snf $(KDIR)/$(LXDIALOG_LNK) $(LXDIALOG_LNK) + +$(LXDIALOG): + $(MAKE) -C $(KDIR) -f $(PWD)/Makefile.kernel $(KMAKEVARS) v4l-$(LXDIALOG) ################################################# # IVTV link rules diff -r 6325d19e2e93 v4l/Makefile.kernel --- /dev/null Thu Jan 1 00:00:00 1970 +0000 +++ b/v4l/Makefile.kernel Sat May 13 00:23:48 2006 +0100 @@ -0,0 +1,46 @@ +# This Makefile is used to build sources that are part of the kernel tree. +# What we want are the various programs used by the kconfig system. We can't +# just directly call the top-level kernel Makefile, as it doesn't provide +# targets to only build the kconfig system. It provides targets to build +# the kconfig system *and then configure the kernel*. + +# What we do is include the top-level kernel Makefile here, to get all the +# variables and rules it defines, and then add our own targets to just build +# the kconfig system. You can think of this file as a modified version of the +# top-level kernel Makefile that has "kconfig build only" targets added to it. +# Each of these new targets has the prefix v4l- so it doesn't conflict with +# any targets in the kernel Makefile. + +# Like the kernel Makefile, this Makefile should have the cwd be the root +# of the kernel source. + +# These should be defined on the command line, to override the kernel Makefile +# config-targets := 1 +# mixed-targets := 0 +# dot-config := 0 + +include $(KDIR)/Makefile + +# Used by the config target +v4l-conf: scripts_basic + $(MAKE) $(build)=scripts/kconfig scripts/kconfig/conf + +# Used by the xconfig target +v4l-qconf: scripts_basic + $(MAKE) $(build)=scripts/kconfig qconf-target=1 scripts/kconfig/qconf + +# Used by the qconfig target +v4l-gconf: scripts_basic + $(MAKE) $(build)=scripts/kconfig gconf-target=1 scripts/kconfig/gconf + +# Used by the menuconfig target, also needs lxdialog +v4l-mconf: scripts_basic + $(MAKE) $(build)=scripts/kconfig scripts/kconfig/mconf + +# Rule used for kernel where lxdialog is in directory scripts/lxdialog +v4l-%/scripts/lxdialog/lxdialog: scripts_basic + $(MAKE) $(build)=scripts/lxdialog + +# Rule used for kernel where lxdialog is in directory scripts/kconfig/lxdialog +v4l-%/scripts/kconfig/lxdialog/lxdialog: scripts_basic + $(MAKE) $(build)=scripts/kconfig/lxdialog
_______________________________________________ linux-dvb@xxxxxxxxxxx http://www.linuxtv.org/cgi-bin/mailman/listinfo/linux-dvb