[squid-dev] r14701 broke ./configure --enable-ecap

Alex Rousskov rousskov at measurement-factory.com
Sat Jun 11 00:59:54 UTC 2016


Hello,

> ./configure --enable-ecap ...
...
> checking whether to support eCAP... yes, explicitly
> checking for pkg-config... /usr/bin/pkg-config
> checking pkg-config is at least version 0.9.0... yes
> checking for EXT_LIBECAP... yes
> checking whether -lecap will link... no
> configure: error: eCAP library will not link.

This started happening after r14701 (Bug 4446). eCAP linked and worked
fine before that trunk revision.


>                   You may need to rebuild libecap using the same version of GCC as Squid.
>                   There have been breaking ABI changes in the libstdc++ STL with GCC 5.

FWIW, this part of the error message looks very misleading because there
is no GCC 5 on this system and both Squid and libecap were built using
GCC v4.8. After the bug is fixed, please polish the error message: We
should not be stating the reason behind eCAP linking failure unless we
are absolutely sure what that reason is.


The failing test in config.log is:

> configure:22036: g++ -o conftest -g  -march=native -std=c++11   -L/usr/local/lib -lecap   conftest.cpp -lrt -ldl -ldl  >&5
> /tmp/ccuWEPtA.o: In function `main':
> /disks/protofroot/home/rousskov/Edit/squid3/trunk/conftest.cpp:69: undefined reference to `libecap::Name::NextId()'
> /disks/protofroot/home/rousskov/Edit/squid3/trunk/conftest.cpp:69: undefined reference to `libecap::Name::Name(std::string const&, int)'
> collect2: error: ld returned 1 exit status

Moving conftest.cpp earlier, _before_ including libecap (and other
libraries) fixes the bug, but I do not know how to change configure.ac
to trigger the right order:

  g++ ... conftest.cpp -L/usr/local/lib -lecap ...other libs...

Please fix if you can.


Thank you,

Alex.


More information about the squid-dev mailing list