grosjo / fts-xapian

Dovecot FTS plugin based on Xapian
GNU Lesser General Public License v2.1
94 stars 20 forks source link

make fails gnu++2a #175

Open Wermorl opened 2 days ago

Wermorl commented 2 days ago

(different machine than the previous issue)

make fails with:

root@cloud ~/fts-xapian #make
make  all-recursive
make[1]: Entering directory '/root/fts-xapian'
Making all in src
make[2]: Entering directory '/root/fts-xapian/src'
/bin/bash ../libtool  --tag=CXX   --mode=compile g++ -DHAVE_CONFIG_H -I. -I..  -O2 -I/usr/include/dovecot          -std=gnu++20  -g -O2 -MT fts-backend-xapian.lo -MD -MP -MF .deps/fts-backend-xapian.Tpo -c -o fts-backend-xapian.lo fts-backend-xapian.cpp
libtool: compile:  g++ -DHAVE_CONFIG_H -I. -I.. -O2 -I/usr/include/dovecot -std=gnu++20 -g -O2 -MT fts-backend-xapian.lo -MD -MP -MF .deps/fts-backend-xapian.Tpo -c fts-backend-xapian.cpp  -fPIC -DPIC -o .libs/fts-backend-xapian.o
g++: error: unrecognized command line option ‘-std=gnu++20’; did you mean ‘-std=gnu++2a’?
make[2]: *** [Makefile:582: fts-backend-xapian.lo] Error 1
make[2]: Leaving directory '/root/fts-xapian/src'
make[1]: *** [Makefile:492: all-recursive] Error 1
make[1]: Leaving directory '/root/fts-xapian'
make: *** [Makefile:414: all] Error 2

I replaced as suggested gnu++20 with gnu++2a in

root@cloud ~/fts-xapian # grep -r  gnu++20 *
src/Makefile:AM_CXXFLAGS = -std=gnu++20 
src/Makefile.am:AM_CXXFLAGS = -std=gnu++20 
src/Makefile.in:AM_CXXFLAGS = -std=gnu++20 

it now builds.

System is an Ubuntu Folcal.

root@cloud ~/fts-xapian # make
make  all-recursive
make[1]: Entering directory '/root/fts-xapian'
Making all in src
make[2]: Entering directory '/root/fts-xapian/src'
 cd .. && /bin/bash ./config.status src/Makefile depfiles
config.status: creating src/Makefile
config.status: executing depfiles commands
/bin/bash ../libtool  --tag=CXX   --mode=compile g++ -DHAVE_CONFIG_H -I. -I..  -O2 -I/usr/include/dovecot          -std=gnu++2a -g -O2 -MT fts-backend-xapian.lo -MD -MP -MF .deps/fts-backend-xapian.Tpo -c -o fts-backend-xapian.lo fts-backend-xapian.cpp
libtool: compile:  g++ -DHAVE_CONFIG_H -I. -I.. -O2 -I/usr/include/dovecot -std=gnu++2a -g -O2 -MT fts-backend-xapian.lo -MD -MP -MF .deps/fts-backend-xapian.Tpo -c fts-backend-xapian.cpp  -fPIC -DPIC -o .libs/fts-backend-xapian.o
libtool: compile:  g++ -DHAVE_CONFIG_H -I. -I.. -O2 -I/usr/include/dovecot -std=gnu++2a -g -O2 -MT fts-backend-xapian.lo -MD -MP -MF .deps/fts-backend-xapian.Tpo -c fts-backend-xapian.cpp -o fts-backend-xapian.o >/dev/null 2>&1
mv -f .deps/fts-backend-xapian.Tpo .deps/fts-backend-xapian.Plo
/bin/bash ../libtool  --tag=CXX   --mode=link g++ -std=gnu++2a -g -O2 -module -avoid-version  -o lib21_fts_xapian_plugin.la -rpath /usr/lib/dovecot/modules fts-xapian-plugin.lo fts-backend-xapian.lo -L/usr/lib/x86_64-linux-gnu -lxapian -licuio -licui18n -licuuc -licudata -lsqlite3 
libtool: link: g++  -fPIC -DPIC -shared -nostdlib /usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/9/crtbeginS.o  .libs/fts-xapian-plugin.o .libs/fts-backend-xapian.o   -L/usr/lib/x86_64-linux-gnu /usr/lib/x86_64-linux-gnu/libxapian.so -licuio -licui18n -licuuc -licudata /usr/lib/x86_64-linux-gnu/libsqlite3.so -L/usr/lib/gcc/x86_64-linux-gnu/9 -L/usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/9/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/9/../../.. -lstdc++ -lm -lc -lgcc_s /usr/lib/gcc/x86_64-linux-gnu/9/crtendS.o /usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu/crtn.o  -g -O2   -Wl,-soname -Wl,lib21_fts_xapian_plugin.so -o .libs/lib21_fts_xapian_plugin.so
libtool: link: ar cr .libs/lib21_fts_xapian_plugin.a  fts-xapian-plugin.o fts-backend-xapian.o
libtool: link: ranlib .libs/lib21_fts_xapian_plugin.a
libtool: link: ( cd ".libs" && rm -f "lib21_fts_xapian_plugin.la" && ln -s "../lib21_fts_xapian_plugin.la" "lib21_fts_xapian_plugin.la" )
make[2]: Leaving directory '/root/fts-xapian/src'
make[2]: Entering directory '/root/fts-xapian'
make[2]: Leaving directory '/root/fts-xapian'
make[1]: Leaving directory '/root/fts-xapian'
grosjo commented 23 hours ago

gnu++20 is the correct value

if your system is old, most natably using n old Icu library, you can use gnu++11