Help compiling gnu commonc++2

Claudio Bley bley@CS.uni-magdeburg.de
Thu Mar 4 01:44:00 GMT 2004


On Wed, Mar 03, 2004 at 05:36:45PM -0700, Jason.Majors@metriscompanies.com wrote:
> I'm trying to compile commonc++2-1.1.0 on AIX 4.3.2 using g++ 2.95.3 (the 
> latest we can get here unfortunately).
> 
> I get this error message:
> /usr/include/strings.h:60: declaration of C function `void memcpy(void *, 
> const void *, long unsigned int)' conflicts with
> /usr/local/lib/gcc-lib/powerpc-ibm-aix4.3.2.0/2.95.3/include/string.h:92: 
> previous declaration `void * memcpy(void *, const void *, long unsigned 
> int)' here
> ...
> .../straits.h: In function `static char *
> string_char_traits<char>::copy(char *, const char *, long unsigned int)':
> .../straits.h:127: cannot convert `memcpy(s1, s2, n)' from type `void' to
> type `char *'
> 
> However line 60 of strings.h is this:
> extern void bcopy(const void *, void *, size_t);
> 
> Does anybody know what's wrong, or have an idea on how I can get around
> this and get it to compile?
> Why would bcopy override the declaration of memcpy?

I'd guess because bcopy is deprecated that someone wrote up a macro like

#define bcopy(x, y, z)  memcpy(y, x, z)

Use "gcc -E -dD <source-file>" and have a look at the output to find out if
that is the case and where it gets defined. Just remove it or make sure that
it gets #undef'd before including <strings.h>.

-- 
Claudio Bley                                 ASCII ribbon campaign (")
Debian GNU/Linux user                         - against HTML email  X 
http://www.cs.uni-magdeburg.de/~bley/                     & vCards / \



More information about the Gcc-help mailing list