* cdemo/configure.in: renamed AM_PROG_LIBTOOL to AC_PROG_LIBTOOL

* demo/configure.in: likewise
* depdemo/configure.in: likewise
* libltdl/configure.in: likewise
* mdemo/configure.in: likewise
* libltdl/ltdl.c: in find_module() check whether libdir is defined,
  tryall_dlopen(): move deallocation of an already opened handle
  to lt_dlopen(), allocate the directory in lt_dlopen() dynamically,
  minor cleanups, fixed memory leak (name)
* libtool.m4: renamed all AM_ macros to AC_ and added aliases for
  compatibilty, updated AC_SYS_NM_PARSE (no undefined symbols,
  don't count the symbols)
* ltconfig.in: added thread_safe_flag_spec (not used yet),
  added generic variable for linker options "linkopts" in
  all archive_cmds
* ltmain.in: added -thread-safe flag (unused)
This commit is contained in:
Thomas Tanner 1999-01-27 00:49:06 +00:00
parent 880755c68b
commit a5f6b87d4a
10 changed files with 223 additions and 166 deletions

View File

@ -1,3 +1,22 @@
1999-01-27 Thomas Tanner <tanner@gmx.de>
* cdemo/configure.in: renamed AM_PROG_LIBTOOL to AC_PROG_LIBTOOL
* demo/configure.in: likewise
* depdemo/configure.in: likewise
* libltdl/configure.in: likewise
* mdemo/configure.in: likewise
* libltdl/ltdl.c: in find_module() check whether libdir is defined,
tryall_dlopen(): move deallocation of an already opened handle
to lt_dlopen(), allocate the directory in lt_dlopen() dynamically,
minor cleanups, fixed memory leak (name)
* libtool.m4: renamed all AM_ macros to AC_ and added aliases for
compatibilty, updated AC_SYS_NM_PARSE (no undefined symbols,
don't count the symbols)
* ltconfig.in: added thread_safe_flag_spec (not used yet),
added generic variable for linker options "linkopts" in
all archive_cmds
* ltmain.in: added -thread-safe flag (unused)
1999-01-26 Alexandre Oliva <oliva@dcc.unicamp.br> 1999-01-26 Alexandre Oliva <oliva@dcc.unicamp.br>
* ltconfig.in (LTCONFIG_VERSION): damn!, adding TIMESTAMP doesn't * ltconfig.in (LTCONFIG_VERSION): damn!, adding TIMESTAMP doesn't

View File

@ -4,7 +4,7 @@ AM_INIT_AUTOMAKE(cdemo,0.1)
AC_PROG_CC AC_PROG_CC
AC_EXEEXT AC_EXEEXT
AM_PROG_LIBTOOL AC_PROG_LIBTOOL
AC_CHECK_HEADERS(math.h) AC_CHECK_HEADERS(math.h)

View File

@ -5,7 +5,7 @@ AM_INIT_AUTOMAKE(hell,1.0)
AC_PROG_CC AC_PROG_CC
AC_C_CONST AC_C_CONST
AC_EXEEXT AC_EXEEXT
AM_PROG_LIBTOOL AC_PROG_LIBTOOL
if ${CONFIG_SHELL} ./libtool --features | grep "enable static" >/dev/null; then if ${CONFIG_SHELL} ./libtool --features | grep "enable static" >/dev/null; then
STATIC=-static STATIC=-static

View File

@ -4,7 +4,7 @@ AM_INIT_AUTOMAKE(depdemo,0.1)
AC_PROG_CC AC_PROG_CC
AC_EXEEXT AC_EXEEXT
AM_PROG_LIBTOOL AC_PROG_LIBTOOL
AC_CHECK_HEADERS(math.h) AC_CHECK_HEADERS(math.h)

View File

@ -21,7 +21,7 @@ AC_SUBST(NOINSTLIBS)
AC_PROG_CC AC_PROG_CC
AC_C_CONST AC_C_CONST
AC_C_INLINE AC_C_INLINE
AM_PROG_LIBTOOL AC_PROG_LIBTOOL
AC_SUBST(LIBTOOL_DEPS) AC_SUBST(LIBTOOL_DEPS)
AC_CACHE_CHECK([which extension is used for shared libraries], AC_CACHE_CHECK([which extension is used for shared libraries],
@ -112,7 +112,7 @@ if test "$test_dlerror" = yes; then
LIBS="$LIBS_SAVE" LIBS="$LIBS_SAVE"
fi fi
AM_SYS_SYMBOL_UNDERSCORE AC_SYS_SYMBOL_UNDERSCORE
if test x"$USE_SYMBOL_UNDERSCORE" = xyes; then if test x"$USE_SYMBOL_UNDERSCORE" = xyes; then
if test x"$ac_cv_func_dlopen" = xyes || if test x"$ac_cv_func_dlopen" = xyes ||
test x"$ac_cv_lib_dl_dlopen" = xyes ; then test x"$ac_cv_lib_dl_dlopen" = xyes ; then

View File

@ -114,7 +114,7 @@ typedef struct lt_dlhandle_t {
char *name; /* module name */ char *name; /* module name */
int usage; /* usage */ int usage; /* usage */
int depcount; /* number of dependencies */ int depcount; /* number of dependencies */
lt_dlhandle *deps; /* dependencies */ lt_dlhandle *deplibs; /* dependencies */
lt_ptr_t handle; /* system handle */ lt_ptr_t handle; /* system handle */
lt_ptr_t system; /* system specific data */ lt_ptr_t system; /* system specific data */
} lt_dlhandle_t; } lt_dlhandle_t;
@ -769,7 +769,6 @@ tryall_dlopen (handle, filename)
cur = cur->next; cur = cur->next;
if (cur) { if (cur) {
cur->usage++; cur->usage++;
free(*handle);
*handle = cur; *handle = cur;
return 0; return 0;
} }
@ -813,7 +812,7 @@ find_module (handle, dir, libdir, dlname, old_name, installed)
/* try to open the dynamic library */ /* try to open the dynamic library */
if (dlname) { if (dlname) {
/* try to open the installed module */ /* try to open the installed module */
if (installed && if (installed && libdir &&
strlen(libdir)+1+strlen(dlname) < LTDL_FILENAME_MAX) { strlen(libdir)+1+strlen(dlname) < LTDL_FILENAME_MAX) {
strcpy(filename, libdir); strcpy(filename, libdir);
strcat(filename, "/"); strcat(filename, "/");
@ -847,7 +846,7 @@ static lt_ptr_t
find_file (basename, search_path, pdir, handle) find_file (basename, search_path, pdir, handle)
const char *basename; const char *basename;
const char *search_path; const char *search_path;
char *pdir; char **pdir;
lt_dlhandle *handle; lt_dlhandle *handle;
{ {
/* when handle != NULL search a library, otherwise a file */ /* when handle != NULL search a library, otherwise a file */
@ -896,8 +895,16 @@ find_file (basename, search_path, pdir, handle)
} else { } else {
file = fopen(filename, LTDL_READTEXT_MODE); file = fopen(filename, LTDL_READTEXT_MODE);
if (file) { if (file) {
if (*pdir)
free(*pdir);
filename[lendir] = '\0'; filename[lendir] = '\0';
strcpy(pdir, filename); *pdir = (char*) malloc(lendir + 1);
if (!*pdir) {
fclose(file);
last_error = memory_error;
return 0;
}
strcpy(*pdir, filename);
return (lt_ptr_t) file; return (lt_ptr_t) file;
} }
} }
@ -914,7 +921,7 @@ load_deplibs(handle, deplibs)
{ {
/* FIXME: load deplibs */ /* FIXME: load deplibs */
handle->depcount = 0; handle->depcount = 0;
handle->deps = 0; handle->deplibs = 0;
return 0; return 0;
} }
@ -952,12 +959,16 @@ trim (dest, s)
} }
static int static int
free_vars(dlname, oldname, libdir, deplibs) free_vars(dir, name, dlname, oldname, libdir, deplibs)
char *dir;
char *name;
char *dlname; char *dlname;
char *oldname; char *oldname;
char *libdir; char *libdir;
char *deplibs; char *deplibs;
{ {
free(dir);
free(name);
if (dlname) if (dlname)
free(dlname); free(dlname);
if (oldname) if (oldname)
@ -969,16 +980,14 @@ free_vars(dlname, oldname, libdir, deplibs)
return 0; return 0;
} }
lt_dlhandle lt_dlhandle
lt_dlopen (filename) lt_dlopen (filename)
const char *filename; const char *filename;
{ {
lt_dlhandle handle; lt_dlhandle handle, newhandle;
char dir[LTDL_FILENAME_MAX];
const char *basename, *ext; const char *basename, *ext;
const char *saved_error = last_error; const char *saved_error = last_error;
char *name = 0; char *dir = 0, *name = 0;
if (!filename) { if (!filename) {
last_error = file_not_found_error; last_error = file_not_found_error;
@ -989,8 +998,9 @@ lt_dlopen (filename)
basename++; basename++;
else else
basename = filename; basename = filename;
if (basename - filename >= LTDL_FILENAME_MAX) { dir = (char*) malloc(basename - filename + 1);
last_error = buffer_overflow_error; if (!dir) {
last_error = memory_error;
return 0; return 0;
} }
strncpy(dir, filename, basename - filename); strncpy(dir, filename, basename - filename);
@ -999,7 +1009,6 @@ lt_dlopen (filename)
ext = strrchr(basename, '.'); ext = strrchr(basename, '.');
if (ext && strcmp(ext, ".la") == 0) { if (ext && strcmp(ext, ".la") == 0) {
/* this seems to be a libtool module */ /* this seems to be a libtool module */
char tmp[LTDL_FILENAME_MAX];
FILE *file; FILE *file;
int i; int i;
char *dlname = 0, *old_name = 0; char *dlname = 0, *old_name = 0;
@ -1011,22 +1020,19 @@ lt_dlopen (filename)
int installed = 1; int installed = 1;
/* extract the module name from the file name */ /* extract the module name from the file name */
if (strlen(basename) >= sizeof(tmp)) { name = (char*) malloc(basename - ext + 1);
last_error = buffer_overflow_error; if (!name) {
last_error = memory_error;
free(dir);
return 0; return 0;
} }
/* canonicalize the module name */ /* canonicalize the module name */
for (i = 0; i < ext - basename; i++) for (i = 0; i < ext - basename; i++)
if (isalnum(basename[i])) if (isalnum(basename[i]))
tmp[i] = basename[i]; name[i] = basename[i];
else else
tmp[i] = '_'; name[i] = '_';
tmp[ext - basename] = '\0'; name[ext - basename] = '\0';
name = strdup(tmp);
if (!name) {
last_error = memory_error;
return 0;
}
/* now try to open the .la file */ /* now try to open the .la file */
file = fopen(filename, LTDL_READTEXT_MODE); file = fopen(filename, LTDL_READTEXT_MODE);
if (!file) if (!file)
@ -1035,44 +1041,47 @@ lt_dlopen (filename)
/* try other directories */ /* try other directories */
file = (FILE*) find_file(basename, file = (FILE*) find_file(basename,
user_search_path, user_search_path,
dir, 0); &dir, 0);
if (!file) if (!file)
file = (FILE*) find_file(basename, file = (FILE*) find_file(basename,
getenv("LTDL_LIBRARY_PATH"), getenv("LTDL_LIBRARY_PATH"),
dir, 0); &dir, 0);
#ifdef LTDL_SHLIBPATH_VAR #ifdef LTDL_SHLIBPATH_VAR
if (!file) if (!file)
file = (FILE*) find_file(basename, file = (FILE*) find_file(basename,
getenv(LTDL_SHLIBPATH_VAR), getenv(LTDL_SHLIBPATH_VAR),
dir, 0); &dir, 0);
#endif #endif
} }
if (!file) { if (!file) {
free(name); free(name);
free(dir);
return 0; return 0;
} }
/* read the .la file */ /* read the .la file */
while (!feof(file)) { while (!feof(file)) {
if (!fgets(tmp, sizeof(tmp), file)) char line[LTDL_FILENAME_MAX];
if (!fgets(line, sizeof(line), file))
break; break;
if (tmp[0] == '\n' || tmp[0] == '#') if (line[0] == '\n' || line[0] == '#')
continue; continue;
if (strncmp(tmp, "dlname=", 7) == 0) if (strncmp(line, "dlname=", 7) == 0)
error = trim(&dlname, &tmp[7]); error = trim(&dlname, &line[7]);
else else
if (strncmp(tmp, "old_library=", 12) == 0) if (strncmp(line, "old_library=", 12) == 0)
error = trim(&old_name, &tmp[12]); error = trim(&old_name, &line[12]);
else else
if (strncmp(tmp, "libdir=", 7) == 0) if (strncmp(line, "libdir=", 7) == 0)
error = trim(&libdir, &tmp[7]); error = trim(&libdir, &line[7]);
else else
if (strncmp(tmp, "dl_dependency_libs=", 20) == 0) if (strncmp(line, "dl_dependency_libs=", 20) == 0)
error = trim(&deplibs, &tmp[20]); error = trim(&deplibs, &line[20]);
else else
if (strcmp(tmp, "installed=yes\n") == 0) if (strcmp(line, "installed=yes\n") == 0)
installed = 1; installed = 1;
else else
if (strcmp(tmp, "installed=no\n") == 0) if (strcmp(line, "installed=no\n") == 0)
installed = 0; installed = 0;
if (error) if (error)
break; break;
@ -1085,13 +1094,14 @@ lt_dlopen (filename)
free(handle); free(handle);
if (!error) if (!error)
last_error = memory_error; last_error = memory_error;
free_vars(dlname, old_name, libdir, deplibs); free_vars(name, dir, dlname, old_name, libdir, deplibs);
free(name);
return 0; return 0;
} }
handle->usage = 0; handle->usage = 0;
if (load_deplibs(handle, deplibs) == 0) { if (load_deplibs(handle, deplibs) == 0) {
if (find_module(&handle, dir, libdir, newhandle = handle;
/* find_module may replace newhandle */
if (find_module(&newhandle, dir, libdir,
dlname, old_name, installed)) { dlname, old_name, installed)) {
unload_deplibs(handle); unload_deplibs(handle);
error = 1; error = 1;
@ -1100,18 +1110,27 @@ lt_dlopen (filename)
error = 1; error = 1;
if (error) { if (error) {
free(handle); free(handle);
free_vars(dlname, old_name, libdir, deplibs); free_vars(name, dir, dlname, old_name, libdir, deplibs);
free(name);
return 0; return 0;
} }
if (handle != newhandle) {
unload_deplibs(handle);
free(handle);
handle = newhandle;
}
} else { } else {
/* not a libtool module */ /* not a libtool module */
handle = (lt_dlhandle) malloc(sizeof(lt_dlhandle_t)); handle = (lt_dlhandle) malloc(sizeof(lt_dlhandle_t));
if (!handle) { if (!handle) {
last_error = memory_error; last_error = memory_error;
free(dir);
return 0; return 0;
} }
handle->usage = 0; handle->usage = 0;
/* non-libtool modules don't have dependencies */
handle->depcount = 0;
handle->deplibs = 0;
newhandle = handle;
if (tryall_dlopen(&handle, filename) && (!*dir if (tryall_dlopen(&handle, filename) && (!*dir
|| (find_file(basename, user_search_path, 0, &handle) || (find_file(basename, user_search_path, 0, &handle)
&& find_file(basename, getenv("LTDL_LIBRARY_PATH"), && find_file(basename, getenv("LTDL_LIBRARY_PATH"),
@ -1122,15 +1141,22 @@ lt_dlopen (filename)
#endif #endif
))) { ))) {
free(handle); free(handle);
free(dir);
return 0; return 0;
} }
if (handle != newhandle) {
free(handle);
handle = newhandle;
}
} }
if (!handle->usage) { if (!handle->usage) {
handle->usage = 1; handle->usage = 1;
handle->name = name; handle->name = name;
handle->next = handles; handle->next = handles;
handles = handle; handles = handle;
} } else if (name)
free(name);
free(dir);
last_error = saved_error; last_error = saved_error;
return handle; return handle;
} }

136
libtool.m4 vendored
View File

@ -21,19 +21,19 @@
## configuration script generated by Autoconf, you may include it under ## configuration script generated by Autoconf, you may include it under
## the same distribution terms that you use for the rest of that program. ## the same distribution terms that you use for the rest of that program.
# serial 30 AM_PROG_LIBTOOL # serial 30 AC_PROG_LIBTOOL
AC_DEFUN(AM_PROG_LIBTOOL, AC_DEFUN(AC_PROG_LIBTOOL,
[AC_PREREQ(2.12.2)dnl [AC_PREREQ(2.12.2)dnl
AC_REQUIRE([AM_ENABLE_SHARED])dnl AC_REQUIRE([AC_ENABLE_SHARED])dnl
AC_REQUIRE([AM_ENABLE_STATIC])dnl AC_REQUIRE([AC_ENABLE_STATIC])dnl
AC_REQUIRE([AC_CANONICAL_HOST])dnl AC_REQUIRE([AC_CANONICAL_HOST])dnl
AC_REQUIRE([AC_CANONICAL_BUILD])dnl AC_REQUIRE([AC_CANONICAL_BUILD])dnl
AC_REQUIRE([AC_PROG_RANLIB])dnl AC_REQUIRE([AC_PROG_RANLIB])dnl
AC_REQUIRE([AC_PROG_CC])dnl AC_REQUIRE([AC_PROG_CC])dnl
AC_REQUIRE([AM_PROG_LD])dnl AC_REQUIRE([AC_PROG_LD])dnl
AC_REQUIRE([AM_PROG_NM])dnl AC_REQUIRE([AC_PROG_NM])dnl
AC_REQUIRE([AM_SYS_NM_PARSE])dnl AC_REQUIRE([AC_SYS_NM_PARSE])dnl
AC_REQUIRE([AM_SYS_SYMBOL_UNDERSCORE])dnl AC_REQUIRE([AC_SYS_SYMBOL_UNDERSCORE])dnl
AC_REQUIRE([AC_PROG_LN_S])dnl AC_REQUIRE([AC_PROG_LN_S])dnl
dnl dnl
# Always use our own libtool. # Always use our own libtool.
@ -83,7 +83,7 @@ case "$host" in
;; ;;
*-*-cygwin32*) *-*-cygwin32*)
AM_SYS_LIBTOOL_CYGWIN32 AC_SYS_LIBTOOL_CYGWIN32
;; ;;
esac esac
@ -116,15 +116,15 @@ LIBTOOL_DEPS="$ac_aux_dir/ltconfig $ac_aux_dir/ltmain.sh"
exec 5>>./config.log exec 5>>./config.log
]) ])
# AM_ENABLE_SHARED - implement the --enable-shared flag # AC_ENABLE_SHARED - implement the --enable-shared flag
# Usage: AM_ENABLE_SHARED[(DEFAULT)] # Usage: AC_ENABLE_SHARED[(DEFAULT)]
# Where DEFAULT is either `yes' or `no'. If omitted, it defaults to # Where DEFAULT is either `yes' or `no'. If omitted, it defaults to
# `yes'. # `yes'.
AC_DEFUN(AM_ENABLE_SHARED, AC_DEFUN(AC_ENABLE_SHARED,
[define([AM_ENABLE_SHARED_DEFAULT], ifelse($1, no, no, yes))dnl [define([AC_ENABLE_SHARED_DEFAULT], ifelse($1, no, no, yes))dnl
AC_ARG_ENABLE(shared, AC_ARG_ENABLE(shared,
changequote(<<, >>)dnl changequote(<<, >>)dnl
<< --enable-shared[=PKGS] build shared libraries [default=>>AM_ENABLE_SHARED_DEFAULT], << --enable-shared[=PKGS] build shared libraries [default=>>AC_ENABLE_SHARED_DEFAULT],
changequote([, ])dnl changequote([, ])dnl
[p=${PACKAGE-default} [p=${PACKAGE-default}
case "$enableval" in case "$enableval" in
@ -142,26 +142,26 @@ no) enable_shared=no ;;
IFS="$ac_save_ifs" IFS="$ac_save_ifs"
;; ;;
esac], esac],
enable_shared=AM_ENABLE_SHARED_DEFAULT)dnl enable_shared=AC_ENABLE_SHARED_DEFAULT)dnl
]) ])
# AM_DISABLE_SHARED - set the default shared flag to --disable-shared # AC_DISABLE_SHARED - set the default shared flag to --disable-shared
AC_DEFUN(AM_DISABLE_SHARED, AC_DEFUN(AC_DISABLE_SHARED,
[AM_ENABLE_SHARED(no)]) [AC_ENABLE_SHARED(no)])
# AM_DISABLE_STATIC - set the default static flag to --disable-static # AC_DISABLE_STATIC - set the default static flag to --disable-static
AC_DEFUN(AM_DISABLE_STATIC, AC_DEFUN(AC_DISABLE_STATIC,
[AM_ENABLE_STATIC(no)]) [AC_ENABLE_STATIC(no)])
# AM_ENABLE_STATIC - implement the --enable-static flag # AC_ENABLE_STATIC - implement the --enable-static flag
# Usage: AM_ENABLE_STATIC[(DEFAULT)] # Usage: AC_ENABLE_STATIC[(DEFAULT)]
# Where DEFAULT is either `yes' or `no'. If omitted, it defaults to # Where DEFAULT is either `yes' or `no'. If omitted, it defaults to
# `yes'. # `yes'.
AC_DEFUN(AM_ENABLE_STATIC, AC_DEFUN(AC_ENABLE_STATIC,
[define([AM_ENABLE_STATIC_DEFAULT], ifelse($1, no, no, yes))dnl [define([AC_ENABLE_STATIC_DEFAULT], ifelse($1, no, no, yes))dnl
AC_ARG_ENABLE(static, AC_ARG_ENABLE(static,
changequote(<<, >>)dnl changequote(<<, >>)dnl
<< --enable-static[=PKGS] build static libraries [default=>>AM_ENABLE_STATIC_DEFAULT], << --enable-static[=PKGS] build static libraries [default=>>AC_ENABLE_STATIC_DEFAULT],
changequote([, ])dnl changequote([, ])dnl
[p=${PACKAGE-default} [p=${PACKAGE-default}
case "$enableval" in case "$enableval" in
@ -179,12 +179,12 @@ no) enable_static=no ;;
IFS="$ac_save_ifs" IFS="$ac_save_ifs"
;; ;;
esac], esac],
enable_static=AM_ENABLE_STATIC_DEFAULT)dnl enable_static=AC_ENABLE_STATIC_DEFAULT)dnl
]) ])
# AM_PROG_LD - find the path to the GNU or non-GNU linker # AC_PROG_LD - find the path to the GNU or non-GNU linker
AC_DEFUN(AM_PROG_LD, AC_DEFUN(AC_PROG_LD,
[AC_ARG_WITH(gnu-ld, [AC_ARG_WITH(gnu-ld,
[ --with-gnu-ld assume the C compiler uses GNU ld [default=no]], [ --with-gnu-ld assume the C compiler uses GNU ld [default=no]],
test "$withval" = no || with_gnu_ld=yes, with_gnu_ld=no) test "$withval" = no || with_gnu_ld=yes, with_gnu_ld=no)
@ -284,10 +284,10 @@ else
fi fi
test -z "$LD" && AC_MSG_ERROR([no acceptable ld found in \$PATH]) test -z "$LD" && AC_MSG_ERROR([no acceptable ld found in \$PATH])
AC_SUBST(LD) AC_SUBST(LD)
AM_PROG_LD_GNU AC_PROG_LD_GNU
]) ])
AC_DEFUN(AM_PROG_LD_GNU, AC_DEFUN(AC_PROG_LD_GNU,
[AC_CACHE_CHECK([if the linker ($LD) is GNU ld], ac_cv_prog_gnu_ld, [AC_CACHE_CHECK([if the linker ($LD) is GNU ld], ac_cv_prog_gnu_ld,
[# I'd rather use --version here, but apparently some GNU ld's only accept -v. [# I'd rather use --version here, but apparently some GNU ld's only accept -v.
if $LD -v 2>&1 </dev/null | egrep '(GNU|with BFD)' 1>&5; then if $LD -v 2>&1 </dev/null | egrep '(GNU|with BFD)' 1>&5; then
@ -297,8 +297,8 @@ else
fi]) fi])
]) ])
# AM_PROG_NM - find the path to a BSD-compatible name lister # AC_PROG_NM - find the path to a BSD-compatible name lister
AC_DEFUN(AM_PROG_NM, AC_DEFUN(AC_PROG_NM,
[AC_MSG_CHECKING([for BSD-compatible nm]) [AC_MSG_CHECKING([for BSD-compatible nm])
AC_CACHE_VAL(ac_cv_path_NM, AC_CACHE_VAL(ac_cv_path_NM,
[if test -n "$NM"; then [if test -n "$NM"; then
@ -332,11 +332,11 @@ AC_MSG_RESULT([$NM])
AC_SUBST(NM) AC_SUBST(NM)
]) ])
# AM_SYS_NM_PARSE - Check for command ro grab the raw symbol name followed # AC_SYS_NM_PARSE - Check for command ro grab the raw symbol name followed
# by C symbol name from nm. # by C symbol name from nm.
AC_DEFUN(AM_SYS_NM_PARSE, AC_DEFUN(AC_SYS_NM_PARSE,
[AC_REQUIRE([AC_CANONICAL_HOST])dnl [AC_REQUIRE([AC_CANONICAL_HOST])dnl
AC_REQUIRE([AM_PROG_NM])dnl AC_REQUIRE([AC_PROG_NM])dnl
# Check for command to grab the raw symbol name followed by C symbol from nm. # Check for command to grab the raw symbol name followed by C symbol from nm.
AC_MSG_CHECKING([command to parse $NM output]) AC_MSG_CHECKING([command to parse $NM output])
AC_CACHE_VAL(ac_cv_sys_global_symbol_pipe, AC_CACHE_VAL(ac_cv_sys_global_symbol_pipe,
@ -345,7 +345,7 @@ AC_CACHE_VAL(ac_cv_sys_global_symbol_pipe,
changequote(,)dnl changequote(,)dnl
# Character class describing NM global symbol codes. # Character class describing NM global symbol codes.
ac_symcode='[BCDEGRSTU]' ac_symcode='[BCDEGRST]'
# Regexp to match symbols that can be accessed directly from C. # Regexp to match symbols that can be accessed directly from C.
ac_sympat='\([_A-Za-z][_A-Za-z0-9]*\)' ac_sympat='\([_A-Za-z][_A-Za-z0-9]*\)'
@ -356,29 +356,23 @@ ac_symxfrm='\1 \1'
# Define system-specific variables. # Define system-specific variables.
case "$host_os" in case "$host_os" in
aix*) aix*)
ac_symcode='[BCDTU]' ac_symcode='[BCDT]'
;;
cygwin32* | mingw32*)
ac_symcode='[ABCDGISTW]'
;; ;;
irix*) irix*)
# Cannot use undefined symbols on IRIX because inlined functions mess us up.
ac_symcode='[BCDEGRST]' ac_symcode='[BCDEGRST]'
;; ;;
solaris*) solaris*)
ac_symcode='[BDTU]' ac_symcode='[BDT]'
;; ;;
esac esac
# If we're using GNU nm, then use its standard symbol codes. # If we're using GNU nm, then use its standard symbol codes.
if $NM -V 2>&1 | egrep '(GNU|with BFD)' > /dev/null; then if $NM -V 2>&1 | egrep '(GNU|with BFD)' > /dev/null; then
ac_symcode='[ABCDGISTUW]'
fi
case "$host_os" in
cygwin32* | mingw32*)
# We do not want undefined symbols on cygwin32. The user must
# arrange to define them via -l arguments.
ac_symcode='[ABCDGISTW]' ac_symcode='[ABCDGISTW]'
;; fi
esac
changequote([,])dnl changequote([,])dnl
# Try without a prefix undercore, then with it. # Try without a prefix undercore, then with it.
@ -386,11 +380,12 @@ for ac_symprfx in "" "_"; do
# Write the raw and C identifiers. # Write the raw and C identifiers.
# Unlike in ltconfig.in, we need $ac_symprfx before $ac_symxfrm here, # Unlike in ltconfig.in, we need $ac_symprfx before $ac_symxfrm here,
# otherwise AM_SYS_SYMBOL_UNDERSCORE will always be false # otherwise AC_SYS_SYMBOL_UNDERSCORE will always be false
ac_cv_sys_global_symbol_pipe="sed -n -e 's/^.* $ac_symcode $ac_symprfx$ac_sympat$/$ac_symprfx$ac_symxfrm/p'" ac_cv_sys_global_symbol_pipe="sed -n -e 's/^.* $ac_symcode $ac_symprfx$ac_sympat$/$ac_symprfx$ac_symxfrm/p'"
# Check to see that the pipe works correctly. # Check to see that the pipe works correctly.
ac_pipe_works=no ac_pipe_works=no
rm -f conftest.$ac_ext
cat > conftest.$ac_ext <<EOF cat > conftest.$ac_ext <<EOF
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C" {
@ -402,6 +397,7 @@ void nm_test_func(){}
#endif #endif
int main(){nm_test_var='a';nm_test_func;return 0;} int main(){nm_test_var='a';nm_test_func;return 0;}
EOF EOF
if AC_TRY_EVAL(ac_compile); then if AC_TRY_EVAL(ac_compile); then
# Now try to grab the symbols. # Now try to grab the symbols.
ac_nlist=conftest.nm ac_nlist=conftest.nm
@ -411,14 +407,8 @@ EOF
# Try sorting and uniquifying the output. # Try sorting and uniquifying the output.
if sort "$ac_nlist" | uniq > "$ac_nlist"T; then if sort "$ac_nlist" | uniq > "$ac_nlist"T; then
mv -f "$ac_nlist"T "$ac_nlist" mv -f "$ac_nlist"T "$ac_nlist"
ac_wcout=`wc "$ac_nlist" 2>/dev/null`
changequote(,)dnl
ac_count=`echo "X$ac_wcout" | sed -e 's,^X,,' -e 's/^[ ]*\([0-9][0-9]*\).*$/\1/'`
changequote([,])dnl
(test "$ac_count" -ge 0) 2>/dev/null || ac_count=-1
else else
rm -f "$ac_nlist"T rm -f "$ac_nlist"T
ac_count=-1
fi fi
# Make sure that we snagged all the symbols we need. # Make sure that we snagged all the symbols we need.
@ -438,18 +428,16 @@ EOF
# define lt_ptr_t void * # define lt_ptr_t void *
#else #else
# define lt_ptr_t char * # define lt_ptr_t char *
# define const
#endif #endif
/* The number of symbols in dld_preloaded_symbols, -1 if unsorted. */
int dld_preloaded_symbol_count = $ac_count;
/* The mapping between symbol names and symbols. */ /* The mapping between symbol names and symbols. */
struct { const struct {
char *name; const char *name;
lt_ptr_t address; lt_ptr_t address;
} }
changequote(,)dnl changequote(,)dnl
dld_preloaded_symbols[] = lt_preloaded_symbols[] =
changequote([,])dnl changequote([,])dnl
{ {
EOF EOF
@ -512,17 +500,17 @@ fi
AC_MSG_RESULT($ac_result) AC_MSG_RESULT($ac_result)
]) ])
# AM_SYS_LIBTOOL_CYGWIN32 - find tools needed on cygwin32 # AC_SYS_LIBTOOL_CYGWIN32 - find tools needed on cygwin32
AC_DEFUN(AM_SYS_LIBTOOL_CYGWIN32, AC_DEFUN(AC_SYS_LIBTOOL_CYGWIN32,
[AC_CHECK_TOOL(DLLTOOL, dlltool, false) [AC_CHECK_TOOL(DLLTOOL, dlltool, false)
AC_CHECK_TOOL(AS, as, false) AC_CHECK_TOOL(AS, as, false)
]) ])
# AM_SYS_SYMBOL_UNDERSCORE - does the compiler prefix global symbols # AC_SYS_SYMBOL_UNDERSCORE - does the compiler prefix global symbols
# with an underscore? # with an underscore?
AC_DEFUN(AM_SYS_SYMBOL_UNDERSCORE, AC_DEFUN(AC_SYS_SYMBOL_UNDERSCORE,
[AC_REQUIRE([AM_PROG_NM])dnl [AC_REQUIRE([AC_PROG_NM])dnl
AC_REQUIRE([AM_SYS_NM_PARSE])dnl AC_REQUIRE([AC_SYS_NM_PARSE])dnl
AC_MSG_CHECKING([for _ prefix in compiled symbols]) AC_MSG_CHECKING([for _ prefix in compiled symbols])
AC_CACHE_VAL(ac_cv_sys_symbol_underscore, AC_CACHE_VAL(ac_cv_sys_symbol_underscore,
[ac_cv_sys_symbol_underscore=no [ac_cv_sys_symbol_underscore=no
@ -557,3 +545,15 @@ AC_MSG_RESULT($ac_cv_sys_symbol_underscore)
USE_SYMBOL_UNDERSCORE=${ac_cv_sys_symbol_underscore=no} USE_SYMBOL_UNDERSCORE=${ac_cv_sys_symbol_underscore=no}
AC_SUBST(USE_SYMBOL_UNDERSCORE)dnl AC_SUBST(USE_SYMBOL_UNDERSCORE)dnl
]) ])
dnl old names
AC_DEFUN(AM_PROG_LIBTOOL, [indir([AC_PROG_LIBTOOL])])dnl
AC_DEFUN(AM_ENABLE_SHARED, [indir([AC_ENABLE_SHARED], $@)])dnl
AC_DEFUN(AM_ENABLE_STATIC, [indir([AC_ENABLE_STATIC], $@)])dnl
AC_DEFUN(AM_DISABLE_SHARED, [indir([AC_DISABLE_SHARED], $@)])dnl
AC_DEFUN(AM_DISABLE_STATIC, [indir([AC_DISABLE_STATIC], $@)])dnl
AC_DEFUN(AM_PROG_LD, [indir([AC_PROG_LD])])dnl
AC_DEFUN(AM_PROG_NM, [indir([AC_PROG_NM])])dnl
AC_DEFUN(AM_SYS_NM_PARSE, [indir([AC_SYS_NM_PARSE])])dnl
AC_DEFUN(AM_SYS_SYMBOL_UNDERSCORE, [indir([AC_SYS_SYMBOL_UNDERSCORE])])dnl
AC_DEFUN(AM_SYS_LIBTOOL_CYGWIN32, [indir([AC_SYS_LIBTOOL_CYGWIN32])])dnl

View File

@ -1004,6 +1004,7 @@ archive_sym_cmds=
old_archive_from_new_cmds= old_archive_from_new_cmds=
export_dynamic_flag_spec= export_dynamic_flag_spec=
whole_archive_flag_spec= whole_archive_flag_spec=
thread_safe_flag_spec=
hardcode_libdir_flag_spec= hardcode_libdir_flag_spec=
hardcode_libdir_separator= hardcode_libdir_separator=
hardcode_direct=no hardcode_direct=no
@ -1032,7 +1033,7 @@ if test "$with_gnu_ld" = yes; then
;; ;;
sunos4*) sunos4*)
archive_cmds='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs' archive_cmds='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linkopts'
wlarc= wlarc=
hardcode_direct=yes hardcode_direct=yes
hardcode_minus_L=yes hardcode_minus_L=yes
@ -1041,7 +1042,7 @@ if test "$with_gnu_ld" = yes; then
beos*) beos*)
if $LD --help 2>&1 | egrep ': supported targets:.* elf' > /dev/null; then if $LD --help 2>&1 | egrep ': supported targets:.* elf' > /dev/null; then
archive_cmds='$CC -nostart ${wl}-soname $wl$soname -o $lib $libobjs $deplibs' archive_cmds='$CC -nostart ${wl}-soname $wl$soname -o $lib $libobjs $deplibs $linkopts'
else else
ld_shlibs=no ld_shlibs=no
fi fi
@ -1060,22 +1061,22 @@ if test "$with_gnu_ld" = yes; then
(cd $objdir && $CC -c $soname-ltdll.c)~ (cd $objdir && $CC -c $soname-ltdll.c)~
echo EXPORTS > $objdir/$soname-def~ echo EXPORTS > $objdir/$soname-def~
$DLLTOOL --export-all --output-def $objdir/$soname-def $objdir/$soname-ltdll.$objext $libobjs~ $DLLTOOL --export-all --output-def $objdir/$soname-def $objdir/$soname-ltdll.$objext $libobjs~
$CC -Wl,--base-file,$objdir/$soname-base -Wl,--dll -nostartfiles -Wl,-e,__cygwin_dll_entry@12 -o $lib $objdir/$soname-ltdll.$objext $libobjs $deplibs~ $CC -Wl,--base-file,$objdir/$soname-base -Wl,--dll -nostartfiles -Wl,-e,__cygwin_dll_entry@12 -o $lib $objdir/$soname-ltdll.$objext $libobjs $deplibs $linkopts~
$DLLTOOL --as=$AS --dllname $soname --exclude-symbol=_cygwin_dll_entry@12 --def $objdir/$soname-def --base-file $objdir/$soname-base --output-exp $objdir/$soname-exp~ $DLLTOOL --as=$AS --dllname $soname --exclude-symbol=_cygwin_dll_entry@12 --def $objdir/$soname-def --base-file $objdir/$soname-base --output-exp $objdir/$soname-exp~
$CC -Wl,--base-file,$objdir/$soname-base $objdir/$soname-exp -Wl,--dll -nostartfiles -Wl,-e,__cygwin_dll_entry@12 -o $lib $objdir/$soname-ltdll.$objext $libobjs $deplibs~ $CC -Wl,--base-file,$objdir/$soname-base $objdir/$soname-exp -Wl,--dll -nostartfiles -Wl,-e,__cygwin_dll_entry@12 -o $lib $objdir/$soname-ltdll.$objext $libobjs $deplibs $linkopts~
$DLLTOOL --as=$AS --dllname $soname --exclude-symbol=_cygwin_dll_entry@12 --def $objdir/$soname-def --base-file $objdir/$soname-base --output-exp $objdir/$soname-exp~ $DLLTOOL --as=$AS --dllname $soname --exclude-symbol=_cygwin_dll_entry@12 --def $objdir/$soname-def --base-file $objdir/$soname-base --output-exp $objdir/$soname-exp~
$CC $objdir/$soname-exp -Wl,--dll -nostartfiles -Wl,-e,__cygwin_dll_entry@12 -o $lib $objdir/$soname-ltdll.$objext $libobjs $deplibs' $CC $objdir/$soname-exp -Wl,--dll -nostartfiles -Wl,-e,__cygwin_dll_entry@12 -o $lib $objdir/$soname-ltdll.$objext $libobjs $deplibs $linkopts'
archive_sym_cmds='rm -f $objdir/$soname-ltdll.c~ archive_sym_cmds='rm -f $objdir/$soname-ltdll.c~
sed -e "/^# \/\* ltdll.c starts here \*\//,/^# \/\* ltdll.c ends here \*\// { s/^# //; p; }" -e d < $0 > $objdir/$soname-ltdll.c~ sed -e "/^# \/\* ltdll.c starts here \*\//,/^# \/\* ltdll.c ends here \*\// { s/^# //; p; }" -e d < $0 > $objdir/$soname-ltdll.c~
(cd $objdir && $CC -c $soname-ltdll.c)~ (cd $objdir && $CC -c $soname-ltdll.c)~
echo EXPORTS > $objdir/$soname-def~ echo EXPORTS > $objdir/$soname-def~
cat "$export_symbols" >> $objdir/$soname-def~ cat "$export_symbols" >> $objdir/$soname-def~
$CC -Wl,--base-file,$objdir/$soname-base -Wl,--dll -nostartfiles -Wl,-e,__cygwin_dll_entry@12 -o $lib $objdir/$soname-ltdll.$objext $libobjs $deplibs~ $CC -Wl,--base-file,$objdir/$soname-base -Wl,--dll -nostartfiles -Wl,-e,__cygwin_dll_entry@12 -o $lib $objdir/$soname-ltdll.$objext $libobjs $deplibs $linkopts~
$DLLTOOL --as=$AS --dllname $soname --exclude-symbol=_cygwin_dll_entry@12 --def $objdir/$soname-def --base-file $objdir/$soname-base --output-exp $objdir/$soname-exp~ $DLLTOOL --as=$AS --dllname $soname --exclude-symbol=_cygwin_dll_entry@12 --def $objdir/$soname-def --base-file $objdir/$soname-base --output-exp $objdir/$soname-exp~
$CC -Wl,--base-file,$objdir/$soname-base $objdir/$soname-exp -Wl,--dll -nostartfiles -Wl,-e,__cygwin_dll_entry@12 -o $lib $objdir/$soname-ltdll.$objext $libobjs $deplibs~ $CC -Wl,--base-file,$objdir/$soname-base $objdir/$soname-exp -Wl,--dll -nostartfiles -Wl,-e,__cygwin_dll_entry@12 -o $lib $objdir/$soname-ltdll.$objext $libobjs $deplibs $linkopts~
$DLLTOOL --as=$AS --dllname $soname --exclude-symbol=_cygwin_dll_entry@12 --def $objdir/$soname-def --base-file $objdir/$soname-base --output-exp $objdir/$soname-exp~ $DLLTOOL --as=$AS --dllname $soname --exclude-symbol=_cygwin_dll_entry@12 --def $objdir/$soname-def --base-file $objdir/$soname-base --output-exp $objdir/$soname-exp~
$CC $objdir/$soname-exp -Wl,--dll -nostartfiles -Wl,-e,__cygwin_dll_entry@12 -o $lib $objdir/$soname-ltdll.$objext $libobjs $deplibs' $CC $objdir/$soname-exp -Wl,--dll -nostartfiles -Wl,-e,__cygwin_dll_entry@12 -o $lib $objdir/$soname-ltdll.$objext $libobjs $deplibs $linkopts'
old_archive_from_new_cmds='$DLLTOOL --as=$AS --dllname $soname --def $objdir/$soname-def --output-lib $objdir/$libname.a' old_archive_from_new_cmds='$DLLTOOL --as=$AS --dllname $soname --def $objdir/$soname-def --output-lib $objdir/$libname.a'
else else
@ -1089,7 +1090,7 @@ if test "$with_gnu_ld" = yes; then
# Tell ltmain to make .lib files, not .a files. # Tell ltmain to make .lib files, not .a files.
libext=lib libext=lib
# FIXME: Setting linknames here is a bad hack. # FIXME: Setting linknames here is a bad hack.
archive_cmds='$CC -o $lib $libobjs `echo "$deplibs" | sed -e '\''s/ -lc$//'\''` -link -dll~linknames=' archive_cmds='$CC -o $lib $libobjs $linkopts `echo "$deplibs" | sed -e '\''s/ -lc$//'\''` -link -dll~linknames='
# The linker will automatically build a .lib file if we build a DLL. # The linker will automatically build a .lib file if we build a DLL.
old_archive_from_new_cmds='true' old_archive_from_new_cmds='true'
# FIXME: Should let the user specify the lib program. # FIXME: Should let the user specify the lib program.
@ -1100,8 +1101,8 @@ if test "$with_gnu_ld" = yes; then
*) *)
if $LD --help 2>&1 | egrep ': supported targets:.* elf' > /dev/null; then if $LD --help 2>&1 | egrep ': supported targets:.* elf' > /dev/null; then
archive_cmds='$CC -shared ${wl}-soname $wl$soname -o $lib $libobjs $deplibs' archive_cmds='$CC -shared ${wl}-soname $wl$soname -o $lib $libobjs $deplibs $linkopts'
archive_sym_cmds='$CC -shared ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib $libobjs $deplibs' archive_sym_cmds='$CC -shared ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib $libobjs $deplibs $linkopts'
else else
ld_shlibs=no ld_shlibs=no
fi fi
@ -1120,8 +1121,8 @@ else
aix3*) aix3*)
allow_undefined_flag=unsupported allow_undefined_flag=unsupported
archive_cmds='$NM $libobjs | $global_symbol_pipe | sed '\''s/.* //'\' | sort | uniq' > $lib.exp~ archive_cmds='$NM $libobjs | $global_symbol_pipe | sed '\''s/.* //'\' | sort | uniq' > $lib.exp~
$LD -o $objdir/$soname $libobjs $deplibs -bE:$lib.exp -T512 -H512 -bM:SRE~$AR cru $lib $objdir/$soname' $LD -o $objdir/$soname $libobjs $deplibs $linkopts -bE:$lib.exp -T512 -H512 -bM:SRE~$AR cru $lib $objdir/$soname'
archive_sym_cmds='$LD -o $objdir/$soname $libobjs $deplibs -bE:$export_symbols -T512 -H512 -bM:SRE~$AR cru $lib $objdir/$soname' archive_sym_cmds='$LD -o $objdir/$soname $libobjs $deplibs $linkopts -bE:$export_symbols -T512 -H512 -bM:SRE~$AR cru $lib $objdir/$soname'
# Note: this linker hardcodes the directories in LIBPATH if there # Note: this linker hardcodes the directories in LIBPATH if there
# are no directories specified by -L. # are no directories specified by -L.
hardcode_minus_L=yes hardcode_minus_L=yes
@ -1144,11 +1145,11 @@ else
# We have old collect2 # We have old collect2
hardcode_direct=unsupported hardcode_direct=unsupported
fi fi
archive_cmds='$CC -shared ${wl}-bnoentry -o $objdir/$soname $libobjs $deplibs' archive_cmds='$CC -shared ${wl}-bnoentry -o $objdir/$soname $libobjs $deplibs $linkopts'
else else
archive_cmds='$NM $libobjs | $global_symbol_pipe | sed '\''s/.* //'\' | sort | uniq' > $lib.exp~ archive_cmds='$NM $libobjs | $global_symbol_pipe | sed '\''s/.* //'\' | sort | uniq' > $lib.exp~
$CC -o $objdir/$soname $libobjs $deplibs ${wl}-bE:$lib.exp ${wl}-bM:SRE ${wl}-bnoentry' $CC -o $objdir/$soname $libobjs $deplibs $linkopts ${wl}-bE:$lib.exp ${wl}-bM:SRE ${wl}-bnoentry'
archive_sym_cmds='$CC -o $objdir/$soname $libobjs $deplibs ${wl}-bE:$export_symbols ${wl}-bM:SRE ${wl}-bnoentry' archive_sym_cmds='$CC -o $objdir/$soname $libobjs $deplibs $linkopts ${wl}-bE:$export_symbols ${wl}-bM:SRE ${wl}-bnoentry'
hardcode_direct=yes hardcode_direct=yes
fi fi
hardcode_minus_L=yes hardcode_minus_L=yes
@ -1178,22 +1179,22 @@ else
(cd $objdir && $CC -c $soname-ltdll.c)~ (cd $objdir && $CC -c $soname-ltdll.c)~
echo EXPORTS > $objdir/$soname-def~ echo EXPORTS > $objdir/$soname-def~
$DLLTOOL --export-all --output-def $objdir/$soname-def $objdir/$soname-ltdll.$objext $libobjs~ $DLLTOOL --export-all --output-def $objdir/$soname-def $objdir/$soname-ltdll.$objext $libobjs~
$CC -Wl,--base-file,$objdir/$soname-base -Wl,--dll -nostartfiles -Wl,-e,__cygwin_dll_entry@12 -o $lib $objdir/$soname-ltdll.$objext $libobjs $deplibs~ $CC -Wl,--base-file,$objdir/$soname-base -Wl,--dll -nostartfiles -Wl,-e,__cygwin_dll_entry@12 -o $lib $objdir/$soname-ltdll.$objext $libobjs $deplibs $linkopts~
$DLLTOOL --as=$AS --dllname $soname --exclude-symbol=_cygwin_dll_entry@12 --def $objdir/$soname-def --base-file $objdir/$soname-base --output-exp $objdir/$soname-exp~ $DLLTOOL --as=$AS --dllname $soname --exclude-symbol=_cygwin_dll_entry@12 --def $objdir/$soname-def --base-file $objdir/$soname-base --output-exp $objdir/$soname-exp~
$CC -Wl,--base-file,$objdir/$soname-base $objdir/$soname-exp -Wl,--dll -nostartfiles -Wl,-e,__cygwin_dll_entry@12 -o $lib $objdir/$soname-ltdll.$objext $libobjs $deplibs~ $CC -Wl,--base-file,$objdir/$soname-base $objdir/$soname-exp -Wl,--dll -nostartfiles -Wl,-e,__cygwin_dll_entry@12 -o $lib $objdir/$soname-ltdll.$objext $libobjs $deplibs $linkopts~
$DLLTOOL --as=$AS --dllname $soname --exclude-symbol=_cygwin_dll_entry@12 --def $objdir/$soname-def --base-file $objdir/$soname-base --output-exp $objdir/$soname-exp~ $DLLTOOL --as=$AS --dllname $soname --exclude-symbol=_cygwin_dll_entry@12 --def $objdir/$soname-def --base-file $objdir/$soname-base --output-exp $objdir/$soname-exp~
$CC $objdir/$soname-exp -Wl,--dll -nostartfiles -Wl,-e,__cygwin_dll_entry@12 -o $lib $objdir/$soname-ltdll.$objext $libobjs $deplibs' $CC $objdir/$soname-exp -Wl,--dll -nostartfiles -Wl,-e,__cygwin_dll_entry@12 -o $lib $objdir/$soname-ltdll.$objext $libobjs $deplibs $linkopts'
archive_sym_cmds='rm -f $objdir/$soname-ltdll.c~ archive_sym_cmds='rm -f $objdir/$soname-ltdll.c~
sed -e "/^# \/\* ltdll.c starts here \*\//,/^# \/\* ltdll.c ends here \*\// { s/^# //; p; }" -e d < $0 > $objdir/$soname-ltdll.c~ sed -e "/^# \/\* ltdll.c starts here \*\//,/^# \/\* ltdll.c ends here \*\// { s/^# //; p; }" -e d < $0 > $objdir/$soname-ltdll.c~
(cd $objdir && $CC -c $soname-ltdll.c)~ (cd $objdir && $CC -c $soname-ltdll.c)~
echo EXPORTS > $objdir/$soname-def~ echo EXPORTS > $objdir/$soname-def~
cat "$export_symbols" >> $objdir/$soname-def~ cat "$export_symbols" >> $objdir/$soname-def~
$CC -Wl,--base-file,$objdir/$soname-base -Wl,--dll -nostartfiles -Wl,-e,__cygwin_dll_entry@12 -o $lib $objdir/$soname-ltdll.$objext $libobjs $deplibs~ $CC -Wl,--base-file,$objdir/$soname-base -Wl,--dll -nostartfiles -Wl,-e,__cygwin_dll_entry@12 -o $lib $objdir/$soname-ltdll.$objext $libobjs $deplibs $linkopts~
$DLLTOOL --as=$AS --dllname $soname --exclude-symbol=_cygwin_dll_entry@12 --def $objdir/$soname-def --base-file $objdir/$soname-base --output-exp $objdir/$soname-exp~ $DLLTOOL --as=$AS --dllname $soname --exclude-symbol=_cygwin_dll_entry@12 --def $objdir/$soname-def --base-file $objdir/$soname-base --output-exp $objdir/$soname-exp~
$CC -Wl,--base-file,$objdir/$soname-base $objdir/$soname-exp -Wl,--dll -nostartfiles -Wl,-e,__cygwin_dll_entry@12 -o $lib $objdir/$soname-ltdll.$objext $libobjs $deplibs~ $CC -Wl,--base-file,$objdir/$soname-base $objdir/$soname-exp -Wl,--dll -nostartfiles -Wl,-e,__cygwin_dll_entry@12 -o $lib $objdir/$soname-ltdll.$objext $libobjs $deplibs $linkopts~
$DLLTOOL --as=$AS --dllname $soname --exclude-symbol=_cygwin_dll_entry@12 --def $objdir/$soname-def --base-file $objdir/$soname-base --output-exp $objdir/$soname-exp~ $DLLTOOL --as=$AS --dllname $soname --exclude-symbol=_cygwin_dll_entry@12 --def $objdir/$soname-def --base-file $objdir/$soname-base --output-exp $objdir/$soname-exp~
$CC $objdir/$soname-exp -Wl,--dll -nostartfiles -Wl,-e,__cygwin_dll_entry@12 -o $lib $objdir/$soname-ltdll.$objext $libobjs $deplibs' $CC $objdir/$soname-exp -Wl,--dll -nostartfiles -Wl,-e,__cygwin_dll_entry@12 -o $lib $objdir/$soname-ltdll.$objext $libobjs $deplibs $linkopts'
old_archive_from_new_cmds='$DLLTOOL --as=$AS --dllname $soname --def $objdir/$soname-def --output-lib $objdir/$libname.a' old_archive_from_new_cmds='$DLLTOOL --as=$AS --dllname $soname --def $objdir/$soname-def --output-lib $objdir/$libname.a'
else else
@ -1206,7 +1207,7 @@ else
# Tell ltmain to make .lib files, not .a files. # Tell ltmain to make .lib files, not .a files.
libext=lib libext=lib
# FIXME: Setting linknames here is a bad hack. # FIXME: Setting linknames here is a bad hack.
archive_cmds='$CC -o $lib $libobjs `echo "$deplibs" | sed -e '\''s/ -lc$//'\''` -link -dll~linknames=' archive_cmds='$CC -o $lib $libobjs $linkopts `echo "$deplibs" | sed -e '\''s/ -lc$//'\''` -link -dll~linknames='
# The linker will automatically build a .lib file if we build a DLL. # The linker will automatically build a .lib file if we build a DLL.
old_archive_from_new_cmds='true' old_archive_from_new_cmds='true'
# FIXME: Should let the user specify the lib program. # FIXME: Should let the user specify the lib program.
@ -1225,7 +1226,7 @@ else
# does not break anything, and helps significantly (at the cost of a little # does not break anything, and helps significantly (at the cost of a little
# extra space). # extra space).
freebsd2.2*) freebsd2.2*)
archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs /usr/lib/c++rt0.o' archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linkopts /usr/lib/c++rt0.o'
hardcode_libdir_flag_spec='-R$libdir' hardcode_libdir_flag_spec='-R$libdir'
hardcode_direct=yes hardcode_direct=yes
hardcode_minus_L=no # verified on 2.2.6 hardcode_minus_L=no # verified on 2.2.6
@ -1234,7 +1235,7 @@ else
# Unfortunately, older versions of FreeBSD 2 do not have this feature. # Unfortunately, older versions of FreeBSD 2 do not have this feature.
freebsd2*) freebsd2*)
archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs' archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linkopts'
hardcode_direct=yes hardcode_direct=yes
hardcode_minus_L=yes hardcode_minus_L=yes
hardcode_shlibpath_var=no hardcode_shlibpath_var=no
@ -1242,7 +1243,7 @@ else
# FreeBSD 3 and greater uses gcc -shared to do shared libraries. # FreeBSD 3 and greater uses gcc -shared to do shared libraries.
freebsd*) freebsd*)
archive_cmds='$CC -shared -o $lib $libobjs $deplibs' archive_cmds='$CC -shared -o $lib $libobjs $deplibs $linkopts'
hardcode_libdir_flag_spec='-R$libdir' hardcode_libdir_flag_spec='-R$libdir'
hardcode_direct=yes hardcode_direct=yes
hardcode_minus_L=no hardcode_minus_L=no
@ -1250,7 +1251,7 @@ else
;; ;;
hpux9*) hpux9*)
archive_cmds='$rm $objdir/$soname~$LD -b +s +b $install_libdir -o $objdir/$soname $libobjs $deplibs~test $objdir/$soname = $lib || mv $objdir/$soname $lib' archive_cmds='$rm $objdir/$soname~$LD -b +s +b $install_libdir -o $objdir/$soname $libobjs $deplibs $linkopts~test $objdir/$soname = $lib || mv $objdir/$soname $lib'
hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
hardcode_direct=yes hardcode_direct=yes
hardcode_minus_L=yes hardcode_minus_L=yes
@ -1258,7 +1259,7 @@ else
;; ;;
hpux10* | hpux11*) hpux10* | hpux11*)
archive_cmds='$LD -b +h $soname +s +b $install_libdir -o $lib $libobjs $deplibs' archive_cmds='$LD -b +h $soname +s +b $install_libdir -o $lib $libobjs $deplibs $linkopts'
hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
hardcode_direct=yes hardcode_direct=yes
hardcode_minus_L=yes hardcode_minus_L=yes
@ -1267,18 +1268,18 @@ else
irix5* | irix6*) irix5* | irix6*)
if test "$with_gcc" = yes; then if test "$with_gcc" = yes; then
archive_cmds='$CC -shared -o $lib ${wl}-soname ${wl}$soname ${wl}-set_version ${wl}$verstring $libobjs $deplibs' archive_cmds='$CC -shared -o $lib ${wl}-soname ${wl}$soname ${wl}-set_version ${wl}$verstring $libobjs $deplibs $linkopts'
else else
archive_cmds='$LD -shared -o $lib -soname $soname -set_version $verstring $libobjs $deplibs' archive_cmds='$LD -shared -o $lib -soname $soname -set_version $verstring $libobjs $deplibs $linkopts'
fi fi
hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
;; ;;
netbsd*) netbsd*)
if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs' # a.out archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linkopts' # a.out
else else
archive_cmds='$LD -shared -o $lib $libobjs $deplibs' # ELF archive_cmds='$LD -shared -o $lib $libobjs $deplibs $linkopts' # ELF
fi fi
hardcode_libdir_flag_spec='${wl}-R$libdir' hardcode_libdir_flag_spec='${wl}-R$libdir'
hardcode_direct=yes hardcode_direct=yes
@ -1286,7 +1287,7 @@ else
;; ;;
openbsd*) openbsd*)
archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs' archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linkopts'
hardcode_libdir_flag_spec='-R$libdir' hardcode_libdir_flag_spec='-R$libdir'
hardcode_direct=yes hardcode_direct=yes
hardcode_shlibpath_var=no hardcode_shlibpath_var=no
@ -1296,24 +1297,24 @@ else
hardcode_libdir_flag_spec='-L$libdir' hardcode_libdir_flag_spec='-L$libdir'
hardcode_minus_L=yes hardcode_minus_L=yes
allow_undefined_flag=unsupported allow_undefined_flag=unsupported
archive_cmds='$echo "LIBRARY $libname INITINSTANCE" > $objdir/$libname.def~$echo "DESCRIPTION \"$libname\"" >> $objdir/$libname.def~$echo DATA >> $objdir/$libname.def~$echo " SINGLE NONSHARED" >> $objdir/$libname.def~$echo EXPORTS >> $objdir/$libname.def~emxexp $libobjs >> $objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $objdir/$libname.def' archive_cmds='$echo "LIBRARY $libname INITINSTANCE" > $objdir/$libname.def~$echo "DESCRIPTION \"$libname\"" >> $objdir/$libname.def~$echo DATA >> $objdir/$libname.def~$echo " SINGLE NONSHARED" >> $objdir/$libname.def~$echo EXPORTS >> $objdir/$libname.def~emxexp $libobjs >> $objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $linkopts $objdir/$libname.def'
old_archive_from_new_cmds='emximp -o $objdir/$libname.a $objdir/$libname.def' old_archive_from_new_cmds='emximp -o $objdir/$libname.a $objdir/$libname.def'
;; ;;
osf3* | osf4*) osf3* | osf4*)
if test "$with_gcc" = yes; then if test "$with_gcc" = yes; then
allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*' allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*'
archive_cmds='$CC -shared${allow_undefined_flag} -o $lib ${wl}-soname ${wl}$soname ${wl}-set_version ${wl}$verstring $libobjs $deplibs' archive_cmds='$CC -shared${allow_undefined_flag} -o $lib ${wl}-soname ${wl}$soname ${wl}-set_version ${wl}$verstring $libobjs $deplibs $linkopts'
else else
allow_undefined_flag=' -expect_unresolved \*' allow_undefined_flag=' -expect_unresolved \*'
archive_cmds='$LD -shared${allow_undefined_flag} -o $lib -soname $soname -set_version $verstring $libobjs $deplibs' archive_cmds='$LD -shared${allow_undefined_flag} -o $lib -soname $soname -set_version $verstring $libobjs $deplibs $linkopts'
fi fi
hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
hardcode_libdir_separator=: hardcode_libdir_separator=:
;; ;;
sco3.2v5*) sco3.2v5*)
archive_cmds='$LD -G -o $lib $libobjs $deplibs' archive_cmds='$LD -G -o $lib $libobjs $deplibs $linkopts'
hardcode_direct=yes hardcode_direct=yes
;; ;;
@ -1321,9 +1322,9 @@ else
no_undefined_flag=' -z text' no_undefined_flag=' -z text'
# $CC -shared without GNU ld will not create a library from C++ # $CC -shared without GNU ld will not create a library from C++
# object files and a static libstdc++, better avoid it by now # object files and a static libstdc++, better avoid it by now
archive_cmds='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs' archive_cmds='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linkopts'
archive_sym_cmds='$echo "{ global:" > $lib.exp~sed $export_symbols -e "s/.*/\1;/" >> $lib.exp~$echo "local: * }" >> $lib.exp~ archive_sym_cmds='$echo "{ global:" > $lib.exp~sed $export_symbols -e "s/.*/\1;/" >> $lib.exp~$echo "local: * }" >> $lib.exp~
$LD -G${allow_undefined_flag} -M $export_symbols -h $soname -o $lib $libobjs $deplibs~$rm $lib.exp' $LD -G${allow_undefined_flag} -M $export_symbols -h $soname -o $lib $libobjs $deplibs $linkopts~$rm $lib.exp'
hardcode_libdir_flag_spec='-R$libdir' hardcode_libdir_flag_spec='-R$libdir'
hardcode_shlibpath_var=no hardcode_shlibpath_var=no
;; ;;
@ -1332,9 +1333,9 @@ else
# Why do we need -Bstatic? To avoid inter-library dependencies, maybe... # Why do we need -Bstatic? To avoid inter-library dependencies, maybe...
if test "$with_gcc" = yes; then if test "$with_gcc" = yes; then
# Use -fPIC here because libgcc is multilibbed # Use -fPIC here because libgcc is multilibbed
archive_cmds='$CC -shared ${wl}-Bstatic -fPIC -o $lib $libobjs $deplibs' archive_cmds='$CC -shared ${wl}-Bstatic -fPIC -o $lib $libobjs $deplibs $linkopts'
else else
archive_cmds='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs' archive_cmds='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linkopts'
fi fi
hardcode_libdir_flag_spec='-L$libdir' hardcode_libdir_flag_spec='-L$libdir'
hardcode_direct=yes hardcode_direct=yes
@ -1343,7 +1344,7 @@ else
;; ;;
sysv4.3*) sysv4.3*)
archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs' archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linkopts'
hardcode_direct=no hardcode_direct=no
hardcode_minus_L=no hardcode_minus_L=no
hardcode_shlibpath_var=no hardcode_shlibpath_var=no
@ -1351,7 +1352,7 @@ else
;; ;;
uts4*) uts4*)
archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs' archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linkopts'
hardcode_libdir_flag_spec='-L$libdir' hardcode_libdir_flag_spec='-L$libdir'
hardcode_direct=no hardcode_direct=no
hardcode_minus_L=no hardcode_minus_L=no
@ -1359,7 +1360,7 @@ else
;; ;;
dgux*) dgux*)
archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs' archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linkopts'
hardcode_libdir_flag_spec='-L$libdir' hardcode_libdir_flag_spec='-L$libdir'
hardcode_direct=no hardcode_direct=no
hardcode_minus_L=no hardcode_minus_L=no
@ -1905,12 +1906,13 @@ case "$ltmain" in
old_LN_S old_DLLTOOL old_AS AR CC LD LN_S NM LTSHELL LTCONFIG_VERSION \ old_LN_S old_DLLTOOL old_AS AR CC LD LN_S NM LTSHELL LTCONFIG_VERSION \
reload_flag reload_cmds wl \ reload_flag reload_cmds wl \
pic_flag link_static_flag no_builtin_flag export_dynamic_flag_spec \ pic_flag link_static_flag no_builtin_flag export_dynamic_flag_spec \
whole_archive_flag_spec libname_spec library_names_spec soname_spec \ thread_safe_flag_spec whole_archive_flag_spec libname_spec \
library_names_spec soname_spec \
RANLIB old_archive_cmds old_archive_from_new_cmds old_postinstall_cmds \ RANLIB old_archive_cmds old_archive_from_new_cmds old_postinstall_cmds \
old_postuninstall_cmds archive_cmds archive_sym_cmds postinstall_cmds postuninstall_cmds \ old_postuninstall_cmds archive_cmds archive_sym_cmds postinstall_cmds postuninstall_cmds \
file_magic_command deplibs_check_method allow_undefined_flag no_undefined_flag \ file_magic_command deplibs_check_method allow_undefined_flag no_undefined_flag \
finish_cmds finish_eval global_symbol_pipe \ finish_cmds finish_eval global_symbol_pipe hardcode_libdir_flag_spec \
hardcode_libdir_flag_spec hardcode_libdir_separator sys_lib_search_path_spec \ hardcode_libdir_separator sys_lib_search_path_spec \
compiler_c_o compiler_o_lo need_locks; do compiler_c_o compiler_o_lo need_locks; do
case "$var" in case "$var" in
@ -2095,6 +2097,9 @@ export_dynamic_flag_spec=$export_dynamic_flag_spec
# Compiler flag to generate shared objects directly from archives. # Compiler flag to generate shared objects directly from archives.
whole_archive_flag_spec=$whole_archive_flag_spec whole_archive_flag_spec=$whole_archive_flag_spec
# Compiler flag to generate thread-safe objects.
thread_safe_flag_spec=$thread_safe_flag_spec
# Library versioning type. # Library versioning type.
version_type=$version_type version_type=$version_type

View File

@ -656,6 +656,7 @@ compiler."
convenience= convenience=
old_convenience= old_convenience=
deplibs= deplibs=
linkopts=
if test -n "$shlibpath_var"; then if test -n "$shlibpath_var"; then
# get the directories listed in $shlibpath_var # get the directories listed in $shlibpath_var
@ -688,6 +689,7 @@ compiler."
perm_rpath= perm_rpath=
temp_rpath= temp_rpath=
finalize_rpath= finalize_rpath=
thread_safe=no
vinfo= vinfo=
# We need to know -static, to get the right output filenames. # We need to know -static, to get the right output filenames.
@ -905,6 +907,11 @@ compiler."
continue continue
;; ;;
-thread-safe)
thread_safe=yes
continue
;;
-version-info) -version-info)
prev=vinfo prev=vinfo
continue continue

View File

@ -5,7 +5,7 @@ AM_INIT_AUTOMAKE(mdemo,0.1)
AC_PROG_CC AC_PROG_CC
AC_C_CONST AC_C_CONST
AC_EXEEXT AC_EXEEXT
AM_PROG_LIBTOOL AC_PROG_LIBTOOL
if ${CONFIG_SHELL} ./libtool --features | grep "enable static" >/dev/null; then if ${CONFIG_SHELL} ./libtool --features | grep "enable static" >/dev/null; then
STATIC=-static STATIC=-static