- distcleancheck ignores "silly rename" files (.nfs* .smb* .__afs*)
that can show up on network file systems.
+ - tests: avoid some declaration conflicts for lex et al. on SunOS.
+
* Obsolescent features:
- py-compile no longer supports Python 0.x or 1.x versions. Python 2.0,
LDADD = $(LEXLIB)
END
+# For the explanation of the conditionals on using extern "C",
+# see https://debbugs.gnu.org/cgi/bugreport.cgi?bug=45205#13.
cat > parsefoo.lxx << 'END'
%{
#define YY_DECL int yylex (void)
-extern "C" YY_DECL;
+#if (defined __cplusplus) && ((!defined __sun) || (defined __EXTERN_C__))
+extern "C"
+#endif
+YY_DECL;
#define YY_NO_UNISTD_H 1
int isatty (int fd) { return 0; }
%}
cat > mainfoo.cc << 'END'
// This file should contain valid C++ but invalid C.
-extern "C" int yylex (void);
+#if (defined __cplusplus) && ((!defined __sun) || (defined __EXTERN_C__))
+extern "C"
+#endif
+int yylex (void);
using namespace std;
int main (int argc, char **argv)
{
is_newest moe.$(OBJEXT) my-hdr.hxx
END
+# For the explanation of the conditionals on using extern "C",
+# see https://debbugs.gnu.org/cgi/bugreport.cgi?bug=45205#13.
cat > joe.ll << 'END'
%{
#define YY_DECL int yylex (void)
-extern "C" YY_DECL;
+#if (defined __cplusplus) && ((!defined __sun) || (defined __EXTERN_C__))
+extern "C"
+#endif
+YY_DECL;
#define YY_NO_UNISTD_H 1
int isatty (int fd) { return 0; }
%}
// Valid C++, but deliberately invalid C.
#include <cstdio>
#include <cstdlib>
+using std::exit;
+using std::free;
+using std::malloc;
// "std::" qualification required by Sun C++ 5.9.
int yylex (void) { return std::getchar (); }
void yyerror (const char *s) {}
#include <stdlib.h>
// Valid C++, but deliberately invalid C.
#include <cstdlib>
+ using std::exit;
+ using std::free;
+ using std::malloc;
#include "$header"
int yylex (void) { return 0; }
void yyerror (const char *s) {}
// https://bugs.gnu.org/20031
#include <stdlib.h>
// Valid C++, but deliberately invalid C.
+using std::exit;
+using std::free;
+using std::malloc;
#include <cstdlib>
#include "parse.hh"
int yylex (void) { return 0; }