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

added dependency to console_bridge #3

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

maltewi
Copy link

@maltewi maltewi commented Jul 15, 2020

I'm getting the following error in a rock installation:

[100%] Linking CXX executable test_suite
CMakeFiles/test_suite.dir/test_PluginLoader.cpp.o: In function `plugin_manager::BaseClass* class_loader::ClassLoader::createRawInstance<plugin_manager::BaseClass>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, bool)':
/media/wirkus/Data/development/modeling_buildconf/install/tools/class_loader/include/class_loader/class_loader.h:256: undefined reference to `console_bridge::log(char const*, int, console_bridge::LogLevel, char const*, ...)'
CMakeFiles/test_suite.dir/test_PluginLoader.cpp.o: In function `void class_loader::ClassLoader::onPluginDeletion<plugin_manager::BaseClass>(plugin_manager::BaseClass*)':
/media/wirkus/Data/development/modeling_buildconf/install/tools/class_loader/include/class_loader/class_loader.h:212: undefined reference to `console_bridge::log(char const*, int, console_bridge::LogLevel, char const*, ...)'
/media/wirkus/Data/development/modeling_buildconf/install/tools/class_loader/include/class_loader/class_loader.h:223: undefined reference to `console_bridge::log(char const*, int, console_bridge::LogLevel, char const*, ...)'
CMakeFiles/test_suite.dir/test_PluginLoader.cpp.o: In function `plugin_manager::BaseClass* class_loader::class_loader_private::createInstance<plugin_manager::BaseClass>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, class_loader::ClassLoader*)':
/media/wirkus/Data/development/modeling_buildconf/install/tools/class_loader/include/class_loader/class_loader_core.h:238: undefined reference to `console_bridge::log(char const*, int, console_bridge::LogLevel, char const*, ...)'
/media/wirkus/Data/development/modeling_buildconf/install/tools/class_loader/include/class_loader/class_loader_core.h:251: undefined reference to `console_bridge::log(char const*, int, console_bridge::LogLevel, char const*, ...)'
CMakeFiles/test_suite.dir/test_PluginLoader.cpp.o:/media/wirkus/Data/development/modeling_buildconf/install/tools/class_loader/include/class_loader/class_loader_core.h:269: more undefined references to `console_bridge::log(char const*, int, console_bridge::LogLevel, char const*, ...)' follow
collect2: error: ld returned 1 exit status
test/CMakeFiles/test_suite.dir/build.make:184: recipe for target 'test/test_suite' failed
make[2]: *** [test/test_suite] Error 1
CMakeFiles/Makefile2:207: recipe for target 'test/CMakeFiles/test_suite.dir/all' failed
make[1]: *** [test/CMakeFiles/test_suite.dir/all] Error 2
Makefile:140: recipe for target 'all' failed
make: *** [all] Error 2
wirkus@MWIRKUS-LAP-U:build[consol_bridge]$ 

adding the dependency as in the PR solves the problem, but actually plugin_manager is not directly depending on console_bridge. The dependency comes in via class_loader, which seems to miss stating the dependency correctly (at least in a rock installation).

Here's the .pc file for class_loader:

prefix=/media/wirkus/Data/development/modeling_buildconf/install/tools/class_loader
exec_prefix=/media/wirkus/Data/development/modeling_buildconf/install/tools/class_loader
libdir=${prefix}/lib
includedir=${prefix}/include

Name: class_loader
Description: 
Version: 
Requires: 
Libs: -L${libdir} -lclass_loader /usr/lib/x86_64-linux-gnu/libboost_thread.so;/usr/lib/x86_64-linux-gnu/libboost_system.so;/usr/lib/x86_64-linux-gnu/libboost_chrono.so;/usr/lib/x86_64-linux-gnu/libboost_date_time.so;/usr/lib/x86_64-linux-gnu/libboost_atomic.so;/usr/lib/x86_64-linux-gnu/libpthread.so;/media/wirkus/Data/development/modeling_buildconf/install/base/logging/lib/libbase-logging.so;/usr/lib/libPocoFoundation.so;dl
Cflags: -I${includedir} 

@maltewi
Copy link
Author

maltewi commented Jul 23, 2020

@saarnold according to manifest, your're the maintainer of this package. Can you please provide your opinion on this issue?

@maltewi maltewi marked this pull request as ready for review July 23, 2020 08:44
@saarnold
Copy link
Contributor

This seems like it should be fixed on the class loader or it's Rock integration side.

I also fail to reproduce the error. Which version of class_loader are you using? In rock.core it is fixed to 0.3.8.

@maltewi
Copy link
Author

maltewi commented Jul 24, 2020

wirkus@MWIRKUS-LAP-U:class_loader[indigo-devel]$ autoproj show class_loader
/media/wirkus/Data/development/modeling_buildconf/.autoproj/bin/autoproj:18: warning: Insecure world writable dir /media/wirkus/Data/development/modeling_buildconf/bundles/xec_test/bin in PATH, mode 040777
  WARN: tools/msgpack-c from rock.core does not have a manifest
  WARN: external/ogdf from envire does not have a manifest
  WARN: control/sgsmooth from ric.backbone does not have a manifest
  WARN: external/nodejs from dfki.control.modeling does not have a manifest
  WARN: tools/cnd/analysis from dfki.control.modeling does not have a manifest
source package tools/class_loader
  source definition
    type: git
    url: https://github.com/ros/class_loader.git
    branch: indigo-devel
    interactive: false
    push_to: [email protected]:/ros/class_loader.git
    repository_id: github:/ros/class_loader.git
    retry_count: 10
    tag: 0.3.8
    first match: in rock.core (/media/wirkus/Data/development/modeling_buildconf/autoproj/remotes/rock.core/source.yml)
      branch: $ROCK_BRANCH
      github: rock-core/tools-$PACKAGE_BASENAME
    overriden in rock.core (/media/wirkus/Data/development/modeling_buildconf/autoproj/remotes/rock.core/source.yml)
      branch: indigo-devel
      github: ros/class_loader
      tag: 0.3.8
  is directly selected by the manifest via rock.core
  direct reverse dependencies: envire/envire_core, tools/plugin_manager
  recursive reverse dependencies: envire/envire_core, envire/orogen/envire_core, tools/cnd/service/trenhancer, tools/plugin_manager
  selected by way of
    tools/cnd/service/trenhancer>envire/envire_core>tools/class_loader
  directly depends on: base/console_bridge
  optionally depends on: 
  dependencies on OS packages: boost, cmake, poco

Not sure if it's relevant. The problem occurs on a rock build with separate_prefixes: true

@moooeeeep
Copy link

If I understand this correctly tools/class_loader should have this dependency. It should have this dependency since this commit: rock-core/package_set@db1ff96

Can you check if this issue persists?

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

Successfully merging this pull request may close these issues.

3 participants