Include <string.h> to dis-asm.h to get strchr declaration

Message ID CADip9ga4rPr6NiNzPBcEZCEwacMmGaNkvU-ZnmDw2L21qmXv2Q@mail.gmail.com
State New, archived
Headers

Commit Message

Павел Крюков Jan. 11, 2019, 9:47 a.m. UTC
  Include <string.h> to dis-asm.h to get strchr declaration

include/Changelog:
2019-01-11  Pavel I. Kryukov  <kryukov@frtk.ru>

        * dis-asm.h: include <string.h>

ATTRIBUTE_FPTR_PRINTF_2;
  

Comments

Simon Marchi Jan. 14, 2019, 9:45 p.m. UTC | #1
On 2019-01-11 04:47, Павел Крюков wrote:
> Include <string.h> to dis-asm.h to get strchr declaration
> 
> include/Changelog:
> 2019-01-11  Pavel I. Kryukov  <kryukov@frtk.ru>
> 
>         * dis-asm.h: include <string.h>
> 
> diff --git a/include/dis-asm.h b/include/dis-asm.h
> index 77b9e61..02c7214 100644
> --- a/include/dis-asm.h
> +++ b/include/dis-asm.h
> @@ -32,6 +32,7 @@ extern "C" {
>  #endif
> 
>  #include <stdio.h>
> +#include <string.h>
>  #include "bfd.h"
> 
>    typedef int (*fprintf_ftype) (void *, const char*, ...)
> ATTRIBUTE_FPTR_PRINTF_2;

[Adding binutils@ in CC.]

I took the liberty of pushing this patch which touches code in include/, 
since it seemed obvious enough to me.

Simon
  
Nick Clifton Jan. 15, 2019, 2:01 p.m. UTC | #2
Hi Simon,

>> Include <string.h> to dis-asm.h to get strchr declaration

>>  #include <stdio.h>
>> +#include <string.h>
>>  #include "bfd.h"

> I took the liberty of pushing this patch which touches code in include/, since it seemed obvious enough to me.

Do we need to worry about systems that have <strings.h> rather than <string.h> ?

There are various places in the binutils sources (eg binutils/sysdep.h) which
check for configure macros for these headers, which makes me wonder...

Cheers
  Nick
  
Simon Marchi Jan. 15, 2019, 2:14 p.m. UTC | #3
On 2019-01-15 09:01, Nick Clifton wrote:
> Hi Simon,
> 
>>> Include <string.h> to dis-asm.h to get strchr declaration
> 
>>>  #include <stdio.h>
>>> +#include <string.h>
>>>  #include "bfd.h"
> 
>> I took the liberty of pushing this patch which touches code in 
>> include/, since it seemed obvious enough to me.
> 
> Do we need to worry about systems that have <strings.h> rather than 
> <string.h> ?
> 
> There are various places in the binutils sources (eg binutils/sysdep.h) 
> which
> check for configure macros for these headers, which makes me wonder...

 From what I understand, these systems (BSDs, mostly) have strings.h in 
addition to string.h, where strings.h provide additional, non-standard 
functions.  But strchr would still be found in string.h.

Simon
  
John Baldwin Jan. 15, 2019, 5:49 p.m. UTC | #4
On 1/15/19 6:14 AM, Simon Marchi wrote:
> On 2019-01-15 09:01, Nick Clifton wrote:
>> Hi Simon,
>>
>>>> Include <string.h> to dis-asm.h to get strchr declaration
>>
>>>>  #include <stdio.h>
>>>> +#include <string.h>
>>>>  #include "bfd.h"
>>
>>> I took the liberty of pushing this patch which touches code in 
>>> include/, since it seemed obvious enough to me.
>>
>> Do we need to worry about systems that have <strings.h> rather than 
>> <string.h> ?
>>
>> There are various places in the binutils sources (eg binutils/sysdep.h) 
>> which
>> check for configure macros for these headers, which makes me wonder...
> 
>  From what I understand, these systems (BSDs, mostly) have strings.h in 
> addition to string.h, where strings.h provide additional, non-standard 
> functions.  But strchr would still be found in string.h.

Yes, that is true on both FreeBSD and OS X at least (both of which have
<strings.h>).  On those, <strings.h> defines prototypes for things like
bzero() and bcmp().
  

Patch

diff --git a/include/dis-asm.h b/include/dis-asm.h
index 77b9e61..02c7214 100644
--- a/include/dis-asm.h
+++ b/include/dis-asm.h
@@ -32,6 +32,7 @@  extern "C" {
 #endif

 #include <stdio.h>
+#include <string.h>
 #include "bfd.h"

   typedef int (*fprintf_ftype) (void *, const char*, ...)