Skip to content

Issues compiling PriorityQueue gem #78

@TheMeier

Description

@TheMeier

puppet-forge-server uses https://rubygems.org/gems/lrucache wich uses https://rubygems.org/gems/PriorityQueue both look somewhat unmaintained. Compiling the latter on modern gcc seems to somewhat problematic:

compiling priority_queue.c
priority_queue.c: In function 'priority_node_free_recursively':
priority_queue.c:80:3: warning: ISO C90 forbids mixed declarations and code [-Wdeclaration-after-statement]
   80 |   priority_node* n1 = n;
      |   ^~~~~~~~~~~~~
priority_queue.c: In function 'link_nodes':
priority_queue.c:95:3: warning: ISO C90 forbids mixed declarations and code [-Wdeclaration-after-statement]
   95 |   priority_node* child = b1->child;
      |   ^~~~~~~~~~~~~
priority_queue.c: In function 'assert_pointers_correct':
priority_queue.c:210:3: warning: ISO C90 forbids mixed declarations and code [-Wdeclaration-after-statement]
  210 |   priority_node *n1 = n->right;
      |   ^~~~~~~~~~~~~
priority_queue.c: In function 'consolidate_queue':
priority_queue.c:235:3: warning: ISO C90 forbids mixed declarations and code [-Wdeclaration-after-statement]
  235 |   priority_node* n = NULL;
      |   ^~~~~~~~~~~~~
priority_queue.c: In function 'priority_queue_delete_min':
priority_queue.c:258:3: warning: ISO C90 forbids mixed declarations and code [-Wdeclaration-after-statement]
  258 |   priority_node* min = q->min;
      |   ^~~~~~~~~~~~~
priority_queue.c: In function 'pq_mark_recursive':
priority_queue.c:459:3: warning: ISO C90 forbids mixed declarations and code [-Wdeclaration-after-statement]
  459 |   priority_node* n1 = n->child;
      |   ^~~~~~~~~~~~~
priority_queue.c: In function 'pq_mark':
priority_queue.c:472:3: warning: ISO C90 forbids mixed declarations and code [-Wdeclaration-after-statement]
  472 |   priority_node* n2 = n1;
      |   ^~~~~~~~~~~~~
priority_queue.c: In function 'pq_node2dot':
priority_queue.c:804:3: warning: ISO C90 forbids mixed declarations and code [-Wdeclaration-after-statement]
  804 |   unsigned int i;
      |   ^~~~~~~~
At top level:
priority_queue.c:207:6: warning: 'assert_pointers_correct' defined but not used [-Wunused-function]
  207 | void assert_pointers_correct(priority_node* n) {
      |      ^~~~~~~~~~~~~~~~~~~~~~~
In file included from /home/cmaser/.rbenv/versions/2.5.3/include/ruby-2.5.0/ruby.h:33,
                 from priority_queue.c:24:
priority_queue.c: In function 'pq_node2dot':
/home/cmaser/.rbenv/versions/2.5.3/include/ruby-2.5.0/ruby/ruby.h:1779:3: error: call to 'rb_varargs_bad_length' declared with attribute error:  argument length doesn't
match
 1779 |   rb_varargs_bad_length(argc, vargc)), \
      |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/cmaser/.rbenv/versions/2.5.3/include/ruby-2.5.0/ruby/ruby.h:2474:6: note: in expansion of macro 'rb_varargs_argc_check'
 2474 |      rb_varargs_argc_check(rb_funcall_argc, rb_funcall_nargs), \
      |      ^~~~~~~~~~~~~~~~~~~~~
priority_queue.c:820:4: note: in expansion of macro 'rb_funcall'
  820 |    rb_funcall(Qnil, id_format, 4, rb_str_new2("NODE%i -> NODE%i;\n"),
      |    ^~~~~~~~~~
/home/cmaser/.rbenv/versions/2.5.3/include/ruby-2.5.0/ruby/ruby.h:1779:3: error: call to 'rb_varargs_bad_length' declared with attribute error:  argument length doesn't
match
 1779 |   rb_varargs_bad_length(argc, vargc)), \
      |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/cmaser/.rbenv/versions/2.5.3/include/ruby-2.5.0/ruby/ruby.h:2474:6: note: in expansion of macro 'rb_varargs_argc_check'
 2474 |      rb_varargs_argc_check(rb_funcall_argc, rb_funcall_nargs), \
      |      ^~~~~~~~~~~~~~~~~~~~~
priority_queue.c:820:4: note: in expansion of macro 'rb_funcall'
  820 |    rb_funcall(Qnil, id_format, 4, rb_str_new2("NODE%i -> NODE%i;\n"),
      |    ^~~~~~~~~~
In function 'pq_node2dot',
    inlined from 'pq_node2dot' at priority_queue.c:817:7,
    inlined from 'pq_to_dot' at priority_queue.c:841:7:
/home/cmaser/.rbenv/versions/2.5.3/include/ruby-2.5.0/ruby/ruby.h:1779:3: error: call to 'rb_varargs_bad_length' declared with attribute error:  argument length doesn't
match
 1779 |   rb_varargs_bad_length(argc, vargc)), \
      |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/cmaser/.rbenv/versions/2.5.3/include/ruby-2.5.0/ruby/ruby.h:2474:6: note: in expansion of macro 'rb_varargs_argc_check'
 2474 |      rb_varargs_argc_check(rb_funcall_argc, rb_funcall_nargs), \
      |      ^~~~~~~~~~~~~~~~~~~~~
priority_queue.c:820:4: note: in expansion of macro 'rb_funcall'
  820 |    rb_funcall(Qnil, id_format, 4, rb_str_new2("NODE%i -> NODE%i;\n"),
      |    ^~~~~~~~~~
/home/cmaser/.rbenv/versions/2.5.3/include/ruby-2.5.0/ruby/ruby.h:1779:3: error: call to 'rb_varargs_bad_length' declared with attribute error:  argument length doesn't
match
 1779 |   rb_varargs_bad_length(argc, vargc)), \
      |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/cmaser/.rbenv/versions/2.5.3/include/ruby-2.5.0/ruby/ruby.h:2474:6: note: in expansion of macro 'rb_varargs_argc_check'
 2474 |      rb_varargs_argc_check(rb_funcall_argc, rb_funcall_nargs), \
      |      ^~~~~~~~~~~~~~~~~~~~~
priority_queue.c:820:4: note: in expansion of macro 'rb_funcall'
  820 |    rb_funcall(Qnil, id_format, 4, rb_str_new2("NODE%i -> NODE%i;\n"),
      |    ^~~~~~~~~~
/home/cmaser/.rbenv/versions/2.5.3/include/ruby-2.5.0/ruby/ruby.h:1779:3: error: call to 'rb_varargs_bad_length' declared with attribute error:  argument length doesn't
match
 1779 |   rb_varargs_bad_length(argc, vargc)), \
      |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/cmaser/.rbenv/versions/2.5.3/include/ruby-2.5.0/ruby/ruby.h:2474:6: note: in expansion of macro 'rb_varargs_argc_check'
 2474 |      rb_varargs_argc_check(rb_funcall_argc, rb_funcall_nargs), \
      |      ^~~~~~~~~~~~~~~~~~~~~
priority_queue.c:820:4: note: in expansion of macro 'rb_funcall'
  820 |    rb_funcall(Qnil, id_format, 4, rb_str_new2("NODE%i -> NODE%i;\n"),
      |    ^~~~~~~~~~
/home/cmaser/.rbenv/versions/2.5.3/include/ruby-2.5.0/ruby/ruby.h:1779:3: error: call to 'rb_varargs_bad_length' declared with attribute error:  argument length doesn't
match
 1779 |   rb_varargs_bad_length(argc, vargc)), \
      |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/cmaser/.rbenv/versions/2.5.3/include/ruby-2.5.0/ruby/ruby.h:2474:6: note: in expansion of macro 'rb_varargs_argc_check'
 2474 |      rb_varargs_argc_check(rb_funcall_argc, rb_funcall_nargs), \
      |      ^~~~~~~~~~~~~~~~~~~~~
priority_queue.c:820:4: note: in expansion of macro 'rb_funcall'
  820 |    rb_funcall(Qnil, id_format, 4, rb_str_new2("NODE%i -> NODE%i;\n"),
      |    ^~~~~~~~~~
In function 'pq_node2dot',
    inlined from 'pq_to_dot' at priority_queue.c:841:7:
/home/cmaser/.rbenv/versions/2.5.3/include/ruby-2.5.0/ruby/ruby.h:1779:3: error: call to 'rb_varargs_bad_length' declared with attribute error:  argument length doesn't
match
 1779 |   rb_varargs_bad_length(argc, vargc)), \
      |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/cmaser/.rbenv/versions/2.5.3/include/ruby-2.5.0/ruby/ruby.h:2474:6: note: in expansion of macro 'rb_varargs_argc_check'
 2474 |      rb_varargs_argc_check(rb_funcall_argc, rb_funcall_nargs), \
      |      ^~~~~~~~~~~~~~~~~~~~~
priority_queue.c:820:4: note: in expansion of macro 'rb_funcall'
  820 |    rb_funcall(Qnil, id_format, 4, rb_str_new2("NODE%i -> NODE%i;\n"),
      |    ^~~~~~~~~~
/home/cmaser/.rbenv/versions/2.5.3/include/ruby-2.5.0/ruby/ruby.h:1779:3: error: call to 'rb_varargs_bad_length' declared with attribute error:  argument length doesn't
match
 1779 |   rb_varargs_bad_length(argc, vargc)), \
      |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/cmaser/.rbenv/versions/2.5.3/include/ruby-2.5.0/ruby/ruby.h:2474:6: note: in expansion of macro 'rb_varargs_argc_check'
 2474 |      rb_varargs_argc_check(rb_funcall_argc, rb_funcall_nargs), \
      |      ^~~~~~~~~~~~~~~~~~~~~
priority_queue.c:820:4: note: in expansion of macro 'rb_funcall'
  820 |    rb_funcall(Qnil, id_format, 4, rb_str_new2("NODE%i -> NODE%i;\n"),
      |    ^~~~~~~~~~
priority_queue.c: At top level:
cc1: warning: unrecognized command line option '-Wno-self-assign'
cc1: warning: unrecognized command line option '-Wno-constant-logical-operand'
cc1: warning: unrecognized command line option '-Wno-parentheses-equality'
make: *** [Makefile:242: priority_queue.o] Error 1

make failed, exit code 2

Gem files will remain installed in /home/cmaser/GIT/TheMeier/puppet-forge-server/vendor/bundle/ruby/2.5.0/gems/PriorityQueue-0.1.2 for inspection.
Results logged to /home/cmaser/GIT/TheMeier/puppet-forge-server/vendor/bundle/ruby/2.5.0/extensions/x86_64-linux/2.5.0-static/PriorityQueue-0.1.2/gem_make.out

An error occurred while installing PriorityQueue (0.1.2), and Bundler cannot continue.
Make sure that `gem install PriorityQueue -v '0.1.2' --source 'https://rubygems.org/'` succeeds before bundling.

In Gemfile:
  puppet-forge-server was resolved to 1.10.1, which depends on
    lrucache was resolved to 0.1.4, which depends on
      PriorityQueue

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions