bug-make
[Top][All Lists]
Advanced

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

Re: CVS psmith make: Whoops; configure wasn't looking for memmove.


From: Paul D. Smith
Subject: Re: CVS psmith make: Whoops; configure wasn't looking for memmove.
Date: Mon, 9 Sep 2002 22:28:34 -0400

%% Soren A <address@hidden> writes:

  sa> Yes, and because of that, build on Win32-ish was failing; but also
  sa> you need to have configure check for bcopy(), because bcopy()
  sa> isn't there on Win32- Gnu-ish platforms (I have been told it is
  sa> part of GlibC, but Cygwin, etc are based on Newlib, not GlibC).

I don't understand this.  If bcopy() isn't there and memmove() is (which
wasn't being checked but now will be) then the code in make.h as-is
works.

Doesn't it?

  sa> A part of <make.h> needs to be rewritten because it appears that
  sa> at some point an ad-hoc (?) addition was made to try to deal with
  sa> lack of bcopy(), but was done not properly, by getting into
  sa> configure and making the needed changes there.

I looked at the diffs (thanks) and this is the only one in make.h:

  -# if defined(HAVE_MEMMOVE) && !defined(bcopy)
  +# if ! defined(HAVE_BCOPY)
   #  define bcopy(s, d, n)    memmove ((d), (s), (n))
   # endif

I don't think this is correct--or at least not more correct than the
current behavior.

The current behavior says "if we have memmove() and bcopy() is not a
macro (because some systems define it as a macro and in that case if we
redefine it we will get an error) then define bcopy() as a macro that
invokes memmove()".

I believe this is correct, even on MINGW systems.

Your change says "if configure can't find a bcopy(), then define it to
be memmove()".

I think the only practical difference (except for weird cases where
configure can't find bcopy() but it does end up being defined as a macro
in the actual build, where your change would fail--but I doubt that
would happen in real life) is that the original prefers memmove() if
it exists, and your change prefers bcopy() if it exists.

-- 
-------------------------------------------------------------------------------
 Paul D. Smith <address@hidden>          Find some GNU make tips at:
 http://www.gnu.org                      http://make.paulandlesley.org
 "Please remain calm...I may be mad, but I am a professional." --Mad Scientist




reply via email to

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