diff mbox series

Hurd: Enable ifunc by default

Message ID 20201108225251.3195591-1-samuel.thibault@ens-lyon.org
State New
Headers show
Series Hurd: Enable ifunc by default | expand

Commit Message

Samuel Thibault Nov. 8, 2020, 10:52 p.m. UTC
The binutils bugs seem to have been fixed.

2020-11-08  Samuel Thibault  <samuel.thibault@ens-lyon.org>

	gcc/
	* config.gcc: Enable default_gnu_indirect_function in *-*-gnu*
	target (but not *-*-kfreebsd*-gnu | *-*-kopensolaris*-gnu).
---
 gcc/config.gcc | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

Comments

Samuel Thibault Nov. 21, 2020, 4:42 p.m. UTC | #1
Ping?

I was able to pass glibc's complete ifunc tests with no problem.

Samuel

Samuel Thibault, le dim. 08 nov. 2020 23:52:51 +0100, a ecrit:
> The binutils bugs seem to have been fixed.
> 
> 2020-11-08  Samuel Thibault  <samuel.thibault@ens-lyon.org>
> 
> 	gcc/
> 	* config.gcc: Enable default_gnu_indirect_function in *-*-gnu*
> 	target (but not *-*-kfreebsd*-gnu | *-*-kopensolaris*-gnu).
> ---
>  gcc/config.gcc | 4 +++-
>  1 file changed, 3 insertions(+), 1 deletion(-)
> 
> diff --git a/gcc/config.gcc b/gcc/config.gcc
> index b42ebc4e5be..a347c2cec7c 100644
> --- a/gcc/config.gcc
> +++ b/gcc/config.gcc
> @@ -3538,7 +3538,9 @@ esac
>  case ${target} in
>  *-*-linux*android*|*-*-linux*uclibc*|*-*-linux*musl*)
>          ;;
> -*-*-linux*)
> +*-*-kfreebsd*-gnu | *-*-kopensolaris*-gnu)
> +        ;;
> +*-*-linux* | *-*-gnu*)
>  	case ${target} in
>  	aarch64*-* | arm*-* | i[34567]86-* | powerpc*-* | s390*-* | sparc*-* | x86_64-*)
>  		default_gnu_indirect_function=yes
> -- 
> 2.20.1
>
Samuel Thibault Dec. 4, 2020, 11:19 p.m. UTC | #2
Ping?

Samuel Thibault, le dim. 08 nov. 2020 23:52:51 +0100, a ecrit:
> The binutils bugs seem to have been fixed.
> 
> 2020-11-08  Samuel Thibault  <samuel.thibault@ens-lyon.org>
> 
> 	gcc/
> 	* config.gcc: Enable default_gnu_indirect_function in *-*-gnu*
> 	target (but not *-*-kfreebsd*-gnu | *-*-kopensolaris*-gnu).
> ---
>  gcc/config.gcc | 4 +++-
>  1 file changed, 3 insertions(+), 1 deletion(-)
> 
> diff --git a/gcc/config.gcc b/gcc/config.gcc
> index b42ebc4e5be..a347c2cec7c 100644
> --- a/gcc/config.gcc
> +++ b/gcc/config.gcc
> @@ -3538,7 +3538,9 @@ esac
>  case ${target} in
>  *-*-linux*android*|*-*-linux*uclibc*|*-*-linux*musl*)
>          ;;
> -*-*-linux*)
> +*-*-kfreebsd*-gnu | *-*-kopensolaris*-gnu)
> +        ;;
> +*-*-linux* | *-*-gnu*)
>  	case ${target} in
>  	aarch64*-* | arm*-* | i[34567]86-* | powerpc*-* | s390*-* | sparc*-* | x86_64-*)
>  		default_gnu_indirect_function=yes
> -- 
> 2.20.1
Samuel Thibault Dec. 20, 2020, 11:10 p.m. UTC | #3
Ping?

Samuel Thibault, le dim. 08 nov. 2020 23:52:51 +0100, a ecrit:
> The binutils bugs seem to have been fixed.
> 
> 2020-11-08  Samuel Thibault  <samuel.thibault@ens-lyon.org>
> 
> 	gcc/
> 	* config.gcc: Enable default_gnu_indirect_function in *-*-gnu*
> 	target (but not *-*-kfreebsd*-gnu | *-*-kopensolaris*-gnu).
> ---
>  gcc/config.gcc | 4 +++-
>  1 file changed, 3 insertions(+), 1 deletion(-)
> 
> diff --git a/gcc/config.gcc b/gcc/config.gcc
> index b42ebc4e5be..a347c2cec7c 100644
> --- a/gcc/config.gcc
> +++ b/gcc/config.gcc
> @@ -3538,7 +3538,9 @@ esac
>  case ${target} in
>  *-*-linux*android*|*-*-linux*uclibc*|*-*-linux*musl*)
>          ;;
> -*-*-linux*)
> +*-*-kfreebsd*-gnu | *-*-kopensolaris*-gnu)
> +        ;;
> +*-*-linux* | *-*-gnu*)
>  	case ${target} in
>  	aarch64*-* | arm*-* | i[34567]86-* | powerpc*-* | s390*-* | sparc*-* | x86_64-*)
>  		default_gnu_indirect_function=yes
> -- 
> 2.20.1
>
Almudena Garcia Dec. 21, 2020, 12:05 a.m. UTC | #4
What do you need exactly? How can we test It?

El lun, 21 dic 2020 a las 0:11, Samuel Thibault (<samuel.thibault@gnu.org>)
escribió:

> Ping?
>
> Samuel Thibault, le dim. 08 nov. 2020 23:52:51 +0100, a ecrit:
> > The binutils bugs seem to have been fixed.
> >
> > 2020-11-08  Samuel Thibault  <samuel.thibault@ens-lyon.org>
> >
> >       gcc/
> >       * config.gcc: Enable default_gnu_indirect_function in *-*-gnu*
> >       target (but not *-*-kfreebsd*-gnu | *-*-kopensolaris*-gnu).
> > ---
> >  gcc/config.gcc | 4 +++-
> >  1 file changed, 3 insertions(+), 1 deletion(-)
> >
> > diff --git a/gcc/config.gcc b/gcc/config.gcc
> > index b42ebc4e5be..a347c2cec7c 100644
> > --- a/gcc/config.gcc
> > +++ b/gcc/config.gcc
> > @@ -3538,7 +3538,9 @@ esac
> >  case ${target} in
> >  *-*-linux*android*|*-*-linux*uclibc*|*-*-linux*musl*)
> >          ;;
> > -*-*-linux*)
> > +*-*-kfreebsd*-gnu | *-*-kopensolaris*-gnu)
> > +        ;;
> > +*-*-linux* | *-*-gnu*)
> >       case ${target} in
> >       aarch64*-* | arm*-* | i[34567]86-* | powerpc*-* | s390*-* |
> sparc*-* | x86_64-*)
> >               default_gnu_indirect_function=yes
> > --
> > 2.20.1
> >
>
>
Samuel Thibault Dec. 21, 2020, 12:14 a.m. UTC | #5
Almudena Garcia, le lun. 21 déc. 2020 01:05:29 +0100, a ecrit:
> What do you need exactly?

I need gcc people to apply it.

> How can we test It?

The answer would be lengthy. Basically recompile gcc with it, write or
find a program that uses it, and check that it works.

But I have already done that simply by letting glibc use ifunc, and it
does work, so there is nothing more to be done on the Hurd developers'
side.

Samuel
Samuel Thibault Jan. 10, 2021, 11:59 p.m. UTC | #6
Ping?

Samuel Thibault, le dim. 08 nov. 2020 23:52:51 +0100, a ecrit:
> The binutils bugs seem to have been fixed.
> 
> 2020-11-08  Samuel Thibault  <samuel.thibault@ens-lyon.org>
> 
> 	gcc/
> 	* config.gcc: Enable default_gnu_indirect_function in *-*-gnu*
> 	target (but not *-*-kfreebsd*-gnu | *-*-kopensolaris*-gnu).
> ---
>  gcc/config.gcc | 4 +++-
>  1 file changed, 3 insertions(+), 1 deletion(-)
> 
> diff --git a/gcc/config.gcc b/gcc/config.gcc
> index b42ebc4e5be..a347c2cec7c 100644
> --- a/gcc/config.gcc
> +++ b/gcc/config.gcc
> @@ -3538,7 +3538,9 @@ esac
>  case ${target} in
>  *-*-linux*android*|*-*-linux*uclibc*|*-*-linux*musl*)
>          ;;
> -*-*-linux*)
> +*-*-kfreebsd*-gnu | *-*-kopensolaris*-gnu)
> +        ;;
> +*-*-linux* | *-*-gnu*)
>  	case ${target} in
>  	aarch64*-* | arm*-* | i[34567]86-* | powerpc*-* | s390*-* | sparc*-* | x86_64-*)
>  		default_gnu_indirect_function=yes
> -- 
> 2.20.1
>
Thomas Schwinge Jan. 13, 2021, 11:14 a.m. UTC | #7
Hi!

Thanks (and sorry for the delay), pushed "Hurd: Enable ifunc by default"
to master branch in commit e9cb89b936f831a02318d45fc4ddb06f7be55ae4, and
cherry-picked into releases/gcc-10 branch in commit
92b131491c22eb4e4b663d226e9d97f1fd693063, releases/gcc-9 branch in commit
0313ce139f4ca3c96db9dc82125ec9e4a167a224, releases/gcc-8 branch in commit
975b0fa0f43e84bed3cb1b2b593132bc219f962c, see attached.


Grüße
 Thomas


-----------------
Mentor Graphics (Deutschland) GmbH, Arnulfstraße 201, 80634 München / Germany
Registergericht München HRB 106955, Geschäftsführer: Thomas Heurung, Alexander Walter
Joseph Myers Jan. 18, 2021, 8:05 p.m. UTC | #8
On Wed, 13 Jan 2021, Thomas Schwinge wrote:

> Hi!
> 
> Thanks (and sorry for the delay), pushed "Hurd: Enable ifunc by default"
> to master branch in commit e9cb89b936f831a02318d45fc4ddb06f7be55ae4, and
> cherry-picked into releases/gcc-10 branch in commit
> 92b131491c22eb4e4b663d226e9d97f1fd693063, releases/gcc-9 branch in commit
> 0313ce139f4ca3c96db9dc82125ec9e4a167a224, releases/gcc-8 branch in commit
> 975b0fa0f43e84bed3cb1b2b593132bc219f962c, see attached.

I'm not sure what toolchain component the underlying bug is in, but this 
GCC commit (verified in the releases/gcc-10 case) results in a glibc build 
failure for i686-gnu with build-many-glibcs.py.

https://sourceware.org/pipermail/libc-testresults/2021q1/007378.html

The error is:

/scratch/jmyers/glibc-bot/install/compilers/i686-gnu/lib/gcc/i686-glibc-gnu/11.0.0/../../../../i686-glibc-gnu/bin/ld: /scratch/jmyers/glibc-bot/build/compilers/i686-gnu/glibc/i686-gnu/elf/librtld.os: in function `hurd_file_name_lookup_retry':
(.text+0x1e08e): undefined reference to `strncpy'
collect2: error: ld returned 1 exit status
Makefile:584: recipe for target '/scratch/jmyers/glibc-bot/build/compilers/i686-gnu/glibc/i686-gnu/elf/ld.so' failed
make[3]: *** [/scratch/jmyers/glibc-bot/build/compilers/i686-gnu/glibc/i686-gnu/elf/ld.so] Error 1
Samuel Thibault Jan. 18, 2021, 8:25 p.m. UTC | #9
Hello,

Joseph Myers, le lun. 18 janv. 2021 20:05:44 +0000, a ecrit:
> On Wed, 13 Jan 2021, Thomas Schwinge wrote:
> > Thanks (and sorry for the delay), pushed "Hurd: Enable ifunc by default"
> > to master branch in commit e9cb89b936f831a02318d45fc4ddb06f7be55ae4, and
> > cherry-picked into releases/gcc-10 branch in commit
> > 92b131491c22eb4e4b663d226e9d97f1fd693063, releases/gcc-9 branch in commit
> > 0313ce139f4ca3c96db9dc82125ec9e4a167a224, releases/gcc-8 branch in commit
> > 975b0fa0f43e84bed3cb1b2b593132bc219f962c, see attached.
> 
> I'm not sure what toolchain component the underlying bug is in, but this 
> GCC commit (verified in the releases/gcc-10 case) results in a glibc build 
> failure for i686-gnu with build-many-glibcs.py.
> 
> https://sourceware.org/pipermail/libc-testresults/2021q1/007378.html
> 
> The error is:
> 
> /scratch/jmyers/glibc-bot/install/compilers/i686-gnu/lib/gcc/i686-glibc-gnu/11.0.0/../../../../i686-glibc-gnu/bin/ld: /scratch/jmyers/glibc-bot/build/compilers/i686-gnu/glibc/i686-gnu/elf/librtld.os: in function `hurd_file_name_lookup_retry':
> (.text+0x1e08e): undefined reference to `strncpy'

Ah, I believe I had tested that (which is precisely why I asked for that
commit to be done in gcc), but I'll have a look, thanks.

Samuel
diff mbox series

Patch

diff --git a/gcc/config.gcc b/gcc/config.gcc
index b42ebc4e5be..a347c2cec7c 100644
--- a/gcc/config.gcc
+++ b/gcc/config.gcc
@@ -3538,7 +3538,9 @@  esac
 case ${target} in
 *-*-linux*android*|*-*-linux*uclibc*|*-*-linux*musl*)
         ;;
-*-*-linux*)
+*-*-kfreebsd*-gnu | *-*-kopensolaris*-gnu)
+        ;;
+*-*-linux* | *-*-gnu*)
 	case ${target} in
 	aarch64*-* | arm*-* | i[34567]86-* | powerpc*-* | s390*-* | sparc*-* | x86_64-*)
 		default_gnu_indirect_function=yes