2024-08-13 13:53:10 +00:00
|
|
|
AC_DEFUN([OBJC_CON_AUTOLOAD],
|
2005-07-15 22:51:23 +00:00
|
|
|
# Copyright (C) 2005 Free Software Foundation
|
|
|
|
#
|
|
|
|
# Copying and distribution of this file, with or without modification,
|
|
|
|
# are permitted in any medium without royalty provided the copyright
|
|
|
|
# notice and this notice are preserved.
|
2001-03-21 23:11:49 +00:00
|
|
|
#--------------------------------------------------------------------
|
|
|
|
# Guess if we are using a object file format that supports automatic
|
|
|
|
# loading of constructor functions.
|
|
|
|
#
|
|
|
|
# If this system supports autoloading of constructors, that means that gcc
|
|
|
|
# doesn't have to do it for us via collect2. This routine tests for this
|
|
|
|
# in a very roundabout way by compiling a program with a constructor and
|
|
|
|
# testing the file, via nm, for certain symbols that collect2 includes to
|
|
|
|
# handle loading of constructors.
|
|
|
|
#
|
|
|
|
# Makes the following substitutions:
|
|
|
|
# Defines CON_AUTOLOAD (whether constructor functions are autoloaded)
|
|
|
|
#--------------------------------------------------------------------
|
|
|
|
[dnl
|
|
|
|
AC_MSG_CHECKING(loading of constructor functions)
|
|
|
|
AC_CACHE_VAL(objc_cv_con_autoload,
|
2003-05-30 02:50:28 +00:00
|
|
|
[dnl
|
2024-07-09 14:33:38 +00:00
|
|
|
AC_RUN_IFELSE(
|
|
|
|
[AC_LANG_SOURCE([[static int loaded = 0;
|
2003-05-30 02:50:28 +00:00
|
|
|
void cons_functions() __attribute__ ((constructor));
|
|
|
|
void cons_functions() { loaded = 1; }
|
|
|
|
int main()
|
|
|
|
{
|
|
|
|
return ( (loaded == 1) ? 0 : 1);
|
2024-07-09 14:33:38 +00:00
|
|
|
}]])],
|
|
|
|
[objc_cv_con_autoload=yes],
|
|
|
|
[objc_cv_con_autoload=no],
|
|
|
|
[objc_cv_con_autoload=no])
|
2002-05-02 15:17:54 +00:00
|
|
|
case "$target_os" in
|
|
|
|
cygwin*) objc_cv_con_autoload=yes;;
|
2007-12-17 20:17:01 +00:00
|
|
|
mingw*) objc_cv_con_autoload=yes;;
|
2002-05-02 15:17:54 +00:00
|
|
|
esac
|
2001-03-21 23:11:49 +00:00
|
|
|
])
|
|
|
|
if test $objc_cv_con_autoload = yes; then
|
|
|
|
AC_MSG_RESULT(yes)
|
2002-05-07 22:16:08 +00:00
|
|
|
AC_DEFINE(CON_AUTOLOAD,1,[Define if constructors are automatically loaded])
|
2001-03-21 23:11:49 +00:00
|
|
|
else
|
|
|
|
AC_MSG_RESULT(no)
|
|
|
|
fi
|
|
|
|
])
|