riscv: Do not use __has_include__

Message ID 87woi0up0l.fsf@oldenburg2.str.redhat.com
State New
Headers show
Series
  • riscv: Do not use __has_include__
Related show

Commit Message

Florian Weimer June 5, 2019, 1:42 p.m.
The user-visible preprocessor construct is called __has_include.

2019-06-05  Florian Weimer  <fweimer@redhat.com>

	* sysdeps/unix/sysv/linux/riscv/flush-icache.c: Do not use
	internal GCC preprocessor identifier __has_include__.

Comments

Palmer Dabbelt June 5, 2019, 5:49 p.m. | #1
On Wed, 05 Jun 2019 06:42:50 PDT (-0700), fweimer@redhat.com wrote:
> The user-visible preprocessor construct is called __has_include.

>

> 2019-06-05  Florian Weimer  <fweimer@redhat.com>

>

> 	* sysdeps/unix/sysv/linux/riscv/flush-icache.c: Do not use

> 	internal GCC preprocessor identifier __has_include__.

>

> diff --git a/sysdeps/unix/sysv/linux/riscv/flush-icache.c b/sysdeps/unix/sysv/linux/riscv/flush-icache.c

> index cd5c400977..f2dfcc50d0 100644

> --- a/sysdeps/unix/sysv/linux/riscv/flush-icache.c

> +++ b/sysdeps/unix/sysv/linux/riscv/flush-icache.c

> @@ -21,7 +21,7 @@

>  #include <stdlib.h>

>  #include <atomic.h>

>  #include <sys/cachectl.h>

> -#if __has_include__ (<asm/syscalls.h>)

> +#if __has_include (<asm/syscalls.h>)

>  # include <asm/syscalls.h>

>  #else

>  # include <asm/unistd.h>


Thanks!
Florian Weimer June 6, 2019, 7:58 a.m. | #2
* Palmer Dabbelt:

> On Wed, 05 Jun 2019 06:42:50 PDT (-0700), fweimer@redhat.com wrote:

>> The user-visible preprocessor construct is called __has_include.

>>

>> 2019-06-05  Florian Weimer  <fweimer@redhat.com>

>>

>> 	* sysdeps/unix/sysv/linux/riscv/flush-icache.c: Do not use

>> 	internal GCC preprocessor identifier __has_include__.

>>

>> diff --git a/sysdeps/unix/sysv/linux/riscv/flush-icache.c b/sysdeps/unix/sysv/linux/riscv/flush-icache.c

>> index cd5c400977..f2dfcc50d0 100644

>> --- a/sysdeps/unix/sysv/linux/riscv/flush-icache.c

>> +++ b/sysdeps/unix/sysv/linux/riscv/flush-icache.c

>> @@ -21,7 +21,7 @@

>>  #include <stdlib.h>

>>  #include <atomic.h>

>>  #include <sys/cachectl.h>

>> -#if __has_include__ (<asm/syscalls.h>)

>> +#if __has_include (<asm/syscalls.h>)

>>  # include <asm/syscalls.h>

>>  #else

>>  # include <asm/unistd.h>

>

> Thanks!


I'll consider this a review and push this later. 8-)

Florian
Yann Droneaud June 6, 2019, 12:17 p.m. | #3
Hi,

Le mercredi 05 juin 2019 à 15:42 +0200, Florian Weimer a écrit :
> The user-visible preprocessor construct is called __has_include.

> 

> 2019-06-05  Florian Weimer  <fweimer@redhat.com>

> 

> 	* sysdeps/unix/sysv/linux/riscv/flush-icache.c: Do not use

> 	internal GCC preprocessor identifier __has_include__.

> 

> diff --git a/sysdeps/unix/sysv/linux/riscv/flush-icache.c

> b/sysdeps/unix/sysv/linux/riscv/flush-icache.c

> index cd5c400977..f2dfcc50d0 100644

> --- a/sysdeps/unix/sysv/linux/riscv/flush-icache.c

> +++ b/sysdeps/unix/sysv/linux/riscv/flush-icache.c

> @@ -21,7 +21,7 @@

>  #include <stdlib.h>

>  #include <atomic.h>

>  #include <sys/cachectl.h>

> -#if __has_include__ (<asm/syscalls.h>)

> +#if __has_include (<asm/syscalls.h>)


Candidate for __glibc_has_include() ?

>  # include <asm/syscalls.h>

>  #else

>  # include <asm/unistd.h>


Regards.

-- 
Yann Droneaud
OPTEYA
Florian Weimer June 6, 2019, 12:28 p.m. | #4
* Yann Droneaud:

> Hi,

>

> Le mercredi 05 juin 2019 à 15:42 +0200, Florian Weimer a écrit :

>> The user-visible preprocessor construct is called __has_include.

>> 

>> 2019-06-05  Florian Weimer  <fweimer@redhat.com>

>> 

>> 	* sysdeps/unix/sysv/linux/riscv/flush-icache.c: Do not use

>> 	internal GCC preprocessor identifier __has_include__.

>> 

>> diff --git a/sysdeps/unix/sysv/linux/riscv/flush-icache.c

>> b/sysdeps/unix/sysv/linux/riscv/flush-icache.c

>> index cd5c400977..f2dfcc50d0 100644

>> --- a/sysdeps/unix/sysv/linux/riscv/flush-icache.c

>> +++ b/sysdeps/unix/sysv/linux/riscv/flush-icache.c

>> @@ -21,7 +21,7 @@

>>  #include <stdlib.h>

>>  #include <atomic.h>

>>  #include <sys/cachectl.h>

>> -#if __has_include__ (<asm/syscalls.h>)

>> +#if __has_include (<asm/syscalls.h>)

>

> Candidate for __glibc_has_include() ?


That patch hasn't been reviewed it.

Furthermore, we only need to use __glibc_has_include in public header
files.  Inside glibc itself, we can use __has_include directly because
GCC 5 has it.  I prefer to avoid unconditionally available GCC features
directly, without abstracing macros, because it reduces cognitive
overhead for the reader.

Thanks,
Florian

Patch

diff --git a/sysdeps/unix/sysv/linux/riscv/flush-icache.c b/sysdeps/unix/sysv/linux/riscv/flush-icache.c
index cd5c400977..f2dfcc50d0 100644
--- a/sysdeps/unix/sysv/linux/riscv/flush-icache.c
+++ b/sysdeps/unix/sysv/linux/riscv/flush-icache.c
@@ -21,7 +21,7 @@ 
 #include <stdlib.h>
 #include <atomic.h>
 #include <sys/cachectl.h>
-#if __has_include__ (<asm/syscalls.h>)
+#if __has_include (<asm/syscalls.h>)
 # include <asm/syscalls.h>
 #else
 # include <asm/unistd.h>