realmode _WAKEUP

Alexander Kuleshov kuleshovmail at gmail.com
Wed Jan 7 13:02:47 EST 2015


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 at gmail.com>:
> 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 at tiscali.nl>:
>> 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



More information about the Kernelnewbies mailing list