[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