Skip to contentSkip to conversation

Warning fixes

PATCH In review Pavel Roskin 3 participants 5 messages Aug 6, 2008 – Aug 13, 2008

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 Warning fixes

Hello!

I've fixed the trivial stuff, but this may require comments. I'll be mostly offline for the next 3 weeks, so if it's OK, please apply it for me.

ChangeLog:

* disk/ata.c (grub_ata_pciinit): Mark pciid unused.
* commands/i386/pc/pxecmd.c (grub_cmd_pxe): Mark argc and args unused.
* include/grub/i386/pc/pxe.h (grub_pxenv_tftp_open): Use char instead of grub_uint8_t for strings. (grub_pxenv_tftp_get_fsize): Likewise.

ata.c +2 -1
Index: disk/ata.c
===================================================================
@@ -429,7 +429,8 @@
 }
 
 static int
-grub_ata_pciinit (int bus, int device, int func, grub_pci_id_t pciid)
+grub_ata_pciinit (int bus, int device, int func,
+		  grub_pci_id_t pciid __attribute__ ((unused)))
 {
   static int compat_use[2] = { 0 };
   grub_pci_address_t addr;
grub/i386/pc/pxe.h +2 -2
Index: include/grub/i386/pc/pxe.h
===================================================================
@@ -236,7 +236,7 @@
   grub_uint16_t status;
   grub_uint32_t server_ip;
   grub_uint32_t gateway_ip;
-  grub_uint8_t filename[128];
+  char filename[128];
   grub_uint16_t tftp_port;
   grub_uint16_t packet_size;
 } __attribute__ ((packed));
@@ -259,7 +259,7 @@
   grub_uint16_t status;
   grub_uint32_t server_ip;
   grub_uint32_t gateway_ip;
-  grub_uint8_t filename[128];
+  char filename[128];
   grub_uint32_t file_size;
 } __attribute__ ((packed));
 
i386/pc/pxecmd.c +3 -1
Index: commands/i386/pc/pxecmd.c
===================================================================
@@ -46,7 +46,9 @@
 }
 
 static grub_err_t
-grub_cmd_pxe (struct grub_arg_list *state, int argc, char **args)
+grub_cmd_pxe (struct grub_arg_list *state,
+	      int argc __attribute__ ((unused)),
+	      char **args __attribute__ ((unused)))
 {
   if (! grub_pxe_pxenv)
     return grub_error (GRUB_ERR_FILE_NOT_FOUND, "no pxe environment");
Signature · 2 lines
Regards,
Pavel Roskin
#1 lore raw
Quoted 5 lines · On Wed, 06 Aug 2008 09:39:02 -0400 Pavel Roskin <[email protected]> wrote:

Hello!

I've fixed the trivial stuff, but this may require comments. I'll be mostly offline for the next 3 weeks, so if it's OK, please apply it for me.

Along these lines, can we use a gcc option to turn off the "trampoline requires executable stack" warnings that are generated by the dozens? I looked for the option in the gcc manual and could not find it.

I think that the trampoline warning is the main thing left holding us back from a warning-free build. (IIRC there may be some strict-aliasing warnings too... but those can be fixed by fixing the code.)

Regards,
Colin

#2 lore raw

Quoting Colin D Bennett <[email protected]>:

Quoted 3 lines

Along these lines, can we use a gcc option to turn off the "trampoline requires executable stack" warnings that are generated by the dozens? I looked for the option in the gcc manual and could not find it.

Please quote the exact message. What platform is it? I haven't seen it.

Quoted 4 lines

I think that the trampoline warning is the main thing left holding us back from a warning-free build. (IIRC there may be some strict-aliasing warnings too... but those can be fixed by fixing the code.)

Yes, either we should make the build less noisy by default, or we should treat warnings as errors. Or maybe both.

Signature · 2 lines
Regards,
Pavel Roskin
#3 lore raw
Quoted 9 lines · On Wed, 06 Aug 2008 10:32:26 -0400 Pavel Roskin <[email protected]> wrote:

Quoting Colin D Bennett <[email protected]>:

Quoted 4 lines

Along these lines, can we use a gcc option to turn off the "trampoline requires executable stack" warnings that are generated by the dozens? I looked for the option in the gcc manual and could not find it.

Please quote the exact message. What platform is it? I haven't seen it.

I have been using gcc 4.2.4 on x86 Linux. However, I just upgraded a machine to gcc 4.3.1, and it looks like the trampoline warnings are not produced by gcc 4.3.1... interesting. But they certainly are on 4.2.4:
there are 103 trampoline warnings in all (see the end of this message).

Quoted 4 lines
Quoted 4 lines

I think that the trampoline warning is the main thing left holding us back from a warning-free build. (IIRC there may be some strict-aliasing warnings too... but those can be fixed by fixing the code.)

Ok, I checked and there are no strict aliasing warnings. Good.

Quoted 2 lines

Yes, either we should make the build less noisy by default, or we should treat warnings as errors. Or maybe both.

I agree.

Regards,
Colin

system info
-----------

x86 Linux; glibc 2.8; gcc 4.2.4; Gentoo.

$ gcc -v
Using built-in specs.
Target: i686-pc-linux-gnu
Configured
with: /var/tmp/portage/sys-devel/gcc-4.2.4/work/gcc-4.2.4/configure
--prefix=/usr --bindir=/usr/i686-pc-linux-gnu/gcc-bin/4.2.4
--includedir=/usr/lib/gcc/i686-pc-linux-gnu/4.2.4/include
--datadir=/usr/share/gcc-data/i686-pc-linux-gnu/4.2.4
--mandir=/usr/share/gcc-data/i686-pc-linux-gnu/4.2.4/man
--infodir=/usr/share/gcc-data/i686-pc-linux-gnu/4.2.4/info
--with-gxx-include-dir=/usr/lib/gcc/i686-pc-linux-gnu/4.2.4/include/g++-v4
--host=i686-pc-linux-gnu --build=i686-pc-linux-gnu --disable-altivec
--enable-nls --without-included-gettext --with-system-zlib
--disable-checking --disable-werror --enable-secureplt
--disable-multilib --enable-libmudflap --disable-libssp
--disable-libgcj --with-arch=i686
--enable-languages=c,c++,treelang,fortran --enable-shared
--enable-threads=posix --enable-__cxa_atexit --enable-clocale=gnu
Thread model: posix gcc version 4.2.4 (Gentoo 4.2.4 p1.0)

trampoline warnings
-------------------

../util/i386/pc/grub-setup.c:93: warning: generating trampoline in object (requires executable stack) ../util/i386/pc/grub-setup.c:93:
warning: generating trampoline in object (requires executable stack) ../util/i386/pc/grub-setup.c:93: warning: generating trampoline in object (requires executable stack) ../util/biosdisk.c:748: warning:
generating trampoline in object (requires executable
stack) ../kern/device.c:85: warning: generating trampoline in object (requires executable stack) ../kern/device.c:85: warning: generating trampoline in object (requires executable
stack) ../kern/partition.c:90: warning: generating trampoline in object (requires executable stack) ../kern/partition.c:59: warning: generating trampoline in object (requires executable stack) ../fs/fshelp.c:58:
warning: generating trampoline in object (requires executable stack) ../fs/affs.c:460: warning: generating trampoline in object (requires executable stack) ../fs/ext2.c:736: warning: generating trampoline in object (requires executable stack) ../fs/hfs.c:578:
warning: generating trampoline in object (requires executable stack) ../fs/hfs.c:578: warning: generating trampoline in object (requires executable stack) ../fs/hfs.c:509: warning: generating trampoline in object (requires executable stack) ../fs/hfs.c:725:
warning: generating trampoline in object (requires executable stack) ../fs/hfsplus.c:699: warning: generating trampoline in object (requires executable stack) ../fs/hfsplus.c:886: warning: generating trampoline in object (requires executable stack) ../fs/iso9660.c:355:
warning: generating trampoline in object (requires executable stack) ../fs/iso9660.c:229: warning: generating trampoline in object (requires executable stack) ../fs/iso9660.c:466: warning: generating trampoline in object (requires executable stack) ../fs/iso9660.c:655:
warning: generating trampoline in object (requires executable stack) ../fs/udf.c:772: warning: generating trampoline in object (requires executable stack) ../fs/ntfs.c:860: warning: generating trampoline in object (requires executable stack) ../fs/reiserfs.c:1270:
warning: generating trampoline in object (requires executable stack) ../fs/sfs.c:531: warning: generating trampoline in object (requires executable stack) ../fs/xfs.c:624: warning: generating trampoline in object (requires executable stack) ../fs/afs.c:566:
warning: generating trampoline in object (requires executable stack) ../partmap/pc.c:232: warning: generating trampoline in object (requires executable stack) ../partmap/gpt.c:123: warning: generating trampoline in object (requires executable
stack) ../util/biosdisk.c:748: warning: generating trampoline in object (requires executable stack) ../kern/device.c:85: warning: generating trampoline in object (requires executable stack) ../kern/device.c:85:
warning: generating trampoline in object (requires executable stack) ../kern/partition.c:90: warning: generating trampoline in object (requires executable stack) ../kern/partition.c:59: warning: generating trampoline in object (requires executable stack) ../fs/affs.c:460:
warning: generating trampoline in object (requires executable stack) ../fs/ext2.c:736: warning: generating trampoline in object (requires executable stack) ../fs/hfs.c:578: warning: generating trampoline in object (requires executable stack) ../fs/hfs.c:578:
warning: generating trampoline in object (requires executable stack) ../fs/hfs.c:509: warning: generating trampoline in object (requires executable stack) ../fs/hfs.c:725: warning: generating trampoline in object (requires executable stack) ../fs/hfsplus.c:699:
warning: generating trampoline in object (requires executable stack) ../fs/hfsplus.c:886: warning: generating trampoline in object (requires executable stack) ../fs/iso9660.c:355: warning: generating trampoline in object (requires executable stack) ../fs/iso9660.c:229:
warning: generating trampoline in object (requires executable stack) ../fs/iso9660.c:466: warning: generating trampoline in object (requires executable stack) ../fs/iso9660.c:655: warning: generating trampoline in object (requires executable stack) ../fs/udf.c:772:
warning: generating trampoline in object (requires executable stack) ../fs/ntfs.c:860: warning: generating trampoline in object (requires executable stack) ../fs/reiserfs.c:1270: warning: generating trampoline in object (requires executable stack) ../fs/sfs.c:531:
warning: generating trampoline in object (requires executable stack) ../fs/xfs.c:624: warning: generating trampoline in object (requires executable stack) ../fs/afs.c:566: warning: generating trampoline in object (requires executable stack) ../partmap/pc.c:232:
warning: generating trampoline in object (requires executable stack) ../partmap/apple.c:182: warning: generating trampoline in object (requires executable stack) ../partmap/gpt.c:123: warning: generating trampoline in object (requires executable stack) ../fs/fshelp.c:58:
warning: generating trampoline in object (requires executable stack) ../kern/device.c:85: warning: generating trampoline in object (requires executable stack) ../kern/device.c:85: warning: generating trampoline in object (requires executable
stack) ../kern/partition.c:90: warning: generating trampoline in object (requires executable stack) ../kern/partition.c:59: warning: generating trampoline in object (requires executable stack) ../normal/main.c:200:
warning: generating trampoline in object (requires executable stack) ../normal/menu_entry.c:972: warning: generating trampoline in object (requires executable stack) ../loader/i386/bsd.c:250: warning:
generating trampoline in object (requires executable
stack) ../fs/fshelp.c:58: warning: generating trampoline in object (requires executable stack) ../fs/ext2.c:736: warning: generating trampoline in object (requires executable stack) ../fs/ntfs.c:860:
warning: generating trampoline in object (requires executable stack) ../fs/hfs.c:578: warning: generating trampoline in object (requires executable stack) ../fs/hfs.c:578: warning: generating trampoline in object (requires executable stack) ../fs/hfs.c:509:
warning: generating trampoline in object (requires executable stack) ../fs/hfs.c:725: warning: generating trampoline in object (requires executable stack) ../fs/iso9660.c:355: warning: generating trampoline in object (requires executable stack) ../fs/iso9660.c:229:
warning: generating trampoline in object (requires executable stack) ../fs/iso9660.c:466: warning: generating trampoline in object (requires executable stack) ../fs/iso9660.c:655: warning: generating trampoline in object (requires executable stack) ../fs/xfs.c:624:
warning: generating trampoline in object (requires executable stack) ../fs/affs.c:460: warning: generating trampoline in object (requires executable stack) ../fs/sfs.c:531: warning: generating trampoline in object (requires executable stack) ../fs/hfsplus.c:699:
warning: generating trampoline in object (requires executable stack) ../fs/hfsplus.c:886: warning: generating trampoline in object (requires executable stack) ../fs/reiserfs.c:1270: warning: generating trampoline in object (requires executable stack) ../fs/udf.c:772:
warning: generating trampoline in object (requires executable stack) ../fs/afs.c:566: warning: generating trampoline in object (requires executable stack) ../partmap/amiga.c:146: warning: generating trampoline in object (requires executable
stack) ../partmap/apple.c:182: warning: generating trampoline in object (requires executable stack) ../partmap/pc.c:232: warning: generating trampoline in object (requires executable stack) ../partmap/sun.c:149:
warning: generating trampoline in object (requires executable stack) ../partmap/gpt.c:123: warning: generating trampoline in object (requires executable stack) ../commands/terminal.c:29: warning:
generating trampoline in object (requires executable
stack) ../commands/ls.c:45: warning: generating trampoline in object (requires executable stack) ../commands/ls.c:66: warning: generating trampoline in object (requires executable stack) ../commands/ls.c:66:
warning: generating trampoline in object (requires executable stack) ../commands/help.c:30: warning: generating trampoline in object (requires executable stack) ../commands/help.c:30: warning: generating trampoline in object (requires executable
stack) ../commands/search.c:96: warning: generating trampoline in object (requires executable stack) ../commands/search.c:42: warning:
generating trampoline in object (requires executable
stack) ../commands/search.c:150: warning: generating trampoline in object (requires executable stack) ../disk/fs_uuid.c:31: warning:
generating trampoline in object (requires executable
stack) ../commands/blocklist.c:32: warning: generating trampoline in object (requires executable stack) ../commands/loadenv.c:157: warning:
generating trampoline in object (requires executable
stack) ../kern/elf.c:399: warning: generating trampoline in object (requires executable stack) ../kern/elf.c:355: warning: generating trampoline in object (requires executable stack) ../kern/elf.c:221:
warning: generating trampoline in object (requires executable stack) ../kern/elf.c:177: warning: generating trampoline in object (requires executable stack)

#4 lore raw
In reply to Pavel Roskin

Hi,

Quoted 7 lines · Pavel Roskin

I've fixed the trivial stuff, but this may require comments. I'll be mostly offline for the next 3 weeks, so if it's OK, please apply it for me.

ChangeLog:

* disk/ata.c (grub_ata_pciinit): Mark pciid unused.

Oh, I changed this, so this might not apply anymore...

Quoted 5 lines

* commands/i386/pc/pxecmd.c (grub_cmd_pxe): Mark argc and args unused.
* include/grub/i386/pc/pxe.h (grub_pxenv_tftp_open): Use char instead of grub_uint8_t for strings. (grub_pxenv_tftp_get_fsize): Likewise.

--
Marco