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

Aaron Durbin adurbin at google.com
Wed Mar 27 14:17:08 CET 2013


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.

-Aaron



More information about the coreboot mailing list