Fix MIPS build failure caused by -Werror=undef

Message ID 04dee4c5-a06d-447e-8174-ab39f52a4b48@BAMAIL02.ba.imgtec.org
State Committed
Headers

Commit Message

Steve Ellcey Feb. 14, 2015, 12:06 a.m. UTC
  The recent change to use -Werror=undef on assembly language files
caused a build failure on MIPS.  GCC defines __MIPSEB only in
big-endian mode and leaves it undefined in little endian mode (where
it defines __MIPSEL instead).

Is the following patch OK for checkin?

Tested with mips-mti-linux-gnu.

Steve Ellcey
sellcey@imgtec.com



2015-02-13  Steve Ellcey  <sellcey@imgtec.com>

	* sysdeps/mips/bits/endian.h (__MIPSEB): Use #ifdef instead of #if.
	* sysdeps/mips/memcpy.S (__MIPSEB): Ditto.
	* sysdeps/mips/memset.S (__MIPSEB): Ditto.
  

Comments

Joseph Myers Feb. 14, 2015, 12:51 a.m. UTC | #1
On Fri, 13 Feb 2015, Steve Ellcey  wrote:

> The recent change to use -Werror=undef on assembly language files
> caused a build failure on MIPS.  GCC defines __MIPSEB only in
> big-endian mode and leaves it undefined in little endian mode (where
> it defines __MIPSEL instead).
> 
> Is the following patch OK for checkin?

OK.
  
Maciej W. Rozycki Feb. 14, 2015, 2:33 p.m. UTC | #2
On Fri, 13 Feb 2015, Steve Ellcey  wrote:

> The recent change to use -Werror=undef on assembly language files
> caused a build failure on MIPS.  GCC defines __MIPSEB only in
> big-endian mode and leaves it undefined in little endian mode (where
> it defines __MIPSEL instead).
[...]
> 2015-02-13  Steve Ellcey  <sellcey@imgtec.com>
> 
> 	* sysdeps/mips/bits/endian.h (__MIPSEB): Use #ifdef instead of #if.
> 	* sysdeps/mips/memcpy.S (__MIPSEB): Ditto.
> 	* sysdeps/mips/memset.S (__MIPSEB): Ditto.
> 
> 
> diff --git a/sysdeps/mips/bits/endian.h b/sysdeps/mips/bits/endian.h
> index 9586104..43ce009 100644
> --- a/sysdeps/mips/bits/endian.h
> +++ b/sysdeps/mips/bits/endian.h
> @@ -5,7 +5,7 @@
>  # error "Never use <bits/endian.h> directly; include <endian.h> instead."
>  #endif
>  
> -#if __MIPSEB
> +#ifdef __MIPSEB
>  # define __BYTE_ORDER __BIG_ENDIAN
>  #endif
>  #if __MIPSEL

   ^^^^^^^^^^^^
 Don't we need a complementing change for __MIPSEL here then too?

  Maciej
  

Patch

diff --git a/sysdeps/mips/bits/endian.h b/sysdeps/mips/bits/endian.h
index 9586104..43ce009 100644
--- a/sysdeps/mips/bits/endian.h
+++ b/sysdeps/mips/bits/endian.h
@@ -5,7 +5,7 @@ 
 # error "Never use <bits/endian.h> directly; include <endian.h> instead."
 #endif
 
-#if __MIPSEB
+#ifdef __MIPSEB
 # define __BYTE_ORDER __BIG_ENDIAN
 #endif
 #if __MIPSEL
diff --git a/sysdeps/mips/memcpy.S b/sysdeps/mips/memcpy.S
index fcd7c03..715abcf 100644
--- a/sysdeps/mips/memcpy.S
+++ b/sysdeps/mips/memcpy.S
@@ -225,7 +225,7 @@ 
 #ifdef USE_DOUBLE
 # define C_ST	sd
 # define C_LD	ld
-# if __MIPSEB
+# ifdef __MIPSEB
 #  define C_LDHI	ldl	/* high part is left in big-endian	*/
 #  define C_STHI	sdl	/* high part is left in big-endian	*/
 #  define C_LDLO	ldr	/* low part is right in big-endian	*/
@@ -240,7 +240,7 @@ 
 #else
 # define C_ST	sw
 # define C_LD	lw
-# if __MIPSEB
+# ifdef __MIPSEB
 #  define C_LDHI	lwl	/* high part is left in big-endian	*/
 #  define C_STHI	swl	/* high part is left in big-endian	*/
 #  define C_LDLO	lwr	/* low part is right in big-endian	*/
@@ -767,7 +767,7 @@  L(ua_smallCopy_loop):
 
 #else /* R6_CODE */
 
-# if __MIPSEB
+# ifdef __MIPSEB
 #  define SWAP_REGS(X,Y) X, Y
 #  define ALIGN_OFFSET(N) (N)
 # else
diff --git a/sysdeps/mips/memset.S b/sysdeps/mips/memset.S
index 0a9b5ca..940a225 100644
--- a/sysdeps/mips/memset.S
+++ b/sysdeps/mips/memset.S
@@ -170,14 +170,14 @@ 
 
 #ifdef USE_DOUBLE
 # define C_ST	sd
-# if __MIPSEB
+# ifdef __MIPSEB
 #  define C_STHI	sdl	/* high part is left in big-endian	*/
 # else
 #  define C_STHI	sdr	/* high part is right in little-endian	*/
 # endif
 #else
 # define C_ST	sw
-# if __MIPSEB
+# ifdef __MIPSEB
 #  define C_STHI	swl	/* high part is left in big-endian	*/
 # else
 #  define C_STHI	swr	/* high part is right in little-endian	*/