ruby-core@ruby-lang.org archive (unofficial mirror)
 help / color / mirror / Atom feed
* [ruby-core:99508] [Ruby master Bug#17106] Build ruby 2.6.6 from git source
@ 2020-08-07  6:50 yegorov0725
  2020-08-07  7:38 ` [ruby-core:99509] " mame
                   ` (4 more replies)
  0 siblings, 5 replies; 6+ messages in thread
From: yegorov0725 @ 2020-08-07  6:50 UTC (permalink / raw)
  To: ruby-core

Issue #17106 has been reported by yegorov (Artem Yegorov).

----------------------------------------
Bug #17106: Build ruby 2.6.6 from git source
https://bugs.ruby-lang.org/issues/17106

* Author: yegorov (Artem Yegorov)
* Status: Open
* Priority: Normal
* ruby -v: 2.6.6
* Backport: 2.5: UNKNOWN, 2.6: UNKNOWN, 2.7: UNKNOWN
----------------------------------------
Hello!
I try build ruby 2.6.6 from git source, but get error.

My Dockerfile:
```
FROM archlinux:20200705

RUN pacman -Sy vim curl git ruby --noconfirm && \
    pacman -S --needed base-devel libffi libyaml openssl zlib --noconfirm

CMD /bin/bash
```

Build and run docker:
```
docker build -t archlinux_ruby .
docker run --rm -it archlinux_ruby /bin/bash
```

My steps for reproduce error (in docker bash):
```
mkdir gitruby && cd gitruby
git clone https://github.com/ruby/ruby.git -b v2_6_6 --depth 1
cd ruby
autoconf
./configure
make
```

Error
```
compiling parse.c                                                                                               [7/2146]
parse.c: In function ‘ruby_yyparse’:                                                                                    
parse.c:10667:51: error: macro "yydestruct" passed 5 arguments, but takes just 3                                        
10667 |           if (yychar == END_OF_INPUT)                                                                           
      |                                                   ^                                                             
parse.c:5299: note: macro "yydestruct" defined here                                                                     
 5299 | #define yydestruct(m, t, v) ruby_parser_yydestruct(m, t, v, p)                                                  
      |                                                                                                                 
parse.c:10666:11: error: ‘yydestruct’ undeclared (first use in this function)
10666 |           /* Return failure if at end of input.  */
      |           ^~~~~~~~~~  
parse.c:10666:11: note: each undeclared identifier is reported only once for each function it appears in
parse.c:10722:65: error: macro "yydestruct" passed 5 arguments, but takes just 3
10722 |       /* Pop the current state because it cannot handle the error token.  */
      |                                                                 ^                                               
parse.c:5299: note: macro "yydestruct" defined here
 5299 | #define yydestruct(m, t, v) ruby_parser_yydestruct(m, t, v, p)
      | 
parse.c:10780:47: error: macro "yydestruct" passed 5 arguments, but takes just 3
10780 |   if (yychar != YYEMPTY)
      |                                               ^     
parse.c:5299: note: macro "yydestruct" defined here
 5299 | #define yydestruct(m, t, v) ruby_parser_yydestruct(m, t, v, p)
      | 
parse.c:10789:65: error: macro "yydestruct" passed 5 arguments, but takes just 3
10789 |      this YYABORT or YYACCEPT.  */
      |                                                                 ^                                               
parse.c:5299: note: macro "yydestruct" defined here
 5299 | #define yydestruct(m, t, v) ruby_parser_yydestruct(m, t, v, p)
      | 
At top level:
parse.c:5297:1: warning: ‘ruby_parser_yydestruct’ defined but not used [-Wunused-function]
 5297 | ruby_parser_yydestruct (const char *yymsg,
      | ^~~~~~~~~~~~~~~~~~~~~~
cc1: note: unrecognized command-line option ‘-Wno-self-assign’ may have been intended to silence earlier diagnostics
cc1: note: unrecognized command-line option ‘-Wno-parentheses-equality’ may have been intended to silence earlier diagno
stics
cc1: note: unrecognized command-line option ‘-Wno-constant-logical-operand’ may have been intended to silence earlier di
agnostics
make: *** [Makefile:419: parse.o] Error 1
```

What are the comments about the building ruby?
From tarball source (https://www.ruby-lang.org/en/downloads/) builded is successful.

What am I doing wrong?



-- 
https://bugs.ruby-lang.org/

^ permalink raw reply	[flat|nested] 6+ messages in thread

* [ruby-core:99509] [Ruby master Bug#17106] Build ruby 2.6.6 from git source
  2020-08-07  6:50 [ruby-core:99508] [Ruby master Bug#17106] Build ruby 2.6.6 from git source yegorov0725
@ 2020-08-07  7:38 ` mame
  2020-08-10 13:29 ` [ruby-core:99542] " yegorov0725
                   ` (3 subsequent siblings)
  4 siblings, 0 replies; 6+ messages in thread
From: mame @ 2020-08-07  7:38 UTC (permalink / raw)
  To: ruby-core

Issue #17106 has been updated by mame (Yusuke Endoh).


Hi,

I think you are using bison that is newer than the latest version at Ruby 2.6 release.
I guess @nobu has already fixed the issue in ruby master, so we need to backport something.

----------------------------------------
Bug #17106: Build ruby 2.6.6 from git source
https://bugs.ruby-lang.org/issues/17106#change-86965

* Author: yegorov (Artem Yegorov)
* Status: Open
* Priority: Normal
* ruby -v: 2.6.6
* Backport: 2.5: UNKNOWN, 2.6: UNKNOWN, 2.7: UNKNOWN
----------------------------------------
Hello!
I try build ruby 2.6.6 from git source, but get error.

My Dockerfile:
```
FROM archlinux:20200705

RUN pacman -Sy vim curl git ruby --noconfirm && \
    pacman -S --needed base-devel libffi libyaml openssl zlib --noconfirm

CMD /bin/bash
```

Build and run docker:
```
docker build -t archlinux_ruby .
docker run --rm -it archlinux_ruby /bin/bash
```

My steps for reproduce error (in docker bash):
```
mkdir gitruby && cd gitruby
git clone https://github.com/ruby/ruby.git -b v2_6_6 --depth 1
cd ruby
autoconf
./configure
make
```

Error
```
compiling parse.c                                                                                               [7/2146]
parse.c: In function ‘ruby_yyparse’:                                                                                    
parse.c:10667:51: error: macro "yydestruct" passed 5 arguments, but takes just 3                                        
10667 |           if (yychar == END_OF_INPUT)                                                                           
      |                                                   ^                                                             
parse.c:5299: note: macro "yydestruct" defined here                                                                     
 5299 | #define yydestruct(m, t, v) ruby_parser_yydestruct(m, t, v, p)                                                  
      |                                                                                                                 
parse.c:10666:11: error: ‘yydestruct’ undeclared (first use in this function)
10666 |           /* Return failure if at end of input.  */
      |           ^~~~~~~~~~  
parse.c:10666:11: note: each undeclared identifier is reported only once for each function it appears in
parse.c:10722:65: error: macro "yydestruct" passed 5 arguments, but takes just 3
10722 |       /* Pop the current state because it cannot handle the error token.  */
      |                                                                 ^                                               
parse.c:5299: note: macro "yydestruct" defined here
 5299 | #define yydestruct(m, t, v) ruby_parser_yydestruct(m, t, v, p)
      | 
parse.c:10780:47: error: macro "yydestruct" passed 5 arguments, but takes just 3
10780 |   if (yychar != YYEMPTY)
      |                                               ^     
parse.c:5299: note: macro "yydestruct" defined here
 5299 | #define yydestruct(m, t, v) ruby_parser_yydestruct(m, t, v, p)
      | 
parse.c:10789:65: error: macro "yydestruct" passed 5 arguments, but takes just 3
10789 |      this YYABORT or YYACCEPT.  */
      |                                                                 ^                                               
parse.c:5299: note: macro "yydestruct" defined here
 5299 | #define yydestruct(m, t, v) ruby_parser_yydestruct(m, t, v, p)
      | 
At top level:
parse.c:5297:1: warning: ‘ruby_parser_yydestruct’ defined but not used [-Wunused-function]
 5297 | ruby_parser_yydestruct (const char *yymsg,
      | ^~~~~~~~~~~~~~~~~~~~~~
cc1: note: unrecognized command-line option ‘-Wno-self-assign’ may have been intended to silence earlier diagnostics
cc1: note: unrecognized command-line option ‘-Wno-parentheses-equality’ may have been intended to silence earlier diagno
stics
cc1: note: unrecognized command-line option ‘-Wno-constant-logical-operand’ may have been intended to silence earlier di
agnostics
make: *** [Makefile:419: parse.o] Error 1
```

What are the comments about the building ruby?
From tarball source (https://www.ruby-lang.org/en/downloads/) builded is successful.

What am I doing wrong?



-- 
https://bugs.ruby-lang.org/

^ permalink raw reply	[flat|nested] 6+ messages in thread

* [ruby-core:99542] [Ruby master Bug#17106] Build ruby 2.6.6 from git source
  2020-08-07  6:50 [ruby-core:99508] [Ruby master Bug#17106] Build ruby 2.6.6 from git source yegorov0725
  2020-08-07  7:38 ` [ruby-core:99509] " mame
@ 2020-08-10 13:29 ` yegorov0725
  2020-08-11  0:16 ` [ruby-core:99548] " s.wanabe
                   ` (2 subsequent siblings)
  4 siblings, 0 replies; 6+ messages in thread
From: yegorov0725 @ 2020-08-10 13:29 UTC (permalink / raw)
  To: ruby-core

Issue #17106 has been updated by yegorov (Artem Yegorov).


mame (Yusuke Endoh) wrote in #note-1:
> Hi,
> 
> I think you are using bison that is newer than the latest version at Ruby 2.6 release.
> I guess @nobu has already fixed the issue in ruby master, so we need to backport something.

Thanks, i'll wait backport.

----------------------------------------
Bug #17106: Build ruby 2.6.6 from git source
https://bugs.ruby-lang.org/issues/17106#change-87002

* Author: yegorov (Artem Yegorov)
* Status: Open
* Priority: Normal
* ruby -v: 2.6.6
* Backport: 2.5: UNKNOWN, 2.6: UNKNOWN, 2.7: UNKNOWN
----------------------------------------
Hello!
I tried to build ruby 2.6.6 from git source, but get an error.

My Dockerfile:
```
FROM archlinux:20200705

RUN pacman -Sy vim curl git ruby --noconfirm && \
    pacman -S --needed base-devel libffi libyaml openssl zlib --noconfirm

CMD /bin/bash
```

Build and run docker:
```
docker build -t archlinux_ruby .
docker run --rm -it archlinux_ruby /bin/bash
```

My steps for reproducing error (in docker bash):
```
mkdir gitruby && cd gitruby
git clone https://github.com/ruby/ruby.git -b v2_6_6 --depth 1
cd ruby
autoconf
./configure
make
```

Error
```
compiling parse.c                                                                                               [7/2146]
parse.c: In function ‘ruby_yyparse’:                                                                                    
parse.c:10667:51: error: macro "yydestruct" passed 5 arguments, but takes just 3                                        
10667 |           if (yychar == END_OF_INPUT)                                                                           
      |                                                   ^                                                             
parse.c:5299: note: macro "yydestruct" defined here                                                                     
 5299 | #define yydestruct(m, t, v) ruby_parser_yydestruct(m, t, v, p)                                                  
      |                                                                                                                 
parse.c:10666:11: error: ‘yydestruct’ undeclared (first use in this function)
10666 |           /* Return failure if at end of input.  */
      |           ^~~~~~~~~~  
parse.c:10666:11: note: each undeclared identifier is reported only once for each function it appears in
parse.c:10722:65: error: macro "yydestruct" passed 5 arguments, but takes just 3
10722 |       /* Pop the current state because it cannot handle the error token.  */
      |                                                                 ^                                               
parse.c:5299: note: macro "yydestruct" defined here
 5299 | #define yydestruct(m, t, v) ruby_parser_yydestruct(m, t, v, p)
      | 
parse.c:10780:47: error: macro "yydestruct" passed 5 arguments, but takes just 3
10780 |   if (yychar != YYEMPTY)
      |                                               ^     
parse.c:5299: note: macro "yydestruct" defined here
 5299 | #define yydestruct(m, t, v) ruby_parser_yydestruct(m, t, v, p)
      | 
parse.c:10789:65: error: macro "yydestruct" passed 5 arguments, but takes just 3
10789 |      this YYABORT or YYACCEPT.  */
      |                                                                 ^                                               
parse.c:5299: note: macro "yydestruct" defined here
 5299 | #define yydestruct(m, t, v) ruby_parser_yydestruct(m, t, v, p)
      | 
At top level:
parse.c:5297:1: warning: ‘ruby_parser_yydestruct’ defined but not used [-Wunused-function]
 5297 | ruby_parser_yydestruct (const char *yymsg,
      | ^~~~~~~~~~~~~~~~~~~~~~
cc1: note: unrecognized command-line option ‘-Wno-self-assign’ may have been intended to silence earlier diagnostics
cc1: note: unrecognized command-line option ‘-Wno-parentheses-equality’ may have been intended to silence earlier diagno
stics
cc1: note: unrecognized command-line option ‘-Wno-constant-logical-operand’ may have been intended to silence earlier di
agnostics
make: *** [Makefile:419: parse.o] Error 1
```

What do the comments mean that appeared while building ruby?
Building from tarball source (https://www.ruby-lang.org/en/downloads/) was successful.

What am I doing wrong?



-- 
https://bugs.ruby-lang.org/

^ permalink raw reply	[flat|nested] 6+ messages in thread

* [ruby-core:99548] [Ruby master Bug#17106] Build ruby 2.6.6 from git source
  2020-08-07  6:50 [ruby-core:99508] [Ruby master Bug#17106] Build ruby 2.6.6 from git source yegorov0725
  2020-08-07  7:38 ` [ruby-core:99509] " mame
  2020-08-10 13:29 ` [ruby-core:99542] " yegorov0725
@ 2020-08-11  0:16 ` s.wanabe
  2021-11-04 15:33 ` [ruby-core:105939] " jaruga (Jun Aruga)
  2021-11-04 16:22 ` [ruby-core:105940] " jaruga (Jun Aruga)
  4 siblings, 0 replies; 6+ messages in thread
From: s.wanabe @ 2020-08-11  0:16 UTC (permalink / raw)
  To: ruby-core

Issue #17106 has been updated by wanabe (_ wanabe).


47720e2255f34ecad49763c66a7ea02a55a3f60a will fix the error.
But I don't know if it won't cause a regression.
`ruby_2_7` doesn't have the issue because of b971bad49b95d4c1f68bb2242d4267355f1cd497.

----------------------------------------
Bug #17106: Build ruby 2.6.6 from git source
https://bugs.ruby-lang.org/issues/17106#change-87010

* Author: yegorov (Artem Yegorov)
* Status: Closed
* Priority: Normal
* ruby -v: 2.6.6
* Backport: 2.5: UNKNOWN, 2.6: UNKNOWN, 2.7: UNKNOWN
----------------------------------------
Hello!
I tried to build ruby 2.6.6 from git source, but get an error.

My Dockerfile:
```
FROM archlinux:20200705

RUN pacman -Sy vim curl git ruby --noconfirm && \
    pacman -S --needed base-devel libffi libyaml openssl zlib --noconfirm

CMD /bin/bash
```

Build and run docker:
```
docker build -t archlinux_ruby .
docker run --rm -it archlinux_ruby /bin/bash
```

My steps for reproducing error (in docker bash):
```
mkdir gitruby && cd gitruby
git clone https://github.com/ruby/ruby.git -b v2_6_6 --depth 1
cd ruby
autoconf
./configure
make
```

Error
```
compiling parse.c                                                                                               [7/2146]
parse.c: In function ‘ruby_yyparse’:                                                                                    
parse.c:10667:51: error: macro "yydestruct" passed 5 arguments, but takes just 3                                        
10667 |           if (yychar == END_OF_INPUT)                                                                           
      |                                                   ^                                                             
parse.c:5299: note: macro "yydestruct" defined here                                                                     
 5299 | #define yydestruct(m, t, v) ruby_parser_yydestruct(m, t, v, p)                                                  
      |                                                                                                                 
parse.c:10666:11: error: ‘yydestruct’ undeclared (first use in this function)
10666 |           /* Return failure if at end of input.  */
      |           ^~~~~~~~~~  
parse.c:10666:11: note: each undeclared identifier is reported only once for each function it appears in
parse.c:10722:65: error: macro "yydestruct" passed 5 arguments, but takes just 3
10722 |       /* Pop the current state because it cannot handle the error token.  */
      |                                                                 ^                                               
parse.c:5299: note: macro "yydestruct" defined here
 5299 | #define yydestruct(m, t, v) ruby_parser_yydestruct(m, t, v, p)
      | 
parse.c:10780:47: error: macro "yydestruct" passed 5 arguments, but takes just 3
10780 |   if (yychar != YYEMPTY)
      |                                               ^     
parse.c:5299: note: macro "yydestruct" defined here
 5299 | #define yydestruct(m, t, v) ruby_parser_yydestruct(m, t, v, p)
      | 
parse.c:10789:65: error: macro "yydestruct" passed 5 arguments, but takes just 3
10789 |      this YYABORT or YYACCEPT.  */
      |                                                                 ^                                               
parse.c:5299: note: macro "yydestruct" defined here
 5299 | #define yydestruct(m, t, v) ruby_parser_yydestruct(m, t, v, p)
      | 
At top level:
parse.c:5297:1: warning: ‘ruby_parser_yydestruct’ defined but not used [-Wunused-function]
 5297 | ruby_parser_yydestruct (const char *yymsg,
      | ^~~~~~~~~~~~~~~~~~~~~~
cc1: note: unrecognized command-line option ‘-Wno-self-assign’ may have been intended to silence earlier diagnostics
cc1: note: unrecognized command-line option ‘-Wno-parentheses-equality’ may have been intended to silence earlier diagno
stics
cc1: note: unrecognized command-line option ‘-Wno-constant-logical-operand’ may have been intended to silence earlier di
agnostics
make: *** [Makefile:419: parse.o] Error 1
```

What do the comments mean that appeared while building ruby?
Building from tarball source (https://www.ruby-lang.org/en/downloads/) was successful.

What am I doing wrong?



-- 
https://bugs.ruby-lang.org/

^ permalink raw reply	[flat|nested] 6+ messages in thread

* [ruby-core:105939] [Ruby master Bug#17106] Build ruby 2.6.6 from git source
  2020-08-07  6:50 [ruby-core:99508] [Ruby master Bug#17106] Build ruby 2.6.6 from git source yegorov0725
                   ` (2 preceding siblings ...)
  2020-08-11  0:16 ` [ruby-core:99548] " s.wanabe
@ 2021-11-04 15:33 ` jaruga (Jun Aruga)
  2021-11-04 16:22 ` [ruby-core:105940] " jaruga (Jun Aruga)
  4 siblings, 0 replies; 6+ messages in thread
From: jaruga (Jun Aruga) @ 2021-11-04 15:33 UTC (permalink / raw)
  To: ruby-core

Issue #17106 has been updated by jaruga (Jun Aruga).


I still see this build error on the latest ruby_2_6 branch (commit: `95ba9053e20ad8d113af37b3f1f4cbfff1f6a8f1`).
I needed to apply the commit `47720e2255f34ecad49763c66a7ea02a55a3f60a` to pass the `make` on Fedora 34.

```
$ bison --version
bison (GNU Bison) 3.7.4
Written by Robert Corbett and Richard Stallman.

Copyright (C) 2020 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
```


----------------------------------------
Bug #17106: Build ruby 2.6.6 from git source
https://bugs.ruby-lang.org/issues/17106#change-94480

* Author: yegorov (Artem Yegorov)
* Status: Closed
* Priority: Normal
* ruby -v: 2.6.6
* Backport: 2.5: UNKNOWN, 2.6: UNKNOWN, 2.7: UNKNOWN
----------------------------------------
Hello!
I tried to build ruby 2.6.6 from git source, but get an error.

My Dockerfile:
```
FROM archlinux:20200705

RUN pacman -Sy vim curl git ruby --noconfirm && \
    pacman -S --needed base-devel libffi libyaml openssl zlib --noconfirm

CMD /bin/bash
```

Build and run docker:
```
docker build -t archlinux_ruby .
docker run --rm -it archlinux_ruby /bin/bash
```

My steps for reproducing error (in docker bash):
```
mkdir gitruby && cd gitruby
git clone https://github.com/ruby/ruby.git -b v2_6_6 --depth 1
cd ruby
autoconf
./configure
make
```

Error
```
compiling parse.c                                                                                               [7/2146]
parse.c: In function ‘ruby_yyparse’:                                                                                    
parse.c:10667:51: error: macro "yydestruct" passed 5 arguments, but takes just 3                                        
10667 |           if (yychar == END_OF_INPUT)                                                                           
      |                                                   ^                                                             
parse.c:5299: note: macro "yydestruct" defined here                                                                     
 5299 | #define yydestruct(m, t, v) ruby_parser_yydestruct(m, t, v, p)                                                  
      |                                                                                                                 
parse.c:10666:11: error: ‘yydestruct’ undeclared (first use in this function)
10666 |           /* Return failure if at end of input.  */
      |           ^~~~~~~~~~  
parse.c:10666:11: note: each undeclared identifier is reported only once for each function it appears in
parse.c:10722:65: error: macro "yydestruct" passed 5 arguments, but takes just 3
10722 |       /* Pop the current state because it cannot handle the error token.  */
      |                                                                 ^                                               
parse.c:5299: note: macro "yydestruct" defined here
 5299 | #define yydestruct(m, t, v) ruby_parser_yydestruct(m, t, v, p)
      | 
parse.c:10780:47: error: macro "yydestruct" passed 5 arguments, but takes just 3
10780 |   if (yychar != YYEMPTY)
      |                                               ^     
parse.c:5299: note: macro "yydestruct" defined here
 5299 | #define yydestruct(m, t, v) ruby_parser_yydestruct(m, t, v, p)
      | 
parse.c:10789:65: error: macro "yydestruct" passed 5 arguments, but takes just 3
10789 |      this YYABORT or YYACCEPT.  */
      |                                                                 ^                                               
parse.c:5299: note: macro "yydestruct" defined here
 5299 | #define yydestruct(m, t, v) ruby_parser_yydestruct(m, t, v, p)
      | 
At top level:
parse.c:5297:1: warning: ‘ruby_parser_yydestruct’ defined but not used [-Wunused-function]
 5297 | ruby_parser_yydestruct (const char *yymsg,
      | ^~~~~~~~~~~~~~~~~~~~~~
cc1: note: unrecognized command-line option ‘-Wno-self-assign’ may have been intended to silence earlier diagnostics
cc1: note: unrecognized command-line option ‘-Wno-parentheses-equality’ may have been intended to silence earlier diagno
stics
cc1: note: unrecognized command-line option ‘-Wno-constant-logical-operand’ may have been intended to silence earlier di
agnostics
make: *** [Makefile:419: parse.o] Error 1
```

What do the comments mean that appeared while building ruby?
Building from tarball source (https://www.ruby-lang.org/en/downloads/) was successful.

What am I doing wrong?



-- 
https://bugs.ruby-lang.org/

^ permalink raw reply	[flat|nested] 6+ messages in thread

* [ruby-core:105940] [Ruby master Bug#17106] Build ruby 2.6.6 from git source
  2020-08-07  6:50 [ruby-core:99508] [Ruby master Bug#17106] Build ruby 2.6.6 from git source yegorov0725
                   ` (3 preceding siblings ...)
  2021-11-04 15:33 ` [ruby-core:105939] " jaruga (Jun Aruga)
@ 2021-11-04 16:22 ` jaruga (Jun Aruga)
  4 siblings, 0 replies; 6+ messages in thread
From: jaruga (Jun Aruga) @ 2021-11-04 16:22 UTC (permalink / raw)
  To: ruby-core

Issue #17106 has been updated by jaruga (Jun Aruga).


> I still see this build error on the latest ruby_2_6 branch (commit: 95ba9053e20ad8d113af37b3f1f4cbfff1f6a8f1).

```
$ ruby -v
ruby 3.0.2p107 (2021-07-07 revision 0db68f0233) [x86_64-linux]

$ which ruby
/usr/local/ruby-3.0.2/bin/ruby

$ bison --version
bison (GNU Bison) 3.7.4
Written by Robert Corbett and Richard Stallman.

Copyright (C) 2020 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

$ autoconf
$ ./configure

$ make
...
compiling parse.c
parse.c: In function ‘ruby_yyparse’:
parse.c:10653:51: error: macro "yydestruct" passed 5 arguments, but takes just 3
10653 |           if (yychar == END_OF_INPUT)
      |                                                   ^
parse.c:5300: note: macro "yydestruct" defined here
 5300 | #define yydestruct(m, t, v) ruby_parser_yydestruct(m, t, v, p)
      | 
parse.c:10652:11: error: ‘yydestruct’ undeclared (first use in this function)
10652 |           /* Return failure if at end of input.  */
      |           ^~~~~~~~~~
parse.c:10652:11: note: each undeclared identifier is reported only once for each function it appears in
parse.c:10708:65: error: macro "yydestruct" passed 5 arguments, but takes just 3
10708 |       /* Pop the current state because it cannot handle the error token.  */
      |                                                                 ^
parse.c:5300: note: macro "yydestruct" defined here
 5300 | #define yydestruct(m, t, v) ruby_parser_yydestruct(m, t, v, p)
      | 
parse.c:10766:47: error: macro "yydestruct" passed 5 arguments, but takes just 3
10766 |   if (yychar != YYEMPTY)
      |                                               ^
parse.c:5300: note: macro "yydestruct" defined here
 5300 | #define yydestruct(m, t, v) ruby_parser_yydestruct(m, t, v, p)
      | 
parse.c:10775:65: error: macro "yydestruct" passed 5 arguments, but takes just 3
10775 |      this YYABORT or YYACCEPT.  */
      |                                                                 ^
parse.c:5300: note: macro "yydestruct" defined here
 5300 | #define yydestruct(m, t, v) ruby_parser_yydestruct(m, t, v, p)
      | 
At top level:
parse.c:5298:1: warning: ‘ruby_parser_yydestruct’ defined but not used [-Wunused-function]
 5298 | ruby_parser_yydestruct (const char *yymsg,
      | ^~~~~~~~~~~~~~~~~~~~~~
cc1: note: unrecognized command-line option ‘-Wno-self-assign’ may have been intended to silence earlier diagnostics
cc1: note: unrecognized command-line option ‘-Wno-parentheses-equality’ may have been intended to silence earlier diagnostics
cc1: note: unrecognized command-line option ‘-Wno-constant-logical-operand’ may have been intended to silence earlier diagnostics
make: *** [Makefile:419: parse.o] Error 1
```

> I needed to apply the commit 47720e2255f34ecad49763c66a7ea02a55a3f60a to pass the make on Fedora 34.

After applying the patch, the `make` passed, but I see some failures on `make test`. I am not sure if the failures come from this patch.

```
$ autoconf
$ ./configure
$ make

$ make test
	BASERUBY = /usr/local/ruby-3.0.2/bin/ruby --disable=gems
	CC = gcc
	LD = ld
	LDSHARED = gcc -shared
	CFLAGS = -O3 -ggdb3 -Wall -Wextra -Wdeclaration-after-statement -Wdeprecated-declarations -Wduplicated-cond -Wimplicit-function-declaration -Wimplicit-int -Wmisleading-indentation -Wpointer-arith -Wrestrict -Wwrite-strings -Wimplicit-fallthrough=0 -Wmissing-noreturn -Wno-cast-function-type -Wno-constant-logical-operand -Wno-long-long -Wno-missing-field-initializers -Wno-overlength-strings -Wno-packed-bitfield-compat -Wno-parentheses-equality -Wno-self-assign -Wno-tautological-compare -Wno-unused-parameter -Wno-unused-value -Wsuggest-attribute=format -Wsuggest-attribute=noreturn -Wunused-variable -std=gnu99 
	XCFLAGS = -D_FORTIFY_SOURCE=2 -fstack-protector-strong -fno-strict-overflow -fvisibility=hidden -fexcess-precision=standard -DRUBY_EXPORT -fPIE -DCANONICALIZATION_FOR_MATHN
	CPPFLAGS =   -I. -I.ext/include/x86_64-linux -I./include -I. -I./enc/unicode/12.1.0 
	DLDFLAGS = -Wl,--compress-debug-sections=zlib -fstack-protector-strong -pie  
	SOLIBS = -lz -lpthread -lrt -lrt -lgmp -ldl -lcrypt -lm 
	LANG = en_US.UTF-8
	LC_ALL = en_US.UTF-8
	LC_CTYPE = 
gcc (GCC) 11.2.1 20210728 (Red Hat 11.2.1-1)
Copyright (C) 2021 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

./revision.h unchanged
#883 test_literal_suffix.rb:49:in `<top (required)>': begin eval('1ir', nil, '', 0); rescue SyntaxError => e; e.message[/\A:(?:\d+:)? (.*)/, 1] end  #=> "syntax error" (expected "syntax error, unexpected tIDENTIFIER, expecting end-of-input")  
#884 test_literal_suffix.rb:51:in `<top (required)>': begin eval('1.2ir', nil, '', 0); rescue SyntaxError => e; e.message[/\A:(?:\d+:)? (.*)/, 1] end  #=> "syntax error" (expected "syntax error, unexpected tIDENTIFIER, expecting end-of-input")  
#885 test_literal_suffix.rb:53:in `<top (required)>': begin eval('1e1r', nil, '', 0); rescue SyntaxError => e; e.message[/\A:(?:\d+:)? (.*)/, 1] end  #=> "syntax error" (expected "syntax error, unexpected tIDENTIFIER, expecting end-of-input")  
test_literal_suffix.rb  FAIL 3/48
#1287 test_syntax.rb:529:in `assert_syntax_error': begin eval(%q{{*0}}, nil, '', 0); rescue SyntaxError => e; e.message[/\A:(?:\d+:)? (.*)/, 1] end  #=> "syntax error" (expected "syntax error, unexpected *, expecting '}'")  [ruby-dev:31072]
#1292 test_syntax.rb:529:in `assert_syntax_error': begin eval(%q{v0,(*,v1,) = 0}, nil, '', 0); rescue SyntaxError => e; e.message[/\A:(?:\d+:)? (.*)/, 1] end  #=> "syntax error" (expected "syntax error, unexpected ')'")  [ruby-dev:31104]
#1297 test_syntax.rb:529:in `assert_syntax_error': begin eval(%q{!}, nil, '', 0); rescue SyntaxError => e; e.message[/\A:(?:\d+:)? (.*)/, 1] end  #=> "syntax error" (expected "syntax error, unexpected end-of-input")  [ruby-dev:31243]
test_syntax.rb          FAIL 3/156
FAIL 6/1397 tests failed       
make: *** [uncommon.mk:735: yes-btest-ruby] Error 1
```



----------------------------------------
Bug #17106: Build ruby 2.6.6 from git source
https://bugs.ruby-lang.org/issues/17106#change-94481

* Author: yegorov (Artem Yegorov)
* Status: Closed
* Priority: Normal
* ruby -v: 2.6.6
* Backport: 2.5: UNKNOWN, 2.6: UNKNOWN, 2.7: UNKNOWN
----------------------------------------
Hello!
I tried to build ruby 2.6.6 from git source, but get an error.

My Dockerfile:
```
FROM archlinux:20200705

RUN pacman -Sy vim curl git ruby --noconfirm && \
    pacman -S --needed base-devel libffi libyaml openssl zlib --noconfirm

CMD /bin/bash
```

Build and run docker:
```
docker build -t archlinux_ruby .
docker run --rm -it archlinux_ruby /bin/bash
```

My steps for reproducing error (in docker bash):
```
mkdir gitruby && cd gitruby
git clone https://github.com/ruby/ruby.git -b v2_6_6 --depth 1
cd ruby
autoconf
./configure
make
```

Error
```
compiling parse.c                                                                                               [7/2146]
parse.c: In function ‘ruby_yyparse’:                                                                                    
parse.c:10667:51: error: macro "yydestruct" passed 5 arguments, but takes just 3                                        
10667 |           if (yychar == END_OF_INPUT)                                                                           
      |                                                   ^                                                             
parse.c:5299: note: macro "yydestruct" defined here                                                                     
 5299 | #define yydestruct(m, t, v) ruby_parser_yydestruct(m, t, v, p)                                                  
      |                                                                                                                 
parse.c:10666:11: error: ‘yydestruct’ undeclared (first use in this function)
10666 |           /* Return failure if at end of input.  */
      |           ^~~~~~~~~~  
parse.c:10666:11: note: each undeclared identifier is reported only once for each function it appears in
parse.c:10722:65: error: macro "yydestruct" passed 5 arguments, but takes just 3
10722 |       /* Pop the current state because it cannot handle the error token.  */
      |                                                                 ^                                               
parse.c:5299: note: macro "yydestruct" defined here
 5299 | #define yydestruct(m, t, v) ruby_parser_yydestruct(m, t, v, p)
      | 
parse.c:10780:47: error: macro "yydestruct" passed 5 arguments, but takes just 3
10780 |   if (yychar != YYEMPTY)
      |                                               ^     
parse.c:5299: note: macro "yydestruct" defined here
 5299 | #define yydestruct(m, t, v) ruby_parser_yydestruct(m, t, v, p)
      | 
parse.c:10789:65: error: macro "yydestruct" passed 5 arguments, but takes just 3
10789 |      this YYABORT or YYACCEPT.  */
      |                                                                 ^                                               
parse.c:5299: note: macro "yydestruct" defined here
 5299 | #define yydestruct(m, t, v) ruby_parser_yydestruct(m, t, v, p)
      | 
At top level:
parse.c:5297:1: warning: ‘ruby_parser_yydestruct’ defined but not used [-Wunused-function]
 5297 | ruby_parser_yydestruct (const char *yymsg,
      | ^~~~~~~~~~~~~~~~~~~~~~
cc1: note: unrecognized command-line option ‘-Wno-self-assign’ may have been intended to silence earlier diagnostics
cc1: note: unrecognized command-line option ‘-Wno-parentheses-equality’ may have been intended to silence earlier diagno
stics
cc1: note: unrecognized command-line option ‘-Wno-constant-logical-operand’ may have been intended to silence earlier di
agnostics
make: *** [Makefile:419: parse.o] Error 1
```

What do the comments mean that appeared while building ruby?
Building from tarball source (https://www.ruby-lang.org/en/downloads/) was successful.

What am I doing wrong?



-- 
https://bugs.ruby-lang.org/

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2021-11-04 16:22 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-08-07  6:50 [ruby-core:99508] [Ruby master Bug#17106] Build ruby 2.6.6 from git source yegorov0725
2020-08-07  7:38 ` [ruby-core:99509] " mame
2020-08-10 13:29 ` [ruby-core:99542] " yegorov0725
2020-08-11  0:16 ` [ruby-core:99548] " s.wanabe
2021-11-04 15:33 ` [ruby-core:105939] " jaruga (Jun Aruga)
2021-11-04 16:22 ` [ruby-core:105940] " jaruga (Jun Aruga)

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).