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

Paul Menzel paulepanter at users.sourceforge.net
Wed Mar 27 18:16:57 CET 2013


Am Mittwoch, den 27.03.2013, 12:03 -0500 schrieb Aaron Durbin:
> 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 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).

Nice. Could you push it to Gerrit for review or as an easy way for
others to get/test/use it.

I’d very much like Patrick to comment on this, as he or Secunet is in my
opinion the defacto libpayload maintainer. Though he does not seem to be
online currently. Maybe he is on vacation.


Thanks,

Paul
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 198 bytes
Desc: This is a digitally signed message part
URL: <http://www.coreboot.org/pipermail/coreboot/attachments/20130327/6f09629e/attachment.sig>


More information about the coreboot mailing list