Removed dln_a_out

a.out format is considered extinct nowadays.
This commit is contained in:
Nobuyoshi Nakada 2021-03-24 20:13:55 +09:00 committed by GitHub
parent 2dcbc6ef96
commit 1f08b0d18d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
Notes: git 2021-03-24 20:14:25 +09:00
Merged: https://github.com/ruby/ruby/pull/4317

Merged-By: nobu <nobu@ruby-lang.org>
5 changed files with 16 additions and 1069 deletions

View File

@ -1092,7 +1092,6 @@ main()
AC_LIBOBJ([langinfo]) AC_LIBOBJ([langinfo])
], ],
[mingw*], [ LIBS="-lshell32 -lws2_32 -liphlpapi -limagehlp -lshlwapi $LIBS" [mingw*], [ LIBS="-lshell32 -lws2_32 -liphlpapi -limagehlp -lshlwapi $LIBS"
ac_cv_header_a_out_h=no
ac_cv_header_pwd_h=no ac_cv_header_pwd_h=no
ac_cv_header_utime_h=no ac_cv_header_utime_h=no
ac_cv_header_sys_ioctl_h=no ac_cv_header_sys_ioctl_h=no
@ -1212,7 +1211,6 @@ dnl AC_HEADER_STDC has been checked in AC_USE_SYSTEM_EXTENSIONS
AC_HEADER_STDBOOL AC_HEADER_STDBOOL
AC_HEADER_SYS_WAIT AC_HEADER_SYS_WAIT
AC_CHECK_HEADERS(a.out.h)
AC_CHECK_HEADERS(atomic.h) AC_CHECK_HEADERS(atomic.h)
AC_CHECK_HEADERS(copyfile.h) AC_CHECK_HEADERS(copyfile.h)
AC_CHECK_HEADERS(direct.h) AC_CHECK_HEADERS(direct.h)
@ -2710,16 +2708,13 @@ main(int argc, char *argv[])
: "runtime section" && { : "runtime section" && {
dnl wheather use dln_a_out or not dnl wheather use dln_a_out or not
AC_ARG_WITH(dln-a-out, AC_ARG_WITH(dln-a-out,
AS_HELP_STRING([--with-dln-a-out], [use dln_a_out if possible]), AS_HELP_STRING([--with-dln-a-out], [dln_a_out is deprecated]),
[ [
AS_CASE([$withval], AS_CASE([$withval],
[yes], [ [yes], [
AS_IF([test "$enable_shared" = yes], [ AC_MSG_ERROR(dln_a_out no longer supported)
AC_MSG_ERROR(dln_a_out can not make shared library) ])
]) ])
with_dln_a_out=yes],
[
with_dln_a_out=no])], [with_dln_a_out=no])
AC_CACHE_CHECK(whether ELF binaries are produced, rb_cv_binary_elf, AC_CACHE_CHECK(whether ELF binaries are produced, rb_cv_binary_elf,
[AC_LINK_IFELSE([AC_LANG_PROGRAM([[]], [[]])],[ [AC_LINK_IFELSE([AC_LANG_PROGRAM([[]], [[]])],[
@ -2729,9 +2724,6 @@ rb_cv_binary_elf=no)])
AS_IF([test "$rb_cv_binary_elf" = yes], [ AS_IF([test "$rb_cv_binary_elf" = yes], [
AC_DEFINE(USE_ELF) AC_DEFINE(USE_ELF)
AS_IF([test "$with_dln_a_out" = yes], [
AC_MSG_ERROR(dln_a_out does not work with ELF)
])
AC_CHECK_HEADERS([elf.h elf_abi.h]) AC_CHECK_HEADERS([elf.h elf_abi.h])
AS_IF([test $ac_cv_header_elf_h = yes -o $ac_cv_header_elf_abi_h = yes], [ AS_IF([test $ac_cv_header_elf_h = yes -o $ac_cv_header_elf_abi_h = yes], [
AC_LIBOBJ([addr2line]) AC_LIBOBJ([addr2line])
@ -2747,7 +2739,7 @@ AS_IF([test "$ac_cv_header_mach_o_loader_h" = yes], [
AS_CASE(["$target_os"], AS_CASE(["$target_os"],
[linux* | gnu* | k*bsd*-gnu | bsdi* | kopensolaris*-gnu], [ [linux* | gnu* | k*bsd*-gnu | bsdi* | kopensolaris*-gnu], [
AS_IF([test "$rb_cv_binary_elf" = no], [ AS_IF([test "$rb_cv_binary_elf" = no], [
with_dln_a_out=yes AC_MSG_ERROR(Not ELF)
], [ ], [
LDFLAGS="$LDFLAGS -rdynamic" LDFLAGS="$LDFLAGS -rdynamic"
])]) ])])
@ -2781,7 +2773,7 @@ AC_SUBST(ASMEXT, S)dnl
STATIC= STATIC=
AS_IF([test "$with_dln_a_out" != yes], [ : "dlopen" && {
rb_cv_dlopen=unknown rb_cv_dlopen=unknown
AC_MSG_CHECKING(whether OS depend dynamic link works) AC_MSG_CHECKING(whether OS depend dynamic link works)
AS_IF([test "$GCC" = yes], [ AS_IF([test "$GCC" = yes], [
@ -2806,8 +2798,9 @@ AS_IF([test "$with_dln_a_out" != yes], [
[esix*|uxpds*], [CCDLFLAGS="$CCDLFLAGS -KPIC"], [esix*|uxpds*], [CCDLFLAGS="$CCDLFLAGS -KPIC"],
[: ${CCDLFLAGS=""}]) [: ${CCDLFLAGS=""}])
]) ])
}
: "rpath" && {
AC_ARG_ENABLE(rpath, AC_ARG_ENABLE(rpath,
AS_HELP_STRING([--enable-rpath], [embed run path into extension libraries. AS_HELP_STRING([--enable-rpath], [embed run path into extension libraries.
enabled by default on ELF platforms]), enabled by default on ELF platforms]),
@ -2933,7 +2926,8 @@ AS_IF([test "$with_dln_a_out" != yes], [
RPATHFLAG=" ${rpathflag}%1\$-s" RPATHFLAG=" ${rpathflag}%1\$-s"
]) ])
]) ])
]) }
AS_IF([test "${LDSHAREDXX}" = ""], [ AS_IF([test "${LDSHAREDXX}" = ""], [
AS_CASE(["${LDSHARED}"], AS_CASE(["${LDSHARED}"],
[*'$(CC)'*], [ [*'$(CC)'*], [
@ -3063,33 +3057,7 @@ AC_ARG_WITH(valgrind,
AS_IF([test x$with_valgrind != xno], AS_IF([test x$with_valgrind != xno],
[AC_CHECK_HEADERS(valgrind/memcheck.h)]) [AC_CHECK_HEADERS(valgrind/memcheck.h)])
dln_a_out_works=no : "dlext & soext" && {
AS_IF([test "$ac_cv_header_a_out_h" = yes], [
AS_IF([test "$with_dln_a_out" = yes || test "$rb_cv_dlopen" = unknown], [
cat confdefs.h > config.h
AC_CACHE_CHECK(whether matz's dln works, rb_cv_dln_a_out,
[AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
#define USE_DLN_A_OUT
#include "dln.c"
]], [[]])],
rb_cv_dln_a_out=yes,
rb_cv_dln_a_out=no)])
AS_IF([test "$rb_cv_dln_a_out" = yes], [
dln_a_out_works=yes
AC_DEFINE(USE_DLN_A_OUT)
])
])
])
AS_IF([test "$dln_a_out_works" = yes], [
AS_IF([test "$GCC" = yes], [
STATIC=-static
], [
STATIC=-Bstatic
])
DLEXT=so
CCDLFLAGS=
], [
AS_CASE(["$target_os"], AS_CASE(["$target_os"],
[hpux*], [ [hpux*], [
DLEXT=sl], DLEXT=sl],
@ -3102,9 +3070,10 @@ AS_IF([test "$dln_a_out_works" = yes], [
DLEXT=so], DLEXT=so],
[ [
DLEXT=so]) DLEXT=so])
])
: ${SOEXT="${DLEXT}"} : ${SOEXT="${DLEXT}"}
AC_SUBST(SOEXT) AC_SUBST(SOEXT)
}
AS_IF([test "$rb_cv_dlopen:$load_relative" = yes:yes], [ AS_IF([test "$rb_cv_dlopen:$load_relative" = yes:yes], [
AS_IF([test "$ac_cv_func_dladdr" = yes], [ AS_IF([test "$ac_cv_func_dladdr" = yes], [
LOAD_RELATIVE=1 LOAD_RELATIVE=1
@ -3124,9 +3093,7 @@ test ".$DLEXT" = "." || AC_DEFINE_UNQUOTED(DLEXT, ".$DLEXT")
test ".$DLEXT2" = "." || AC_DEFINE_UNQUOTED(DLEXT2, ".$DLEXT2") test ".$DLEXT2" = "." || AC_DEFINE_UNQUOTED(DLEXT2, ".$DLEXT2")
AC_SUBST(DLEXT) AC_SUBST(DLEXT)
AS_IF([test "$with_dln_a_out" = yes], [ : "strip" && {
STRIP=true
], [
AC_MSG_CHECKING([for $STRIP flags]) AC_MSG_CHECKING([for $STRIP flags])
AC_LINK_IFELSE([AC_LANG_PROGRAM], [AS_IF( AC_LINK_IFELSE([AC_LANG_PROGRAM], [AS_IF(
["${STRIP}" -A -n conftest$ac_exeext 2>/dev/null], [ ["${STRIP}" -A -n conftest$ac_exeext 2>/dev/null], [
@ -3140,8 +3107,7 @@ AS_IF([test "$with_dln_a_out" = yes], [
AC_MSG_RESULT([none needed]) AC_MSG_RESULT([none needed])
]) ])
]) ])
]) }
AC_ARG_WITH(ext, AC_ARG_WITH(ext,
AS_HELP_STRING([--with-ext=EXTS], AS_HELP_STRING([--with-ext=EXTS],

1002
dln.c

File diff suppressed because it is too large Load Diff

5
dln.h
View File

@ -24,11 +24,6 @@ RUBY_SYMBOL_EXPORT_BEGIN
char *dln_find_exe_r(const char*,const char*,char*,size_t DLN_FIND_EXTRA_ARG_DECL); char *dln_find_exe_r(const char*,const char*,char*,size_t DLN_FIND_EXTRA_ARG_DECL);
char *dln_find_file_r(const char*,const char*,char*,size_t DLN_FIND_EXTRA_ARG_DECL); char *dln_find_file_r(const char*,const char*,char*,size_t DLN_FIND_EXTRA_ARG_DECL);
#ifdef USE_DLN_A_OUT
extern char *dln_argv0;
#endif
void *dln_load(const char*); void *dln_load(const char*);
RUBY_SYMBOL_EXPORT_END RUBY_SYMBOL_EXPORT_END

View File

@ -100,11 +100,6 @@ VALUE rb_require(const char*);
#include "ruby/intern.h" #include "ruby/intern.h"
#if defined(EXTLIB) && defined(USE_DLN_A_OUT)
/* hook for external modules */
static char *dln_libs_to_be_linked[] = { EXTLIB, 0 };
#endif
#define RUBY_VM 1 /* YARV */ #define RUBY_VM 1 /* YARV */
#define HAVE_NATIVETHREAD #define HAVE_NATIVETHREAD
int ruby_native_thread_p(void); int ruby_native_thread_p(void);

9
ruby.c
View File

@ -2554,12 +2554,6 @@ ruby_set_argv(int argc, char **argv)
int i; int i;
VALUE av = rb_argv; VALUE av = rb_argv;
#if defined(USE_DLN_A_OUT)
if (origarg.argc > 0 && origarg.argv)
dln_argv0 = origarg.argv[0];
else if (argc > 0 && argv)
dln_argv0 = argv[0];
#endif
rb_ary_clear(av); rb_ary_clear(av);
for (i = 0; i < argc; i++) { for (i = 0; i < argc; i++) {
VALUE arg = external_str_new_cstr(argv[i]); VALUE arg = external_str_new_cstr(argv[i]);
@ -2638,9 +2632,6 @@ ruby_sysinit(int *argc, char ***argv)
if (*argc >= 0 && *argv) { if (*argc >= 0 && *argv) {
origarg.argc = *argc; origarg.argc = *argc;
origarg.argv = *argv; origarg.argv = *argv;
#if defined(USE_DLN_A_OUT)
dln_argv0 = origarg.argv[0];
#endif
} }
fill_standard_fds(); fill_standard_fds();
} }