On Mar 28, 7:58 am, Shawn Firth <[email protected]> wrote:
> Jeff,
> Thanks for your feedback. I haven't been able to run the Crypto++ 5.6.2
> tests because "test" won't compile (from make/compiler output above):
> "test.cpp", line 195: error #2350: more than one operator ">" matches these
>           operands:
>             built-in operator "arithmetic > arithmetic"
>             function "std::fpos<_StateT>::operator>(const std::fpos<_StateT>
>                       &) const [with _StateT=mbstate_t]"
>             function "std::fpos<_StateT>::operator>(std::streamoff) const
>                       [with _StateT=mbstate_t]"
>             operand types are: std::fpos<mbstate_t> > int
>    if (fileEnd > 20*1000*1000)
>                ^
>From http://www.cryptopp.com/docs/ref/test_8cpp_source.html, test.cpp:
195 is

00195    if (fileEnd > 20*1000*1000)
00196    {
00197        cerr << "Input file too large (more than 20 MB).\n";
00198        return 1;
00199    }

Cast the constant to a std::ifstream::pos_type and run the self tests.

> If I had to guess, there are probably some #defines that aren't
> being properly set and as a result the wrong size typedefs are being
> created/used and/or the wrong chunk(s) of code is being compiled.
> HP-UX 11.31 with the aCC compiler is a Big Endian, full 64 bit architecture
> with the following base data types/sizes supported:
> Size of boolean:                1
> Size of short int:              2
> Size of unsigned short int:     2
> Size of int:                    4
> Size of unsigned int:           4
> Size of long int:               8
> Size of unsigned long int:      8
> Size of long long int:          8
> Size of unsigned long long int: 8
> Size of float:                  4
> Size of double:                 8
> Size of long double:            16
> Size of char:                   1
> Size of unsigned char:          1
> Size of char*:                  8
> Size of void*:                  8
>
> Given that information, what architecture and code #defines would you
> recommend I turn on to ensure only Big Endian full 64 bit code is compiled?
You will find the defines in config.h (http://www.cryptopp.com/docs/
ref/config_8h_source.html). There is one that cover Big/Little Endian,
and you can define it on the command line: -DIS_BIG_ENDIAN=1.

As for architecture, GCC has an -march=XXX. I don't know what to use
for HP's compiler.

You can also use the preprocessor. First, dump its defines with:

    $ cpp -dM < /dev/null

Then, make sure something that HP defines shows up around line 130 of
config.h (http://www.cryptopp.com/docs/ref/config_8h_source.html).

Jeff

-- 
-- 
You received this message because you are subscribed to the "Crypto++ Users" 
Google Group.
To unsubscribe, send an email to [email protected].
More information about Crypto++ and this group is available at 
http://www.cryptopp.com.
--- 
You received this message because you are subscribed to the Google Groups 
"Crypto++ Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/groups/opt_out.


Reply via email to