[coreboot] coreinfo: `make` fails due to `error: conflicting types for ‘size_t’`

Aaron Durbin adurbin at google.com
Wed Mar 27 18:03:53 CET 2013


On Wed, Mar 27, 2013 at 8:17 AM, Aaron Durbin <adurbin at google.com> wrote:
> On Wed, Mar 27, 2013 at 7:51 AM, Paul Menzel
> <paulepanter at users.sourceforge.net> wrote:
>> Dear coreboot folks,
>>
>>
>> with latest master (and a workaround for PDCurses warning)
>>
>>         commit 3cc0d1eb3f611cb7bf0e45d8ccdb0c84f54f54dc
>>         Author: David Hendricks <dhendrix at chromium.org>
>>         Date:   Tue Mar 26 16:28:21 2013 -0700
>>
>>             exynos5250: assign RAM resources in cpu_init()
>>
>>             Reviewed-on: http://review.coreboot.org/2923
>>
>> the payload coreinfo does not build anymore.
>>
>>         /src/coreboot/payloads/coreinfo(master) $ make distclean
>>         /src/coreboot/payloads/coreinfo(master) $ rm -rf libpayloadbin/
>>         /src/coreboot/payloads/coreinfo(master) $ make
>>         *
>>         * coreinfo Configuration
>>         *
>>         *
>>         * General settings
>>         *
>>         Show current date/time in the menu (SHOW_DATE_TIME) [Y/n/?] (NEW)
>>         Payload name (PAYLOAD_INFO_NAME) [coreinfo] (NEW)
>>         Payload menu entry name (PAYLOAD_INFO_LISTNAME) [System Information] (NEW)
>>         Payload description (PAYLOAD_INFO_DESC) [Display information about the system] (NEW)
>>         Payload version (PAYLOAD_INFO_VERSION) [0.1] (NEW)
>>         *
>>         * Modules
>>         *
>>         Enable the coreboot module (MODULE_COREBOOT) [Y/n/?] (NEW)
>>         Enable the multiboot module (MODULE_MULTIBOOT) [Y/n/?] (NEW)
>>         Enable the cpuinfo module (MODULE_CPUINFO) [Y/n/?] (NEW)
>>         Enable the PCI info module (MODULE_PCI) [Y/n/?] (NEW)
>>         Enable the NVRAM dump module (MODULE_NVRAM) [Y/n/?] (NEW)
>>         Enable the coreboot bootlog module (MODULE_BOOTLOG) [Y/n] (NEW)
>>         Enable the RAM dump module (MODULE_RAMDUMP) [Y/n] (NEW)
>>         Enable the coreboot v3 LAR module (MODULE_LAR) [N/y/?] (NEW)
>>         Enable the coreboot CBFS module (MODULE_CBFS) [Y/n/?] (NEW)
>>         #
>>         # configuration written to .config
>>         #
>>         /src/coreboot/payloads/coreinfo(master) $ make
>>         Building libpayload @ ../libpayload.
>>         Warning: no suitable GCC for armv7.
>>         /bin/sh: -print-libgcc-file-name: Kommando nicht gefunden.
>>         /bin/sh: -print-libgcc-file-name: Kommando nicht gefunden.
>>         /bin/sh: --: Ungültige Option
>>         Benutzung:      /bin/sh [Lange GNU Option] [Option] ...
>>                         /bin/sh [Lange GNU Option] [Option] Script-Datei ...
>>         Lange GNU Optionen:
>>                 --debug
>>                 --debugger
>>                 --dump-po-strings
>>                 --dump-strings
>>                 --help
>>                 --init-file
>>                 --login
>>                 --noediting
>>                 --noprofile
>>                 --norc
>>                 --posix
>>                 --protected
>>                 --rcfile
>>                 --restricted
>>                 --verbose
>>                 --version
>>         Shell-Optionen:
>>                 -irsD oder -c Kommando          (Nur Aufruf)
>>                 -abefhkmnptuvxBCHP oder Option -o
>>         *** Default configuration is based on 'configs/defconfig'
>>         *
>>         * libpayload Configuration
>>         *
>>         *
>>         * Generic Options
>>         *
>>         Experimental Options (EXPERIMENTAL) [N/y/?] n
>>         Obsolete Options (OBSOLETE) [N/y/?] n
>>         Developer Options (DEVELOPER) [N/y/?] n
>>         ChromeOS specific features (CHROMEOS) [N/y/?] n
>>         *
>>         * Architecture Options
>>         *
>>         Target Architecture
>>           1. ARMv7 (ARCH_ARMV7)
>>           2. PowerPC (ARCH_POWERPC)
>>         > 3. x86 (ARCH_X86)
>>         choice[1-3]: 3
>>         Only consider RAM entries in memory map for further processing (MEMMAP_RAM_ONLY) [N/y] n
>>         Multiboot header support (MULTIBOOT) [N/y] n
>>         *
>>         * Standard Libraries
>>         *
>>         Enable C library support (LIBC) [Y/n] y
>>         Build a curses library (CURSES) [Y/n] y
>>           Curses implementation
>>             1. Tinycurses (TINYCURSES)
>>           > 2. PDCurses (PDCURSES)
>>           choice[1-2]: 2
>>         CBFS support (CBFS) [Y/n/?] y
>>         LZMA decoder (LZMA) [Y/n/?] y
>>         *
>>         * Console Options
>>         *
>>         Skip initializing the consoles at startup (SKIP_CONSOLE_INIT) [N/y/?] n
>>         Send output to the in memory CBMEM console (CBMEM_CONSOLE) [Y/n] y
>>         See output on the serial port console (SERIAL_CONSOLE) [Y/n] y
>>           I/O base for the serial port (default 0x3f8) (SERIAL_IOBASE) [0x3f8] 0x3f8
>>           Override the serial console baud rate (SERIAL_SET_SPEED) [N/y] n
>>           Use plain ASCII characters for ACS (SERIAL_ACS_FALLBACK) [N/y/?] n
>>         See output on a video console (VIDEO_CONSOLE) [Y/n] y
>>           VGA video console driver (VGA_VIDEO_CONSOLE) [Y/n] y
>>           Geode LX video console driver (GEODELX_VIDEO_CONSOLE) [N/y] n
>>           coreboot video console driver (COREBOOT_VIDEO_CONSOLE) [Y/n/?] y
>>         Allow input from a PC keyboard (PC_KEYBOARD) [Y/n] y
>>           English (US) keyboard layout (PC_KEYBOARD_LAYOUT_US) [Y/n] y
>>           German keyboard layout (PC_KEYBOARD_LAYOUT_DE) [N/y] n
>>         *
>>         * Drivers
>>         *
>>         Support for PCI devices (PCI) [Y/n] y
>>         Support for reading/writing NVRAM bytes (NVRAM) [Y/n] y
>>         Extended RTC ports are 0x74/0x75 (RTC_PORT_EXTENDED_VIA) [N/y/?] n
>>         Support for PC speaker (SPEAKER) [Y/n] y
>>         Support for storage devices (STORAGE) [Y/n/?] y
>>           Use 64-bit integers to address sectors (STORAGE_64BIT_LBA) [N/y/?] n
>>           Support ATA drives (i.e. hard drives) (STORAGE_ATA) [Y/?] y
>>           Support ATAPI drives (i.e. optical drives) (STORAGE_ATAPI) [Y/n/?] y
>>             Support for AHCI host controllers (STORAGE_AHCI) [Y/n/?] y
>>               Only enable tested controllers (STORAGE_AHCI_ONLY_TESTED) [Y/n/?] y
>>         USB Support (USB) [Y/n] y
>>           Support for USB UHCI controllers (USB_UHCI) [Y/n/?] y
>>           Support for USB OHCI controllers (USB_OHCI) [Y/n/?] y
>>           Support for USB EHCI controllers (USB_EHCI) [Y/n/?] y
>>           Support for USB xHCI controllers (USB_XHCI) [Y/n/?] y
>>           Support for USB keyboards (USB_HID) [Y/n/?] y
>>           Support for USB hubs (USB_HUB) [Y/n/?] y
>>           Support for USB storage (USB_MSC) [Y/n/?] y
>>         #
>>         # configuration written to .config
>>         #
>>             CC         libpci/libpci.libpci.o
>>             AR         build/libpci.a
>>             CC         arch/x86/main.libc.o
>>             CC         arch/x86/sysinfo.libc.o
>>             CC         arch/x86/timer.libc.o
>>             CC         arch/x86/coreboot.libc.o
>>             CC         arch/x86/util.libc.o
>>             CC         arch/x86/exec.libc.o
>>             CC         arch/x86/virtual.libc.o
>>             CC         arch/x86/string.libc.o
>>             CC         crypto/sha1.libc.o
>>             CC         libc/malloc.libc.o
>>             CC         libc/printf.libc.o
>>             CC         libc/console.libc.o
>>             CC         libc/string.libc.o
>>             CC         libc/memory.libc.o
>>             CC         libc/ctype.libc.o
>>             CC         libc/ipchecksum.libc.o
>>             CC         libc/lib.libc.o
>>             CC         libc/rand.libc.o
>>             CC         libc/time.libc.o
>>             CC         libc/exec.libc.o
>>             CC         libc/readline.libc.o
>>             CC         libc/getopt_long.libc.o
>>             CC         libc/sysinfo.libc.o
>>             CC         libc/args.libc.o
>>             CC         libc/strings.libc.o
>>             CC         libc/strlcpy.libc.o
>>             CC         libc/qsort.libc.o
>>             CC         drivers/pci.libc.o
>>             CC         drivers/speaker.libc.o
>>             CC         drivers/serial.libc.o
>>             CC         drivers/keyboard.libc.o
>>             CC         drivers/cbmem_console.libc.o
>>             CC         drivers/nvram.libc.o
>>             CC         drivers/options.libc.o
>>             CC         drivers/video/video.libc.o
>>             CC         drivers/video/vga.libc.o
>>             CC         drivers/video/corebootfb.libc.o
>>             CC         drivers/video/font8x16.libc.o
>>             CC         drivers/storage/storage.libc.o
>>             CC         drivers/storage/ata.libc.o
>>             CC         drivers/storage/atapi.libc.o
>>             CC         drivers/storage/ahci.libc.o
>>             CC         drivers/usb/usbinit.libc.o
>>             CC         drivers/usb/usb.libc.o
>>             CC         drivers/usb/usb_dev.libc.o
>>             CC         drivers/usb/quirks.libc.o
>>             CC         drivers/usb/usbhub.libc.o
>>             CC         drivers/usb/uhci.libc.o
>>             CC         drivers/usb/uhci_rh.libc.o
>>             CC         drivers/usb/ohci.libc.o
>>             CC         drivers/usb/ohci_rh.libc.o
>>             CC         drivers/usb/ehci.libc.o
>>             CC         drivers/usb/ehci_rh.libc.o
>>             CC         drivers/usb/xhci.libc.o
>>             CC         drivers/usb/xhci_rh.libc.o
>>             CC         drivers/usb/usbhid.libc.o
>>             CC         drivers/usb/usbmsc.libc.o
>>             CC         drivers/hid.libc.o
>>             AR         build/libc.a
>>             CC         curses/pdcurses-backend/pdcdisp.libcurses.o
>>             CC         curses/pdcurses-backend/pdcgetsc.libcurses.o
>>             CC         curses/pdcurses-backend/pdckbd.libcurses.o
>>             CC         curses/pdcurses-backend/pdcscrn.libcurses.o
>>             CC         curses/pdcurses-backend/pdcsetsc.libcurses.o
>>             CC         curses/pdcurses-backend/pdcutil.libcurses.o
>>             CC         curses/PDCurses-3.4/pdcurses/addch.libcurses.o
>>             CC         curses/PDCurses-3.4/pdcurses/move.libcurses.o
>>             CC         curses/PDCurses-3.4/pdcurses/overlay.libcurses.o
>>             CC         curses/PDCurses-3.4/pdcurses/refresh.libcurses.o
>>             CC         curses/PDCurses-3.4/pdcurses/terminfo.libcurses.o
>>             CC         curses/PDCurses-3.4/pdcurses/window.libcurses.o
>>             CC         curses/PDCurses-3.4/pdcurses/util.libcurses.o
>>             CC         curses/PDCurses-3.4/pdcurses/inopts.libcurses.o
>>             CC         curses/PDCurses-3.4/pdcurses/addstr.libcurses.o
>>             CC         curses/PDCurses-3.4/pdcurses/keyname.libcurses.o
>>             CC         curses/PDCurses-3.4/pdcurses/instr.libcurses.o
>>             CC         curses/PDCurses-3.4/pdcurses/clear.libcurses.o
>>             CC         curses/PDCurses-3.4/pdcurses/addchstr.libcurses.o
>>             CC         curses/PDCurses-3.4/pdcurses/kernel.libcurses.o
>>             CC         curses/PDCurses-3.4/pdcurses/pad.libcurses.o
>>             CC         curses/PDCurses-3.4/pdcurses/insstr.libcurses.o
>>             CC         curses/PDCurses-3.4/pdcurses/border.libcurses.o
>>             CC         curses/PDCurses-3.4/pdcurses/getyx.libcurses.o
>>             CC         curses/PDCurses-3.4/pdcurses/getstr.libcurses.o
>>             CC         curses/PDCurses-3.4/pdcurses/getch.libcurses.o
>>             CC         curses/PDCurses-3.4/pdcurses/termattr.libcurses.o
>>             CC         curses/PDCurses-3.4/pdcurses/outopts.libcurses.o
>>             CC         curses/PDCurses-3.4/pdcurses/color.libcurses.o
>>             CC         curses/PDCurses-3.4/pdcurses/deleteln.libcurses.o
>>             CC         curses/PDCurses-3.4/pdcurses/initscr.libcurses.o
>>             CC         curses/PDCurses-3.4/pdcurses/slk.libcurses.o
>>             CC         curses/PDCurses-3.4/pdcurses/delch.libcurses.o
>>             CC         curses/PDCurses-3.4/pdcurses/touch.libcurses.o
>>             CC         curses/PDCurses-3.4/pdcurses/mouse.libcurses.o
>>             CC         curses/PDCurses-3.4/pdcurses/scanw.libcurses.o
>>             CC         curses/PDCurses-3.4/pdcurses/scroll.libcurses.o
>>             CC         curses/PDCurses-3.4/pdcurses/printw.libcurses.o
>>             CC         curses/PDCurses-3.4/pdcurses/bkgd.libcurses.o
>>             CC         curses/PDCurses-3.4/pdcurses/inch.libcurses.o
>>             CC         curses/PDCurses-3.4/pdcurses/attr.libcurses.o
>>             CC         curses/PDCurses-3.4/pdcurses/insch.libcurses.o
>>             CC         curses/PDCurses-3.4/pdcurses/inchstr.libcurses.o
>>             CC         curses/PDCurses-3.4/pdcurses/beep.libcurses.o
>>             AR         build/libcurses.a
>>             CC         curses/menu/m_req_name.libmenu.o
>>             CC         curses/menu/m_item_nam.libmenu.o
>>             CC         curses/menu/m_pad.libmenu.o
>>             CC         curses/menu/m_cursor.libmenu.o
>>             CC         curses/menu/m_item_new.libmenu.o
>>             CC         curses/menu/m_attribs.libmenu.o
>>             CC         curses/menu/m_item_opt.libmenu.o
>>             CC         curses/menu/m_format.libmenu.o
>>             CC         curses/menu/m_post.libmenu.o
>>             CC         curses/menu/m_userptr.libmenu.o
>>             CC         curses/menu/m_item_cur.libmenu.o
>>             CC         curses/menu/m_driver.libmenu.o
>>             CC         curses/menu/m_sub.libmenu.o
>>             CC         curses/menu/m_win.libmenu.o
>>             CC         curses/menu/m_global.libmenu.o
>>             CC         curses/menu/m_item_vis.libmenu.o
>>             CC         curses/menu/m_new.libmenu.o
>>             CC         curses/menu/m_scale.libmenu.o
>>             CC         curses/menu/m_spacing.libmenu.o
>>             CC         curses/menu/m_opts.libmenu.o
>>             CC         curses/menu/m_pattern.libmenu.o
>>             CC         curses/menu/m_item_val.libmenu.o
>>             CC         curses/menu/m_hook.libmenu.o
>>             CC         curses/menu/m_item_use.libmenu.o
>>             CC         curses/menu/m_items.libmenu.o
>>             CC         curses/menu/m_item_top.libmenu.o
>>             AR         build/libmenu.a
>>             CC         curses/form/frm_page.libform.o
>>             CC         curses/form/frm_opts.libform.o
>>             CC         curses/form/frm_def.libform.o
>>             CC         curses/form/frm_req_name.libform.o
>>             CC         curses/form/fty_alpha.libform.o
>>             CC         curses/form/frm_driver.libform.o
>>             CC         curses/form/fld_user.libform.o
>>             CC         curses/form/frm_win.libform.o
>>             CC         curses/form/fld_newftyp.libform.o
>>             CC         curses/form/fld_stat.libform.o
>>             CC         curses/form/fld_pad.libform.o
>>             CC         curses/form/fld_current.libform.o
>>             CC         curses/form/frm_post.libform.o
>>             CC         curses/form/fty_generic.libform.o
>>             CC         curses/form/fld_page.libform.o
>>             CC         curses/form/frm_hook.libform.o
>>             CC         curses/form/frm_scale.libform.o
>>             CC         curses/form/fty_int.libform.o
>>             CC         curses/form/fty_alnum.libform.o
>>             CC         curses/form/frm_cursor.libform.o
>>             CC         curses/form/fld_link.libform.o
>>             CC         curses/form/fld_arg.libform.o
>>             CC         curses/form/fld_move.libform.o
>>             CC         curses/form/fld_def.libform.o
>>             CC         curses/form/fld_type.libform.o
>>             CC         curses/form/fld_max.libform.o
>>             CC         curses/form/fld_ftlink.libform.o
>>             CC         curses/form/fld_ftchoice.libform.o
>>             CC         curses/form/fld_info.libform.o
>>             CC         curses/form/frm_user.libform.o
>>             CC         curses/form/frm_sub.libform.o
>>             CC         curses/form/fty_enum.libform.o
>>             CC         curses/form/frm_data.libform.o
>>             CC         curses/form/fld_opts.libform.o
>>             CC         curses/form/fld_attr.libform.o
>>             CC         curses/form/fld_dup.libform.o
>>             CC         curses/form/fld_just.libform.o
>>             AR         build/libform.a
>>             CC         curses/PDCurses-3.4/pdcurses/panel.libpanel.o
>>             AR         build/libpanel.a
>>             CC         arch/x86/rom_media.libcbfs.o
>>             CC         libcbfs/cbfs.libcbfs.o
>>             CC         libcbfs/ram_media.libcbfs.o
>>             AR         build/libcbfs.a
>>             CC         liblzma/lzma.liblzma.o
>>             AR         build/liblzma.a
>>             AR         build/libpayload.a
>>             CC         arch/x86/head.head.o.o
>>             CP         build/head.o
>>             INSTALL    /src/coreboot/payloads/coreinfo/./libpayloadbin/libpayload/lib
>>             INSTALL    /src/coreboot/payloads/coreinfo/./libpayloadbin/libpayload/include
>>             INSTALL    /src/coreboot/payloads/coreinfo/./libpayloadbin/libpayload/bin
>>           LPCC      build/cpuinfo_module.o
>>         In file included from ./libpayloadbin/libpayload/bin/../include/libpayload.h:54:0,
>>                          from /src/coreboot/payloads/coreinfo/coreinfo.h:23,
>>                          from /src/coreboot/payloads/coreinfo/cpuinfo_module.c:23:
>>         ./libpayloadbin/libpayload/bin/../include/x86/arch/types.h:56:23: error: conflicting types for ‘size_t’
>>         In file included from ./libpayloadbin/libpayload/bin/../include/libpayload.h:49:0,
>>                          from /src/coreboot/payloads/coreinfo/coreinfo.h:23,
>>                          from /src/coreboot/payloads/coreinfo/cpuinfo_module.c:23:
>>         /usr/lib/gcc/i486-linux-gnu/4.7/include/stddef.h:213:23: note: previous declaration of ‘size_t’ was here
>>         make: *** [/src/coreboot/payloads/coreinfo/build/cpuinfo_module.o] Fehler 1
>>
>> Any idea how to fix that?
>
> I really think libpayload shouldn't be built including the system
> header files and that it should provide its own. That or completely
> rely on system header files which brings in its own issues. Build with
> -nostdinc and provide all the necessary bits that are required in
> libpayload proper by way of its own header files.
>
> I'm not sure what others think, but it means libpayload is in control of itself.

I have a temporary fix on its way. I'm not happy with it, but it
should avoid the issues you and others are seeing (including myself).

-Aaron



More information about the coreboot mailing list