[h323plus] Trouble building h323plus with GCC 4.2.2

Jan Willamowius jan at willamowius.de
Mon Dec 24 18:09:06 EST 2007


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
> 
> 


-- 
Jan Willamowius, jan at willamowius.de, http://www.willamowius.de/




More information about the h323plus mailing list