Alexei Sheplyakov
16 years ago
5 changed files with 0 additions and 439 deletions
-
1autoconf/aclocal.m4
-
2configure.ac
-
21include/cln/config.h.in
-
275include/cln/modules.h
-
140m4/c++-constructors.m4
@ -1,140 +0,0 @@ |
|||||
dnl Copyright (C) 1993-2002 Free Software Foundation, Inc. |
|
||||
dnl This file is free software, distributed under the terms of the GNU |
|
||||
dnl General Public License. As a special exception to the GNU General |
|
||||
dnl Public License, this file may be distributed as part of a program |
|
||||
dnl that contains a configuration script generated by Autoconf, under |
|
||||
dnl the same distribution terms as the rest of that program. |
|
||||
|
|
||||
dnl From Bruno Haible, Marcus Daniels. |
|
||||
|
|
||||
AC_PREREQ(2.13) |
|
||||
|
|
||||
AC_DEFUN([CL_GLOBAL_CONSTRUCTORS], |
|
||||
[AC_REQUIRE([CL_AS_UNDERSCORE])dnl |
|
||||
if test -n "$GCC"; then |
|
||||
AC_CACHE_CHECK(for the global constructors function prefix, |
|
||||
cl_cv_cplusplus_ctorprefix, [ |
|
||||
cat > conftest.cc << EOF |
|
||||
struct foo { foo (); }; |
|
||||
foo foobar; |
|
||||
EOF |
|
||||
# look for the assembly language name in the .s file |
|
||||
AC_TRY_COMMAND(${CXX-g++} $CXXFLAGS -S conftest.cc) >/dev/null 2>&1 |
|
||||
if grep '_GLOBAL_\$I\$foobar' conftest.s >/dev/null ; then |
|
||||
cl_cv_cplusplus_ctorprefix='_GLOBAL_$I$' |
|
||||
else |
|
||||
if grep '_GLOBAL_\.I\.foobar' conftest.s >/dev/null ; then |
|
||||
cl_cv_cplusplus_ctorprefix='_GLOBAL_.I.' |
|
||||
else |
|
||||
if grep '_GLOBAL__I_foobar' conftest.s >/dev/null ; then |
|
||||
cl_cv_cplusplus_ctorprefix='_GLOBAL__I_' |
|
||||
else |
|
||||
cl_cv_cplusplus_ctorprefix=unknown |
|
||||
fi |
|
||||
fi |
|
||||
fi |
|
||||
rm -f conftest* |
|
||||
]) |
|
||||
if test "$cl_cv_cplusplus_ctorprefix" '!=' unknown; then |
|
||||
ac_value='"'"$cl_cv_cplusplus_ctorprefix"'"' |
|
||||
AC_DEFINE_UNQUOTED(CL_GLOBAL_CONSTRUCTOR_PREFIX,$ac_value) |
|
||||
AC_CACHE_CHECK(for the global destructors function prefix, |
|
||||
cl_cv_cplusplus_dtorprefix, [ |
|
||||
cat > conftest.cc << EOF |
|
||||
struct foo { foo (); ~ foo (); }; |
|
||||
foo foobar; |
|
||||
EOF |
|
||||
# look for the assembly language name in the .s file |
|
||||
AC_TRY_COMMAND(${CXX-g++} $CXXFLAGS -S conftest.cc) >/dev/null 2>&1 |
|
||||
if grep '_GLOBAL_\$D\$foobar' conftest.s >/dev/null ; then |
|
||||
cl_cv_cplusplus_dtorprefix='_GLOBAL_$D$' |
|
||||
else |
|
||||
if grep '_GLOBAL_\.D\.foobar' conftest.s >/dev/null ; then |
|
||||
cl_cv_cplusplus_dtorprefix='_GLOBAL_.D.' |
|
||||
else |
|
||||
if grep '_GLOBAL__D_foobar' conftest.s >/dev/null ; then |
|
||||
cl_cv_cplusplus_dtorprefix='_GLOBAL__D_' |
|
||||
else |
|
||||
cl_cv_cplusplus_dtorprefix=none |
|
||||
fi |
|
||||
fi |
|
||||
fi |
|
||||
rm -f conftest* |
|
||||
]) |
|
||||
if test "$cl_cv_cplusplus_dtorprefix" '!=' none; then |
|
||||
ac_value='"'"$cl_cv_cplusplus_ctorprefix"'"' |
|
||||
AC_DEFINE_UNQUOTED(CL_GLOBAL_DESTRUCTOR_PREFIX,$ac_value) |
|
||||
fi |
|
||||
dnl Check whether the global constructors/destructors functions are file-scope |
|
||||
dnl only by default. This is the case in egcs-1.1.2 or newer. |
|
||||
AC_CACHE_CHECK(whether the global constructors function need to be exported, |
|
||||
cl_cv_cplusplus_ctorexport, [ |
|
||||
cat > conftest1.cc << EOF |
|
||||
struct foo { foo (); }; |
|
||||
foo foobar; |
|
||||
EOF |
|
||||
cat > conftest2.cc << EOF |
|
||||
#include "confdefs.h" |
|
||||
#ifdef ASM_UNDERSCORE |
|
||||
#define ASM_UNDERSCORE_PREFIX "_" |
|
||||
#else |
|
||||
#define ASM_UNDERSCORE_PREFIX "" |
|
||||
#endif |
|
||||
struct foo { foo (); }; |
|
||||
foo::foo () {} |
|
||||
extern "C" void ctor (void) __asm__ (ASM_UNDERSCORE_PREFIX CL_GLOBAL_CONSTRUCTOR_PREFIX "foobar"); |
|
||||
int main() { ctor(); return 0; } |
|
||||
EOF |
|
||||
if AC_TRY_COMMAND(${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftest1.cc conftest2.cc $LIBS 1>&5) >/dev/null 2>&1 && test -s conftest${ac_exeext}; then |
|
||||
cl_cv_cplusplus_ctorexport=no |
|
||||
else |
|
||||
cl_cv_cplusplus_ctorexport=yes |
|
||||
fi |
|
||||
rm -f conftest* |
|
||||
]) |
|
||||
if test "$cl_cv_cplusplus_ctorexport" = yes; then |
|
||||
AC_DEFINE(CL_NEED_GLOBALIZE_CTORDTOR) |
|
||||
fi |
|
||||
dnl Test what suffix to give the global ctors inside shared object files. |
|
||||
if test "$enable_shared" = yes; then |
|
||||
AC_CACHE_CHECK([for the global constructor function suffix in shared objects], |
|
||||
cl_cv_cplusplus_ctorsuffix_pic, [ |
|
||||
cat > conftest.cc << EOF |
|
||||
extern "C" void func () {} |
|
||||
static struct S { |
|
||||
inline S () {} |
|
||||
} S; |
|
||||
EOF |
|
||||
AC_TRY_COMMAND(${CXX-g++} $CXXFLAGS ${lt_prog_compiler_pic_CXX-"-fPIC"} -S conftest.cc) >/dev/null 2>&1 |
|
||||
if grep "${cl_cv_cplusplus_ctorprefix}conftest\.cc" conftest.s >/dev/null; then |
|
||||
cl_cv_cplusplus_ctorsuffix_pic='#module ".cc"' |
|
||||
else |
|
||||
cl_cv_cplusplus_ctorsuffix_pic='"cl_module__" #module "__firstglobalfun"' |
|
||||
fi |
|
||||
rm -f conftest* |
|
||||
]) |
|
||||
AC_DEFINE_UNQUOTED([CL_GLOBAL_CONSTRUCTOR_SUFFIX_PIC(module)], [$cl_cv_cplusplus_ctorsuffix_pic]) |
|
||||
fi |
|
||||
dnl Test what suffix to give the global ctors inside static object files. |
|
||||
if test "$enable_static" = yes; then |
|
||||
AC_CACHE_CHECK([for the global constructor function suffix in static objects], |
|
||||
cl_cv_cplusplus_ctorsuffix_nopic, [ |
|
||||
cat > conftest.cc << EOF |
|
||||
extern "C" void func () {} |
|
||||
static struct S { |
|
||||
inline S () {} |
|
||||
} S; |
|
||||
EOF |
|
||||
AC_TRY_COMMAND(${CXX-g++} $CXXFLAGS -S conftest.cc) >/dev/null 2>&1 |
|
||||
if grep "${cl_cv_cplusplus_ctorprefix}conftest\.cc" conftest.s >/dev/null; then |
|
||||
cl_cv_cplusplus_ctorsuffix_nopic='#module ".cc"' |
|
||||
else |
|
||||
cl_cv_cplusplus_ctorsuffix_nopic='"cl_module__" #module "__firstglobalfun"' |
|
||||
fi |
|
||||
rm -f conftest* |
|
||||
]) |
|
||||
AC_DEFINE_UNQUOTED([CL_GLOBAL_CONSTRUCTOR_SUFFIX_NOPIC(module)], [$cl_cv_cplusplus_ctorsuffix_nopic]) |
|
||||
fi |
|
||||
fi |
|
||||
fi |
|
||||
]) |
|
Write
Preview
Loading…
Cancel
Save
Reference in new issue