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



>> error: conflicting types for 'strncasecmp'; have 'int(void)'
>>  127 | extern int strncasecmp ();
>> [...]

> That sounds like the combination of a long-term issue with visibility
> on Linux and newer GCC defaulting to break old code.

I would say, rather, newer GCC defaulting to point out errors in old
code.

int strncasecmp();

has never been compatible with

int strncasecmp(const char *, const char *);

but gcc has had a long-standing (mis)feature whereby the prototype
declaration silently overrides the old-style declaration, thereby
letting people get away with such mismatches.  C23 has, though, done
away with old-style declarations entirely.

/~\ 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