View Issue Details

IDProjectCategoryView StatusLast Update
0003111ardourbugspublic2020-04-19 20:14
Reporterthorgal Assigned Tocth103  
PrioritynormalSeveritymajorReproducibilityalways
Status closedResolutionfixed 
Platformx86OSGNU-LinuxOS VersionDebian Unstable
Summary0003111: Compilation error when waf configure option --no-nls is enabled
DescriptionArdour3 svn@7079 does not compile when configuration goes like ./waf configure --no-nls. You then get this error:

-----------------------------------
 ...

[157/633] cxx: libs/surfaces/control_protocol/smpte.cc -> build/default/libs/surfaces/control_protocol/smpte_1.o
[158/633] cxx: libs/ardour/amp.cc -> build/default/libs/ardour/amp_1.o
[159/633] cxx: libs/ardour/analyser.cc -> build/default/libs/ardour/analyser_1.o
In file included from /usr/include/c++/4.4/i486-linux-gnu/bits/messages_members.h:37,
                 from /usr/include/c++/4.4/bits/locale_facets_nonio.h:1905,
                 from /usr/include/c++/4.4/locale:43,
                 from /usr/include/boost/dynamic_bitset/dynamic_bitset.hpp:25,
                 from /usr/include/boost/dynamic_bitset.hpp:15,
                 from ../libs/ardour/ardour/session.h:31,
                 from ../libs/ardour/amp.cc:33:
/usr/include/libintl.h:40:14: error: expected unqualified-id before ‘const’
/usr/include/libintl.h:40:14: error: expected ‘)’ before ‘const’
/usr/include/libintl.h:40:14: error: expected ‘)’ before ‘const’
/usr/include/libintl.h:40:14: error: expected initializer before ‘const’
/usr/include/libintl.h:45:14: error: expected unqualified-id before ‘const’
/usr/include/libintl.h:45:14: error: expected ‘)’ before ‘const’
/usr/include/libintl.h:45:14: error: expected ‘)’ before ‘const’
/usr/include/libintl.h:45:14: error: expected initializer before ‘const’
/usr/include/libintl.h:52:14: error: expected unqualified-id before ‘const’
/usr/include/libintl.h:52:14: error: expected ‘)’ before ‘const’
/usr/include/libintl.h:52:14: error: expected ‘)’ before ‘const’
/usr/include/libintl.h:52:14: error: expected initializer before ‘const’
/usr/include/libintl.h:62:14: error: expected unqualified-id before ‘unsigned’
/usr/include/libintl.h:62:14: error: expected ‘)’ before ‘unsigned’
/usr/include/libintl.h:62:14: error: expected ‘)’ before ‘unsigned’
/usr/include/libintl.h:62:14: error: expected initializer before ‘unsigned’
/usr/include/libintl.h:68:14: error: expected unqualified-id before ‘unsigned’
/usr/include/libintl.h:68:14: error: expected ‘)’ before ‘unsigned’
/usr/include/libintl.h:68:14: error: expected ‘)’ before ‘unsigned’
/usr/include/libintl.h:68:14: error: expected initializer before ‘unsigned’
/usr/include/libintl.h:74:14: error: expected unqualified-id before ‘unsigned’
/usr/include/libintl.h:74:14: error: expected ‘)’ before ‘unsigned’
/usr/include/libintl.h:74:14: error: expected ‘)’ before ‘unsigned’
/usr/include/libintl.h:74:14: error: expected initializer before ‘unsigned’
/usr/include/libintl.h:83:14: error: expected unqualified-id before ‘const’
/usr/include/libintl.h:83:14: error: expected ‘)’ before ‘const’
/usr/include/libintl.h:83:14: error: expected ‘)’ before ‘const’
/usr/include/libintl.h:83:14: error: expected initializer before ‘const’
/usr/include/libintl.h:87:14: error: expected unqualified-id before ‘const’
/usr/include/libintl.h:87:14: error: expected ‘)’ before ‘const’
/usr/include/libintl.h:87:14: error: expected ‘)’ before ‘const’
/usr/include/libintl.h:87:14: error: expected initializer before ‘const’
/usr/include/libintl.h:92:14: error: expected unqualified-id before ‘const’
/usr/include/libintl.h:92:14: error: expected ‘)’ before ‘const’
/usr/include/libintl.h:92:14: error: expected ‘)’ before ‘const’
/usr/include/libintl.h:92:14: error: expected initializer before ‘const’
[160/633] cxx: libs/ardour/audio_buffer.cc -> build/default/libs/ardour/audio_buffer_1.o
Waf: Leaving directory `/disk1/src/ardour3_svn/build'
Build failed
 -> task failed (err 0000001):
        {task: cxx amp.cc -> amp_1.o}
Steps To Reproducejust configure waf with --no-nls and compile.
Additional Informationsvn@7079
g++ (Debian 4.4.3-7) 4.4.3
TagsNo tags attached.

Activities

cth103

2010-05-08 00:32

administrator   ~0007828

I think this happens when one of ardour's gettext.h headers gets #included before a header which indirectly #includes libintl.h (as some of the boost stuff does).

If ENABLE_NLS is not defined, our gettext.h #defines things like gettext(), and these definitions confuse the inclusion of libintl.h.

I think the basic cause of this is Ardour headers which #include i18n.h. This includes gettext.h, which redefines gettext(), and then if libintl.h is subsequently included this error occurs.

Unfortunately some headers are templated and so their function bodies must be included in the header, and if they require i18n macros (e.g. _("foo")) then they must #include i18n.h.

cth103

2010-05-08 01:20

administrator   ~0007829

Actually, it's not so bad. Fixed in SVN.

thorgal

2011-03-16 09:33

reporter   ~0010366

just did a complete check out of the A3 source code yesterday (do not have the version at hand right now) and the issue popped up again with the exact same screen failure, 10 months after the code fix reported by cth103.

cth103

2011-04-23 03:34

administrator   ~0010648

Fixed again in SVN 0009415.

system

2020-04-19 20:14

developer   ~0022051

Issue has been closed automatically, by Trigger Close Plugin.
Feel free to re-open with additional information if you think the issue is not resolved.

Issue History

Date Modified Username Field Change
2010-05-07 23:27 thorgal New Issue
2010-05-08 00:03 cth103 Status new => confirmed
2010-05-08 00:32 cth103 Note Added: 0007828
2010-05-08 01:20 cth103 cost => 0.00
2010-05-08 01:20 cth103 Note Added: 0007829
2010-05-08 01:20 cth103 Status confirmed => resolved
2010-05-08 01:20 cth103 Resolution open => fixed
2010-05-08 01:20 cth103 Assigned To => cth103
2011-03-16 09:33 thorgal Note Added: 0010366
2011-03-16 09:33 thorgal Status resolved => feedback
2011-03-16 09:33 thorgal Resolution fixed => reopened
2011-04-23 03:34 cth103 Note Added: 0010648
2011-04-23 03:34 cth103 Status feedback => resolved
2011-04-23 03:34 cth103 Resolution reopened => fixed
2020-04-19 20:14 system Note Added: 0022051
2020-04-19 20:14 system Status resolved => closed