GNU bug report logs -
#30612
[automake-1.16] make check fails on Solaris 11.3 x86
Previous Next
To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 30612 in the body.
You can then email your comments to 30612 AT debbugs.gnu.org in the normal way.
Toggle the display of automated, internal messages from the tracker.
Report forwarded
to
bug-automake <at> gnu.org
:
bug#30612
; Package
automake
.
(Mon, 26 Feb 2018 02:11:01 GMT)
Full text and
rfc822 format available.
Acknowledgement sent
to
Kiyoshi KANAZAWA <yoi_no_myoujou <at> yahoo.co.jp>
:
New bug report received and forwarded. Copy sent to
bug-automake <at> gnu.org
.
(Mon, 26 Feb 2018 02:11:02 GMT)
Full text and
rfc822 format available.
Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):
[Message part 1 (text/plain, inline)]
Hello,
Trying to install automake-1.16 on Solaris 11.3 x86.
make check fails with
FAIL: t/lex-clean-cxx.sh
FAIL: t/lex-depend-cxx.sh
It seems to be caused by declaration of yylex ().
lex-clean-cxx.log & lex-depend-cxx.log are attached.
Tested with gcc 7.3.0,
% ./configure
% make
% make check
Regards,
--- Kiyoshi
[logs.tar.xz (application/octet-stream, attachment)]
Information forwarded
to
bug-automake <at> gnu.org
:
bug#30612
; Package
automake
.
(Thu, 08 Mar 2018 20:56:02 GMT)
Full text and
rfc822 format available.
Message #8 received at 30612 <at> debbugs.gnu.org (full text, mbox):
Hello,
Kiyoshi KANAZAWA <yoi_no_myoujou <at> yahoo.co.jp> writes:
> Trying to install automake-1.16 on Solaris 11.3 x86.
> make check fails with
>
> FAIL: t/lex-clean-cxx.sh
> FAIL: t/lex-depend-cxx.sh
>
>
> It seems to be caused by declaration of yylex ().
> lex-clean-cxx.log & lex-depend-cxx.log are attached.
>
>
> Tested with gcc 7.3.0,
>
> % ./configure
> % make
> % make check
>
This is likely related to commit
826408a7f6ca4c39ff7b7ac9952c05f48110748f [1] which make those tests work
with Flex 2.6.4 and g++ 7.3.
If you know a good way to achieve a better compatibility than the
solution chosen by that commit, I would be interested.
Thanks for the report.
[1] https://git.savannah.gnu.org/cgit/automake.git/commit/?id=826408a7f6ca4c39ff7b7ac9952c05f48110748f
--
Mathieu Lirzin
GPG: F2A3 8D7E EB2B 6640 5761 070D 0ADE E100 9460 4D37
Information forwarded
to
bug-automake <at> gnu.org
:
bug#30612
; Package
automake
.
(Thu, 08 Mar 2018 21:31:01 GMT)
Full text and
rfc822 format available.
Message #11 received at 30612 <at> debbugs.gnu.org (full text, mbox):
[Message part 1 (text/plain, inline)]
Mathieu Lirzin <mthl <at> gnu.org> writes:
> This is likely related to commit
> 826408a7f6ca4c39ff7b7ac9952c05f48110748f [1] which make those tests work
> with Flex 2.6.4 and g++ 7.3.
>
> If you know a good way to achieve a better compatibility than the
> solution chosen by that commit, I would be interested.
Here are the logs on my system without the above commit
[test-suite.log (application/octet-stream, attachment)]
[Message part 3 (text/plain, inline)]
--
Mathieu Lirzin
GPG: F2A3 8D7E EB2B 6640 5761 070D 0ADE E100 9460 4D37
Information forwarded
to
bug-automake <at> gnu.org
:
bug#30612
; Package
automake
.
(Sun, 16 Apr 2023 19:39:01 GMT)
Full text and
rfc822 format available.
Message #14 received at 30612 <at> debbugs.gnu.org (full text, mbox):
Hi.
Problem fixed by the patch found in bugs# 34151, 42393, 44795, 49755,
45205 and 55073.
--
Regards - Bogdan ('bogdro') D. (GNU/Linux & FreeDOS)
X86 assembly (DOS, GNU/Linux): http://bogdro.evai.pl/index-en.php
Soft(EN): http://bogdro.evai.pl/soft http://bogdro.evai.pl/soft4asm
www.Xiph.org www.TorProject.org www.LibreOffice.org www.GnuPG.org
Reply sent
to
Karl Berry <karl <at> freefriends.org>
:
You have taken responsibility.
(Sun, 09 Jul 2023 16:58:02 GMT)
Full text and
rfc822 format available.
Notification sent
to
Kiyoshi KANAZAWA <yoi_no_myoujou <at> yahoo.co.jp>
:
bug acknowledged by developer.
(Sun, 09 Jul 2023 16:58:02 GMT)
Full text and
rfc822 format available.
Message #19 received at 30612-done <at> debbugs.gnu.org (full text, mbox):
Hi - you have each reported Automake test failures on Solaris.
I've just pushed a fix from Bogdan (thanks Bogdan!) for some of these,
which (sometimes with other fixes already made) closes some bugs.
Bogdan explains the details of the latest:
https://debbugs.gnu.org/cgi/bugreport.cgi?bug=45205#13
Other problems remain and still need debugging, as Bogdan explains in:
https://debbugs.gnu.org/cgi/bugreport.cgi?bug=45205#16
If anyone has time and interest to try bootstrapping current automake,
run the test suite, and find what still fails and why, that would be
great. --thanks, karl.
Bugs closed (with fingers crossed): 15256 30612 34151 42393 44795 49755.
Bugs still open: 31126 45205 55073.
2023-07-09 Bogdan <bogdro_rep <at> gmx.us>
tests: avoid some SunOS declaration conflicts.
This change: finishes fixing https://bugs.gnu.org/34151
and https://bugs.gnu.org/30612 and https://bugs.gnu.org/42393;
fixes https://bugs.gnu.org/44795 and https://bugs.gnu.org/49755;
partially fixes https://bugs.gnu.org/45205
and https://bugs.gnu.org/55073.
Still open: https://bugs.gnu.org/15256;
* t/lex-clean-cxx.sh: test __cplusplus, __sun, and __EXTERN_C__
before using extern "C" for the yylex decl, as explained at
https://debbugs.gnu.org/cgi/bugreport.cgi?bug=45205#13.
* t/lex-depend-cxx.sh: likewise.
* t/yacc-cxx.sh: "using" std::exit, std::free, std::malloc.
* t/yacc-d-cxx.sh: likewise.
* t/yacc-mix-c-cxx.sh: likewise.
* NEWS: mention this.
diff --git a/NEWS b/NEWS
index 61d631ba0..23b2cc50a 100644
--- a/NEWS
+++ b/NEWS
@@ -46,6 +46,8 @@ New in 1.17:
- 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,
diff --git a/t/lex-clean-cxx.sh b/t/lex-clean-cxx.sh
index 3632d5c87..8a086304f 100644
--- a/t/lex-clean-cxx.sh
+++ b/t/lex-clean-cxx.sh
@@ -51,10 +51,15 @@ CLEANFILES = parsebaz.l++ parsequx.lpp
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; }
%}
@@ -71,7 +76,10 @@ cp parsefoo.lxx parsebar.ll
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)
{
diff --git a/t/lex-depend-cxx.sh b/t/lex-depend-cxx.sh
index 60615a54e..682b2ccc5 100644
--- a/t/lex-depend-cxx.sh
+++ b/t/lex-depend-cxx.sh
@@ -44,10 +44,15 @@ test-obj-updated: joe.$(OBJEXT) moe.$(OBJEXT)
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; }
%}
diff --git a/t/yacc-cxx.sh b/t/yacc-cxx.sh
index 1bf75a975..5b385870c 100644
--- a/t/yacc-cxx.sh
+++ b/t/yacc-cxx.sh
@@ -49,6 +49,9 @@ cat > parse1.yy << 'END'
// 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) {}
diff --git a/t/yacc-d-cxx.sh b/t/yacc-d-cxx.sh
index 56f43c940..576e8e2aa 100644
--- a/t/yacc-d-cxx.sh
+++ b/t/yacc-d-cxx.sh
@@ -31,6 +31,9 @@ write_parse ()
#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) {}
diff --git a/t/yacc-mix-c-cxx.sh b/t/yacc-mix-c-cxx.sh
index a73935c39..7c44e0926 100644
--- a/t/yacc-mix-c-cxx.sh
+++ b/t/yacc-mix-c-cxx.sh
@@ -86,6 +86,9 @@ cat > parse.yy <<'END'
// 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; }
compile finished at Sun Jul 9 09:56:41 2023
Information forwarded
to
bug-automake <at> gnu.org
:
bug#30612
; Package
automake
.
(Sun, 09 Jul 2023 16:59:02 GMT)
Full text and
rfc822 format available.
bug archived.
Request was from
Debbugs Internal Request <help-debbugs <at> gnu.org>
to
internal_control <at> debbugs.gnu.org
.
(Mon, 07 Aug 2023 11:24:06 GMT)
Full text and
rfc822 format available.
This bug report was last modified 1 year and 278 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.