Trouble building h323plus with GCC 4.2.2
Hi, there. I'm looking at migrating Mandriva from openh323 to h323plus, but I'm getting several errors trying to build it. Building against pwlib 1.12.0.
The first set of errors is as follows:
g++ -fPIC -D_REENTRANT -fno-exceptions -Wall -fPIC -DPIC -DNDEBUG -DPTRACING -I/home/adamw/rpm/BUILD/h323plus/include -I/usr/share/pwlib//include -O2 -g -pipe -Wp,-D_FORTIFY_SOURCE=2 -fstack-protector --param=ssp-buffer-size=4 -fexceptions -fomit-frame-pointer -march=i586 -mtune=generic -fasynchronous-unwind-tables -DLDAP_DEPRECATED -c /home/adamw/rpm/BUILD/h323plus/src/h350/h350.cxx -o /home/adamw/rpm/BUILD/h323plus/lib/obj_linux_x86_r/h350.o /home/adamw/rpm/BUILD/h323plus/src/h350/h350.cxx:69:1: error: pasting "(" and "commObject" does not give a valid preprocessing token /home/adamw/rpm/BUILD/h323plus/src/h350/h350.cxx:69:1: error: pasting "(" and "commObject" does not give a valid preprocessing token /home/adamw/rpm/BUILD/h323plus/src/h350/h350.cxx:69:1: error: pasting ")" and "commObject" does not give a valid preprocessing token /home/adamw/rpm/BUILD/h323plus/src/h350/h350.cxx:69:1: error: pasting "(" and "commObject" does not give a valid preprocessing token /home/adamw/rpm/BUILD/h323plus/src/h350/h350.cxx:69:1: error: pasting "commObject" and ")" does not give a valid preprocessing token /home/adamw/rpm/BUILD/h323plus/src/h350/h350.cxx:69:1: error: pasting "<" and "commObject" does not give a valid preprocessing token /home/adamw/rpm/BUILD/h323plus/src/h350/h350.cxx:69:1: error: pasting ">" and "commObject" does not give a valid preprocessing token /home/adamw/rpm/BUILD/h323plus/src/h350/h350.cxx:69:1: error: pasting "(" and "commObject" does not give a valid preprocessing token /home/adamw/rpm/BUILD/h323plus/src/h350/h350.cxx:69:1: error: pasting "&" and "commObject" does not give a valid preprocessing token /home/adamw/rpm/BUILD/h323plus/src/h350/h350.cxx:69:1: error: pasting "(" and "commObject" does not give a valid preprocessing token /home/adamw/rpm/BUILD/h323plus/src/h350/h350.cxx:80:1: error: pasting "(" and "commURIObject" does not give a valid preprocessing token /home/adamw/rpm/BUILD/h323plus/src/h350/h350.cxx:80:1: error: pasting "(" and "commURIObject" does not give a valid preprocessing token /home/adamw/rpm/BUILD/h323plus/src/h350/h350.cxx:80:1: error: pasting ")" and "commURIObject" does not give a valid preprocessing token /home/adamw/rpm/BUILD/h323plus/src/h350/h350.cxx:80:1: error: pasting "(" and "commURIObject" does not give a valid preprocessing token /home/adamw/rpm/BUILD/h323plus/src/h350/h350.cxx:80:1: error: pasting "commURIObject" and ")" does not give a valid preprocessing token /home/adamw/rpm/BUILD/h323plus/src/h350/h350.cxx:80:1: error: pasting "<" and "commURIObject" does not give a valid preprocessing token /home/adamw/rpm/BUILD/h323plus/src/h350/h350.cxx:80:1: error: pasting ">" and "commURIObject" does not give a valid preprocessing token /home/adamw/rpm/BUILD/h323plus/src/h350/h350.cxx:80:1: error: pasting "(" and "commURIObject" does not give a valid preprocessing token /home/adamw/rpm/BUILD/h323plus/src/h350/h350.cxx:80:1: error: pasting "&" and "commURIObject" does not give a valid preprocessing token /home/adamw/rpm/BUILD/h323plus/src/h350/h350.cxx:80:1: error: pasting "(" and "commURIObject" does not give a valid preprocessing token /home/adamw/rpm/BUILD/h323plus/src/h350/h350.cxx:101:1: error: pasting "(" and "H323Identity" does not give a valid preprocessing token /home/adamw/rpm/BUILD/h323plus/src/h350/h350.cxx:101:1: error: pasting "(" and "H323Identity" does not give a valid preprocessing token /home/adamw/rpm/BUILD/h323plus/src/h350/h350.cxx:101:1: error: pasting ")" and "H323Identity" does not give a valid preprocessing token /home/adamw/rpm/BUILD/h323plus/src/h350/h350.cxx:101:1: error: pasting "(" and "H323Identity" does not give a valid preprocessing token /home/adamw/rpm/BUILD/h323plus/src/h350/h350.cxx:101:1: error: pasting "H323Identity" and ")" does not give a valid preprocessing token /home/adamw/rpm/BUILD/h323plus/src/h350/h350.cxx:101:1: error: pasting "<" and "H323Identity" does not give a valid preprocessing token /home/adamw/rpm/BUILD/h323plus/src/h350/h350.cxx:101:1: error: pasting ">" and "H323Identity" does not give a valid preprocessing token /home/adamw/rpm/BUILD/h323plus/src/h350/h350.cxx:101:1: error: pasting "(" and "H323Identity" does not give a valid preprocessing token /home/adamw/rpm/BUILD/h323plus/src/h350/h350.cxx:101:1: error: pasting "&" and "H323Identity" does not give a valid preprocessing token /home/adamw/rpm/BUILD/h323plus/src/h350/h350.cxx:101:1: error: pasting "(" and "H323Identity" does not give a valid preprocessing token /home/adamw/rpm/BUILD/h323plus/src/h350/h350.cxx:114:1: error: pasting "(" and "H235Identity" does not give a valid preprocessing token /home/adamw/rpm/BUILD/h323plus/src/h350/h350.cxx:114:1: error: pasting "(" and "H235Identity" does not give a valid preprocessing token /home/adamw/rpm/BUILD/h323plus/src/h350/h350.cxx:114:1: error: pasting ")" and "H235Identity" does not give a valid preprocessing token /home/adamw/rpm/BUILD/h323plus/src/h350/h350.cxx:114:1: error: pasting "(" and "H235Identity" does not give a valid preprocessing token /home/adamw/rpm/BUILD/h323plus/src/h350/h350.cxx:114:1: error: pasting "H235Identity" and ")" does not give a valid preprocessing token /home/adamw/rpm/BUILD/h323plus/src/h350/h350.cxx:114:1: error: pasting "<" and "H235Identity" does not give a valid preprocessing token /home/adamw/rpm/BUILD/h323plus/src/h350/h350.cxx:114:1: error: pasting ">" and "H235Identity" does not give a valid preprocessing token /home/adamw/rpm/BUILD/h323plus/src/h350/h350.cxx:114:1: error: pasting "(" and "H235Identity" does not give a valid preprocessing token /home/adamw/rpm/BUILD/h323plus/src/h350/h350.cxx:114:1: error: pasting "&" and "H235Identity" does not give a valid preprocessing token /home/adamw/rpm/BUILD/h323plus/src/h350/h350.cxx:114:1: error: pasting "(" and "H235Identity" does not give a valid preprocessing token
With the help of one of our contributors, we fixed that one with the following patch to pwlib:
--------------------
--- ptlib_v1_12_0/include/ptclib/pldap.h 2007-10-18 23:22:38.000000000 -0700 +++ ptlib_v1_12_0/include/ptclib/pldap.h.new 2007-12-22 04:56:25.000000000 -0800 @@ -597,9 +597,9 @@ };
#define LDAP_Schema(name) \ -static LDAPPluginServiceDescriptor<##name##_schema> ##name##_schema_descriptor; \ -PCREATE_PLUGIN(##name##_schema, PLDAPSchema, &##name##_schema_descriptor); \ -PWLIB_STATIC_LOAD_PLUGIN(##name##_schema, PLDAPSchema); \ +static LDAPPluginServiceDescriptor<name##_schema> name##_schema_descriptor; \ +PCREATE_PLUGIN(name##_schema, PLDAPSchema, &name##_schema_descriptor); \ +PWLIB_STATIC_LOAD_PLUGIN(name##_schema, PLDAPSchema); \
////////////////////////////////////////////////////////////////////////////////////////////
-----------------
But then we get some further errors in the same macros:
--------------------
/home/adamw/rpm/BUILD/h323plus/src/h350/h350.cxx: In function 'void PWLibPlugin_TriggerRegister(PPluginManager*)': /home/adamw/rpm/BUILD/h323plus/src/h350/h350.cxx:80: error: redefinition of 'void PWLibPlugin_TriggerRegister(PPluginManager*)' /home/adamw/rpm/BUILD/h323plus/src/h350/h350.cxx:69: error: 'void PWLibPlugin_TriggerRegister(PPluginManager*)' previously defined here /home/adamw/rpm/BUILD/h323plus/src/h350/h350.cxx: In function 'unsigned int PWLibPlugin_GetAPIVersion()': /home/adamw/rpm/BUILD/h323plus/src/h350/h350.cxx:80: error: redefinition of 'unsigned int PWLibPlugin_GetAPIVersion()' /home/adamw/rpm/BUILD/h323plus/src/h350/h350.cxx:69: error: 'unsigned int PWLibPlugin_GetAPIVersion()' previously defined here /home/adamw/rpm/BUILD/h323plus/src/h350/h350.cxx: In function 'void PWLibPlugin_TriggerRegister(PPluginManager*)': /home/adamw/rpm/BUILD/h323plus/src/h350/h350.cxx:101: error: redefinition of 'void PWLibPlugin_TriggerRegister(PPluginManager*)' /home/adamw/rpm/BUILD/h323plus/src/h350/h350.cxx:69: error: 'void PWLibPlugin_TriggerRegister(PPluginManager*)' previously defined here /home/adamw/rpm/BUILD/h323plus/src/h350/h350.cxx: In function 'unsigned int PWLibPlugin_GetAPIVersion()': /home/adamw/rpm/BUILD/h323plus/src/h350/h350.cxx:101: error: redefinition of 'unsigned int PWLibPlugin_GetAPIVersion()' /home/adamw/rpm/BUILD/h323plus/src/h350/h350.cxx:69: error: 'unsigned int PWLibPlugin_GetAPIVersion()' previously defined here /home/adamw/rpm/BUILD/h323plus/src/h350/h350.cxx: In function 'void PWLibPlugin_TriggerRegister(PPluginManager*)': /home/adamw/rpm/BUILD/h323plus/src/h350/h350.cxx:114: error: redefinition of 'void PWLibPlugin_TriggerRegister(PPluginManager*)' /home/adamw/rpm/BUILD/h323plus/src/h350/h350.cxx:69: error: 'void PWLibPlugin_TriggerRegister(PPluginManager*)' previously defined here /home/adamw/rpm/BUILD/h323plus/src/h350/h350.cxx: In function 'unsigned int PWLibPlugin_GetAPIVersion()': /home/adamw/rpm/BUILD/h323plus/src/h350/h350.cxx:114: error: redefinition of 'unsigned int PWLibPlugin_GetAPIVersion()' /home/adamw/rpm/BUILD/h323plus/src/h350/h350.cxx:69: error: 'unsigned int PWLibPlugin_GetAPIVersion()' previously defined here /home/adamw/rpm/BUILD/h323plus/src/h350/h350.cxx: In member function 'BOOL H350_Session::PostNew(const PString&, const std::list<PLDAPSchema, std::allocator<PLDAPSchema> >&)': /home/adamw/rpm/BUILD/h323plus/src/h350/h350.cxx:226: error: 'class PLDAPSession::ModAttrib::Operation' is not a class or namespace /home/adamw/rpm/BUILD/h323plus/src/h350/h350.cxx: In member function 'BOOL H350_Session::PostUpdate(const PString&, const std::list<PLDAPSchema, std::allocator<PLDAPSchema> >&)': /home/adamw/rpm/BUILD/h323plus/src/h350/h350.cxx:240: error: 'class PLDAPSession::ModAttrib::Operation' is not a class or namespace
---------
which we've not yet been able to fix. Does anyone have a fix for this? Thanks.
Hi Adam,
I would suggest you disable H.350 on Linux for now (configure --disable-h350). It probably won't be used by any current applications and my guess is the code hasn't compiled on Linux so far - the standard configure has a bug so it won't vere get activated.
Happy holidays, Jan
Adam Williamson wrote:
Hi, there. I'm looking at migrating Mandriva from openh323 to h323plus, but I'm getting several errors trying to build it. Building against pwlib 1.12.0.
The first set of errors is as follows:
g++ -fPIC -D_REENTRANT -fno-exceptions -Wall -fPIC -DPIC -DNDEBUG -DPTRACING -I/home/adamw/rpm/BUILD/h323plus/include -I/usr/share/pwlib//include -O2 -g -pipe -Wp,-D_FORTIFY_SOURCE=2 -fstack-protector --param=ssp-buffer-size=4 -fexceptions -fomit-frame-pointer -march=i586 -mtune=generic -fasynchronous-unwind-tables -DLDAP_DEPRECATED -c /home/adamw/rpm/BUILD/h323plus/src/h350/h350.cxx -o /home/adamw/rpm/BUILD/h323plus/lib/obj_linux_x86_r/h350.o /home/adamw/rpm/BUILD/h323plus/src/h350/h350.cxx:69:1: error: pasting "(" and "commObject" does not give a valid preprocessing token /home/adamw/rpm/BUILD/h323plus/src/h350/h350.cxx:69:1: error: pasting "(" and "commObject" does not give a valid preprocessing token /home/adamw/rpm/BUILD/h323plus/src/h350/h350.cxx:69:1: error: pasting ")" and "commObject" does not give a valid preprocessing token /home/adamw/rpm/BUILD/h323plus/src/h350/h350.cxx:69:1: error: pasting "(" and "commObject" does not give a valid preprocessing token /home/adamw/rpm/BUILD/h323plus/src/h350/h350.cxx:69:1: error: pasting "commObject" and ")" does not give a valid preprocessing token /home/adamw/rpm/BUILD/h323plus/src/h350/h350.cxx:69:1: error: pasting "<" and "commObject" does not give a valid preprocessing token /home/adamw/rpm/BUILD/h323plus/src/h350/h350.cxx:69:1: error: pasting ">" and "commObject" does not give a valid preprocessing token /home/adamw/rpm/BUILD/h323plus/src/h350/h350.cxx:69:1: error: pasting "(" and "commObject" does not give a valid preprocessing token /home/adamw/rpm/BUILD/h323plus/src/h350/h350.cxx:69:1: error: pasting "&" and "commObject" does not give a valid preprocessing token /home/adamw/rpm/BUILD/h323plus/src/h350/h350.cxx:69:1: error: pasting "(" and "commObject" does not give a valid preprocessing token /home/adamw/rpm/BUILD/h323plus/src/h350/h350.cxx:80:1: error: pasting "(" and "commURIObject" does not give a valid preprocessing token /home/adamw/rpm/BUILD/h323plus/src/h350/h350.cxx:80:1: error: pasting "(" and "commURIObject" does not give a valid preprocessing token /home/adamw/rpm/BUILD/h323plus/src/h350/h350.cxx:80:1: error: pasting ")" and "commURIObject" does not give a valid preprocessing token /home/adamw/rpm/BUILD/h323plus/src/h350/h350.cxx:80:1: error: pasting "(" and "commURIObject" does not give a valid preprocessing token /home/adamw/rpm/BUILD/h323plus/src/h350/h350.cxx:80:1: error: pasting "commURIObject" and ")" does not give a valid preprocessing token /home/adamw/rpm/BUILD/h323plus/src/h350/h350.cxx:80:1: error: pasting "<" and "commURIObject" does not give a valid preprocessing token /home/adamw/rpm/BUILD/h323plus/src/h350/h350.cxx:80:1: error: pasting ">" and "commURIObject" does not give a valid preprocessing token /home/adamw/rpm/BUILD/h323plus/src/h350/h350.cxx:80:1: error: pasting "(" and "commURIObject" does not give a valid preprocessing token /home/adamw/rpm/BUILD/h323plus/src/h350/h350.cxx:80:1: error: pasting "&" and "commURIObject" does not give a valid preprocessing token /home/adamw/rpm/BUILD/h323plus/src/h350/h350.cxx:80:1: error: pasting "(" and "commURIObject" does not give a valid preprocessing token /home/adamw/rpm/BUILD/h323plus/src/h350/h350.cxx:101:1: error: pasting "(" and "H323Identity" does not give a valid preprocessing token /home/adamw/rpm/BUILD/h323plus/src/h350/h350.cxx:101:1: error: pasting "(" and "H323Identity" does not give a valid preprocessing token /home/adamw/rpm/BUILD/h323plus/src/h350/h350.cxx:101:1: error: pasting ")" and "H323Identity" does not give a valid preprocessing token /home/adamw/rpm/BUILD/h323plus/src/h350/h350.cxx:101:1: error: pasting "(" and "H323Identity" does not give a valid preprocessing token /home/adamw/rpm/BUILD/h323plus/src/h350/h350.cxx:101:1: error: pasting "H323Identity" and ")" does not give a valid preprocessing token /home/adamw/rpm/BUILD/h323plus/src/h350/h350.cxx:101:1: error: pasting "<" and "H323Identity" does not give a valid preprocessing token /home/adamw/rpm/BUILD/h323plus/src/h350/h350.cxx:101:1: error: pasting ">" and "H323Identity" does not give a valid preprocessing token /home/adamw/rpm/BUILD/h323plus/src/h350/h350.cxx:101:1: error: pasting "(" and "H323Identity" does not give a valid preprocessing token /home/adamw/rpm/BUILD/h323plus/src/h350/h350.cxx:101:1: error: pasting "&" and "H323Identity" does not give a valid preprocessing token /home/adamw/rpm/BUILD/h323plus/src/h350/h350.cxx:101:1: error: pasting "(" and "H323Identity" does not give a valid preprocessing token /home/adamw/rpm/BUILD/h323plus/src/h350/h350.cxx:114:1: error: pasting "(" and "H235Identity" does not give a valid preprocessing token /home/adamw/rpm/BUILD/h323plus/src/h350/h350.cxx:114:1: error: pasting "(" and "H235Identity" does not give a valid preprocessing token /home/adamw/rpm/BUILD/h323plus/src/h350/h350.cxx:114:1: error: pasting ")" and "H235Identity" does not give a valid preprocessing token /home/adamw/rpm/BUILD/h323plus/src/h350/h350.cxx:114:1: error: pasting "(" and "H235Identity" does not give a valid preprocessing token /home/adamw/rpm/BUILD/h323plus/src/h350/h350.cxx:114:1: error: pasting "H235Identity" and ")" does not give a valid preprocessing token /home/adamw/rpm/BUILD/h323plus/src/h350/h350.cxx:114:1: error: pasting "<" and "H235Identity" does not give a valid preprocessing token /home/adamw/rpm/BUILD/h323plus/src/h350/h350.cxx:114:1: error: pasting ">" and "H235Identity" does not give a valid preprocessing token /home/adamw/rpm/BUILD/h323plus/src/h350/h350.cxx:114:1: error: pasting "(" and "H235Identity" does not give a valid preprocessing token /home/adamw/rpm/BUILD/h323plus/src/h350/h350.cxx:114:1: error: pasting "&" and "H235Identity" does not give a valid preprocessing token /home/adamw/rpm/BUILD/h323plus/src/h350/h350.cxx:114:1: error: pasting "(" and "H235Identity" does not give a valid preprocessing token
With the help of one of our contributors, we fixed that one with the following patch to pwlib:
--- ptlib_v1_12_0/include/ptclib/pldap.h 2007-10-18 23:22:38.000000000 -0700 +++ ptlib_v1_12_0/include/ptclib/pldap.h.new 2007-12-22 04:56:25.000000000 -0800 @@ -597,9 +597,9 @@ };
#define LDAP_Schema(name) \ -static LDAPPluginServiceDescriptor<##name##_schema> ##name##_schema_descriptor; \ -PCREATE_PLUGIN(##name##_schema, PLDAPSchema, &##name##_schema_descriptor); \ -PWLIB_STATIC_LOAD_PLUGIN(##name##_schema, PLDAPSchema); \ +static LDAPPluginServiceDescriptor<name##_schema> name##_schema_descriptor; \ +PCREATE_PLUGIN(name##_schema, PLDAPSchema, &name##_schema_descriptor); \ +PWLIB_STATIC_LOAD_PLUGIN(name##_schema, PLDAPSchema); \
////////////////////////////////////////////////////////////////////////////////////////////
But then we get some further errors in the same macros:
/home/adamw/rpm/BUILD/h323plus/src/h350/h350.cxx: In function 'void PWLibPlugin_TriggerRegister(PPluginManager*)': /home/adamw/rpm/BUILD/h323plus/src/h350/h350.cxx:80: error: redefinition of 'void PWLibPlugin_TriggerRegister(PPluginManager*)' /home/adamw/rpm/BUILD/h323plus/src/h350/h350.cxx:69: error: 'void PWLibPlugin_TriggerRegister(PPluginManager*)' previously defined here /home/adamw/rpm/BUILD/h323plus/src/h350/h350.cxx: In function 'unsigned int PWLibPlugin_GetAPIVersion()': /home/adamw/rpm/BUILD/h323plus/src/h350/h350.cxx:80: error: redefinition of 'unsigned int PWLibPlugin_GetAPIVersion()' /home/adamw/rpm/BUILD/h323plus/src/h350/h350.cxx:69: error: 'unsigned int PWLibPlugin_GetAPIVersion()' previously defined here /home/adamw/rpm/BUILD/h323plus/src/h350/h350.cxx: In function 'void PWLibPlugin_TriggerRegister(PPluginManager*)': /home/adamw/rpm/BUILD/h323plus/src/h350/h350.cxx:101: error: redefinition of 'void PWLibPlugin_TriggerRegister(PPluginManager*)' /home/adamw/rpm/BUILD/h323plus/src/h350/h350.cxx:69: error: 'void PWLibPlugin_TriggerRegister(PPluginManager*)' previously defined here /home/adamw/rpm/BUILD/h323plus/src/h350/h350.cxx: In function 'unsigned int PWLibPlugin_GetAPIVersion()': /home/adamw/rpm/BUILD/h323plus/src/h350/h350.cxx:101: error: redefinition of 'unsigned int PWLibPlugin_GetAPIVersion()' /home/adamw/rpm/BUILD/h323plus/src/h350/h350.cxx:69: error: 'unsigned int PWLibPlugin_GetAPIVersion()' previously defined here /home/adamw/rpm/BUILD/h323plus/src/h350/h350.cxx: In function 'void PWLibPlugin_TriggerRegister(PPluginManager*)': /home/adamw/rpm/BUILD/h323plus/src/h350/h350.cxx:114: error: redefinition of 'void PWLibPlugin_TriggerRegister(PPluginManager*)' /home/adamw/rpm/BUILD/h323plus/src/h350/h350.cxx:69: error: 'void PWLibPlugin_TriggerRegister(PPluginManager*)' previously defined here /home/adamw/rpm/BUILD/h323plus/src/h350/h350.cxx: In function 'unsigned int PWLibPlugin_GetAPIVersion()': /home/adamw/rpm/BUILD/h323plus/src/h350/h350.cxx:114: error: redefinition of 'unsigned int PWLibPlugin_GetAPIVersion()' /home/adamw/rpm/BUILD/h323plus/src/h350/h350.cxx:69: error: 'unsigned int PWLibPlugin_GetAPIVersion()' previously defined here /home/adamw/rpm/BUILD/h323plus/src/h350/h350.cxx: In member function 'BOOL H350_Session::PostNew(const PString&, const std::list<PLDAPSchema, std::allocator<PLDAPSchema> >&)': /home/adamw/rpm/BUILD/h323plus/src/h350/h350.cxx:226: error: 'class PLDAPSession::ModAttrib::Operation' is not a class or namespace /home/adamw/rpm/BUILD/h323plus/src/h350/h350.cxx: In member function 'BOOL H350_Session::PostUpdate(const PString&, const std::list<PLDAPSchema, std::allocator<PLDAPSchema> >&)': /home/adamw/rpm/BUILD/h323plus/src/h350/h350.cxx:240: error: 'class PLDAPSession::ModAttrib::Operation' is not a class or namespace
which we've not yet been able to fix. Does anyone have a fix for this? Thanks.
adamw
On Tue, 2007-12-25 at 00:09 +0100, Jan Willamowius wrote:
Hi Adam,
I would suggest you disable H.350 on Linux for now (configure --disable-h350). It probably won't be used by any current applications and my guess is the code hasn't compiled on Linux so far - the standard configure has a bug so it won't vere get activated.
For the public record - thanks, Jan, that works.
participants (2)
-
Adam Williamson
-
Jan Willamowius