Hi Mark,

On Tue, Dec 9, 2025 at 8:10 AM Mark Wielaard <[email protected]> wrote:
>
> On Mon, Dec 08, 2025 at 08:48:54PM -0500, Aaron Merey wrote:
> > Currently we check for openat2 RESOLVE_IN_ROOT support using
> > AC_LINK_IFELSE.  HAVE_OPENAT2_RESOLVE_IN_ROOT is defined when
> > AC_LINK_IFELSE succeeds.
> >
> > It is possible for openat2 and RESOLVE_IN_ROOT to be
> > present in headers but the kernel does not implement it.  In this case
> > AC_LINK_IFELSE succeeds and HAVE_OPENAT2_RESOLVE_IN_ROOT is defined,
> > but openat2 calls using RESOLVE_IN_ROOT always fail with ENOSYS for
> > instance.
> >
> > Fix this by using AC_RUN_IFELSE instead of AC_LINK_IFELSE when
> > determining whether to define HAVE_OPENAT2_RESOLVE_IN_ROOT.
>
> I agree with Arnout in the other thread that this is probably not
> needed here. There is already fallback code in both link_map and
> dwfl_segment_report_module there is a check for enosys to then use
> reguar open. Is that not working as intended?

(I discussed this with Mark off-list but I'll repeat here): I prefer
to avoid building with HAVE_OPENAT2_RESOLVE_IN_ROOT if we know at
build time that it's not supported. OTOH I'm not opposed to just
sticking with the existing runtime checks.

Aaron

Reply via email to