bug-gnulib
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

rpl_memcmp on mingw with g++?


From: Simon Josefsson
Subject: rpl_memcmp on mingw with g++?
Date: Tue, 20 May 2008 09:11:16 +0200
User-agent: Gnus/5.110009 (No Gnus v0.9) Emacs/22.2 (gnu/linux)

All,

MinGW apparently needs gnulib's memcmp module, which adds this to
config.h:

#define memcmp rpl_memcmp

This appears to cause problems for the standard C++ headers, see
complete error below.

What is a good solution here?  Is there another way to replace memcmp
that is safer?  Should the C++ code not include config.h?

(The real case is a GnuTLS example program written in C++, but it fails
in the same way as the smaller example below.)

Thanks,
/Simon

address@hidden:~$ cat foo.cpp
#define memcmp rpl_memcmp
#include <iostream>
int main () {
  std::cout << "foo\n";
}
address@hidden:~$ i586-mingw32msvc-g++ -o foo foo.cpp
In file included from 
/usr/lib/gcc/i586-mingw32msvc/4.2.1-sjlj/include/c++/i586-mingw32msvc/bits/c++locale.h:48,
                 from 
/usr/lib/gcc/i586-mingw32msvc/4.2.1-sjlj/include/c++/iosfwd:45,
                 from 
/usr/lib/gcc/i586-mingw32msvc/4.2.1-sjlj/include/c++/ios:43,
                 from 
/usr/lib/gcc/i586-mingw32msvc/4.2.1-sjlj/include/c++/ostream:45,
                 from 
/usr/lib/gcc/i586-mingw32msvc/4.2.1-sjlj/include/c++/iostream:45,
                 from foo.cpp:2:
/usr/lib/gcc/i586-mingw32msvc/4.2.1-sjlj/include/c++/cstring:86: error: 
‘::memcmp’ has not been declared
In file included from 
/usr/lib/gcc/i586-mingw32msvc/4.2.1-sjlj/include/c++/bits/char_traits.h:46,
                 from 
/usr/lib/gcc/i586-mingw32msvc/4.2.1-sjlj/include/c++/ios:45,
                 from 
/usr/lib/gcc/i586-mingw32msvc/4.2.1-sjlj/include/c++/ostream:45,
                 from 
/usr/lib/gcc/i586-mingw32msvc/4.2.1-sjlj/include/c++/iostream:45,
                 from foo.cpp:2:
/usr/lib/gcc/i586-mingw32msvc/4.2.1-sjlj/include/c++/bits/stl_algobase.h: In 
function ‘bool std::lexicographical_compare(const unsigned char*, const 
unsigned char*, const unsigned char*, const unsigned char*)’:
/usr/lib/gcc/i586-mingw32msvc/4.2.1-sjlj/include/c++/bits/stl_algobase.h:908: 
error: ‘memcmp’ is not a member of ‘std’
In file included from 
/usr/lib/gcc/i586-mingw32msvc/4.2.1-sjlj/include/c++/ios:45,
                 from 
/usr/lib/gcc/i586-mingw32msvc/4.2.1-sjlj/include/c++/ostream:45,
                 from 
/usr/lib/gcc/i586-mingw32msvc/4.2.1-sjlj/include/c++/iostream:45,
                 from foo.cpp:2:
/usr/lib/gcc/i586-mingw32msvc/4.2.1-sjlj/include/c++/bits/char_traits.h: In 
static member function ‘static int std::char_traits<char>::compare(const char*, 
const char*, size_t)’:
/usr/lib/gcc/i586-mingw32msvc/4.2.1-sjlj/include/c++/bits/char_traits.h:254: 
error: ‘memcmp’ was not declared in this scope
In file included from 
/usr/lib/gcc/i586-mingw32msvc/4.2.1-sjlj/include/c++/bits/basic_ios.h:44,
                 from 
/usr/lib/gcc/i586-mingw32msvc/4.2.1-sjlj/include/c++/ios:50,
                 from 
/usr/lib/gcc/i586-mingw32msvc/4.2.1-sjlj/include/c++/ostream:45,
                 from 
/usr/lib/gcc/i586-mingw32msvc/4.2.1-sjlj/include/c++/iostream:45,
                 from foo.cpp:2:
/usr/lib/gcc/i586-mingw32msvc/4.2.1-sjlj/include/c++/bits/locale_facets.h: In 
member function ‘void std::ctype<char>::_M_widen_init() const’:
/usr/lib/gcc/i586-mingw32msvc/4.2.1-sjlj/include/c++/bits/locale_facets.h:1168: 
error: ‘memcmp’ was not declared in this scope
/usr/lib/gcc/i586-mingw32msvc/4.2.1-sjlj/include/c++/bits/locale_facets.h: In 
member function ‘void std::ctype<char>::_M_narrow_init() const’:
/usr/lib/gcc/i586-mingw32msvc/4.2.1-sjlj/include/c++/bits/locale_facets.h:1183: 
error: ‘memcmp’ was not declared in this scope
address@hidden:~$ 





reply via email to

[Prev in Thread] Current Thread [Next in Thread]