Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 931105 - dev-libs/xerces-c-3.2.4-r3 fails to compile with dev-libs/icu-75.1: /usr/include/unicode/localpointer.h:561:26: error: ‘auto’ parameter not permitted in this context
Summary: dev-libs/xerces-c-3.2.4-r3 fails to compile with dev-libs/icu-75.1: /usr/incl...
Status: UNCONFIRMED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: All Linux
: Normal normal (vote)
Assignee: No maintainer - Look at https://wiki.gentoo.org/wiki/Project:Proxy_Maintainers if you want to take care of it
URL:
Whiteboard:
Keywords:
Depends on:
Blocks: 931089
  Show dependency tree
 
Reported: 2024-05-02 18:18 UTC by Kostadin Shishmanov
Modified: 2024-05-03 14:46 UTC (History)
0 users

See Also:
Package list:
Runtime testing required: ---


Attachments
build log (build.log,119.37 KB, text/x-log)
2024-05-02 18:18 UTC, Kostadin Shishmanov
Details
Patch which fixes the build failure (0001-c-17.patch,689 bytes, patch)
2024-05-02 18:25 UTC, Kostadin Shishmanov
Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Kostadin Shishmanov 2024-05-02 18:18:46 UTC
Created attachment 892181 [details]
build log

FAILED: src/CMakeFiles/xerces-c.dir/xercesc/util/PlatformUtils.cpp.o 
/usr/bin/x86_64-pc-linux-gnu-g++ -DHAVE_CONFIG_H=1 -DXERCES_BUILDING_LIBRARY=1 -D_FILE_OFFSET_BITS=64 -Dxerces_c_EXPORTS -I/var/tmp/portage/dev-libs/xerces-c-3.2.4-r3/work/xerces-c-3.2.4_build -I/var/tmp/portage/dev-libs/xerces-c-3.2.4-r3/work/xerces-c-3.2.4/src -I/var/tmp/portage/dev-libs/xerces-c-3.2.4-r3/work/xerces-c-3.2.4_build/src  -march=alderlake -mabm -mno-cldemote -mno-kl -mno-pconfig -mno-sgx -mno-widekl -mshstk -O3 -pipe -falign-functions=32 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Werror=odr -Werror=lto-type-mismatch -Werror=strict-aliasing -fno-strict-aliasing -Wall -Wcast-align -Wcast-qual -Wctor-dtor-privacy -Wextra -Wformat=2 -Wmissing-declarations -Wno-long-long -Woverlength-strings -Woverloaded-virtual -Wredundant-decls -Wreorder -Wswitch-default -Wunused-variable -Wwrite-strings -Wno-variadic-macros -msse2 -std=gnu++14 -fPIC -MD -MT src/CMakeFiles/xerces-c.dir/xercesc/util/PlatformUtils.cpp.o -MF src/CMakeFiles/xerces-c.dir/xercesc/util/PlatformUtils.cpp.o.d -o src/CMakeFiles/xerces-c.dir/xercesc/util/PlatformUtils.cpp.o -c /var/tmp/portage/dev-libs/xerces-c-3.2.4-r3/work/xerces-c-3.2.4/src/xercesc/util/PlatformUtils.cpp
In file included from /var/tmp/portage/dev-libs/xerces-c-3.2.4-r3/work/xerces-c-3.2.4/src/xercesc/util/XMLNetAccessor.hpp:26,
                 from /var/tmp/portage/dev-libs/xerces-c-3.2.4-r3/work/xerces-c-3.2.4/src/xercesc/util/PlatformUtils.cpp:82:
/var/tmp/portage/dev-libs/xerces-c-3.2.4-r3/work/xerces-c-3.2.4/src/xercesc/util/XMLURL.hpp: In member function ‘const XMLCh* xercesc_3_2::XMLURL::getURLText() const’:
/var/tmp/portage/dev-libs/xerces-c-3.2.4-r3/work/xerces-c-3.2.4/src/xercesc/util/XMLURL.hpp:277:10: warning: cast from type ‘const xercesc_3_2::XMLURL*’ to type ‘xercesc_3_2::XMLURL*’ casts away qualifiers [-Wcast-qual]
  277 |         ((XMLURL*)this)->buildFullText();
      |          ^~~~~~~~~~~~~
In file included from /usr/include/unicode/uenum.h:25,
                 from /usr/include/unicode/uloc.h:27,
                 from /usr/include/unicode/ures.h:30,
                 from /var/tmp/portage/dev-libs/xerces-c-3.2.4-r3/work/xerces-c-3.2.4/src/xercesc/util/MsgLoaders/ICU/ICUMsgLoader.hpp:26,
                 from /var/tmp/portage/dev-libs/xerces-c-3.2.4-r3/work/xerces-c-3.2.4/src/xercesc/util/PlatformUtils.cpp:99:
/usr/include/unicode/localpointer.h: At global scope:
/usr/include/unicode/localpointer.h:561:26: error: ‘auto’ parameter not permitted in this context
  561 | template <typename Type, auto closeFunction>
      |                          ^~~~
/usr/include/unicode/localpointer.h:573:76: error: template argument 2 is invalid
  573 |     explicit LocalOpenPointer(std::unique_ptr<Type, decltype(closeFunction)> &&p)
      |                                                                            ^
/usr/include/unicode/localpointer.h:583:78: error: template argument 2 is invalid
  583 |     LocalOpenPointer &operator=(std::unique_ptr<Type, decltype(closeFunction)> &&p) {
      |                                                                              ^
/usr/include/unicode/localpointer.h:599:59: error: template argument 2 is invalid
  599 |     operator std::unique_ptr<Type, decltype(closeFunction)> () && {
      |                                                           ^
/usr/include/unicode/uenum.h:69:1: note: invalid template non-type parameter
   69 | U_DEFINE_LOCAL_OPEN_POINTER(LocalUEnumerationPointer, UEnumeration, uenum_close);
      | ^~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/unicode/ures.h:268:1: note: invalid template non-type parameter
  268 | U_DEFINE_LOCAL_OPEN_POINTER(LocalUResourceBundlePointer, UResourceBundle, ures_close);
      | ^~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/unicode/unistr.h:39,
                 from /usr/include/unicode/ures.h:798:
/usr/include/unicode/stringpiece.h:134:23: error: ‘is_same_v’ is not a member of ‘std’; did you mean ‘is_same’?
  134 |                 (std::is_same_v<decltype(T().data()), const char*>
      |                       ^~~~~~~~~
      |                       is_same
/usr/include/unicode/stringpiece.h:134:66: error: template argument 1 is invalid
  134 |                 (std::is_same_v<decltype(T().data()), const char*>
      |                                                                  ^
/usr/include/unicode/stringpiece.h:138:17: error: expected ‘>’ before ‘)’ token
  138 |                 ) &&
      |                 ^
/usr/include/unicode/stringpiece.h:138:17: error: expected unqualified-id before ‘)’ toke
Comment 1 Kostadin Shishmanov 2024-05-02 18:25:49 UTC
Created attachment 892182 [details, diff]
Patch which fixes the build failure

Adding -std=gnu++17 or -std=c++17 to CXXFLAGS does nothing since it gets overriden by CMakeLists.txt.