https://gcc.gnu.org/bugzilla/show_bug.cgi?id=103866

            Bug ID: 103866
           Summary: AM_PROG_LIBTOOL not compatible with GCC_NO_EXECUTABLES
           Product: gcc
           Version: 12.0
            Status: UNCONFIRMED
          Keywords: build
          Severity: normal
          Priority: P3
         Component: libstdc++
          Assignee: unassigned at gcc dot gnu.org
          Reporter: redi at gcc dot gnu.org
  Target Milestone: ---

The libtool setup in the top-level libtool.m4 has this snippet in
LT_SYS_DLOPEN_SELF:

  *)
    AC_CHECK_FUNC([shl_load],
          [lt_cv_dlopen="shl_load"],
      [AC_CHECK_LIB([dld], [shl_load],
            [lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-ldld"],
        [AC_CHECK_FUNC([dlopen],
              [lt_cv_dlopen="dlopen"],
          [AC_CHECK_LIB([dl], [dlopen],
                [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"],
            [AC_CHECK_LIB([svld], [dlopen],
                  [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld"],
              [AC_CHECK_LIB([dld], [dld_link],
                    [lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-ldld"])
              ])
            ])
          ])
        ])
      ])
    ;;

This can fail if GCC_NO_EXECUTABLES has been used, e.g. for a mips-none-elf
cross-compiler (see Bug 100057 comment 33, but ignore all the other comments
there).

It looks like --disable-dlopen will avoid that snippet, but should that be
necessary if --disable-shared has been used? If it can't depend on
--disable-shared, is there some other flag we can use to infer that the user
doesn't want/need those checks for a bare metal build?

Reply via email to