As i understood correctly we compile wakeup-objs only if CONFIG_ACPI_SLEEP is 'y', but than why we pass -D_WAKEUP everytime, even CONFIG_ACPI_SLEEP is not y? 2015-01-07 23:59 GMT+06:00 Alexander Kuleshov <kuleshovmail@xxxxxxxxx>: > Hello Paul, thank you for answer. > > Yes i saw video-*.c files, but i can't understand how compilation of > these video-*.c files depends on _WAKEUP macro... > > For example if'd remove -D_WAKEUP, i get errors during realmode.elf linking: > > arch/x86/realmode/rm/video-vga.o: In function `vga_probe': > /home/alex/dev/linux/arch/x86/realmode/rm/../../boot/video-vga.c:259: > undefined reference to `boot_params' > > As you wrote there are many #ifndef/#endif directives, but why there > _WAKEUP is undefined everytime, but we pass it from command line with > -D_WAKEUP? > > Thank you. > > 2015-01-07 22:54 GMT+06:00 Paul Bolle <pebolle@xxxxxxxxxx>: >> On Wed, 2015-01-07 at 20:12 +0600, Alexander Kuleshov wrote: >>> There is following definition at arch/x86/realmode/rm/Makefile: >>> >>> KBUILD_CFLAGS := $(LINUXINCLUDE) $(REALMODE_CFLAGS) -D_SETUP -D_WAKEUP \ >>> -I$(srctree)/arch/x86/boot >>> >>> Is it used now? I'm asking because _WAKEUP definition everywhere >>> undefined in the code. >> >> git grep tells me: >> $ git grep -n "_WAKEUP\b" arch/x86 >> arch/x86/boot/video-bios.c:51:#ifndef _WAKEUP >> arch/x86/boot/video-bios.c:66:#ifdef _WAKEUP >> arch/x86/boot/video-mode.c:169:#ifndef _WAKEUP >> arch/x86/boot/video-vesa.c:27:#ifndef _WAKEUP >> arch/x86/boot/video-vesa.c:29:#else /* _WAKEUP */ >> arch/x86/boot/video-vesa.c:31:#endif /* _WAKEUP */ >> arch/x86/boot/video-vesa.c:160:#ifndef _WAKEUP >> arch/x86/boot/video-vesa.c:272:#endif /* not _WAKEUP */ >> arch/x86/boot/video-vga.c:257:#ifndef _WAKEUP >> arch/x86/boot/video-vga.c:269:#ifndef _WAKEUP >> >> And in that Makefile we also see, a few lines up: >> wakeup-objs := [...] video-mode.o >> [...] >> wakeup-objs += video-vga.o >> wakeup-objs += video-vesa.o >> wakeup-objs += video-bios.o >> >> So this Makefile line defines a _WAKEUP macro that is, it seems, used >> for the build of those four object files. (It's bit more complicated >> than that. But I think KBUILD_CFLAGS is explained in Documentation/, >> isn't it?) >> >> Hope this helps, >> >> >> Paul Bolle >> > > > > -- > _________________________ > 0xAX -- _________________________ 0xAX _______________________________________________ Kernelnewbies mailing list Kernelnewbies@xxxxxxxxxxxxxxxxx http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies