LINUX.ORG.RU

простой grep по ядру сказал, что в файле include/asm-generic/vmlinux.lds.h определяется __start_pci_fixups_early (с двумя подчерками вначале), может проблема в этом?

P.S. а вообще указывай хотя бы версию ядра и драйвер, который компилишь.

anonymous
()
Ответ на: комментарий от anonymous

Linux 2.6.12 USB driver. Yes,it's defined in include/asm-generic/vmlinux.lds.h as assemler lable. In pci/quirks.c it is used as "extern struct pci_fixup __start_pci_fixups_early[]".

I dalshe ispolzuetsia kak

struct pci_fixup *start; start = &__start_pci_fixups_early;

It is a confict of types and compiler produces "undefined reference to `_start_pci_fixups_early'"

Thanks.

anonymous
()
Ответ на: комментарий от anonymous

вот кусок из drivers/pci/quirks.c в 2.6.13 ядре:

[...]
extern struct pci_fixup __start_pci_fixups_early[];
extern struct pci_fixup __end_pci_fixups_early[];
extern struct pci_fixup __start_pci_fixups_header[];
extern struct pci_fixup __end_pci_fixups_header[];
extern struct pci_fixup __start_pci_fixups_final[];
extern struct pci_fixup __end_pci_fixups_final[];
extern struct pci_fixup __start_pci_fixups_enable[];
extern struct pci_fixup __end_pci_fixups_enable[];


void pci_fixup_device(enum pci_fixup_pass pass, struct pci_dev *dev)
{
	struct pci_fixup *start, *end;

	switch(pass) {
	case pci_fixup_early:
		start = __start_pci_fixups_early;
		end = __end_pci_fixups_early;
[...]

anonymous
()
Ответ на: комментарий от anonymous

гм... посмотрел 2.6.12 там тоже "start = __start_pci_fixups_early;", откуда у тебя взялось "start = &__start_pci_fixups_early;"?

anonymous
()
Ответ на: комментарий от anonymous

Ya eto znayu.Konechno problema ne tolko s __start_pci_fixups_early, no iz __end_pci_fixups_early, iz ... Kak i v kakom meste doljna bity opredelena RODATA in vmlinux.lds.S ? Ya dumayu v etom delo.

Spasibo.

anonymous
()
Ответ на: комментарий от anonymous

Da doljnobity "start = __start_pci_fixups_early;" Eto ya v voprose oshibsia

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.