Sun Apr 30 05:37:28 2017: Request 121464 was acted upon. Transaction: Ticket created by KENTNL Queue: Wx Subject: Compile fails with "error: expected identifier before string constant" from /CORE/unicode_constants.h Broken in: (no value) Severity: (no value) Owner: Nobody Requestors: ken...@cpan.org Status: new Ticket <URL: https://rt.cpan.org/Ticket/Display.html?id=121464 >
I don't know enough to know where this problem comes from, whether its my system wx libraries playing sick, a bug in Perl Core itself, or some GCC compatibility issue. It may just be a Devel::PPPort thing. *shrug* Though it looks like the constant is defined twice by different code units. In file included from /home/kent/perl5/perlbrew/perls/5.25.12-nossp-sip13-nopmc-nodot/lib/5.25.12/x86_64-linux/CORE/utf8.h:30:0, from /home/kent/perl5/perlbrew/perls/5.25.12-nossp-sip13-nopmc-nodot/lib/5.25.12/x86_64-linux/CORE/regexp.h:21, from /home/kent/perl5/perlbrew/perls/5.25.12-nossp-sip13-nopmc-nodot/lib/5.25.12/x86_64-linux/CORE/perl.h:3914, from ../../cpp/wxapi.h:57, from RichText.c:23: /home/kent/perl5/perlbrew/perls/5.25.12-nossp-sip13-nopmc-nodot/lib/5.25.12/x86_64-linux/CORE/unicode_constants.h:72:22: error: expected identifier before string constant # define BOM_UTF8 "\xEF\xBB\xBF" /* U+FEFF */ ^ /usr/include/wx-2.8/wx/convauto.h:54:9: note: in expansion of macro ‘BOM_UTF8’ BOM_UTF8 ^ /home/kent/perl5/perlbrew/perls/5.25.12-nossp-sip13-nopmc-nodot/lib/5.25.12/x86_64-linux/CORE/unicode_constants.h:72:22: error: expected ‘}’ before string constant # define BOM_UTF8 "\xEF\xBB\xBF" /* U+FEFF */ ^ /usr/include/wx-2.8/wx/convauto.h:54:9: note: in expansion of macro ‘BOM_UTF8’ BOM_UTF8 ^ /home/kent/perl5/perlbrew/perls/5.25.12-nossp-sip13-nopmc-nodot/lib/5.25.12/x86_64-linux/CORE/unicode_constants.h:72:22: error: expected unqualified-id before string constant # define BOM_UTF8 "\xEF\xBB\xBF" /* U+FEFF */ ^ /usr/include/wx-2.8/wx/convauto.h:54:9: note: in expansion of macro ‘BOM_UTF8’ BOM_UTF8 ^ In file included from /usr/include/wx-2.8/wx/txtstrm.h:16:0, from /usr/include/wx-2.8/wx/richtext/richtextbuffer.h:67, from /usr/include/wx-2.8/wx/richtext/richtextctrl.h:15, from RichText.c:32: /usr/include/wx-2.8/wx/convauto.h: In constructor ‘wxConvAuto::wxConvAuto()’: /usr/include/wx-2.8/wx/convauto.h:26:20: error: ‘m_conv’ was not declared in this scope wxConvAuto() { m_conv = NULL; /* the rest will be initialized later */ } ^ /usr/include/wx-2.8/wx/convauto.h: In copy constructor ‘wxConvAuto::wxConvAuto(const wxConvAuto&)’: /usr/include/wx-2.8/wx/convauto.h:30:66: error: ‘m_conv’ was not declared in this scope wxConvAuto(const wxConvAuto& WXUNUSED(other)) : wxMBConv() { m_conv = NULL; } ^ /usr/include/wx-2.8/wx/convauto.h: In destructor ‘virtual wxConvAuto::~wxConvAuto()’: /usr/include/wx-2.8/wx/convauto.h:32:34: error: ‘m_conv’ was not declared in this scope virtual ~wxConvAuto() { if ( m_conv && m_ownsConv ) delete m_conv; } ^ /usr/include/wx-2.8/wx/convauto.h:32:44: error: ‘m_ownsConv’ was not declared in this scope virtual ~wxConvAuto() { if ( m_conv && m_ownsConv ) delete m_conv; } ^ /usr/include/wx-2.8/wx/convauto.h:32:64: error: type ‘<type error>’ argument given to ‘delete’, expected pointer virtual ~wxConvAuto() { if ( m_conv && m_ownsConv ) delete m_conv; } ^ /usr/include/wx-2.8/wx/convauto.h: In member function ‘virtual size_t wxConvAuto::GetMBNulLen() const’: /usr/include/wx-2.8/wx/convauto.h:41:49: error: ‘m_conv’ was not declared in this scope virtual size_t GetMBNulLen() const { return m_conv->GetMBNulLen(); } ^ /usr/include/wx-2.8/wx/convauto.h: At global scope: /usr/include/wx-2.8/wx/convauto.h:58:12: error: ‘BOMType’ does not name a type static BOMType DetectBOM(const char *src, size_t srcLen); ^ /usr/include/wx-2.8/wx/convauto.h: In function ‘void InitWithDefault()’: /usr/include/wx-2.8/wx/convauto.h:63:9: error: ‘m_conv’ was not declared in this scope m_conv = &wxConvUTF8; ^ /usr/include/wx-2.8/wx/convauto.h:64:9: error: ‘m_ownsConv’ was not declared in this scope m_ownsConv = false; ^ /usr/include/wx-2.8/wx/convauto.h: At global scope: /usr/include/wx-2.8/wx/convauto.h:68:22: error: variable or field ‘InitFromBOM’ declared void void InitFromBOM(BOMType bomType); ^ /usr/include/wx-2.8/wx/convauto.h:68:22: error: ‘BOMType’ was not declared in this scope /usr/include/wx-2.8/wx/convauto.h:76:49: error: non-member function ‘void SkipBOM(const char**, size_t*)’ cannot have cv-qualifier void SkipBOM(const char **src, size_t *len) const; ^ /usr/include/wx-2.8/wx/convauto.h:84:5: error: ‘BOMType’ does not name a type BOMType m_bomType; ^ In file included from ../../cpp/wxapi.h:26:0, from RichText.c:23: /usr/include/wx-2.8/wx/defs.h:2876:5: error: expected unqualified-id before ‘private’ private: \ ^ /usr/include/wx-2.8/wx/convauto.h:95:5: note: in expansion of macro ‘DECLARE_NO_ASSIGN_CLASS’ DECLARE_NO_ASSIGN_CLASS(wxConvAuto) ^ In file included from /usr/include/wx-2.8/wx/txtstrm.h:16:0, from /usr/include/wx-2.8/wx/richtext/richtextbuffer.h:67, from /usr/include/wx-2.8/wx/richtext/richtextctrl.h:15, from RichText.c:32: /usr/include/wx-2.8/wx/convauto.h:96:1: error: expected declaration before ‘}’ token }; ^ make[2]: *** [Makefile:344: RichText.o] Error 1 perl -V Summary of my perl5 (revision 5 version 25 subversion 12) configuration: Platform: osname=linux osvers=4.10.4-gentoo archname=x86_64-linux uname='linux katipo2 4.10.4-gentoo #47 smp preempt wed mar 22 18:50:38 nzdt 2017 x86_64 intel(r) core(tm) i5-2410m cpu @ 2.30ghz genuineintel gnulinux ' config_args='-de -Dprefix=/home/kent/perl5/perlbrew/perls/5.25.12-nossp-sip13-nopmc-nodot -Ddefault_inc_excludes_dot -Doptimize= -fstack-protector-strong -fno-stack-protector -O3 -march=native -mtune=native -Dman1dir=none -Dman3dir=none -Dusedevel -Accflags= -fstack-protector-strong -fno-stack-protector -DPERL_HASH_FUNC_SIPHASH13 -DPERL_DISABLE_PMC -Aldflags= -fstack-protector-strong -fno-stack-protector -Aeval:scriptdir=/home/kent/perl5/perlbrew/perls/5.25.12-nossp-sip13-nopmc-nodot/bin' hint=recommended useposix=true d_sigaction=define useithreads=undef usemultiplicity=undef use64bitint=define use64bitall=define uselongdouble=undef usemymalloc=n default_inc_excludes_dot=define bincompat5005=undef Compiler: cc='cc' ccflags ='-fstack-protector-strong -fno-stack-protector -DPERL_HASH_FUNC_SIPHASH13 -DPERL_DISABLE_PMC -fwrapv -fno-strict-aliasing -pipe -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64' optimize=' -fstack-protector-strong -fno-stack-protector -O3 -march=native -mtune=native' cppflags='-fstack-protector-strong -fno-stack-protector -DPERL_HASH_FUNC_SIPHASH13 -DPERL_DISABLE_PMC -fwrapv -fno-strict-aliasing -pipe' ccversion='' gccversion='5.4.0' gccosandvers='' intsize=4 longsize=8 ptrsize=8 doublesize=8 byteorder=12345678 doublekind=3 d_longlong=define longlongsize=8 d_longdbl=define longdblsize=16 longdblkind=3 ivtype='long' ivsize=8 nvtype='double' nvsize=8 Off_t='off_t' lseeksize=8 alignbytes=8 prototype=define Linker and Libraries: ld='cc' ldflags =' -fstack-protector-strong -fno-stack-protector -L/usr/local/lib' libpth=/usr/lib/gcc/x86_64-pc-linux-gnu/5.4.0/include-fixed /usr/lib /usr/local/lib /lib/../lib64 /usr/lib/../lib64 /lib /lib64 /usr/lib64 /usr/local/lib64 libs=-lpthread -lnsl -lndbm -lgdbm -ldb -ldl -lm -lcrypt -lutil -lc -lgdbm_compat perllibs=-lpthread -lnsl -ldl -lm -lcrypt -lutil -lc libc=libc-2.24.so so=so useshrplib=false libperl=libperl.a gnulibc_version='2.24' Dynamic Linking: dlsrc=dl_dlopen.xs dlext=so d_dlsymun=undef ccdlflags='-Wl,-E' cccdlflags='-fPIC' lddlflags='-shared -fstack-protector-strong -fno-stack-protector -O3 -march=native -mtune=native -L/usr/local/lib' Characteristics of this binary (from libperl): Compile-time options: HAS_TIMES PERLIO_LAYERS PERL_COPY_ON_WRITE PERL_DISABLE_PMC PERL_DONT_CREATE_GVSV PERL_MALLOC_WRAP PERL_OP_PARENT PERL_PRESERVE_IVUV PERL_USE_DEVEL USE_64_BIT_ALL USE_64_BIT_INT USE_LARGE_FILES USE_LOCALE USE_LOCALE_COLLATE USE_LOCALE_CTYPE USE_LOCALE_NUMERIC USE_LOCALE_TIME USE_PERLIO USE_PERL_ATOF Built under linux Compiled at Apr 21 2017 08:42:32 %ENV: PERLBREW_BASHRC_VERSION="0.74" PERLBREW_HOME="/home/kent/.perlbrew" PERLBREW_MANPATH="/home/kent/perl5/perlbrew/perls/5.25.12-nossp-sip13-nopmc-nodot/man" PERLBREW_PATH="/home/kent/perl5/perlbrew/bin:/home/kent/perl5/perlbrew/perls/5.25.12-nossp-sip13-nopmc-nodot/bin" PERLBREW_PERL="5.25.12-nossp-sip13-nopmc-nodot" PERLBREW_ROOT="/home/kent/perl5/perlbrew" PERLBREW_VERSION="0.74" @INC: /home/kent/perl5/perlbrew/perls/5.25.12-nossp-sip13-nopmc-nodot/lib/site_perl/5.25.12/x86_64-linux /home/kent/perl5/perlbrew/perls/5.25.12-nossp-sip13-nopmc-nodot/lib/site_perl/5.25.12 /home/kent/perl5/perlbrew/perls/5.25.12-nossp-sip13-nopmc-nodot/lib/5.25.12/x86_64-linux /home/kent/perl5/perlbrew/perls/5.25.12-nossp-sip13-nopmc-nodot/lib/5.25.12 -- - CPAN ken...@cpan.org - Gentoo Perl Maintainer ken...@gentoo.org ( p...@gentoo.org )