Description: With Latest u-boot code checked-out (on 19th Feb 2007) from git, I got the following compilation errors, when configured for sc520_cdp board. 1. sc520_cdp.c:33:initializer element is not constant 2. cmd_bootm.c:470:1: directives may not be used inside a macro argument cmd_bootm.c:469:9: unterminated argument list invoking macro "U_BOOT_CMD" cmd_bootm.c:477: parse error before ')' token 3. video_bios.c:88: undefined reference to pci_find_class I used gcc version 3.2.2. DETAILS: Error #1: ============================================================== REASON: For i386 architecture, Macro DECLARE _GLOBAL_DATA_PTR is defined as gd_t *gd = global_data in file "include/asm-i386/global_data.h", here pointer gd is initialized to global_data which is a variable, defined in file "lib_i386/board.c". Global variable initialized with a non-constant expression is a compilation error. FIX: Redefined the macro DECLARE_ GLOBAL_DATA_PTR to gd_t *gd, removed the initialization part. gd is assigned to variable 'global_data' in start_i386boot() in lib_i386/board.c. Definition of gd is protected by a macro _DEF_GLOBAL_PTR_, which is defined only in lib_i386/board.c Error #2: ============================================================== REASON: directives may not be used inside a macro argument FIX: Repositioned the macro such that functionality is not changed and error is removed Error #3: ============================================================== REASON: In file lib_i386/video_bios.c, a function "pci_find_class" is called which is not defined in the u-boot code FIX: In u-boot code a function "pci_find_devices" is used to find the devices. Instead of using function pci_find_class,function pci_find_devices can be used with appropriate vendor ID and device ID as input.