Am 16.02.2007 09:33 schrieb Adrian Bunk: >>> ... >>> LD drivers/isdn/gigaset/built-in.o >>> drivers/isdn/gigaset/ser_gigaset.o: In function `gigaset_m10x_send_skb': >>> (.text+0xe50): multiple definition of `gigaset_m10x_send_skb' >>> drivers/isdn/gigaset/usb_gigaset.o:(.text+0x0): first defined here >>> drivers/isdn/gigaset/ser_gigaset.o: In function `gigaset_m10x_input': >>> (.text+0x1121): multiple definition of `gigaset_m10x_input' >>> drivers/isdn/gigaset/usb_gigaset.o:(.text+0x2d1): first defined here >>> make[4]: *** [drivers/isdn/gigaset/built-in.o] Error 1 > CONFIG_ISDN_DRV_GIGASET=y > CONFIG_GIGASET_BASE=y > CONFIG_GIGASET_M105=y > CONFIG_GIGASET_M101=y Ah, thanks, I can see what's happening now. When both the M101 and M105 drivers are built into the kernel, asyncdata.o gets linked in twice, via usb_gigaset-y := usb-gigaset.o asyncdata.o obj-$(CONFIG_GIGASET_M105) += usb_gigaset.o gigaset.o and ser_gigaset-y := ser-gigaset.o asyncdata.o obj-$(CONFIG_GIGASET_M101) += ser_gigaset.o gigaset.o The assertion in Documentation/kbuild/makefiles.txt: The order of files in $(obj-y) is significant. Duplicates in the lists are allowed: the first instance will be linked into built-in.o and succeeding instances will be ignored. doesn't work out in this case because asyncdata.o isn't added directly to $(obj-y), but as part of usb_gigaset.o and ser_gigaset.o. I'm not quite happy with your solution, though. I'd prefer a Makefile which builds modular usb_gigaset.ko and/or ser_gigaset.ko like the present one (including asyncdata.o), but when linking usb-gigaset.o and ser-gigaset.o into the kernel includes asyncdata.o only once. Trouble is, I don't know how to express that in Kbuild. Any ideas? Thanks, Tilman -- Tilman Schmidt E-Mail: [email protected] Bonn, Germany Diese Nachricht besteht zu 100% aus wiederverwerteten Bits. Ungeöffnet mindestens haltbar bis: (siehe Rückseite)
Attachment:
signature.asc
Description: OpenPGP digital signature
- Follow-Ups:
- References:
- [2.6 patch] drivers/isdn/gigaset/: build asyncdata.o into the gigaset module
- From: Adrian Bunk <[email protected]>
- Re: [2.6 patch] drivers/isdn/gigaset/: build asyncdata.o into the gigaset module
- From: Tilman Schmidt <[email protected]>
- Re: [2.6 patch] drivers/isdn/gigaset/: build asyncdata.o into the gigaset module
- From: Adrian Bunk <[email protected]>
- [2.6 patch] drivers/isdn/gigaset/: build asyncdata.o into the gigaset module
- Prev by Date: [kj][RFC] roll macro's in bitops.h
- Next by Date: Re: [uml-devel] x86_64: fix 2.6.18 regression - PTRACE_OLDSETOPTIONS should be accepted
- Previous by thread: Re: [2.6 patch] drivers/isdn/gigaset/: build asyncdata.o into the gigaset module
- Next by thread: Re: Kbuild problem (was: [2.6 patch] drivers/isdn/gigaset/: build asyncdata.o into the gigaset module)
- Index(es):