[Rock-dev] Moving logging out of base/types

Sylvain Joyeux bir.sylvain at gmail.com
Wed Jun 22 03:12:31 CEST 2016


The main fixes are

  https://github.com/rock-core/base-logging/pull/1
  https://github.com/rock-core/base-console_bridge/pull/3

There are a bunch of other fixes. Some are already merged (in packages
I maintain). Others have pending pull requests when I was using them.

For those who wonder, when heavily header paths (and especially when
its a package virtually used by everyone), the only valid test is a
build in a clean bootstrap. Building in an existing bootstrap tests
close to nothing.

Sylvain

On Tue, Jun 21, 2016 at 4:55 PM, Rafael Saback <rafaelsaback at gmail.com> wrote:
> Hey guys,
>
> After the recent merges to rock, my bootstrap has started presenting some
> linkage problems. All my packages that depend on iodrivers_base are
> presenting this linkage problem, even though iodrivers_base itself does not
> present it when I build the package. The  backtrace of the error is shown
> below:
>
>
> Linking CXX executable usbl_evologics_bin
> CMakeFiles/usbl_evologics_bin.dir/Main.cpp.o: In function `main':
> /home/rafaelsaback/flatfish/bir_rock/drivers/usbl_evologics/src/Main.cpp:110:
> undefined reference to `iodrivers_base::Driver::setReadTimeout(base::Time
> const&)'
> /home/rafaelsaback/flatfish/bir_rock/drivers/usbl_evologics/src/Main.cpp:113:
> undefined reference to `iodrivers_base::Driver::openTCP(std::string const&,
> int)'
> /home/rafaelsaback/flatfish/bir_rock/drivers/usbl_evologics/src/Main.cpp:116:
> undefined reference to `iodrivers_base::Driver::openSerial(std::string
> const&, int)'
> libusbl_evologics.so: undefined reference to
> `iodrivers_base::Driver::readPacket(unsigned char*, int)'
> libusbl_evologics.so: undefined reference to
> `base::logging::Logger::log(base::logging::Priority, char const*, char
> const*, int, char const*, char const*, ...) c$
> libusbl_evologics.so: undefined reference to
> `iodrivers_base::Driver::~Driver()'
> libusbl_evologics.so: undefined reference to
> `iodrivers_base::Driver::openURI(std::string const&)'
> libusbl_evologics.so: undefined reference to
> `base::logging::Logger::Logger()'
> libusbl_evologics.so: undefined reference to `typeinfo for
> iodrivers_base::Driver'
> libusbl_evologics.so: undefined reference to
> `iodrivers_base::Driver::close()'
> libusbl_evologics.so: undefined reference to
> `iodrivers_base::Driver::Driver(int, bool)'
> libusbl_evologics.so: undefined reference to
> `iodrivers_base::Driver::writePacket(unsigned char const*, int)'
> collect2: error: ld returned 1 exit status
>
>
> Best Regards,
>
>
> --
> Rafael Meireles Saback
>
> On Mon, Jun 20, 2016 at 11:48 AM, Steffen Planthaber
> <Steffen.Planthaber at dfki.de> wrote:
>>
>> Hi,
>>
>> It was not possible to also move base/spline out, because it uses
>> base/Eigen.h which is defined in base/types (direct cyclic include). So
>> the new library is now called base/logging, as only logging is included
>> there (and Singleton.hpp which is used by the logging).
>>
>> I left backward compability headers for logging in base/types.
>>
>> As we currently also discuss whether base types should stay header only,
>> I guess we can wait for that outcome until we decide on base/Spline.
>>
>>
>> What's left is to do:
>>
>> 1. transfer the ownership of https://github.com/planthaber/base-logging
>> to rock-core
>>
>> 2. Merge https://github.com/rock-core/package_set/pull/79 to define the
>> base-logging package
>>
>> Now the package is defined (no build impacting changed until now).
>>
>> 3. Actually make base/types use the new library:
>>     https://github.com/rock-core/base-types/pull/80
>>
>> 4. make base/console_bridge dependent on base-logging instead of
>> base/types
>>     https://github.com/rock-core/base-console_bridge/pull/2
>>
>>
>> Best, Steffen
>>
>>
>>
>>
>> Am 30.05.2016 um 14:48 schrieb Steffen Planthaber:
>> > Hi,
>> >
>> > If nobody is against it, I'll prepare the according PRs as suggested in
>> > the next days:
>> >
>> > 1. create a base-lib repo (request ownership transfer to rock-core)
>> > 2. move all in base/src to base-lib/src (logging and spline support)
>> > 3. remove from base/types repo
>> > 4. adapt dependencies when needed (shouldn't be too much as base-lib
>> > will keep it's name and .pc file).
>> >
>> > Best, Steffen
>> >
>> >
>> > Am 30.05.2016 um 13:42 schrieb Javier Hidalgo Carrió:
>> >>
>> >>
>> >> On 25.05.2016 14:34, Steffen Planthaber wrote:
>> >>> Hi,
>> >>>
>> >>> I have an issue with a cyclic repo dependency with base/types because
>> >>> it
>> >>> also includes the logging headers.
>> >>>
>> >>> I'd like to move these headers into another repository, if you agree.
>> >> +1
>> >>>
>> >>> I would name it "base-logging"
>> >> Create a base-lib repository as Thomas suggested.
>> >> I guess everything under base-types/src (including the logging) should
>> >> be moved to base-lib.
>> >
>> >
>> >>
>> >> Javier.
>> >>
>> >> _______________________________________________
>> >> Rock-dev mailing list
>> >> Rock-dev at dfki.de
>> >> http://www.dfki.de/mailman/cgi-bin/listinfo/rock-dev
>> >>
>> >
>> >
>>
>>
>> --
>>   Steffen Planthaber
>>   Weltraumrobotik
>>
>>   Besuchsadresse der Nebengeschäftstelle:
>>   DFKI GmbH
>>   Robotics Innovation Center
>>   Robert-Hooke-Straße 5
>>   28359 Bremen, Germany
>>
>>   Postadresse der Hauptgeschäftsstelle Standort Bremen:
>>   DFKI GmbH
>>   Robotics Innovation Center
>>   Robert-Hooke-Straße 1
>>   28359 Bremen, Germany
>>
>>   Tel.:     +49 421 178 45-4125
>>   Zentrale: +49 421 178 45-0
>>   Fax:      +49 421 178 45-4150 (Faxe bitte namentlich kennzeichnen)
>>   E-Mail:   Steffen.Planthaber at dfki.de
>>
>>   Weitere Informationen: http://www.dfki.de/robotik
>>   -----------------------------------------------------------------------
>>   Deutsches Forschungszentrum fuer Kuenstliche Intelligenz GmbH
>>   Firmensitz: Trippstadter Straße 122, D-67663 Kaiserslautern
>>   Geschaeftsfuehrung: Prof. Dr. Dr. h.c. mult. Wolfgang Wahlster
>>   (Vorsitzender) Dr. Walter Olthoff
>>   Vorsitzender des Aufsichtsrats: Prof. Dr. h.c. Hans A. Aukes
>>   Amtsgericht Kaiserslautern, HRB 2313
>>   Sitz der Gesellschaft: Kaiserslautern (HRB 2313)
>>   USt-Id.Nr.:    DE 148646973
>>   Steuernummer:  19/673/0060/3
>>   -----------------------------------------------------------------------
>>
>> _______________________________________________
>> Rock-dev mailing list
>> Rock-dev at dfki.de
>> http://www.dfki.de/mailman/cgi-bin/listinfo/rock-dev
>
>
>
> _______________________________________________
> Rock-dev mailing list
> Rock-dev at dfki.de
> http://www.dfki.de/mailman/cgi-bin/listinfo/rock-dev
>


More information about the Rock-dev mailing list