From: Rainer Orth Date: Tue, 5 Dec 2023 10:06:04 +0000 (+0100) Subject: gm2: Fix mc/mc.flex compilation on Solaris X-Git-Tag: basepoints/gcc-15~3991 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=12769548679af8162af5f4bf15265b2228386c75;p=thirdparty%2Fgcc.git gm2: Fix mc/mc.flex compilation on Solaris The recent warning changes broke gm2 bootstrap on Solaris: /vol/gcc/src/hg/master/local/gcc/m2/mc/mc.flex: In function 'handleFile': /vol/gcc/src/hg/master/local/gcc/m2/mc/mc.flex:297:21: error: implicit declaration of function 'alloca' [-Wimplicit-function-declaration] 297 | char *s = (char *)alloca (strlen (filename) + 2 + 1); | ^~~~~~ alloca needs on Solaris, which isn't universally available. Since mc.flex doesn't include any config header, I chose to switch to __builtin_alloca instead. /vol/gcc/src/hg/master/local/gcc/m2/mc/mc.flex:332:19: error: implicit declaration of function 'index' [-Wimplicit-function-declaration] 332 | char *p = index(sdate, '\n'); | ^~~~~ index is declared in on Solaris, again not a standard header. I simply switched to using strchr to avoid that issue. Bootstrapped without regressions on i386-pc-solaris2.11, sparc-sun-solaris2.11, x86_64-pc-linux-gnu, and x86_64-apple-darwin23.1.0. 2023-12-03 Rainer Orth gcc/m2: * mc/mc.flex [__GNUC__]: Define alloca as __builtin_alloca. (handleDate): Use strchr instead of index. --- diff --git a/gcc/m2/mc/mc.flex b/gcc/m2/mc/mc.flex index 4b37755bbc29..8ba4e246f632 100644 --- a/gcc/m2/mc/mc.flex +++ b/gcc/m2/mc/mc.flex @@ -28,6 +28,10 @@ along with GNU Modula-2; see the file COPYING3. If not see #include #include +#ifdef __GNUC__ +#define alloca __builtin_alloca +#endif + #if !defined(TRUE) # define TRUE (1==1) #endif @@ -329,7 +333,7 @@ handleDate (void) time_t clock = time ((long *)0); char *sdate = ctime (&clock); char *s = (char *)alloca (strlen (sdate)+2+1); - char *p = index(sdate, '\n'); + char *p = strchr(sdate, '\n'); if (p != NULL) { *p = (char) 0;