On Mon, Jan 20, 2020 at 3:46 PM H.J. Lu <hjl.to...@gmail.com> wrote: > > On Mon, Jan 20, 2020 at 6:41 AM Alexander Monakov <amona...@ispras.ru> wrote: > > > > > > > > On Mon, 20 Jan 2020, H.J. Lu wrote: > > > > > > Bare IFUNC's don't seem to have this restriction. Why do we want to > > > > constrain target clones this way? > > > > > > > > > > foo's resolver acts as foo. It should have the same visibility as foo. > > > > What do you mean by that? From the implementation standpoint, there's > > two symbols of different type with the same value. There's no problem > > allowing one of them have local binding and the other have global binding. > > > > Is there something special about target clones that doesn't come into > > play with ifuncs? > > > > I stand corrected. Resolver should be static and it shouldn't be weak.
Reading the patch again and looking up more context it seems that the resolver is already static we just mangle it extra when the original function is public (?) If so the patch looks quite obvious to me if we use some character not valid in indetifiers in C but valid in assembly for the resolver decl. Richard. > > -- > H.J.