Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fails to build with both Stable and Pre-release #162

Open
temporarium opened this issue Aug 23, 2021 · 1 comment
Open

Fails to build with both Stable and Pre-release #162

temporarium opened this issue Aug 23, 2021 · 1 comment

Comments

@temporarium
Copy link

I'm on openSUSE Tumbleweed x64.

ruby version: 2.7.3p183 (2021-04-05 revision 6847ee089d) [x86_64-linux-gnu]
rubyc version: 2.7.1.dev

Invoking...

>./rubyc --root=./utility/ --output=./utility.exe --debug ./utility/utility.rb

...leads to:



/usr/lib64/gcc/x86_64-suse-linux/11/../../../../x86_64-suse-linux/bin/ld/usr/lib64/gcc/x86_64-suse-linux/11/../../../../x86_64-suse-linux/bin/ld: : ./libgdbmapp.a(parseopt.o):/tmp/rubyc/gdbm/src/parseopt.c:255: multiple definition of `./libgdbmapp.a(parseopt.o):parseopt_program_doc/tmp/rubyc/gdbm/src/parseopt.c:'255; : multiple definition of `parseopt_program_doc'; gdbm_dump.o:/tmp/rubyc/gdbm/src/gdbm_dump.c:22: first defined here
/usr/lib64/gcc/x86_64-suse-linux/11/../../../../x86_64-suse-linux/bin/ld: ./libgdbmapp.a(parseopt.o):/tmp/rubyc/gdbm/src/parseopt.c:256: multiple definition of `parseopt_program_args'; gdbm_dump.o:/tmp/rubyc/gdbm/src/gdbm_dump.c:23: first defined here
gdbm_load.o:/tmp/rubyc/gdbm/src/gdbm_load.c:32: first defined here
/usr/lib64/gcc/x86_64-suse-linux/11/../../../../x86_64-suse-linux/bin/ld: ./libgdbmapp.a(parseopt.o):/tmp/rubyc/gdbm/src/parseopt.c:256: multiple definition of `parseopt_program_args'; gdbm_load.o:/tmp/rubyc/gdbm/src/gdbm_load.c:33: first defined here
  CCLD     gdbmtool
collect2: error: ld returned 1 exit status
collect2: error: ld returned 1 exit status
make[3]: *** [Makefile:633: gdbm_dump] Error 1
make[3]: *** Waiting for unfinished jobs....
make[3]: *** [Makefile:637: gdbm_load] Error 1
/usr/lib64/gcc/x86_64-suse-linux/11/../../../../x86_64-suse-linux/bin/ld: ./libgdbmapp.a(parseopt.o):/tmp/rubyc/gdbm/src/parseopt.c:255: multiple definition of `parseopt_program_doc'; gdbmtool.o:/tmp/rubyc/gdbm/src/gdbmtool.c:1492: first defined here
/usr/lib64/gcc/x86_64-suse-linux/11/../../../../x86_64-suse-linux/bin/ld: ./libgdbmapp.a(parseopt.o):/tmp/rubyc/gdbm/src/parseopt.c:256: multiple definition of `parseopt_program_args'; gdbmtool.o:/tmp/rubyc/gdbm/src/gdbmtool.c:1493: first defined here
collect2: error: ld returned 1 exit status
make[3]: *** [Makefile:641: gdbmtool] Error 1
make[3]: Leaving directory '/tmp/rubyc/gdbm/src'
make[2]: *** [Makefile:483: all] Error 2
make[2]: Leaving directory '/tmp/rubyc/gdbm/src'
make[1]: *** [Makefile:456: all-recursive] Error 1
make[1]: Leaving directory '/tmp/rubyc/gdbm'
make: *** [Makefile:387: all] Error 2
Failed running [{"CI"=>"true", "ENCLOSE_IO_USE_ORIGINAL_RUBY"=>"true", "CFLAGS"=>" -DRUBY_DEBUG -fPIC -g -O0 -pipe ", "LDFLAGS"=>""}, "make -j12"]

Invoking...

>rubyc-v0.4.0-linux-x64 --root=./utility/ --output=./utility.exe --debug ./utility/utility.rb

...leads to:

In file included from parse.y:28:
node.h:509:45: note: expected ‘struct parser_params *’ but argument is of type ‘FILE *’
  509 | void rb_parser_printf(struct parser_params *parser, const char *fmt, ...);
      |                       ~~~~~~~~~~~~~~~~~~~~~~^~~~~~
parse.c: In function ‘ruby_yyparse’:
parse.c:5288:27: error: ‘parser’ redeclared as different kind of symbol
 5288 |     struct parser_params *parser;
      |                           ^~~~~~
parse.c:5149:32: note: previous definition of ‘parser’ with type ‘struct parser_params *’
 5149 | yyparse (struct parser_params *parser)
      |          ~~~~~~~~~~~~~~~~~~~~~~^~~~~~
parse.c:11006:47: error: macro "yydestruct" passed 4 arguments, but takes just 3
11006 |           if (yychar == END_OF_INPUT)
      |                                               ^
parse.c:5290: note: macro "yydestruct" defined here
 5290 | #define yydestruct(m, t, v) ruby_parser_yydestruct(m, t, v, parser)
      | 
parse.c:11005:11: error: ‘yydestruct’ undeclared (first use in this function)
11005 |           /* Return failure if at end of input.  */
      |           ^~~~~~~~~~
parse.c:11005:11: note: each undeclared identifier is reported only once for each function it appears in
parse.c:11061:63: error: macro "yydestruct" passed 4 arguments, but takes just 3
11061 |       /* Pop the current state because it cannot handle the error token.  */
      |                                                               ^
parse.c:5290: note: macro "yydestruct" defined here
 5290 | #define yydestruct(m, t, v) ruby_parser_yydestruct(m, t, v, parser)
      | 
parse.c:11116:43: error: macro "yydestruct" passed 4 arguments, but takes just 3
11116 |   if (yychar != YYEMPTY)
      |                                           ^
parse.c:5290: note: macro "yydestruct" defined here
 5290 | #define yydestruct(m, t, v) ruby_parser_yydestruct(m, t, v, parser)
      | 
parse.c:11125:63: error: macro "yydestruct" passed 4 arguments, but takes just 3
11125 |      this YYABORT or YYACCEPT.  */
      |                                                               ^
parse.c:5290: note: macro "yydestruct" defined here
 5290 | #define yydestruct(m, t, v) ruby_parser_yydestruct(m, t, v, parser)
      | 
make: *** [Makefile:365: parse.o] Error 1
Failed running [{"CI"=>"true", "ENCLOSE_IO_USE_ORIGINAL_RUBY"=>"1", "CFLAGS"=>" -fPIC -g -O0 -pipe  -I/tmp/rubyc/zlib  -I/tmp/rubyc/openssl/include  -I/tmp/rubyc/gdbm/build/include  -I/tmp/rubyc/yaml/build/include  -I/tmp/rubyc/libffi/build/lib/libffi-3.2.1/include  -I/tmp/rubyc/ncurses/build/include  -I/tmp/rubyc/readline/build/include ", "LDFLAGS"=>" -L/tmp/rubyc/zlib /tmp/rubyc/zlib/libz.a  -L/tmp/rubyc/openssl  -L/tmp/rubyc/gdbm/build/lib  -L/tmp/rubyc/yaml/build/lib  -L/tmp/rubyc/libffi/build/lib  -L/tmp/rubyc/libffi/build/lib64  -L/tmp/rubyc/ncurses/build/lib  -L/tmp/rubyc/readline/build/lib ", "ENCLOSE_IO_RUBYC_1ST_PASS"=>"1", "ENCLOSE_IO_RUBYC_2ND_PASS"=>nil}, "make -j4 -j1"]

Any suggestions?

It's a terminal application/command-line utility with just a few gems loaded via require 'bundler/inline'.

@temporarium
Copy link
Author

Any suggestions/ideas? Can anything be done to make this work?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant