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

[C++] Linker errors with glog and gflags #20650

Closed
asfimport opened this issue Dec 17, 2018 · 4 comments
Closed

[C++] Linker errors with glog and gflags #20650

asfimport opened this issue Dec 17, 2018 · 4 comments
Labels
Milestone

Comments

@asfimport
Copy link

This is very recent, probably one of Saturday's or Sunday's merges:

[176/293] Linking CXX executable debug/plasma_store_server
FAILED: debug/plasma_store_server 
: && /usr/bin/ccache /usr/bin/g++-7  -Wno-noexcept-type  -fuse-ld=gold -ggdb -O0  -Wall -msse4.2 -fdiagnostics-color=always -Wextra -Wunused-result -Wno-unused-parameter -Wno-implicit-fallthrough -Wconversion -D_GLIBCXX_USE_CXX11_ABI=1 -D_XOPEN_SOURCE=500 -D_POSIX_C_SOURCE=200809L -fPIC -g  -rdynamic src/plasma/CMakeFiles/plasma_store_server.dir/store.cc.o  -o debug/plasma_store_server  -Wl,-rpath,/home/antoine/miniconda3/envs/pyarrow/lib: -lrt debug/libplasma.a debug/libarrow_cuda.a debug/libarrow.a -Wl,-Bstatic -lcudart_static -Wl,-Bdynamic -ldl -lrt -lcuda -lrt /home/antoine/miniconda3/envs/pyarrow/lib/libglog.a /home/antoine/miniconda3/envs/pyarrow/lib/libzstd.a /home/antoine/miniconda3/envs/pyarrow/lib/libz.so /home/antoine/miniconda3/envs/pyarrow/lib/libsnappy.a /home/antoine/miniconda3/envs/pyarrow/lib/liblz4.a /home/antoine/miniconda3/envs/pyarrow/lib/libbrotlidec-static.a /home/antoine/miniconda3/envs/pyarrow/lib/libbrotlienc-static.a /home/antoine/miniconda3/envs/pyarrow/lib/libbrotlicommon-static.a double-conversion_ep/src/double-conversion_ep/lib/libdouble-conversion.a /home/antoine/miniconda3/envs/pyarrow/lib/libboost_system.so /home/antoine/miniconda3/envs/pyarrow/lib/libboost_filesystem.so /home/antoine/miniconda3/envs/pyarrow/lib/libboost_regex.so jemalloc_ep-prefix/src/jemalloc_ep/dist//lib/libjemalloc_pic.a -lpthread /usr/lib/x86_64-linux-gnu/libpthread.so /home/antoine/miniconda3/envs/pyarrow/lib/libflatbuffers.a -lpthread && :
/home/antoine/miniconda3/envs/pyarrow/lib/libglog.a(libglog_la-logging.o):logging.cc:function _GLOBAL__sub_I_logging.cc: error: undefined reference to 'google::FlagRegisterer::FlagRegisterer<bool>(char const*, char const*, char const*, bool*, bool*)'
/home/antoine/miniconda3/envs/pyarrow/lib/libglog.a(libglog_la-logging.o):logging.cc:function _GLOBAL__sub_I_logging.cc: error: undefined reference to 'google::FlagRegisterer::FlagRegisterer<bool>(char const*, char const*, char const*, bool*, bool*)'
/home/antoine/miniconda3/envs/pyarrow/lib/libglog.a(libglog_la-logging.o):logging.cc:function _GLOBAL__sub_I_logging.cc: error: undefined reference to 'google::FlagRegisterer::FlagRegisterer<bool>(char const*, char const*, char const*, bool*, bool*)'
/home/antoine/miniconda3/envs/pyarrow/lib/libglog.a(libglog_la-logging.o):logging.cc:function _GLOBAL__sub_I_logging.cc: error: undefined reference to 'google::FlagRegisterer::FlagRegisterer<bool>(char const*, char const*, char const*, bool*, bool*)'
/home/antoine/miniconda3/envs/pyarrow/lib/libglog.a(libglog_la-logging.o):logging.cc:function _GLOBAL__sub_I_logging.cc: error: undefined reference to 'google::FlagRegisterer::FlagRegisterer<int>(char const*, char const*, char const*, int*, int*)'
/home/antoine/miniconda3/envs/pyarrow/lib/libglog.a(libglog_la-logging.o):logging.cc:function _GLOBAL__sub_I_logging.cc: error: undefined reference to 'google::FlagRegisterer::FlagRegisterer<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >(char const*, char const*, char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*)'
/home/antoine/miniconda3/envs/pyarrow/lib/libglog.a(libglog_la-logging.o):logging.cc:function _GLOBAL__sub_I_logging.cc: error: undefined reference to 'google::FlagRegisterer::FlagRegisterer<int>(char const*, char const*, char const*, int*, int*)'
/home/antoine/miniconda3/envs/pyarrow/lib/libglog.a(libglog_la-logging.o):logging.cc:function _GLOBAL__sub_I_logging.cc: error: undefined reference to 'google::FlagRegisterer::FlagRegisterer<int>(char const*, char const*, char const*, int*, int*)'
/home/antoine/miniconda3/envs/pyarrow/lib/libglog.a(libglog_la-logging.o):logging.cc:function _GLOBAL__sub_I_logging.cc: error: undefined reference to 'google::FlagRegisterer::FlagRegisterer<int>(char const*, char const*, char const*, int*, int*)'
/home/antoine/miniconda3/envs/pyarrow/lib/libglog.a(libglog_la-logging.o):logging.cc:function _GLOBAL__sub_I_logging.cc: error: undefined reference to 'google::FlagRegisterer::FlagRegisterer<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >(char const*, char const*, char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*)'
/home/antoine/miniconda3/envs/pyarrow/lib/libglog.a(libglog_la-logging.o):logging.cc:function _GLOBAL__sub_I_logging.cc: error: undefined reference to 'google::FlagRegisterer::FlagRegisterer<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >(char const*, char const*, char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*)'
/home/antoine/miniconda3/envs/pyarrow/lib/libglog.a(libglog_la-logging.o):logging.cc:function _GLOBAL__sub_I_logging.cc: error: undefined reference to 'google::FlagRegisterer::FlagRegisterer<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >(char const*, char const*, char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*)'
collect2: error: ld returned 1 exit status

This is the build command line:

cmake .. -GNinja \
    -DCMAKE_BUILD_TYPE=Debug \
    -DCMAKE_INSTALL_PREFIX=$ARROW_HOME \
    -DCMAKE_INSTALL_MESSAGE=LAZY \
    -DARROW_CXXFLAGS="$ARROW_CXXFLAGS" \
    -DARROW_CUDA=on \
    -DARROW_PARQUET=on \
    -DARROW_PLASMA=on \
    -DARROW_PYTHON=on \
    -DARROW_GANDIVA=off \
    -DARROW_BUILD_TESTS=on \

nice cmake --build . --target install

These are the installed versions (through Anaconda):

gflags                    2.2.2                he6710b0_0    defaults
glog                      0.3.5                hf484d3e_1    defaults

Reporter: Antoine Pitrou / @pitrou
Assignee: Kousuke Saruta / @sarutak

PRs and other links:

Note: This issue was originally created as ARROW-4052. Please see the migration documentation for further details.

@asfimport
Copy link
Author

Antoine Pitrou / @pitrou:
(uninstalling glog and passing ARROW_USE_GLOG=off works around the issue)

@asfimport
Copy link
Author

Wes McKinney / @wesm:
That's 77d3a46 – glog wasn't being used at all before that patch (with with ARROW_USE_GLOG=on) so this part of your toolchain never got exercised

@asfimport
Copy link
Author

Kousuke Saruta / @sarutak:
Now I'm working on this.

@asfimport
Copy link
Author

Wes McKinney / @wesm:
Issue resolved by pull request 3234
#3234

@asfimport asfimport added this to the 0.12.0 milestone Jan 11, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

1 participant