X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;ds=sidebyside;f=bfd%2Felf-linux-core.h;h=22108a2ab70bc3f27ecea3428e0a3792e7561c76;hb=fc46e8bd351bf9b4eef5110f5ef6f30f8bd57739;hp=fa0690320aff5095dce7b74060950a83f61a8783;hpb=d99b4b92c8ed0f7ef98f370bbf65a360ed66ad7b;p=deliverable%2Fbinutils-gdb.git diff --git a/bfd/elf-linux-core.h b/bfd/elf-linux-core.h index fa0690320a..22108a2ab7 100644 --- a/bfd/elf-linux-core.h +++ b/bfd/elf-linux-core.h @@ -1,5 +1,5 @@ /* Definitions for PRPSINFO structures under ELF on GNU/Linux. - Copyright (C) 2013-2018 Free Software Foundation, Inc. + Copyright (C) 2013-2020 Free Software Foundation, Inc. This file is part of BFD, the Binary File Descriptor library. @@ -21,25 +21,6 @@ #ifndef ELF_LINUX_CORE_H #define ELF_LINUX_CORE_H -/* gcc-8 warns (*) on all the strncpy calls in this file about - possible string truncation. The "truncation" is not a bug. We - have an external representation of structs with fields that are not - necessarily NULL terminated and corresponding internal - representation fields that are one larger so that they can always - be NULL terminated. - gcc versions between 4.2 and 4.6 do not allow pragma control of - diagnostics inside functions, giving a hard error if you try to use - the finer control available with later versions. - gcc prior to 4.2 warns about diagnostic push and pop. - gcc-5, gcc-6 and gcc-7 warn that -Wstringop-truncation is unknown, - unless you also add #pragma GCC diagnostic ignored "-Wpragma". - (*) Depending on your system header files! */ - -#if GCC_VERSION >= 8000 -#pragma GCC diagnostic push -#pragma GCC diagnostic ignored "-Wstringop-truncation" -#endif - /* External 32-bit structure for PRPSINFO. This structure is ABI-defined, thus we choose to use char arrays here in order to avoid dealing with different types in different architectures. @@ -64,8 +45,8 @@ struct elf_external_linux_prpsinfo32_ugid32 char pr_ppid[4]; char pr_pgrp[4]; char pr_sid[4]; - char pr_fname[16]; /* Filename of executable. */ - char pr_psargs[80]; /* Initial part of arg list. */ + char pr_fname[16] ATTRIBUTE_NONSTRING; /* Filename of executable. */ + char pr_psargs[80] ATTRIBUTE_NONSTRING; /* Initial part of arg list. */ }; /* Helper function to copy an elf_internal_linux_prpsinfo in host @@ -116,8 +97,8 @@ struct elf_external_linux_prpsinfo32_ugid16 char pr_ppid[4]; char pr_pgrp[4]; char pr_sid[4]; - char pr_fname[16]; /* Filename of executable. */ - char pr_psargs[80]; /* Initial part of arg list. */ + char pr_fname[16] ATTRIBUTE_NONSTRING; /* Filename of executable. */ + char pr_psargs[80] ATTRIBUTE_NONSTRING; /* Initial part of arg list. */ }; /* Helper function to copy an elf_internal_linux_prpsinfo in host @@ -169,8 +150,8 @@ struct elf_external_linux_prpsinfo64_ugid32 char pr_ppid[4]; char pr_pgrp[4]; char pr_sid[4]; - char pr_fname[16]; /* Filename of executable. */ - char pr_psargs[80]; /* Initial part of arg list. */ + char pr_fname[16] ATTRIBUTE_NONSTRING; /* Filename of executable. */ + char pr_psargs[80] ATTRIBUTE_NONSTRING; /* Initial part of arg list. */ }; /* Helper function to copy an elf_internal_linux_prpsinfo in host @@ -222,8 +203,8 @@ struct elf_external_linux_prpsinfo64_ugid16 char pr_ppid[4]; char pr_pgrp[4]; char pr_sid[4]; - char pr_fname[16]; /* Filename of executable. */ - char pr_psargs[80]; /* Initial part of arg list. */ + char pr_fname[16] ATTRIBUTE_NONSTRING; /* Filename of executable. */ + char pr_psargs[80] ATTRIBUTE_NONSTRING; /* Initial part of arg list. */ }; /* Helper function to copy an elf_internal_linux_prpsinfo in host @@ -250,8 +231,4 @@ swap_linux_prpsinfo64_ugid16_out strncpy (to->pr_psargs, from->pr_psargs, sizeof (to->pr_psargs)); } -#if GCC_VERSION >= 8000 -#pragma GCC diagnostic pop -#endif - #endif