Fix -Wundef warning on PAGE_COPY_THRESHOLD

Message ID 20140701122057.GA14888@spoyarek.pnq.redhat.com
State Superseded
Headers

Commit Message

Siddhesh Poyarekar July 1, 2014, 12:20 p.m. UTC
  The PAGE_COPY_THRESHOLD macro is meant to be overridden by
architecture-specific pagecopy.h, but it is currently done only by
mach; all other architectures use the default.  Check to see if the
macro is defined in addition to whether it is set to a non-zero value.

Verified that the generated code is unchanged on x86_64.

Siddhesh

	* sysdeps/generic/pagecopy.h: Also check if
	PAGE_COPY_THRESHOLD is defined.

---
 sysdeps/generic/pagecopy.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
  

Comments

Ondrej Bilka July 1, 2014, 12:32 p.m. UTC | #1
On Tue, Jul 01, 2014 at 05:50:57PM +0530, Siddhesh Poyarekar wrote:
> The PAGE_COPY_THRESHOLD macro is meant to be overridden by
> architecture-specific pagecopy.h, but it is currently done only by
> mach; all other architectures use the default.  Check to see if the
> macro is defined in addition to whether it is set to a non-zero value.
> 
> Verified that the generated code is unchanged on x86_64.
> 
> Siddhesh
> 
> 	* sysdeps/generic/pagecopy.h: Also check if
> 	PAGE_COPY_THRESHOLD is defined.
> 
> ---
>  sysdeps/generic/pagecopy.h | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/sysdeps/generic/pagecopy.h b/sysdeps/generic/pagecopy.h
> index 2c35b71..2862270 100644
> --- a/sysdeps/generic/pagecopy.h
> +++ b/sysdeps/generic/pagecopy.h
> @@ -39,7 +39,7 @@
>  */
>  
>  
> -#if PAGE_COPY_THRESHOLD
> +#if defined PAGE_COPY_THRESHOLD && PAGE_COPY_THRESHOLD
>  
>  #include <assert.h>
>  
> -- 
> 1.9.3
> 

looks ok.
  
Roland McGrath July 1, 2014, 4:23 p.m. UTC | #2
This is not the way to do this.

Really the contents of pagecopy.h should move to memcopy.h, and
generic/pagecopy.h should do nothing but #define PAGE_COPY_THRESHOLD 0.
  
Siddhesh Poyarekar July 1, 2014, 4:59 p.m. UTC | #3
On Tue, Jul 01, 2014 at 09:23:05AM -0700, Roland McGrath wrote:
> This is not the way to do this.
> 
> Really the contents of pagecopy.h should move to memcopy.h, and
> generic/pagecopy.h should do nothing but #define PAGE_COPY_THRESHOLD 0.

Can't we just get rid of pagecopy.h?  All it will do is result in a
arch-specific copy of memcopy.h instead of pagecopy.h.  We can use the
same #undef ... #define method we used for MEMCPY_OK_FOR_FWD_MEMMOVE
in the arch-specific header..

Siddhesh
  
Roland McGrath July 1, 2014, 5:47 p.m. UTC | #4
Generally memcopy.h is machine-specific while pagecopy.h is OS-specific.
Any scheme is OK with me if it follows typo-proof principles and means
that an OS-specific header can use #include_next and #undef+#define to
get all the rights bits without any source code duplication.
  

Patch

diff --git a/sysdeps/generic/pagecopy.h b/sysdeps/generic/pagecopy.h
index 2c35b71..2862270 100644
--- a/sysdeps/generic/pagecopy.h
+++ b/sysdeps/generic/pagecopy.h
@@ -39,7 +39,7 @@ 
 */
 
 
-#if PAGE_COPY_THRESHOLD
+#if defined PAGE_COPY_THRESHOLD && PAGE_COPY_THRESHOLD
 
 #include <assert.h>