Re: [dev] [ii] fails to build on systems with strlcpy

From: Misty De Meo <misty_AT_brew.sh>
Date: Tue, 29 May 2018 08:26:44 -0700

On Mon, May 28, 2018 at 11:40 PM, Hiltjo Posthuma
<hiltjo_AT_codemadness.org> wrote:
> What is the output of the compiler? Can you give more information what is
> broken exactly?
>
> It works for me on OpenBSD.

I'm using clang on Mac OS X 10.13. It fails with the following errors:

cc -c -o strlcpy.o strlcpy.c -Os -I. -I/usr/include -DVERSION=\"1.8\"
-std=c99 -D_DEFAULT_SOURCE
strlcpy.c:11:1: error: expected parameter declarator
strlcpy(char *dst, const char *src, size_t siz)
^
/usr/include/secure/_string.h:108:47: note: expanded from macro 'strlcpy'
                __builtin___strlcpy_chk (dest, __VA_ARGS__,
__darwin_obsz (dest))
                                                            ^
/usr/include/secure/_common.h:39:62: note: expanded from macro '__darwin_obsz'
#define __darwin_obsz(object) __builtin_object_size (object,
_USE_FORTIFY_LEVEL > 1 ? 1 : 0)
                                                             ^
/usr/include/secure/_common.h:30:32: note: expanded from macro
'_USE_FORTIFY_LEVEL'
# define _USE_FORTIFY_LEVEL 2
                               ^
strlcpy.c:11:1: error: expected ')'
/usr/include/secure/_string.h:108:47: note: expanded from macro 'strlcpy'
                __builtin___strlcpy_chk (dest, __VA_ARGS__,
__darwin_obsz (dest))
                                                            ^
/usr/include/secure/_common.h:39:62: note: expanded from macro '__darwin_obsz'
#define __darwin_obsz(object) __builtin_object_size (object,
_USE_FORTIFY_LEVEL > 1 ? 1 : 0)
                                                             ^
/usr/include/secure/_common.h:30:32: note: expanded from macro
'_USE_FORTIFY_LEVEL'
# define _USE_FORTIFY_LEVEL 2
                               ^
strlcpy.c:11:1: note: to match this '('
/usr/include/secure/_string.h:108:47: note: expanded from macro 'strlcpy'
                __builtin___strlcpy_chk (dest, __VA_ARGS__,
__darwin_obsz (dest))
                                                            ^
/usr/include/secure/_common.h:39:53: note: expanded from macro '__darwin_obsz'
#define __darwin_obsz(object) __builtin_object_size (object,
_USE_FORTIFY_LEVEL > 1 ? 1 : 0)
                                                    ^
strlcpy.c:11:1: warning: type specifier missing, defaults to 'int'
[-Wimplicit-int]
strlcpy(char *dst, const char *src, size_t siz)
^
/usr/include/secure/_string.h:108:47: note: expanded from macro 'strlcpy'
                __builtin___strlcpy_chk (dest, __VA_ARGS__,
__darwin_obsz (dest))
                                                            ^
/usr/include/secure/_common.h:39:31: note: expanded from macro '__darwin_obsz'
#define __darwin_obsz(object) __builtin_object_size (object,
_USE_FORTIFY_LEVEL > 1 ? 1 : 0)
                              ^
strlcpy.c:11:1: error: conflicting types for '__builtin___strlcpy_chk'
/usr/include/secure/_string.h:108:3: note: expanded from macro 'strlcpy'
                __builtin___strlcpy_chk (dest, __VA_ARGS__,
__darwin_obsz (dest))
                ^
strlcpy.c:11:1: note: '__builtin___strlcpy_chk' is a builtin with type
'unsigned long (char *, const char *,
      unsigned long, unsigned long)'
/usr/include/secure/_string.h:108:3: note: expanded from macro 'strlcpy'
                __builtin___strlcpy_chk (dest, __VA_ARGS__,
__darwin_obsz (dest))
                ^
strlcpy.c:11:1: error: definition of builtin function '__builtin___strlcpy_chk'
strlcpy(char *dst, const char *src, size_t siz)
^
/usr/include/secure/_string.h:108:3: note: expanded from macro 'strlcpy'
                __builtin___strlcpy_chk (dest, __VA_ARGS__,
__darwin_obsz (dest))
                ^
1 warning and 4 errors generated.
Received on Tue May 29 2018 - 17:26:44 CEST

This archive was generated by hypermail 2.3.0 : Tue May 29 2018 - 17:36:20 CEST