make err: src/UniqueString.cxx:31:1: error: function 'Scintilla::UniqueStringSet::UniqueStringSet()' defaulted on its redeclaration with an exception-specification that differs from the implicit declaration 'Scintilla::UniqueStringSet::UniqueStringSet()' UniqueStringSet::UniqueStringSet() noexcept = default; ^ Makefile:972: recipe for target 'src/UniqueString.lo' failed make[3]: *** [src/UniqueString.lo] Error 1 make[3]: Leaving directory '/home/sugon/geany.git/scintilla' Makefile:996: recipe for target 'all-recursive' failed make[2]: *** [all-recursive] Error 1 make[2]: Leaving directory '/home/sugon/geany.git/scintilla' Makefile:583: recipe for target 'all-recursive' failed make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory '/home/sugon/geany.git' Makefile:468: recipe for target 'all' failed make: *** [all] Error 2.
Env: Linux localhost.localdomain 3.10.0-2.nd7.33.mips64el #1 SMP PREEMPT Mon Mar 25 14:44:24 CST 2019 mips64 mips64 mips64 GNU/Linux
g++ (GCC) 4.9.3 20150626 (NeoKylin 4.9.3-3) Copyright (C) 2015 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
gcc (GCC) 4.9.3 20150626 (NeoKylin 4.9.3-3) Copyright (C) 2015 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
Hmmm, it seems that a C++17-ism has crept into Scintilla LTS version.
My interpretation is that the default implementation of `Scintilla::UniqueStringSet::UniqueStringSet()` is not `noexcept` because although C++11 defined `noexcept` it was not until C++17 that the `std::vector` default constructor was made `noexcept` so the default constructor for `Scintilla::UniqueStringSet::UniqueStringSet` cannot be `noexcept` and so it conflicts with the explicitly specified `noexcept`.
#2506 appears to fix that, just needs to be tested, maybe you could try it.
Thanks for your analysis and suggestion. I switched to branch scintilla/update-3-20-0, and still got the same error when make.
Please show the full error message. If the error message is _exactly_ the same then you havn't switched the branches properly as #2506 removes the `noexcept` from:
``` UniqueStringSet::UniqueStringSet() noexcept = default; ```
$ make make all-recursive make[1]: Entering directory '/home/sugon/geany.git' Making all in ctags make[2]: Entering directory '/home/sugon/geany.git/ctags' CC main/args.lo CC main/ctags-api.lo CC main/debug.lo CC main/dependency.lo CC main/entry.lo CC main/error.lo CC main/field.lo CC main/flags.lo CC main/fmt.lo CC main/htable.lo CC main/keyword.lo CC main/kind.lo CC main/lcpp.lo CC main/lregex.lo CC main/lxcmd.lo CC main/lxpath.lo CC main/main.lo CC main/mio.lo CC main/nestlevel.lo CC main/numarray.lo CC main/objpool.lo CC main/options.lo CC main/output-ctags.lo CC main/parse.lo CC main/pcoproc.lo CC main/promise.lo CC main/ptag.lo CC main/ptrarray.lo CC main/read.lo CC main/repoinfo.lo CC main/routines.lo CC main/selectors.lo CC main/sort.lo CC main/strlist.lo CC main/trashbox.lo CC main/vstring.lo CC main/xtag.lo CC parsers/abaqus.lo CC parsers/abc.lo CC parsers/asciidoc.lo CC parsers/asm.lo CC parsers/basic.lo CC parsers/bibtex.lo CC parsers/c.lo CC parsers/cobol.lo CC parsers/iniconf.lo CC parsers/css.lo CC parsers/diff.lo CC parsers/docbook.lo CC parsers/erlang.lo CC parsers/flex.lo CC parsers/fortran.lo CC parsers/go.lo CC parsers/haskell.lo CC parsers/haxe.lo CC parsers/html.lo CC parsers/jscript.lo CC parsers/json.lo CC parsers/lua.lo CC parsers/make.lo CC parsers/markdown.lo CC parsers/matlab.lo CC parsers/nsis.lo CC parsers/objc.lo CC parsers/pascal.lo CC parsers/perl.lo CC parsers/php.lo CC parsers/powershell.lo CC parsers/python.lo CC parsers/r.lo CC parsers/rst.lo CC parsers/ruby.lo CC parsers/rust.lo CC parsers/sh.lo CC parsers/sql.lo CC parsers/tcl.lo CC parsers/tex.lo CC parsers/txt2tags.lo CC parsers/verilog.lo CC parsers/vhdl.lo CCLD libctags.la make[2]: Leaving directory '/home/sugon/geany.git/ctags' Making all in scintilla make[2]: Entering directory '/home/sugon/geany.git/scintilla' Making all in include make[3]: Entering directory '/home/sugon/geany.git/scintilla/include' make[3]: Nothing to be done for 'all'. make[3]: Leaving directory '/home/sugon/geany.git/scintilla/include' make[3]: Entering directory '/home/sugon/geany.git/scintilla' CXX gtk/PlatGTK.lo CXX gtk/ScintillaGTK.lo CXX gtk/ScintillaGTKAccessible.lo CC gtk/scintilla-marshal.lo CXX lexlib/Accessor.lo CXX lexlib/CharacterCategory.lo CXX lexlib/CharacterSet.lo CXX lexlib/DefaultLexer.lo CXX lexlib/LexerBase.lo CXX lexlib/LexerModule.lo CXX lexlib/LexerNoExceptions.lo CXX lexlib/LexerSimple.lo CXX lexlib/PropSetSimple.lo CXX lexlib/StyleContext.lo CXX lexlib/WordList.lo CXX src/AutoComplete.lo CXX src/CallTip.lo CXX src/CaseConvert.lo CXX src/CaseFolder.lo CXX src/Catalogue.lo CXX src/CellBuffer.lo CXX src/CharClassify.lo CXX src/ContractionState.lo CXX src/DBCS.lo CXX src/Decoration.lo CXX src/Document.lo CXX src/Editor.lo CXX src/EditModel.lo CXX src/EditView.lo CXX src/ExternalLexer.lo CXX src/Indicator.lo CXX src/KeyMap.lo CXX src/LineMarker.lo CXX src/MarginView.lo CXX src/PerLine.lo CXX src/PositionCache.lo CXX src/RESearch.lo CXX src/RunStyles.lo CXX src/ScintillaBase.lo CXX src/Selection.lo CXX src/Style.lo CXX src/UniConversion.lo CXX src/UniqueString.lo src/UniqueString.cxx:31:1: error: function 'Scintilla::UniqueStringSet::UniqueStringSet()' defaulted on its redeclaration with an exception-specification that differs from the implicit declaration 'Scintilla::UniqueStringSet::UniqueStringSet()' UniqueStringSet::UniqueStringSet() noexcept = default; ^ Makefile:972: recipe for target 'src/UniqueString.lo' failed make[3]: *** [src/UniqueString.lo] Error 1 make[3]: Leaving directory '/home/sugon/geany.git/scintilla' Makefile:996: recipe for target 'all-recursive' failed make[2]: *** [all-recursive] Error 1 make[2]: Leaving directory '/home/sugon/geany.git/scintilla' Makefile:582: recipe for target 'all-recursive' failed make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory '/home/sugon/geany.git' Makefile:467: recipe for target 'all' failed make: *** [all] Error 2 $ git branch master * scintilla/update-3-20-0
~~~~~~~~~~~~~~~~~~~~~~~~~~ I first cloned the repo on windows, then tried git fetch --all Fetching origin git fetch origin (output empty) git checkout -b scintilla/update-3-20-0 Switched to a new branch 'scintilla/update-3-20-0'
Then copied to an offline linux, dos2unix every text files in the directory.
I'm not sure what has gone wrong with your process, but as you can see above the error still shows `noexcept` on `src/UniqueString.cxx:31` and #2506 clearly removes that, [see](https://github.com/geany/geany/pull/2506/commits/5f19d96b81b78cc4b768b4c4839...) (you will have to manually "load diff" probably).
``` $ git remote add eht16 https://github.com/eht16/geany.git $ git fetch eht16 $ git checkout --track -b eht16/scintilla/update-3-20-0 eht16/scintilla/update-3-20-0 ```
@codebrainz , your commands saved me, thank you. I never think of adding another remote to a cloned repo and missing "--track" could be one of my earlier problems, what else I've done wrong? I think your commands mean fetching all branches from eth16 and checkout and use branch scintilla/update-3-20-0.
Closed #2518.
@zhirshya instead of just closing and leaving, what about reporting if the PR #2506 worked for you?
github-comments@lists.geany.org