Newlib 1.8.1 problem: strcat causes bus address error

Chris Faylor cgf@cygnus.com
Tue Nov 30 23:39:00 GMT 1999


On Tue, Nov 16, 1999 at 01:31:35PM +0100, Borkhuis, Johan wrote:
>We are using the GNU toolchain for m68k and newlib. When we are running our
>SW we get a bus address error. This error occurs in strcat. The code where
>the problem comes from is the following:
>
>  /* Skip over the data in s1 as quickly as possible.  */
>  if (ALIGNED (s1))
>    {
>      unsigned long *aligned_s1 = (unsigned long *)s1;
>      while (!DETECTNULL (*aligned_s1))
>	aligned_s1++;
>
>      s1 = (char *)aligned_s1;
>    }
>
>with ALLIGNED replaced with the following:
>
>#define ALIGNED(X)   (((long)X & (sizeof (long) - 1)))
>
>The error occured in the first assignement, because s1 is not alligned.
>The problems is created by the macro ALLIGNED. When X is not a multiple of 4
>(for a 32 bit long) this function returns TRUE when it should return FALSE.
>(BTW: this macro is also used in other modules, but there it is called
>UNALLIGNED.)
>
>Did anyone discover this problem, or is there a workaround for this?

If I'm understanding your question correctly, you are attempting to use
newlib on an m68k target.  If that is the case, this has nothing to
do with cygwin and is off-topic for this mailing list.

There is a newlib mailing list: newlib@sourceware.cygnus.com .
It is probably best to send your query there.

-Chris Faylor
-Cygwin Engineering Manager
-Cygnus Solutions

--
Want to unsubscribe from this list?
Send a message to cygwin-unsubscribe@sourceware.cygnus.com



More information about the Cygwin mailing list