Re: [PATCH] Fix some compiler warnings
Applied, thanks! Svante Signell, le mer. 18 janv. 2023 13:29:48 +0100, a ecrit: > On Wed, 2023-01-18 at 12:27 +0100, Samuel Thibault wrote: > > Svante Signell, le mer. 18 janv. 2023 11:59:40 +0100, a ecrit: > > > On Wed, 2023-01-18 at 02:02 +0100, Samuel Thibault wrote: > > > > Hello, > > > > > > > > > > > > But conversely when we'll build it in 64bit, vm_page_size > > > > (actually uintptr_t) will be an unsigned long. > > > > > > > > This needs to be fixed the *proper* way: either use the PRIuPTR > > > > macro, or cast the value into unsigned long. > > > > > > Now cast to an unsigned long, new patch attached. > > > > I only took the ext2fs.c part for an example, but it's the same for > > all other files. > > I've changed to (unsigned long) everywhere. > > (There is also debug code not triggered by normal build needing fixes). > > Thanks! > > Index: hurd-0.9.git20221224/ext2fs/ext2fs.c > === > --- hurd-0.9.git20221224.orig/ext2fs/ext2fs.c > +++ hurd-0.9.git20221224/ext2fs/ext2fs.c > @@ -233,7 +233,7 @@ main (int argc, char **argv) > ext2_panic ("device too small for superblock (%Ld bytes)", store->size); >if (store->log2_blocks_per_page < 0) > ext2_panic ("device block size (%zu) greater than page size (%lu)", > - store->block_size, vm_page_size); > + store->block_size, (unsigned long)vm_page_size); > >/* Map the entire disk. */ >create_disk_pager (); > Index: hurd-0.9.git20221224/ext2fs/dir.c > === > --- hurd-0.9.git20221224.orig/ext2fs/dir.c > +++ hurd-0.9.git20221224/ext2fs/dir.c > @@ -417,7 +417,7 @@ dirscanblock (vm_address_t blockaddr, st > { > ext2_warning ("bad directory entry: inode: %Ld offset: %lu", > dp->cache_id, > - currentoff - blockaddr + idx * DIRBLKSIZ); > + (unsigned long)(currentoff - blockaddr + idx * > DIRBLKSIZ)); > return ENOENT; > } > > Index: hurd-0.9.git20221224/libpager/data-request.c > === > --- hurd-0.9.git20221224.orig/libpager/data-request.c > +++ hurd-0.9.git20221224/libpager/data-request.c > @@ -49,7 +49,7 @@ _pager_S_memory_object_data_request (str > } >if (length != __vm_page_size) > { > - printf ("incg data request: bad length size %lu\n", length); > + printf ("incg data request: bad length size %lu\n", (unsigned > long)length); >goto release_out; > } >if (offset % __vm_page_size) > Index: hurd-0.9.git20221224/libpager/data-return.c > === > --- hurd-0.9.git20221224.orig/libpager/data-return.c > +++ hurd-0.9.git20221224/libpager/data-return.c > @@ -60,7 +60,7 @@ _pager_do_write_request (struct pager *p > } >if (length % __vm_page_size) > { > - printf ("incg data return: bad length size %lu\n", length); > + printf ("incg data return: bad length size %lu\n", (unsigned > long)length); >goto release_out; > } >if (offset % __vm_page_size) > Index: hurd-0.9.git20221224/libpager/data-unlock.c > === > --- hurd-0.9.git20221224.orig/libpager/data-unlock.c > +++ hurd-0.9.git20221224/libpager/data-unlock.c > @@ -58,7 +58,7 @@ _pager_S_memory_object_data_unlock (stru > } >if (length != __vm_page_size) > { > - printf ("incg data unlock: bad length size %lu\n", length); > + printf ("incg data unlock: bad length size %lu\n", (unsigned > long)length); >goto out; > } > > Index: hurd-0.9.git20221224/ext2fs/pager.c > === > --- hurd-0.9.git20221224.orig/ext2fs/pager.c > +++ hurd-0.9.git20221224/ext2fs/pager.c > @@ -643,7 +643,7 @@ pager_unlock_page (struct user_pager_inf > ext2_warning ("This filesystem is out of space."); >else if (err) > ext2_warning ("inode=%Ld, page=0x%lx: %s", > - node->cache_id, page, strerror (err)); > + node->cache_id, (unsigned long)page, strerror (err)); > >return err; > } > @@ -906,7 +906,7 @@ disk_cache_init (void) > { >if (block_size != vm_page_size) > ext2_panic ("Block size %u != vm_page_size %lu", > - block_size, vm_page_size); > + block_size, (unsigned long)vm_page_size); > >pthread_mutex_init (_cache_lock, NULL); >pthread_cond_init (_cache_reassociation, NULL); > Index: hurd-0.9.git20221224/mach-defpager/main.c > === > --- hurd-0.9.git20221224.orig/mach-defpager/main.c > +++ hurd-0.9.git20221224/mach-defpager/main.c > @@ -43,6 +43,7 @@ > #include > #include > #include > +#include > #include > /* XXX */ > -- Samuel ---
Re: [PATCH] Fix some compiler warnings
On Wed, 2023-01-18 at 12:27 +0100, Samuel Thibault wrote: > Svante Signell, le mer. 18 janv. 2023 11:59:40 +0100, a ecrit: > > On Wed, 2023-01-18 at 02:02 +0100, Samuel Thibault wrote: > > > Hello, > > > > > > > > > But conversely when we'll build it in 64bit, vm_page_size > > > (actually uintptr_t) will be an unsigned long. > > > > > > This needs to be fixed the *proper* way: either use the PRIuPTR > > > macro, or cast the value into unsigned long. > > > > Now cast to an unsigned long, new patch attached. > > I only took the ext2fs.c part for an example, but it's the same for > all other files. I've changed to (unsigned long) everywhere. (There is also debug code not triggered by normal build needing fixes). Thanks! Index: hurd-0.9.git20221224/ext2fs/ext2fs.c === --- hurd-0.9.git20221224.orig/ext2fs/ext2fs.c +++ hurd-0.9.git20221224/ext2fs/ext2fs.c @@ -233,7 +233,7 @@ main (int argc, char **argv) ext2_panic ("device too small for superblock (%Ld bytes)", store->size); if (store->log2_blocks_per_page < 0) ext2_panic ("device block size (%zu) greater than page size (%lu)", - store->block_size, vm_page_size); + store->block_size, (unsigned long)vm_page_size); /* Map the entire disk. */ create_disk_pager (); Index: hurd-0.9.git20221224/ext2fs/dir.c === --- hurd-0.9.git20221224.orig/ext2fs/dir.c +++ hurd-0.9.git20221224/ext2fs/dir.c @@ -417,7 +417,7 @@ dirscanblock (vm_address_t blockaddr, st { ext2_warning ("bad directory entry: inode: %Ld offset: %lu", dp->cache_id, - currentoff - blockaddr + idx * DIRBLKSIZ); + (unsigned long)(currentoff - blockaddr + idx * DIRBLKSIZ)); return ENOENT; } Index: hurd-0.9.git20221224/libpager/data-request.c === --- hurd-0.9.git20221224.orig/libpager/data-request.c +++ hurd-0.9.git20221224/libpager/data-request.c @@ -49,7 +49,7 @@ _pager_S_memory_object_data_request (str } if (length != __vm_page_size) { - printf ("incg data request: bad length size %lu\n", length); + printf ("incg data request: bad length size %lu\n", (unsigned long)length); goto release_out; } if (offset % __vm_page_size) Index: hurd-0.9.git20221224/libpager/data-return.c === --- hurd-0.9.git20221224.orig/libpager/data-return.c +++ hurd-0.9.git20221224/libpager/data-return.c @@ -60,7 +60,7 @@ _pager_do_write_request (struct pager *p } if (length % __vm_page_size) { - printf ("incg data return: bad length size %lu\n", length); + printf ("incg data return: bad length size %lu\n", (unsigned long)length); goto release_out; } if (offset % __vm_page_size) Index: hurd-0.9.git20221224/libpager/data-unlock.c === --- hurd-0.9.git20221224.orig/libpager/data-unlock.c +++ hurd-0.9.git20221224/libpager/data-unlock.c @@ -58,7 +58,7 @@ _pager_S_memory_object_data_unlock (stru } if (length != __vm_page_size) { - printf ("incg data unlock: bad length size %lu\n", length); + printf ("incg data unlock: bad length size %lu\n", (unsigned long)length); goto out; } Index: hurd-0.9.git20221224/ext2fs/pager.c === --- hurd-0.9.git20221224.orig/ext2fs/pager.c +++ hurd-0.9.git20221224/ext2fs/pager.c @@ -643,7 +643,7 @@ pager_unlock_page (struct user_pager_inf ext2_warning ("This filesystem is out of space."); else if (err) ext2_warning ("inode=%Ld, page=0x%lx: %s", - node->cache_id, page, strerror (err)); + node->cache_id, (unsigned long)page, strerror (err)); return err; } @@ -906,7 +906,7 @@ disk_cache_init (void) { if (block_size != vm_page_size) ext2_panic ("Block size %u != vm_page_size %lu", - block_size, vm_page_size); + block_size, (unsigned long)vm_page_size); pthread_mutex_init (_cache_lock, NULL); pthread_cond_init (_cache_reassociation, NULL); Index: hurd-0.9.git20221224/mach-defpager/main.c === --- hurd-0.9.git20221224.orig/mach-defpager/main.c +++ hurd-0.9.git20221224/mach-defpager/main.c @@ -43,6 +43,7 @@ #include #include #include +#include #include /* XXX */
Re: [PATCH] Fix some compiler warnings
Svante Signell, le mer. 18 janv. 2023 11:59:40 +0100, a ecrit: > On Wed, 2023-01-18 at 02:02 +0100, Samuel Thibault wrote: > > Hello, > > > > > > But conversely when we'll build it in 64bit, vm_page_size (actually > > uintptr_t) will be an unsigned long. > > > > This needs to be fixed the *proper* way: either use the PRIuPTR > > macro, or cast the value into unsigned long. > > Now cast to an unsigned long, new patch attached. I only took the ext2fs.c part for an example, but it's the same for all other files. Samuel > Index: hurd-0.9.git20221224/ext2fs/ext2fs.c > === > --- hurd-0.9.git20221224.orig/ext2fs/ext2fs.c > +++ hurd-0.9.git20221224/ext2fs/ext2fs.c > @@ -233,7 +233,7 @@ main (int argc, char **argv) > ext2_panic ("device too small for superblock (%Ld bytes)", store->size); >if (store->log2_blocks_per_page < 0) > ext2_panic ("device block size (%zu) greater than page size (%lu)", > - store->block_size, vm_page_size); > + store->block_size, (unsigned long)vm_page_size); > >/* Map the entire disk. */ >create_disk_pager (); > Index: hurd-0.9.git20221224/ext2fs/dir.c > === > --- hurd-0.9.git20221224.orig/ext2fs/dir.c > +++ hurd-0.9.git20221224/ext2fs/dir.c > @@ -415,7 +415,7 @@ dirscanblock (vm_address_t blockaddr, st > || EXT2_DIR_REC_LEN (entry->name_len) > le16toh (entry->rec_len) > || memchr (entry->name, '\0', entry->name_len)) > { > - ext2_warning ("bad directory entry: inode: %Ld offset: %lu", > + ext2_warning ("bad directory entry: inode: %Ld offset: %u", > dp->cache_id, > currentoff - blockaddr + idx * DIRBLKSIZ); > return ENOENT; > Index: hurd-0.9.git20221224/libpager/data-request.c > === > --- hurd-0.9.git20221224.orig/libpager/data-request.c > +++ hurd-0.9.git20221224/libpager/data-request.c > @@ -49,7 +49,7 @@ _pager_S_memory_object_data_request (str > } >if (length != __vm_page_size) > { > - printf ("incg data request: bad length size %lu\n", length); > + printf ("incg data request: bad length size %u\n", length); >goto release_out; > } >if (offset % __vm_page_size) > Index: hurd-0.9.git20221224/libpager/data-return.c > === > --- hurd-0.9.git20221224.orig/libpager/data-return.c > +++ hurd-0.9.git20221224/libpager/data-return.c > @@ -60,7 +60,7 @@ _pager_do_write_request (struct pager *p > } >if (length % __vm_page_size) > { > - printf ("incg data return: bad length size %lu\n", length); > + printf ("incg data return: bad length size %u\n", length); >goto release_out; > } >if (offset % __vm_page_size) > Index: hurd-0.9.git20221224/libpager/data-unlock.c > === > --- hurd-0.9.git20221224.orig/libpager/data-unlock.c > +++ hurd-0.9.git20221224/libpager/data-unlock.c > @@ -58,7 +58,7 @@ _pager_S_memory_object_data_unlock (stru > } >if (length != __vm_page_size) > { > - printf ("incg data unlock: bad length size %lu\n", length); > + printf ("incg data unlock: bad length size %u\n", length); >goto out; > } > > Index: hurd-0.9.git20221224/ext2fs/pager.c > === > --- hurd-0.9.git20221224.orig/ext2fs/pager.c > +++ hurd-0.9.git20221224/ext2fs/pager.c > @@ -642,7 +642,7 @@ pager_unlock_page (struct user_pager_inf >if (err == ENOSPC) > ext2_warning ("This filesystem is out of space."); >else if (err) > - ext2_warning ("inode=%Ld, page=0x%lx: %s", > + ext2_warning ("inode=%Ld, page=0x%x: %s", > node->cache_id, page, strerror (err)); > >return err; > @@ -905,7 +905,7 @@ static void > disk_cache_init (void) > { >if (block_size != vm_page_size) > -ext2_panic ("Block size %u != vm_page_size %lu", > +ext2_panic ("Block size %u != vm_page_size %u", > block_size, vm_page_size); > >pthread_mutex_init (_cache_lock, NULL); > Index: hurd-0.9.git20221224/mach-defpager/main.c > === > --- hurd-0.9.git20221224.orig/mach-defpager/main.c > +++ hurd-0.9.git20221224/mach-defpager/main.c > @@ -43,6 +43,7 @@ > #include > #include > #include > +#include > #include > /* XXX */ > -- Samuel --- Pour une évaluation indépendante, transparente et rigoureuse ! Je soutiens la Commission d'Évaluation de l'Inria.
Re: [PATCH] Fix some compiler warnings
On Wed, 2023-01-18 at 02:02 +0100, Samuel Thibault wrote: > Hello, > > > But conversely when we'll build it in 64bit, vm_page_size (actually > uintptr_t) will be an unsigned long. > > This needs to be fixed the *proper* way: either use the PRIuPTR > macro, or cast the value into unsigned long. Now cast to an unsigned long, new patch attached. Thanks! Index: hurd-0.9.git20221224/ext2fs/ext2fs.c === --- hurd-0.9.git20221224.orig/ext2fs/ext2fs.c +++ hurd-0.9.git20221224/ext2fs/ext2fs.c @@ -233,7 +233,7 @@ main (int argc, char **argv) ext2_panic ("device too small for superblock (%Ld bytes)", store->size); if (store->log2_blocks_per_page < 0) ext2_panic ("device block size (%zu) greater than page size (%lu)", - store->block_size, vm_page_size); + store->block_size, (unsigned long)vm_page_size); /* Map the entire disk. */ create_disk_pager (); Index: hurd-0.9.git20221224/ext2fs/dir.c === --- hurd-0.9.git20221224.orig/ext2fs/dir.c +++ hurd-0.9.git20221224/ext2fs/dir.c @@ -415,7 +415,7 @@ dirscanblock (vm_address_t blockaddr, st || EXT2_DIR_REC_LEN (entry->name_len) > le16toh (entry->rec_len) || memchr (entry->name, '\0', entry->name_len)) { - ext2_warning ("bad directory entry: inode: %Ld offset: %lu", + ext2_warning ("bad directory entry: inode: %Ld offset: %u", dp->cache_id, currentoff - blockaddr + idx * DIRBLKSIZ); return ENOENT; Index: hurd-0.9.git20221224/libpager/data-request.c === --- hurd-0.9.git20221224.orig/libpager/data-request.c +++ hurd-0.9.git20221224/libpager/data-request.c @@ -49,7 +49,7 @@ _pager_S_memory_object_data_request (str } if (length != __vm_page_size) { - printf ("incg data request: bad length size %lu\n", length); + printf ("incg data request: bad length size %u\n", length); goto release_out; } if (offset % __vm_page_size) Index: hurd-0.9.git20221224/libpager/data-return.c === --- hurd-0.9.git20221224.orig/libpager/data-return.c +++ hurd-0.9.git20221224/libpager/data-return.c @@ -60,7 +60,7 @@ _pager_do_write_request (struct pager *p } if (length % __vm_page_size) { - printf ("incg data return: bad length size %lu\n", length); + printf ("incg data return: bad length size %u\n", length); goto release_out; } if (offset % __vm_page_size) Index: hurd-0.9.git20221224/libpager/data-unlock.c === --- hurd-0.9.git20221224.orig/libpager/data-unlock.c +++ hurd-0.9.git20221224/libpager/data-unlock.c @@ -58,7 +58,7 @@ _pager_S_memory_object_data_unlock (stru } if (length != __vm_page_size) { - printf ("incg data unlock: bad length size %lu\n", length); + printf ("incg data unlock: bad length size %u\n", length); goto out; } Index: hurd-0.9.git20221224/ext2fs/pager.c === --- hurd-0.9.git20221224.orig/ext2fs/pager.c +++ hurd-0.9.git20221224/ext2fs/pager.c @@ -642,7 +642,7 @@ pager_unlock_page (struct user_pager_inf if (err == ENOSPC) ext2_warning ("This filesystem is out of space."); else if (err) - ext2_warning ("inode=%Ld, page=0x%lx: %s", + ext2_warning ("inode=%Ld, page=0x%x: %s", node->cache_id, page, strerror (err)); return err; @@ -905,7 +905,7 @@ static void disk_cache_init (void) { if (block_size != vm_page_size) -ext2_panic ("Block size %u != vm_page_size %lu", +ext2_panic ("Block size %u != vm_page_size %u", block_size, vm_page_size); pthread_mutex_init (_cache_lock, NULL); Index: hurd-0.9.git20221224/mach-defpager/main.c === --- hurd-0.9.git20221224.orig/mach-defpager/main.c +++ hurd-0.9.git20221224/mach-defpager/main.c @@ -43,6 +43,7 @@ #include #include #include +#include #include /* XXX */
Re: [PATCH] Fix some compiler warnings
Hello, Svante Signell, le mar. 17 janv. 2023 13:15:27 +0100, a ecrit: > --- hurd-git/ext2fs/ext2fs.c 2022-12-08 15:05:29.80800 +0100 > +++ hurd-git/ext2fs/ext2fs.c 2022-12-08 19:11:12.60400 +0100 > @@ -232,7 +232,7 @@ >if (store->size < SBLOCK_OFFS + SBLOCK_SIZE) > ext2_panic ("device too small for superblock (%Ld bytes)", store->size); >if (store->log2_blocks_per_page < 0) > -ext2_panic ("device block size (%zu) greater than page size (%lu)", > +ext2_panic ("device block size (%zu) greater than page size (%u)", > store->block_size, vm_page_size); But conversely when we'll build it in 64bit, vm_page_size (actually uintptr_t) will be an unsigned long. This needs to be fixed the *proper* way: either use the PRIuPTR macro, or cast the value into unsigned long. Samuel
[PATCH] Fix some compiler warnings
Hi, The attached patch fixes some format warnings as well as an implicit declaration of ‘startup_essential_task’ in mach-defpager/main.c. Applies nicely to hurd-0.9.git20221224 and latest git. Thanks! --- hurd-git/ext2fs/ext2fs.c 2022-12-08 15:05:29.80800 +0100 +++ hurd-git/ext2fs/ext2fs.c 2022-12-08 19:11:12.60400 +0100 @@ -232,7 +232,7 @@ if (store->size < SBLOCK_OFFS + SBLOCK_SIZE) ext2_panic ("device too small for superblock (%Ld bytes)", store->size); if (store->log2_blocks_per_page < 0) -ext2_panic ("device block size (%zu) greater than page size (%lu)", +ext2_panic ("device block size (%zu) greater than page size (%u)", store->block_size, vm_page_size); /* Map the entire disk. */ --- hurd-git/ext2fs/dir.c 2022-12-03 16:44:52.78000 +0100 +++ hurd-git/ext2fs/dir.c 2022-12-09 11:35:05.29600 +0100 @@ -415,7 +415,7 @@ || EXT2_DIR_REC_LEN (entry->name_len) > le16toh (entry->rec_len) || memchr (entry->name, '\0', entry->name_len)) { - ext2_warning ("bad directory entry: inode: %Ld offset: %lu", + ext2_warning ("bad directory entry: inode: %Ld offset: %u", dp->cache_id, currentoff - blockaddr + idx * DIRBLKSIZ); return ENOENT; --- hurd-git/libpager/data-request.c 2022-12-08 15:05:29.81200 +0100 +++ hurd-git/libpager/data-request.c 2022-12-09 11:23:20.41200 +0100 @@ -49,7 +49,7 @@ } if (length != __vm_page_size) { - printf ("incg data request: bad length size %lu\n", length); + printf ("incg data request: bad length size %u\n", length); goto release_out; } if (offset % __vm_page_size) --- hurd-git/libpager/data-return.c 2022-12-08 15:05:29.81200 +0100 +++ hurd-git/libpager/data-return.c 2022-12-09 11:24:56.80400 +0100 @@ -60,7 +60,7 @@ } if (length % __vm_page_size) { - printf ("incg data return: bad length size %lu\n", length); + printf ("incg data return: bad length size %u\n", length); goto release_out; } if (offset % __vm_page_size) --- hurd-git/libpager/data-unlock.c 2022-12-08 15:05:29.81200 +0100 +++ hurd-git/libpager/data-unlock.c 2022-12-09 11:26:07.95600 +0100 @@ -58,7 +58,7 @@ } if (length != __vm_page_size) { - printf ("incg data unlock: bad length size %lu\n", length); + printf ("incg data unlock: bad length size %u\n", length); goto out; } --- hurd-git/ext2fs/pager.c 2022-12-08 15:05:29.81200 +0100 +++ hurd-git/ext2fs/pager.c 2022-12-08 19:23:39.85600 +0100 @@ -642,7 +642,7 @@ if (err == ENOSPC) ext2_warning ("This filesystem is out of space."); else if (err) - ext2_warning ("inode=%Ld, page=0x%lx: %s", + ext2_warning ("inode=%Ld, page=0x%x: %s", node->cache_id, page, strerror (err)); return err; @@ -905,7 +905,7 @@ disk_cache_init (void) { if (block_size != vm_page_size) -ext2_panic ("Block size %u != vm_page_size %lu", +ext2_panic ("Block size %u != vm_page_size %u", block_size, vm_page_size); pthread_mutex_init (_cache_lock, NULL); --- hurd-git/mach-defpager/main.c 2022-12-04 14:53:41.23200 +0100 +++ hurd-git/mach-defpager/main.c 2022-12-09 11:53:44.37200 +0100 @@ -43,6 +43,7 @@ #include #include #include +#include #include /* XXX */
Re: [PATCH] fix some compiler warnings in gnumach
Hello, Flavio Cruz, on Thu 31 Dec 2015 19:08:19 +0100, wrote: > @@ -1666,7 +1666,7 @@ device_get_status (void *d, dev_flavor_t flavor, > dev_status_t status, > return D_INVALID_OPERATION; >else > { > - struct disk_parms *dp = status; > + struct disk_parms *dp = (struct disk_parms *) status; Mmm, this looks so wrong... I'd rather actually just remove the V_GETPARMS code and the whole i386/disk.h header actually: AFAIK this call is never used, and DEV_GET_SIZE/RECORDS should be used instead anyway. > diff --git a/i386/i386/phys.c b/i386/i386/phys.c > index d55bdd9..8681fba 100644 > --- a/i386/i386/phys.c > +++ b/i386/i386/phys.c > @@ -77,7 +77,8 @@ pmap_copy_page( > vm_offset_t dst) > { > vm_offset_t src_addr_v, dst_addr_v; > - pmap_mapwindow_t *src_map, *dst_map; > + pmap_mapwindow_t *src_map = NULL; > + pmap_mapwindow_t *dst_map; For symmetry, better also initialize dst_map. Gcc happens to be warning only about src_map for some reason, but it will probably warn about dst_map someday too. > @@ -114,13 +114,14 @@ int unit = minor(dev); > struct bus_device *isai; > struct tty *tp; > u_short addr; > - > +caddr_t *caddr = (caddr_t *) > + > if (unit >= NLPR || (isai = lprinfo[unit]) == 0 || isai->alive == 0) > return (D_NO_SUCH_DEVICE); > tp = _tty[unit]; > addr = (u_short) isai->address; > tp->t_dev = dev; > - tp->t_addr = *(caddr_t *) > + tp->t_addr = *caddr; The code looks wrong actually, and should be fixed instead of hiding the warning. See in lprstart, tp->t_addr is supposed to be the i/o port, i.e. addr. I don't know what went through the mind of who wrote *(caddr_t*), but AIUI, it's completely not needed, and tp->t_addr = addr is what we actually want. > diff --git a/kern/slab.c b/kern/slab.c > index 4f32c8e..99d7c78 100644 > --- a/kern/slab.c > +++ b/kern/slab.c > @@ -1480,9 +1480,21 @@ void slab_info(void) > #if MACH_KDB > #include > > - void db_show_slab_info(void) > +static int > +db_printf_wrapper(const char* fmt, ...) > { > -_slab_info(db_printf); > +va_list listp; > + > +va_start(listp, fmt); > +db_printf(fmt, listp); This looks wrong: db_printf doesn't take a listp, it already builds it for itself. Samuel
[PATCH] fix some compiler warnings in gnumach
Fix some compiler warnings. * linux/dev/glue/block.c (out): Cast to device_t. * linux/dev/glue/block.c (device_get_status): Cast to struct disk_params *. * linux/dev/init/main.c (alloc_contig_mem): Initialize addr and cast return value to void *. * i386/i386/phys.c (pmap_copy_page): Initialize src_map. * i386/i386at/lpr.c (lpropen): Define caddr to avoid warnings. * i386/intel/pmap.c: Include i386at/model_dep.h. * kern/mach_clock.c (mapable_time_init): Cast to void *. * kern/slab.c: Define wrapper to db_printf that returns an int. --- diff --git a/linux/dev/glue/block.c b/linux/dev/glue/block.c index da4ef38..4060e65 100644 --- a/linux/dev/glue/block.c +++ b/linux/dev/glue/block.c @@ -1157,7 +1157,7 @@ out: { ipc_kobject_set (bd->port, IKO_NULL, IKOT_NONE); ipc_port_dealloc_kernel (bd->port); - *devp = IP_NULL; + *devp = (device_t) IP_NULL; } kfree ((vm_offset_t) bd, sizeof (struct block_data)); bd = NULL; @@ -1666,7 +1666,7 @@ device_get_status (void *d, dev_flavor_t flavor, dev_status_t status, return D_INVALID_OPERATION; else { - struct disk_parms *dp = status; + struct disk_parms *dp = (struct disk_parms *) status; struct hd_geometry hg; DECL_DATA; diff --git a/linux/dev/init/main.c b/linux/dev/init/main.c index ecbd0b6..8737b62 100644 --- a/linux/dev/init/main.c +++ b/linux/dev/init/main.c @@ -193,7 +193,7 @@ alloc_contig_mem (unsigned size, unsigned limit, unsigned *bits, len; void *m; vm_page_t p, page_list, tail, prev; - vm_offset_t addr, max_addr; + vm_offset_t addr = 0, max_addr; if (size == 0) return (NULL); @@ -296,7 +296,7 @@ alloc_contig_mem (unsigned size, unsigned limit, kfree ((vm_offset_t) bits, bits_len); if (pages) *pages = page_list; - return phystokv(m); + return (void *) phystokv(m); } /* diff --git a/i386/i386/phys.c b/i386/i386/phys.c index d55bdd9..8681fba 100644 --- a/i386/i386/phys.c +++ b/i386/i386/phys.c @@ -77,7 +77,8 @@ pmap_copy_page( vm_offset_t dst) { vm_offset_t src_addr_v, dst_addr_v; - pmap_mapwindow_t *src_map, *dst_map; + pmap_mapwindow_t *src_map = NULL; + pmap_mapwindow_t *dst_map; boolean_t src_mapped = src >= phys_last_addr; boolean_t dst_mapped = dst >= phys_last_addr; assert(src != vm_page_fictitious_addr); diff --git a/i386/i386at/lpr.c b/i386/i386at/lpr.c index edeef9f..6842052 100644 --- a/i386/i386at/lpr.c +++ b/i386/i386at/lpr.c @@ -114,13 +114,14 @@ int unit = minor(dev); struct bus_device *isai; struct tty *tp; u_short addr; - +caddr_t *caddr = (caddr_t *) + if (unit >= NLPR || (isai = lprinfo[unit]) == 0 || isai->alive == 0) return (D_NO_SUCH_DEVICE); tp = _tty[unit]; addr = (u_short) isai->address; tp->t_dev = dev; - tp->t_addr = *(caddr_t *) + tp->t_addr = *caddr; tp->t_oproc = lprstart; tp->t_state |= TS_WOPEN; tp->t_stop = lprstop; diff --git a/i386/intel/pmap.c b/i386/intel/pmap.c index cf7a736..22e20c9 100644 --- a/i386/intel/pmap.c +++ b/i386/intel/pmap.c @@ -83,6 +83,7 @@ #include #include #include +#include #ifdef MACH_PSEUDO_PHYS #defineWRITE_PTE(pte_p, pte_entry) *(pte_p) = pte_entry?pa_to_ma(pte_entry):0; diff --git a/kern/mach_clock.c b/kern/mach_clock.c index c6e2d9d..3789571 100644 --- a/kern/mach_clock.c +++ b/kern/mach_clock.c @@ -539,7 +539,7 @@ void mapable_time_init(void) if (kmem_alloc_wired(kernel_map, (vm_offset_t *) , PAGE_SIZE) != KERN_SUCCESS) panic("mapable_time_init"); - memset(mtime, 0, PAGE_SIZE); + memset((void *) mtime, 0, PAGE_SIZE); update_mapped_time(); } diff --git a/kern/slab.c b/kern/slab.c index 4f32c8e..99d7c78 100644 --- a/kern/slab.c +++ b/kern/slab.c @@ -1480,9 +1480,21 @@ void slab_info(void) #if MACH_KDB #include - void db_show_slab_info(void) +static int +db_printf_wrapper(const char* fmt, ...) { -_slab_info(db_printf); +va_listlistp; + +va_start(listp, fmt); +db_printf(fmt, listp); +va_end(listp); + +return 0; +} + +void db_show_slab_info(void) +{ +_slab_info(db_printf_wrapper); } #endif /* MACH_KDB */