Date: Mon, 13 Sep 2004 08:43:35 -0700 From: "Kevin Oberman" <oberman@es.net> To: Joe Marcus Clarke <marcus@marcuscom.com> Cc: FreeBSD GNOME Users <gnome@freebsd.org> Subject: Re: Porting problem on V5 with gettext/libintl Message-ID: <20040913154337.42EC05D04@ptavv.es.net> In-Reply-To: Your message of "Sun, 12 Sep 2004 14:45:45 EDT." <1095014744.2740.3.camel@shumai.marcuscom.com>
next in thread | previous in thread | raw e-mail | index | archive | help
> From: Joe Marcus Clarke <marcus@marcuscom.com> > Date: Sun, 12 Sep 2004 14:45:45 -0400 > > On Fri, 2004-09-10 at 18:44, Kevin Oberman wrote: > > I am attempting to port the current release of GnomeMeeting to FreeBSD > > and especially FreeBSD V5. I am not a C++ programmer and not much of a C > > programmer, so I am not surprised that I'm having a problem. > > > > I have one module that uses gettext and I am getting errors on the > > inclusion of the libintl.h header file. > > > > In file included from main_window.cpp:71: > > /usr/local/include/libintl.h:118: error: expected unqualified-id before "const" > > /usr/local/include/libintl.h:118: error: expected `)' before "const" > > /usr/local/include/libintl.h:118: error: expected init-declarator before "const"/usr/local/include/libintl.h:118: error: expected `,' or `;' before "const" > > /usr/local/include/libintl.h:134: error: expected unqualified-id before "const" > > /usr/local/include/libintl.h:134: error: expected `)' before "const" > > /usr/local/include/libintl.h:134: error: expected init-declarator before "const"/usr/local/include/libintl.h:134: error: expected `,' or `;' before "const" > > /usr/local/include/libintl.h:152: error: expected unqualified-id before " const" > > /usr/local/include/libintl.h:152: error: expected `)' before "const" > > /usr/local/include/libintl.h:152: error: expected init-declarator before "const"/usr/local/include/libintl.h:152: error: expected `,' or `;' before "const" > > /usr/local/include/libintl.h:233: error: expected unqualified-id before "const" > > /usr/local/include/libintl.h:233: error: expected `)' before "const" > > /usr/local/include/libintl.h:233: error: expected init-declarator before "const"/usr/local/include/libintl.h:233: error: expected `,' or `;' before "const" > > /usr/local/include/libintl.h:251: error: expected unqualified-id before "const" > > /usr/local/include/libintl.h:251: error: expected `)' before "const" > > /usr/local/include/libintl.h:251: error: expected init-declarator before "const"/usr/local/include/libintl.h:251: error: expected `,' or `;' before "const" > > /usr/local/include/libintl.h:269: error: expected unqualified-id before "const" > > /usr/local/include/libintl.h:269: error: expected `)' before "const" > > /usr/local/include/libintl.h:269: error: expected init-declarator before "const"/usr/local/include/libintl.h:269: error: expected `,' or `;' before "const" > > > > The exact lines in the header file are very similar: > > 118: extern char *gettext (const char *__msgid) > > _INTL_ASM (libintl_gettext); > > > > 134: extern char *dgettext (const char *__domainname, const char *__msgid) > > _INTL_ASM (libintl_dgettext); > > > > 152: extern char *dcgettext (const char *__domainname, const char *__msgid, > > int __category) > > _INTL_ASM (libintl_dcgettext); > > > > 233: extern char *textdomain (const char *__domainname) > > _INTL_ASM (libintl_textdomain); > > > > 251: extern char *bindtextdomain (const char *__domainname, const char *__dirname) > > _INTL_ASM (libintl_bindtextdomain); > > > > 259: extern char *bind_textdomain_codeset (const char *__domainname, > > const char *__codeset) > > _INTL_ASM (libintl_bind_textdomain_codeset); > > > > I do notice that all are #ifdefed to compile when _INTL_REDIRECT_INLINE > > is not defined. > > > > Any idea what this is caused by? Do I need to include some things before > > including it? It clearly works OK on Linux, so it's either a gcc 3.4 > > issue or a Linuxism nd I would suspect that it would have popped up on > > other ports. > > > > Any clues? > > I'm no C++ expert, but it looks like an extern C { ... } maybe required > around the libintl.h include. Thanks, Joe. libintl.h is already "C++ized" by being enclosed with: #ifdef __cplusplus extern "C" { #endif [...] #ifdef __cplusplus } #endif So I'm still trying to figure this one out. I may have to learn a bit more about C++ some day. -- R. Kevin Oberman, Network Engineer Energy Sciences Network (ESnet) Ernest O. Lawrence Berkeley National Laboratory (Berkeley Lab) E-mail: oberman@es.net Phone: +1 510 486-8634
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20040913154337.42EC05D04>