tech-toolchain archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: Cross compiling Kernel with all options enabled and compiler wrapper



> conflicting types for 'strcasecmp'; have 'int(void)'
> 123 | extern int strcasecmp ();
> previous declaration of 'strcasecmp' with type 'int(const char *, const char *)'
> 116 | extern int strcasecmp (const char *__s1, const char *__s2)

This is a very long-standing bug in NetBSD; previous versions of gcc
have silently papered over it, allowing a declaration specifying
argument types to silently override a declaration specifying old-style
arguments.  The way it's reporting an old-style declaration as a
prototype specifying no arguments makes me suspect it's using C23,
which has done away with old-style declarations.

In the immediate term, you might be able to find an option to tell the
compiler to use a pre-C23 standard.  But the right answer is to fix
NetBSD's code; sooner or later someone will run into a compiler that
doesn't do pre-C23 at all.

/~\ The ASCII				  Mouse
\ / Ribbon Campaign
 X  Against HTML		mouse%rodents-montreal.org@localhost
/ \ Email!	     7D C8 61 52 5D E7 2D 39  4E F1 31 3E E8 B3 27 4B


Home | Main Index | Thread Index | Old Index