[GCC-XML] problem compiling code with gccxml
Alexis H. Rivera-Rios
ahrivera at yahoo.com
Thu Jul 28 14:30:58 EDT 2005
Brad,
Check the errors... it still didn't work:
Here are the flags;
"-quiet"
"-fsyntax-only"
"-w"
"-o"
"NUL"
"-nostdinc"
"-D__GCCXML__=700"
"-I"
"..\StatATA"
"-I"
"c:\usr\local\include"
"-I"
"C:\Boost\include\boost-1_32"
"-I"
"C:\opt\newmat"
"..\StatATA\random_number_generator.h"
"-U__STDC__"
"-U__MINGW32__-D__stdcall=__attribute__((__stdcall__))"
"-D__cdecl=__attribute__((__cdecl__))"
"-D__fastcall=__attribute__((__fastcall__))"
"-D_stdcall=__attribute__((__stdcall__))"
"-D_cdecl=__attribute__((__cdecl__))"
"-D_fastcall=__attribute__((__fastcall__))"
"-D__declspec(x)=__attribute__((x))"
"-D__cplusplus"
"-D_inline=inline"
"-D__forceinline=__inline"
"-D_MSC_VER=1310"
"-D_MSC_EXTENSIONS"
"-D_WIN32"
"-D_M_IX86"
"-D_WCHAR_T_DEFINED"
"-DPASCAL="
"-DRPC_ENTRY="
"-DSHSTDAPI=HRESULT"
"-D_INTEGRAL_MAX_BITS=64"
"-D__uuidof(x)=IID()"
"-DSHSTDAPI_(x)=x"
"-D__w64="
"-D__int64=long long"
"-iwrapperC:/gccxml_build/bin/Vc71/Include"
"-iwrapperC:/gccxml_build/bin/Vc71/PlatformSDK"
"-IC:/Program Files/Microsoft Visual Studio .NET
2003/Vc7/include"
"-IC:/Program Files/Microsoft Visual Studio .NET
2003/Vc7/PlatformSDK/Include"
Here are the errors:
In file included from
C:/Boost/include/boost-1_32/boost/random/linear_congruential.hpp:25,
from
C:/Boost/include/boost-1_32/boost/random.hpp:36,
from
../StatATA/random_number_generator.h:6:
C:/Boost/include/boost-1_32/boost/random/detail/const_mod.hpp:
In static member
function `static IntType
boost::random::const_mod<IntType,
m>::invert_euclidian(IntType)':
C:/Boost/include/boost-1_32/boost/random/detail/const_mod.hpp:152:
error: conflicting
types for `typedef struct
boost::static_assert_test<sizeof
(boost::STATIC_ASSERTION_FAILURE<(bool)(boost::integer_traits<T>::is_signed)>)>
boost_static_assert_typedef___COUNTER__'
C:/Boost/include/boost-1_32/boost/random/detail/const_mod.hpp:148:
error: previous
declaration as `typedef struct
boost::static_assert_test<sizeof
(boost::STATIC_ASSERTION_FAILURE<(bool)((m > 0))>)>
boost_static_assert_typedef___COUNTER__'
In file included from
C:/Boost/include/boost-1_32/boost/random.hpp:36,
from
../StatATA/random_number_generator.h:6:
C:/Boost/include/boost-1_32/boost/random/linear_congruential.hpp:
In
constructor
`boost::random::linear_congruential<IntType, a, c, m,
val>::linear_congruential(IntType) [with IntType =
uint64_t, IntType a =
5deece66d, IntType c = 11, IntType m =
1000000000000, IntType val = 0]':
C:/Boost/include/boost-1_32/boost/random/linear_congruential.hpp:211:
instantiated from here
C:/Boost/include/boost-1_32/boost/random/linear_congruential.hpp:56:
error: invalid
conversion from `void*' to `const char*'
C:/Boost/include/boost-1_32/boost/random/linear_congruential.hpp:
In member
function `void
boost::random::linear_congruential<IntType, a, c, m,
val>::seed(IntType) [with IntType = uint64_t,
IntType a = 5deece66d, IntType
c = 11, IntType m = 1000000000000, IntType val =
0]':
C:/Boost/include/boost-1_32/boost/random/linear_congruential.hpp:215:
instantiated from here
C:/Boost/include/boost-1_32/boost/random/linear_congruential.hpp:73:
error: invalid
conversion from `void*' to `const char*'
In file included from
C:/Boost/include/boost-1_32/boost/random.hpp:38,
from
../StatATA/random_number_generator.h:6:
C:/Boost/include/boost-1_32/boost/random/inversive_congruential.hpp:
In
constructor
`boost::random::inversive_congruential<IntType, a, b,
p,
val>::inversive_congruential(IntType)':
C:/Boost/include/boost-1_32/boost/random/inversive_congruential.hpp:51:
error: conflicting
types for `typedef struct
boost::static_assert_test<sizeof
(boost::STATIC_ASSERTION_FAILURE<(bool)((p > 1))>)>
boost_static_assert_typedef___COUNTER__'
C:/Boost/include/boost-1_32/boost/random/inversive_congruential.hpp:50:
error: previous
declaration as `typedef struct
boost::static_assert_test<sizeof
(boost::STATIC_ASSERTION_FAILURE<(bool)((b >=
0))>)>
boost_static_assert_typedef___COUNTER__'
C:/Boost/include/boost-1_32/boost/random/inversive_congruential.hpp:52:
error: conflicting
types for `typedef struct
boost::static_assert_test<sizeof
(boost::STATIC_ASSERTION_FAILURE<(bool)((a >=
1))>)>
boost_static_assert_typedef___COUNTER__'
C:/Boost/include/boost-1_32/boost/random/inversive_congruential.hpp:51:
error: previous
declaration as `typedef struct
boost::static_assert_test<sizeof
(boost::STATIC_ASSERTION_FAILURE<(bool)((b >=
0))>)>
boost_static_assert_typedef___COUNTER__'
In file included from
C:/Boost/include/boost-1_32/boost/random/ranlux.hpp:20,
from
C:/Boost/include/boost-1_32/boost/random.hpp:42,
from
../StatATA/random_number_generator.h:6:
C:/Boost/include/boost-1_32/boost/random/subtract_with_carry.hpp:
In
constructor
`boost::random::subtract_with_carry<IntType, m, s, r,
val>::subtract_with_carry()':
C:/Boost/include/boost-1_32/boost/random/subtract_with_carry.hpp:75:
error: conflicting
types for `typedef struct
boost::static_assert_test<sizeof
(boost::STATIC_ASSERTION_FAILURE<(bool)(std::numeric_limits<_Ty>::is_integer)>)>
boost_static_assert_typedef___COUNTER__'
C:/Boost/include/boost-1_32/boost/random/subtract_with_carry.hpp:74:
error: previous
declaration as `typedef struct
boost::static_assert_test<sizeof
(boost::STATIC_ASSERTION_FAILURE<(bool)(std::numeric_limits<_Ty>::is_signed)>)>
boost_static_assert_typedef___COUNTER__'
In file included from
C:/Boost/include/boost-1_32/boost/random.hpp:43,
from
../StatATA/random_number_generator.h:6:
C:/Boost/include/boost-1_32/boost/random/linear_feedback_shift.hpp:
In
constructor
`boost::random::linear_feedback_shift<UIntType, w, k,
q, s,
val>::linear_feedback_shift(UIntType)':
C:/Boost/include/boost-1_32/boost/random/linear_feedback_shift.hpp:56:
error: conflicting
types for `typedef struct
boost::static_assert_test<sizeof
(boost::STATIC_ASSERTION_FAILURE<(bool)((!std::numeric_limits<_Ty>::is_signed))>)>
boost_static_assert_typedef___COUNTER__'
C:/Boost/include/boost-1_32/boost/random/linear_feedback_shift.hpp:55:
error: previous
declaration as `typedef struct
boost::static_assert_test<sizeof
(boost::STATIC_ASSERTION_FAILURE<(bool)(std::numeric_limits<_Ty>::is_integer)>)>
boost_static_assert_typedef___COUNTER__'
C:/Boost/include/boost-1_32/boost/random/linear_feedback_shift.hpp:
In
constructor
`boost::random::linear_feedback_shift<UIntType, w, k,
q, s,
val>::linear_feedback_shift(It&, It)':
C:/Boost/include/boost-1_32/boost/random/linear_feedback_shift.hpp:70:
error: conflicting
types for `typedef struct
boost::static_assert_test<sizeof
(boost::STATIC_ASSERTION_FAILURE<(bool)((!std::numeric_limits<_Ty>::is_signed))>)>
boost_static_assert_typedef___COUNTER__'
C:/Boost/include/boost-1_32/boost/random/linear_feedback_shift.hpp:69:
error: previous
declaration as `typedef struct
boost::static_assert_test<sizeof
(boost::STATIC_ASSERTION_FAILURE<(bool)(std::numeric_limits<_Ty>::is_integer)>)>
boost_static_assert_typedef___COUNTER__'
In file included from
C:/Boost/include/boost-1_32/boost/random.hpp:44,
from
../StatATA/random_number_generator.h:6:
C:/Boost/include/boost-1_32/boost/random/xor_combine.hpp:
In member function `
typename URNG1::result_type
boost::random::xor_combine<URNG1, s1, URNG2, s2,
val>::operator()()':
C:/Boost/include/boost-1_32/boost/random/xor_combine.hpp:68:
error: conflicting
types for `typedef struct
boost::static_assert_test<sizeof
(boost::STATIC_ASSERTION_FAILURE<(bool)(std::numeric_limits<typename
URNG2::result_type>::is_integer)>)>
boost_static_assert_typedef___COUNTER__'
C:/Boost/include/boost-1_32/boost/random/xor_combine.hpp:67:
error: previous
declaration as `typedef struct
boost::static_assert_test<sizeof
(boost::STATIC_ASSERTION_FAILURE<(bool)(std::numeric_limits<typename
UniformRandomNumberGenerator::result_type>::is_integer)>)>
boost_static_assert_typedef___COUNTER__'
C:/Boost/include/boost-1_32/boost/random/xor_combine.hpp:69:
error: conflicting
types for `typedef struct
boost::static_assert_test<sizeof
(boost::STATIC_ASSERTION_FAILURE<(bool)((std::numeric_limits<typename
UniformRandomNumberGenerator::result_type>::digits
>=
std::numeric_limits<typename
URNG2::result_type>::digits))>)>
boost_static_assert_typedef___COUNTER__'
C:/Boost/include/boost-1_32/boost/random/xor_combine.hpp:68:
error: previous
declaration as `typedef struct
boost::static_assert_test<sizeof
(boost::STATIC_ASSERTION_FAILURE<(bool)(std::numeric_limits<typename
UniformRandomNumberGenerator::result_type>::is_integer)>)>
boost_static_assert_typedef___COUNTER__'
In file included from
C:/Boost/include/boost-1_32/boost/random/uniform_int.hpp:26,
from
C:/Boost/include/boost-1_32/boost/random/random_number_generator.hpp:22,
from
C:/Boost/include/boost-1_32/boost/random.hpp:53,
from
../StatATA/random_number_generator.h:6:
C:/Boost/include/boost-1_32/boost/random/uniform_smallint.hpp:
In constructor `
boost::detail::uniform_smallint_float<UniformRandomNumberGenerator,
IntType>::uniform_smallint_float(UniformRandomNumberGenerator&,
IntType,
IntType)':
C:/Boost/include/boost-1_32/boost/random/uniform_smallint.hpp:122:
error: conflicting
types for `typedef struct
boost::static_assert_test<sizeof
(boost::STATIC_ASSERTION_FAILURE<(bool)((!std::numeric_limits<typename
UniformRandomNumberGenerator::result_type>::is_integer))>)>
boost_static_assert_typedef___COUNTER__'
C:/Boost/include/boost-1_32/boost/random/uniform_smallint.hpp:121:
error: previous
declaration as `typedef struct
boost::static_assert_test<sizeof
(boost::STATIC_ASSERTION_FAILURE<(bool)(std::numeric_limits<RealType>::is_integer)>)>
boost_static_assert_typedef___COUNTER__'
In file included from
C:/Boost/include/boost-1_32/boost/random.hpp:67,
from
../StatATA/random_number_generator.h:6:
C:/Boost/include/boost-1_32/boost/random/poisson_distribution.hpp:
In
constructor `boost::poisson_distribution<IntType,
RealType>::poisson_distribution(const RealType&)':
C:/Boost/include/boost-1_32/boost/random/poisson_distribution.hpp:39:
error: conflicting
types for `typedef struct
boost::static_assert_test<sizeof
(boost::STATIC_ASSERTION_FAILURE<(bool)((!std::numeric_limits<RealType>::is_integer))>)>
boost_static_assert_typedef___COUNTER__'
C:/Boost/include/boost-1_32/boost/random/poisson_distribution.hpp:38:
error: previous
declaration as `typedef struct
boost::static_assert_test<sizeof
(boost::STATIC_ASSERTION_FAILURE<(bool)(std::numeric_limits<_Ty>::is_integer)>)>
boost_static_assert_typedef___COUNTER__'
C:/Boost/include/boost-1_32/boost/random/linear_congruential.hpp:
In
constructor
`boost::random::linear_congruential<IntType, a, c, m,
val>::linear_congruential(IntType) [with IntType =
uint32_t, IntType a =
69069, IntType c = 0, IntType m = 0, IntType val =
0]':
C:/Boost/include/boost-1_32/boost/random/mersenne_twister.hpp:81:
instantiated from `void
boost::random::mersenne_twister<UIntType, w, n, m, r,
a, u, s, b, t, c, l, val>::seed(UIntType) [with
UIntType = uint32_t, int w = 32, int n = 624, int m =
397, int r = 31, UIntType a = 09908b0df, int u = 11,
int s = 7, UIntType b = 09d2c5680, int t = 15,
UIntType c = 0efc60000, int l = 18, UIntType val =
0c77666de]'
C:/Boost/include/boost-1_32/boost/random/mersenne_twister.hpp:71:
instantiated from `void
boost::random::mersenne_twister<UIntType, w, n, m, r,
a, u, s, b, t, c, l, val>::seed() [with UIntType =
uint32_t, int w = 32, int n = 624, int m = 397, int r
= 31, UIntType a = 09908b0df, int u = 11, int s = 7,
UIntType b = 09d2c5680, int t = 15, UIntType c =
0efc60000, int l = 18, UIntType val = 0c77666de]'
C:/Boost/include/boost-1_32/boost/random/mersenne_twister.hpp:55:
instantiated from
`boost::random::mersenne_twister<UIntType, w, n, m, r,
a, u, s, b, t, c, l, val>::mersenne_twister() [with
UIntType = uint32_t, int w = 32, int n = 624, int m =
397, int r = 31, UIntType a = 09908b0df, int u = 11,
int s = 7, UIntType b = 09d2c5680, int t = 15,
UIntType c = 0efc60000, int l = 18, UIntType val =
0c77666de]'
../StatATA/random_number_generator.h:60:
instantiated from here
C:/Boost/include/boost-1_32/boost/random/linear_congruential.hpp:56:
error: invalid
conversion from `void*' to `const char*'
C:/Boost/include/boost-1_32/boost/random/normal_distribution.hpp:
In
constructor
`boost::normal_distribution<RealType>::normal_distribution(const
RealType&, const RealType&) [with RealType =
double]':
../StatATA/random_number_generator.h:130:
instantiated from here
C:/Boost/include/boost-1_32/boost/random/normal_distribution.hpp:43:
error: invalid
conversion from `void*' to `const char*'
../StatATA/random_number_generator.h: In constructor `
HelperFunctions::MultiVariateNormalGenerator::MultiVariateNormalGenerator()
':
../StatATA/random_number_generator.h:131: error: no
matching function for call
to `
HelperFunctions::MultivariateGenerator<boost::normal_distribution<double>
>
::MultivariateGenerator(boost::normal_distribution<double>)'
../StatATA/random_number_generator.h:119: error:
candidates are:
HelperFunctions::MultivariateGenerator<DistributionType>::MultivariateGenerator(const
HelperFunctions::MultivariateGenerator<DistributionType>&)
[with
DistributionType =
boost::normal_distribution<double>]
../StatATA/random_number_generator.h:80: error:
HelperFunctions::MultivariateGenerator<DistributionType>::MultivariateGenerator(DistributionType&)
[with DistributionType =
boost::normal_distribution<double>]
C:/Boost/include/boost-1_32/boost/random/uniform_real.hpp:
In constructor `
boost::uniform_real<RealType>::uniform_real(RealType,
RealType) [with
RealType = double]':
../StatATA/random_number_generator.h:165:
instantiated from here
C:/Boost/include/boost-1_32/boost/random/uniform_real.hpp:43:
error: invalid
conversion from `void*' to `const char*'
../StatATA/random_number_generator.h: In constructor `
HelperFunctions::MultiVariateUniformContinuousGenerator::MultiVariateUniformContinuousGenerator(double,
double)':
../StatATA/random_number_generator.h:166: error: no
matching function for call
to
`HelperFunctions::MultivariateGenerator<boost::uniform_real<double>
>::
MultivariateGenerator(boost::uniform_real<double>)'
../StatATA/random_number_generator.h:119: error:
candidates are:
HelperFunctions::MultivariateGenerator<DistributionType>::MultivariateGenerator(const
HelperFunctions::MultivariateGenerator<DistributionType>&)
[with
DistributionType = boost::uniform_real<double>]
../StatATA/random_number_generator.h:80: error:
HelperFunctions::MultivariateGenerator<DistributionType>::MultivariateGenerator(DistributionType&)
[with DistributionType =
boost::uniform_real<double>]
../StatATA/random_number_generator.h: In member
function `void
HelperFunctions::MultiVariateUniformContinuousGenerator::SetRange(double,
double)':
../StatATA/random_number_generator.h:172: error: no
matching function for call
to
`HelperFunctions::MultiVariateUniformContinuousGenerator::Swap(
boost::uniform_real<double>)'
../StatATA/random_number_generator.h:108: error:
candidates are: void
HelperFunctions::MultivariateGenerator<DistributionType>::Swap(DistributionType&)
[with DistributionType =
boost::uniform_real<double>]
C:/Boost/include/boost-1_32/boost/random/uniform_int.hpp:
In constructor `
boost::uniform_int<IntType>::uniform_int(IntType,
IntType) [with IntType =
int]':
../StatATA/random_number_generator.h:183:
instantiated from here
C:/Boost/include/boost-1_32/boost/random/uniform_int.hpp:49:
error: invalid
conversion from `void*' to `const char*'
../StatATA/random_number_generator.h: In constructor `
HelperFunctions::MultiVariateUniformDiscreteGenerator::MultiVariateUniformDiscreteGenerator(int,
int)':
../StatATA/random_number_generator.h:184: error: no
matching function for call
to
`HelperFunctions::MultivariateGenerator<boost::uniform_int<int>
>::
MultivariateGenerator(boost::uniform_int<int>)'
../StatATA/random_number_generator.h:119: error:
candidates are:
HelperFunctions::MultivariateGenerator<DistributionType>::MultivariateGenerator(const
HelperFunctions::MultivariateGenerator<DistributionType>&)
[with
DistributionType = boost::uniform_int<int>]
../StatATA/random_number_generator.h:80: error:
HelperFunctions::MultivariateGenerator<DistributionType>::MultivariateGenerator(DistributionType&)
[with DistributionType = boost::uniform_int<int>]
../StatATA/random_number_generator.h: In member
function `void
HelperFunctions::MultiVariateUniformDiscreteGenerator::SetRange(int,
int)':
../StatATA/random_number_generator.h:190: error: no
matching function for call
to
`HelperFunctions::MultiVariateUniformDiscreteGenerator::Swap(
boost::uniform_int<int>)'
../StatATA/random_number_generator.h:108: error:
candidates are: void
HelperFunctions::MultivariateGenerator<DistributionType>::Swap(DistributionType&)
[with DistributionType = boost::uniform_int<int>]
C:/Boost/include/boost-1_32/boost/random/bernoulli_distribution.hpp:
In
constructor `
boost::bernoulli_distribution<RealType>::bernoulli_distribution(const
RealType&) [with RealType = double]':
../StatATA/random_number_generator.h:201:
instantiated from here
C:/Boost/include/boost-1_32/boost/random/bernoulli_distribution.hpp:38:
error: invalid
conversion from `void*' to `const char*'
C:/Boost/include/boost-1_32/boost/random/bernoulli_distribution.hpp:39:
error: invalid
conversion from `void*' to `const char*'
../StatATA/random_number_generator.h: In constructor `
HelperFunctions::MultiVariateBernoulliGenerator::MultiVariateBernoulliGenerator(double)
':
../StatATA/random_number_generator.h:202: error: no
matching function for call
to `
HelperFunctions::MultivariateGenerator<boost::bernoulli_distribution<double>
>::MultivariateGenerator(boost::bernoulli_distribution<double>)'
../StatATA/random_number_generator.h:119: error:
candidates are:
HelperFunctions::MultivariateGenerator<DistributionType>::MultivariateGenerator(const
HelperFunctions::MultivariateGenerator<DistributionType>&)
[with
DistributionType =
boost::bernoulli_distribution<double>]
../StatATA/random_number_generator.h:80: error:
HelperFunctions::MultivariateGenerator<DistributionType>::MultivariateGenerator(DistributionType&)
[with DistributionType =
boost::bernoulli_distribution<double>]
../StatATA/random_number_generator.h: In member
function `void
HelperFunctions::MultiVariateBernoulliGenerator::SetProbabilitySuccess(double)
':
../StatATA/random_number_generator.h:208: error: no
matching function for call
to
`HelperFunctions::MultiVariateBernoulliGenerator::Swap(
boost::bernoulli_distribution<double>)'
../StatATA/random_number_generator.h:108: error:
candidates are: void
HelperFunctions::MultivariateGenerator<DistributionType>::Swap(DistributionType&)
[with DistributionType =
boost::bernoulli_distribution<double>]
C:/Boost/include/boost-1_32/boost/shared_ptr.hpp: In
member function `typename
boost::detail::shared_ptr_traits<T>::reference
boost::shared_ptr<T>::operator*() const [with T =
boost::variate_generator<boost::random::mersenne_twister<uint32_t,
32, 624,
397, 31, 09908b0df, 11, 7, 09d2c5680, 15,
0efc60000, 18, 0c77666de>&,
boost::normal_distribution<double> >]':
../StatATA/random_number_generator.h:104:
instantiated from `typename
DistributionType::result_type
HelperFunctions::MultivariateGenerator<DistributionType>::Next()
const [with DistributionType =
boost::normal_distribution<double>]'
../StatATA/random_number_generator.h:147:
instantiated from here
C:/Boost/include/boost-1_32/boost/shared_ptr.hpp:247:
error: invalid conversion
from `void*' to `const char*'
Does the fact that boost was compiled with VC71 and
gccxml is based on GCC be the problem? Somethink like
the boost library is configured with the VC71 hacks
and not the gcc ones?
I don't know... but I'll appreciate your help on this.
Alexis
--- Brad King <brad.king at kitware.com> wrote:
> Alexis H. Rivera-Rios wrote:
> > I'm trying to expose the following class using
> pyste
> > (which in turns uses gccxml)
> >
> > #include <boost/random.hpp>
> [snip]
> > when I run gccxml like this:
> > gccxml -I c:\boost\include\boost-1_32 test.cpp
> --debug
> > --gccxml-compiler msvc71
> [snip]
> > The errors are these:
> > In file included from
> >
>
c:/boost/include/boost-1_32/boost/random/detail/const_mod.hpp:22,
> > from
> >
>
c:/boost/include/boost-1_32/boost/random/linear_congruential.hpp:25,
> > from
> > c:/boost/include/boost-1_32/boost/random.hpp:36,
> > from test.cpp:2:
> >
>
c:/boost/include/boost-1_32/boost/integer_traits.hpp:159:
> > error: integer
> > constant is too large for "long" type
> [snip]
> > I don't what's wrong since the works fine in VC7.1
>
> >
> > The only thing I suspect is that because gccxml
> may be
> > based on another compiler the #defines specified
> when
> > I built boost for vc71 do not match the gccxml
> > compiler.
>
> When GCC-XML simulates VC7.1 the preprocessor should
> act as if it were
> really preprocessing for VC7.1. The only difference
> is that __GCCXML__
> is defined. Most of the time the internal GCC
> parser can handle the
> results (thanks to the patched headers). This may
> be a case where it
> cannot.
>
> My guess is that the LLONG_MAX macro is getting
> defined with an integer
> suffix that is not properly parsed by GCC. GCC-XML
> from CVS does have
> support for the VC integer suffixes (like i64). I
> see you are using
> version 0.6. Please try the CVS version.
>
> Thanks,
> -Brad
>
Programming Tutorial:
In Python: To do this, do this
In Perl: To do this, do this or this or this or this...
In C: To do this, do this, but be careful
In C++: To do this, do this, but don't do this, be careful of this, watch out for this, and whatever you do, don't do this
__________________________________________________
Do You Yahoo!?
Tired of spam? Yahoo! Mail has the best spam protection around
http://mail.yahoo.com
More information about the gccxml
mailing list