From: Tim R. <ma...@us...> - 2004-11-23 05:54:14
|
Update of /cvsroot/gaim/gaim In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv5460 Modified Files: acinclude.m4 configure.ac Log Message: Binary relocation, step one. I had a fairly long commit message, and cvs ate it and said Read from remote host cvs.sourceforge.net: Connection reset by peer I'm displeased. This is just method one, method two to follow tomorrow after I add a way to register a fallback and try to push it upstream. That way I don't have to put method 2 inside prefix.c. As for as core/ui split goes, they can either each have their own copy after the divorce is final, or the UI can use the core's. It'll work either way, since #1 finds location of the caller, and #2 doesn't work on libraries anyway. That's one advantage I forgot to mention, btw, that #1 will let a library find its own location. So, I'm sure something isn't quite right and someone will want to fix it. So they can fix it while i implement phase two. Which won't take long at all, but the autopackage guy is in bed, and I should be too. Index: acinclude.m4 =================================================================== RCS file: /cvsroot/gaim/gaim/acinclude.m4,v retrieving revision 1.8 retrieving revision 1.9 diff -u -d -p -r1.8 -r1.9 --- acinclude.m4 20 May 2004 23:52:10 -0000 1.8 +++ acinclude.m4 23 Nov 2004 05:53:58 -0000 1.9 @@ -786,3 +786,83 @@ if test "x$PERL" != x; then else AC_MSG_WARN(could not find perl) fi])dnl + + +dnl This file scares me... +# Check for binary relocation support +# Hongli Lai +# http://autopackage.org/ + +AC_DEFUN([AM_BINRELOC], +[ + AC_ARG_ENABLE(binreloc, + [ --enable-binreloc compile with binary relocation support + (default=enable when available)], + enable_binreloc=$enableval,enable_binreloc=auto) + + AC_ARG_ENABLE(binreloc-threads, + [ --enable-binreloc-threads compile binary relocation with threads support + (default=yes)], + enable_binreloc_threads=$enableval,enable_binreloc_threads=yes) + + BINRELOC_CFLAGS= + BINRELOC_LIBS= + if test "x$enable_binreloc" = "xauto"; then + AC_CHECK_FILE([/proc/self/maps]) + AC_CACHE_CHECK([whether everything is installed to the same prefix], + [br_cv_valid_prefixes], [ + if test "$bindir" = '${exec_prefix}/bin' -a "$sbindir" = '${exec_prefix}/sbin' -a \ + "$datadir" = '${prefix}/share' -a "$libdir" = '${exec_prefix}/lib' -a \ + "$libexecdir" = '${exec_prefix}/libexec' -a "$sysconfdir" = '${prefix}/etc' + then + br_cv_valid_prefixes=yes + else + br_cv_valid_prefixes=no + fi + ]) + fi + AC_CACHE_CHECK([whether binary relocation support should be enabled], + [br_cv_binreloc], + [if test "x$enable_binreloc" = "xyes"; then + br_cv_binreloc=yes + elif test "x$enable_binreloc" = "xauto"; then + if test "x$br_cv_valid_prefixes" = "xyes" -a \ + "x$ac_cv_file__proc_self_maps" = "xyes"; then + br_cv_binreloc=yes + else + br_cv_binreloc=no + fi + else + br_cv_binreloc=no + fi]) + + if test "x$br_cv_binreloc" = "xyes"; then + BINRELOC_CFLAGS="-DENABLE_BINRELOC" + AC_DEFINE(ENABLE_BINRELOC,,[Use binary relocation?]) + if test "x$enable_binreloc_threads" = "xyes"; then + AC_CHECK_LIB([pthread], [pthread_getspecific]) + fi + + AC_CACHE_CHECK([whether binary relocation should use threads], + [br_cv_binreloc_threads], + [if test "x$enable_binreloc_threads" = "xyes"; then + if test "x$ac_cv_lib_pthread_pthread_getspecific" = "xyes"; then + br_cv_binreloc_threads=yes + else + br_cv_binreloc_threads=no + fi + else + br_cv_binreloc_threads=no + fi]) + + if test "x$br_cv_binreloc_threads" = "xyes"; then + BINRELOC_LIBS="-lpthread" + AC_DEFINE(BR_PTHREAD,1,[Include pthread support for binary relocation?]) + else + BINRELOC_CFLAGS="$BINRELOC_CFLAGS -DBR_PTHREAD=0" + AC_DEFINE(BR_PTHREAD,0,[Include pthread support for binary relocation?]) + fi + fi + AC_SUBST(BINRELOC_CFLAGS) + AC_SUBST(BINRELOC_LIBS) +]) Index: configure.ac =================================================================== RCS file: /cvsroot/gaim/gaim/configure.ac,v retrieving revision 1.274 retrieving revision 1.275 diff -u -d -p -r1.274 -r1.275 --- configure.ac 25 Oct 2004 13:45:52 -0000 1.274 +++ configure.ac 23 Nov 2004 05:53:58 -0000 1.275 @@ -1121,6 +1121,7 @@ if test "$zephyr" != "no" ; then LDFLAGS="$orig_LDFLAGS" fi +AM_BINRELOC AC_MSG_CHECKING(for me pot o' gold) AC_MSG_RESULT(no) |