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

[6.0.14] ambiguous queue class reference on Solaris 11.4 compilation #2440

Closed
danowar2k opened this issue Sep 5, 2022 · 4 comments
Closed

Comments

@danowar2k
Copy link

Issue report

Preface: I'm currently building an Ansible playbook to finally reproduce the current state of my Redmine installation in a development environment. My local Redmine installation runs on a supported Solaris 11.4, but my dev VM can only run 11.4 release.
My Redmine install is still a super old Redmine 3.3.0 running on Ruby 2.3.8. I'm trying to upgrade, but before that I want to reproduce the environment on my VM. So I'm currently using the old a** versions...

When compiling mod_passenger 6.0.14 integration with apache 2.4.53 on Solaris 11.4 (yeah, sorry), I'm running into this error:

/usr/bin/g++ -m32 -o buildout/apache2/module_libpassenger_common/LoggingKit.o  -Isrc/cxx_supportlib -Isrc/cxx_supportlib/vendor-copy -Isrc/cxx_supportlib/vendor-modified -Isrc/cxx_supportlib/vendor-modified/libev -Isrc/cxx_supportlib/vendor-copy/libuv/include -O3 -fPIC -DSOLARIS2=11 -D_POSIX_PTHREAD_SEMANTICS -D_REENTRANT -D_LARGEFILE64_SOURCE -I/app/tools/apache2/2.4.53/include -I/app/tools/apache2/2.4.53/include -I/app/tools/apache2/2.4.53/include -D_REENTRANT -I/usr/local/include -Wall -Wextra -Wno-unused-parameter -Wno-parentheses -Wpointer-arith -Wwrite-strings -Wno-long-long -Wno-missing-field-initializers -feliminate-unused-debug-symbols -feliminate-unused-debug-types -fvisibility=hidden -DVISIBILITY_ATTRIBUTE_SUPPORTED -DHAS_ALLOCA_H -DHAVE_ACCEPT4 -DHAS_SFENCE -DHAS_LFENCE -DPASSENGER_DEBUG -DBOOST_DISABLE_ASSERTS -ggdb -std=gnu++11 -Wno-unused-local-typedefs -Wno-format-nonliteral -DHAS_UNORDERED_MAP -pthreads -D__EXTENSIONS__ -D__SOLARIS__ -D_FILE_OFFSET_BITS=64 -DBOOST_HAS_STDINT_H -c src/cxx_supportlib/LoggingKit/Implementation.cpp
In file included from src/cxx_supportlib/vendor-modified/boost/config/platform/solaris.hpp:17:0,
                 from src/cxx_supportlib/vendor-modified/boost/config.hpp:57,
                 from src/cxx_supportlib/vendor-modified/boost/cstdint.hpp:36,
                 from src/cxx_supportlib/LoggingKit/Implementation.cpp:43:
src/cxx_supportlib/vendor-modified/boost/config/detail/posix_features.hpp:27:0: warning: "BOOST_HAS_STDINT_H" redefined
 #        define BOOST_HAS_STDINT_H

<command-line>:0:0: note: this is the location of the previous definition
In file included from src/cxx_supportlib/LoggingKit/Implementation.cpp:55:0:
src/cxx_supportlib/LoggingKit/Context.h:81:2: error: reference to ‘queue’ is ambiguous
  queue< pair<ConfigRealization *, MonotonicTimeUsec> > oldConfigs;
  ^~~~~
In file included from /usr/include/netinet/in.h:66:0,
                 from /usr/include/sys/socket.h:32,
                 from src/cxx_supportlib/oxt/system_calls.hpp:32,
                 from src/cxx_supportlib/oxt/thread.hpp:33,
                 from src/cxx_supportlib/LoggingKit/Implementation.cpp:46:
/usr/include/sys/stream.h:86:16: note: candidates are: struct queue
 typedef struct queue {
                ^~~~~
In file included from /usr/gcc/7/include/c++/7.3.0/queue:64:0,
                 from src/cxx_supportlib/LoggingKit/Implementation.cpp:35:
/usr/gcc/7/include/c++/7.3.0/bits/stl_queue.h:96:11: note:                 template<class _Tp, class _Sequence> class std::queue
     class queue
           ^~~~~
/usr/gcc/7/include/c++/7.3.0/bits/stl_queue.h:96:11: note:                 template<class _Tp, class _Sequence> class std::queue

Question 1: What is the problem?

  • What is the expected behavior?

At least this part of the compilation should finish

  • What is the actual behavior?

The queue class reference is ambiguous. There was already an issue dealing with this, at least in part, see #2016, but it was closed.

#2016 (reference) In this comment, there is a linked commit which fixes the issue, see bed9011.
This hasn't been merged to current stable yet, see https://github.com/phusion/passenger/blob/stable-6.0/src/cxx_supportlib/LoggingKit/Context.h

The easiest thing I think would be to merge the commit, but of course I don't know of any side effects.

Question 2: Passenger version and integration mode:

  • For example: open source 5.0.26 standalone; enterprise 5.0.21/nginx

Passenger open source 6.0.14 running on Ruby 2.3.8 (yeah, sorry, I'm trying to fix this right now) against a self-compiled 32 Bit Apache httpd 2.4.53 to build mod_passenger.

Question 3: OS or Linux distro, platform (including version):
Solaris 11.4 Release, x86_64

Question 4: Passenger installation method:

Your answer:
[x] RubyGems + Gemfile
(Gemfile.local for Redmine 3.3.0)

Question 5: Your app's programming language (including any version managers) and framework (including versions):
Ruby 2.3.8 without RVM, Rails 4.2.6

Question 6: Are you using a PaaS and/or containerization? If so which one?

No containerization. Using Vagrant 2.2.16 + VirtualBox 6.1.22 plus private Vagrant boxes.

Question 7: Anything else about your setup that we should know?

No, I think.

@danowar2k
Copy link
Author

danowar2k commented Sep 5, 2022

Nothing to see here, I commented on the wrong issue... see #2441 for the original comment.

1 similar comment
@danowar2k
Copy link
Author

danowar2k commented Sep 5, 2022

Nothing to see here, I commented on the wrong issue... see #2441 for the original comment.

@danowar2k
Copy link
Author

Whoa that was fast (even if it's a small commit): 5dbfed2

Thanks! (I hope that doesn't break anything)

@danowar2k
Copy link
Author

We can close this now

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