diff options
author | Toomas Soome <tsoome@me.com> | 2019-08-09 11:35:49 +0300 |
---|---|---|
committer | Toomas Soome <tsoome@me.com> | 2019-08-21 08:36:09 +0300 |
commit | 7e6ac63905653744ac6703d7bc31790c363cf5e7 (patch) | |
tree | 7944c56d76444d844717b5efd4690f0718b11633 /usr/src | |
parent | 889229bb296dd6f2b73fa6bb3247c58a71282836 (diff) | |
download | illumos-joyent-7e6ac63905653744ac6703d7bc31790c363cf5e7.tar.gz |
11539 dboot: build errors with gcc9
Reviewed by: Robert Mustacchi <robert.mustacchi@joyent.com>
Approved by: Dan McDonald <danmcd@joyent.com>
Diffstat (limited to 'usr/src')
-rw-r--r-- | usr/src/uts/i86pc/dboot/dboot_elfload.c | 7 | ||||
-rw-r--r-- | usr/src/uts/i86pc/dboot/dboot_startkern.c | 47 |
2 files changed, 32 insertions, 22 deletions
diff --git a/usr/src/uts/i86pc/dboot/dboot_elfload.c b/usr/src/uts/i86pc/dboot/dboot_elfload.c index 937bf9c144..c03f66145f 100644 --- a/usr/src/uts/i86pc/dboot/dboot_elfload.c +++ b/usr/src/uts/i86pc/dboot/dboot_elfload.c @@ -182,10 +182,11 @@ dboot_elfload64(uintptr_t file_image) /* zero out bss */ if (shdr->sh_type == SHT_NOBITS) { if (prom_debug) - dboot_printf("zeroing BSS %ld bytes from " - "physaddr 0x%llx (end=0x%llx)\n", + dboot_printf("zeroing BSS %lu bytes from " + "physaddr 0x%" PRIx64 + " (end=0x%" PRIx64 ")\n", (ulong_t)shdr->sh_size, - (long long unsigned)next_addr, + next_addr, next_addr + shdr->sh_size); (void) memset((void *)(uintptr_t)next_addr, 0, shdr->sh_size); diff --git a/usr/src/uts/i86pc/dboot/dboot_startkern.c b/usr/src/uts/i86pc/dboot/dboot_startkern.c index 9647dbe87d..87261b4df8 100644 --- a/usr/src/uts/i86pc/dboot/dboot_startkern.c +++ b/usr/src/uts/i86pc/dboot/dboot_startkern.c @@ -683,17 +683,19 @@ dboot_loader_mmap_entries(void) DBG(mb_info->flags); if (mb_info->flags & 0x40) { mb_memory_map_t *mmap; + caddr32_t mmap_addr; DBG(mb_info->mmap_addr); DBG(mb_info->mmap_length); check_higher(mb_info->mmap_addr + mb_info->mmap_length); - for (mmap = (mb_memory_map_t *)mb_info->mmap_addr; - (uint32_t)mmap < mb_info->mmap_addr + + for (mmap_addr = mb_info->mmap_addr; + mmap_addr < mb_info->mmap_addr + mb_info->mmap_length; - mmap = (mb_memory_map_t *)((uint32_t)mmap + - mmap->size + sizeof (mmap->size))) + mmap_addr += mmap->size + sizeof (mmap->size)) { + mmap = (mb_memory_map_t *)(uintptr_t)mmap_addr; ++num_entries; + } num_entries_set = B_TRUE; } @@ -719,16 +721,17 @@ dboot_loader_mmap_get_type(int index) { #if !defined(__xpv) mb_memory_map_t *mp, *mpend; + caddr32_t mmap_addr; int i; switch (multiboot_version) { case 1: - mp = (mb_memory_map_t *)mb_info->mmap_addr; - mpend = (mb_memory_map_t *) + mp = (mb_memory_map_t *)(uintptr_t)mb_info->mmap_addr; + mpend = (mb_memory_map_t *)(uintptr_t) (mb_info->mmap_addr + mb_info->mmap_length); for (i = 0; mp < mpend && i != index; i++) - mp = (mb_memory_map_t *)((uint32_t)mp + mp->size + + mp = (mb_memory_map_t *)((uintptr_t)mp + mp->size + sizeof (mp->size)); if (mp >= mpend) { dboot_panic("dboot_loader_mmap_get_type(): index " @@ -765,7 +768,7 @@ dboot_loader_mmap_get_base(int index) (mb_info->mmap_addr + mb_info->mmap_length); for (i = 0; mp < mpend && i != index; i++) - mp = (mb_memory_map_t *)((uint32_t)mp + mp->size + + mp = (mb_memory_map_t *)((uintptr_t)mp + mp->size + sizeof (mp->size)); if (mp >= mpend) { dboot_panic("dboot_loader_mmap_get_base(): index " @@ -804,7 +807,7 @@ dboot_loader_mmap_get_length(int index) (mb_info->mmap_addr + mb_info->mmap_length); for (i = 0; mp < mpend && i != index; i++) - mp = (mb_memory_map_t *)((uint32_t)mp + mp->size + + mp = (mb_memory_map_t *)((uintptr_t)mp + mp->size + sizeof (mp->size)); if (mp >= mpend) { dboot_panic("dboot_loader_mmap_get_length(): index " @@ -1654,6 +1657,7 @@ process_efi32(EFI_SYSTEM_TABLE32 *efi) { uint32_t entries; EFI_CONFIGURATION_TABLE32 *config; + efi_guid_t VendorGuid; int i; entries = efi->NumberOfTableEntries; @@ -1661,21 +1665,23 @@ process_efi32(EFI_SYSTEM_TABLE32 *efi) efi->ConfigurationTable; for (i = 0; i < entries; i++) { - if (dboot_same_guids(&config[i].VendorGuid, &smbios3)) { + (void) memcpy(&VendorGuid, &config[i].VendorGuid, + sizeof (VendorGuid)); + if (dboot_same_guids(&VendorGuid, &smbios3)) { bi->bi_smbios = (native_ptr_t)(uintptr_t) config[i].VendorTable; } if (bi->bi_smbios == 0 && - dboot_same_guids(&config[i].VendorGuid, &smbios)) { + dboot_same_guids(&VendorGuid, &smbios)) { bi->bi_smbios = (native_ptr_t)(uintptr_t) config[i].VendorTable; } - if (dboot_same_guids(&config[i].VendorGuid, &acpi2)) { + if (dboot_same_guids(&VendorGuid, &acpi2)) { bi->bi_acpi_rsdp = (native_ptr_t)(uintptr_t) config[i].VendorTable; } if (bi->bi_acpi_rsdp == 0 && - dboot_same_guids(&config[i].VendorGuid, &acpi1)) { + dboot_same_guids(&VendorGuid, &acpi1)) { bi->bi_acpi_rsdp = (native_ptr_t)(uintptr_t) config[i].VendorTable; } @@ -1687,6 +1693,7 @@ process_efi64(EFI_SYSTEM_TABLE64 *efi) { uint64_t entries; EFI_CONFIGURATION_TABLE64 *config; + efi_guid_t VendorGuid; int i; entries = efi->NumberOfTableEntries; @@ -1694,22 +1701,24 @@ process_efi64(EFI_SYSTEM_TABLE64 *efi) efi->ConfigurationTable; for (i = 0; i < entries; i++) { - if (dboot_same_guids(&config[i].VendorGuid, &smbios3)) { + (void) memcpy(&VendorGuid, &config[i].VendorGuid, + sizeof (VendorGuid)); + if (dboot_same_guids(&VendorGuid, &smbios3)) { bi->bi_smbios = (native_ptr_t)(uintptr_t) config[i].VendorTable; } if (bi->bi_smbios == 0 && - dboot_same_guids(&config[i].VendorGuid, &smbios)) { + dboot_same_guids(&VendorGuid, &smbios)) { bi->bi_smbios = (native_ptr_t)(uintptr_t) config[i].VendorTable; } /* Prefer acpi v2+ over v1. */ - if (dboot_same_guids(&config[i].VendorGuid, &acpi2)) { + if (dboot_same_guids(&VendorGuid, &acpi2)) { bi->bi_acpi_rsdp = (native_ptr_t)(uintptr_t) config[i].VendorTable; } if (bi->bi_acpi_rsdp == 0 && - dboot_same_guids(&config[i].VendorGuid, &acpi1)) { + dboot_same_guids(&VendorGuid, &acpi1)) { bi->bi_acpi_rsdp = (native_ptr_t)(uintptr_t) config[i].VendorTable; } @@ -1841,7 +1850,7 @@ print_efi64(EFI_SYSTEM_TABLE64 *efi) dboot_printf("%c", (char)data[i]); dboot_printf("\nEFI firmware revision: "); dboot_print_efi_version(efi->FirmwareRevision); - dboot_printf("EFI system table number of entries: %lld\n", + dboot_printf("EFI system table number of entries: %" PRIu64 "\n", efi->NumberOfTableEntries); conf = (EFI_CONFIGURATION_TABLE64 *)(uintptr_t) efi->ConfigurationTable; @@ -2191,7 +2200,7 @@ dboot_loader_name(void) switch (multiboot_version) { case 1: - return ((char *)mb_info->boot_loader_name); + return ((char *)(uintptr_t)mb_info->boot_loader_name); case 2: tag = dboot_multiboot2_find_tag(mb2_info, |