Author: rfm
Date: Sat May 14 16:47:43 2016
New Revision: 39763
URL: http://svn.gna.org/viewcvs/gnustep?rev=39763&view=rev
Log:
Simplify bfd code
Modified:
libs/base/trunk/ChangeLog
libs/base/trunk/Headers/GNUstepBase/config.h.in
libs/base/trunk/Source/NSException.m
libs/base/trunk/configure
libs/base/trunk/configure.ac
Modified: libs/base/trunk/ChangeLog
URL:
http://svn.gna.org/viewcvs/gnustep/libs/base/trunk/ChangeLog?rev=39763&r1=39762&r2=39763&view=diff
==============================================================================
--- libs/base/trunk/ChangeLog (original)
+++ libs/base/trunk/ChangeLog Sat May 14 16:47:43 2016
@@ -1,3 +1,12 @@
+2016-05-14 Richard Frith-Macdonald <[email protected]>
+
+ * Headers/GNUstepBase/config.h.in:
+ * Source/NSException.m:
+ * configure.ac:
+ * configure:
+ Make USE_BFD control usage of libbfd and replace runtime warning with
+ a configure time warning about the license issue.
+
2016-05-14 Richard Frith-Macdonald <[email protected]>
* Headers/Foundation/NSNotification.h:
Modified: libs/base/trunk/Headers/GNUstepBase/config.h.in
URL:
http://svn.gna.org/viewcvs/gnustep/libs/base/trunk/Headers/GNUstepBase/config.h.in?rev=39763&r1=39762&r2=39763&view=diff
==============================================================================
--- libs/base/trunk/Headers/GNUstepBase/config.h.in (original)
+++ libs/base/trunk/Headers/GNUstepBase/config.h.in Sat May 14 16:47:43 2016
@@ -841,6 +841,9 @@
/* Define if the compiler provides builtins for atomic operations */
#undef USE_ATOMIC_BUILTINS
+
+/* Define to use bfd library for stack traces */
+#undef USE_BFD
/* Define if using the ffcall library for invocations */
#undef USE_FFCALL
Modified: libs/base/trunk/Source/NSException.m
URL:
http://svn.gna.org/viewcvs/gnustep/libs/base/trunk/Source/NSException.m?rev=39763&r1=39762&r2=39763&view=diff
==============================================================================
--- libs/base/trunk/Source/NSException.m (original)
+++ libs/base/trunk/Source/NSException.m Sat May 14 16:47:43 2016
@@ -62,25 +62,18 @@
#ifdef HAVE_BACKTRACE
#include <execinfo.h>
-#ifdef USE_BINUTILS
-#undef USE_BINUTILS
-#endif
-#else
-#ifndef USE_BINUTILS
-#define USE_BINUTILS 1
-#endif
#endif
/*
- * Turn off USE_BINUTILS if we don't have bfd support for it.
+ * Turn off USE_BFD if we don't have bfd support for it.
*/
#if !(defined(HAVE_BFD_H) && defined(HAVE_LIBBFD) && defined(HAVE_LIBIBERTY))
-#if defined(USE_BINUTILS)
-#undef USE_BINUTILS
-#endif
-#endif
-
-#if defined(_WIN32) && !defined(USE_BINUTILS)
+# if defined(USE_BFD)
+# undef USE_BFD
+# endif
+#endif
+
+#if defined(_WIN32) && !defined(USE_BFD)
#include <windows.h>
#if defined(HAVE_DBGHELP_H)
#include <dbghelp.h>
@@ -132,7 +125,7 @@
#if defined(_WIN32)
-#if defined(USE_BINUTILS)
+#if defined(USE_BFD)
static NSString *
GSPrivateBaseAddress(void *addr, void **base)
{
@@ -158,12 +151,12 @@
}
return nil;
}
-#endif /* USE_BINUTILS */
+#endif /* USE_BFD */
#else /* _WIN32 */
#include <dlfcn.h>
-#if defined(USE_BINUTILS)
+#if defined(USE_BFD)
static NSString *
GSPrivateBaseAddress(void *addr, void **base)
{
@@ -180,10 +173,10 @@
return nil;
#endif
}
-#endif /* USE_BINUTILS */
+#endif /* USE_BFD */
#endif /* _WIN32 */
-#if defined(USE_BINUTILS)
+#if defined(USE_BFD)
// GSStackTrace inspired by FYStackTrace.m
// created by Wim Oudshoorn on Mon 11-Apr-2006
@@ -578,14 +571,14 @@
return result;
}
-#endif /* USE_BINUTILS */
+#endif /* USE_BFD */
@implementation GSStackTrace : NSObject
static NSRecursiveLock *traceLock = nil;
-#if defined(_WIN32) && !defined(USE_BINUTILS)
+#if defined(_WIN32) && !defined(USE_BFD)
typedef USHORT (WINAPI *CaptureStackBackTraceType)(ULONG,ULONG,PVOID*,PULONG);
typedef BOOL (WINAPI *SymInitializeType)(HANDLE,char*,BOOL);
typedef DWORD (WINAPI *SymSetOptionsType)(DWORD);
@@ -642,7 +635,7 @@
// grab the current stack
- (id) init
{
-#if defined(USE_BINUTILS)
+#if defined(USE_BFD)
addresses = [GSPrivateStackAddresses() copy];
#elif defined(_WIN32)
uint16_t frames;
@@ -770,7 +763,7 @@
if (count > 0)
{
-#if defined(USE_BINUTILS)
+#if defined(USE_BFD)
NSMutableArray *a;
NSUInteger i;
@@ -988,13 +981,12 @@
+ (void) initialize
{
-#if defined(USE_BINUTILS)
+#if defined(USE_BFD)
if (modLock == nil)
{
modLock = [NSRecursiveLock new];
}
- NSLog(@"WARNING this copy of gnustep-base has been built with libbfd to
provide symbolic stacktrace support. This means that the license of this copy
of gnustep-base is GPL rather than the normal LGPL license (since libbfd is
released under the GPL license). If this is not what you want, please obtain a
copy of gnustep-base which was not configured with the --enable-bfd option");
-#endif /* USE_BINUTILS */
+#endif /* USE_BFD */
#if defined(_NATIVE_OBJC_EXCEPTIONS)
# ifdef HAVE_SET_UNCAUGHT_EXCEPTION_HANDLER
objc_setUncaughtExceptionHandler(callUncaughtHandler);
Modified: libs/base/trunk/configure
URL:
http://svn.gna.org/viewcvs/gnustep/libs/base/trunk/configure?rev=39763&r1=39762&r2=39763&view=diff
==============================================================================
--- libs/base/trunk/configure (original)
+++ libs/base/trunk/configure Sat May 14 16:47:43 2016
@@ -5418,7 +5418,7 @@
We can't simply define LARGE_OFF_T to be 9223372036854775807,
since some C++ compilers masquerading as C compilers
incorrectly reject 9223372036854775807. */
-#define LARGE_OFF_T ((((off_t) 1 << 31) << 31) - 1 + (((off_t) 1 << 31) << 31))
+#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
&& LARGE_OFF_T % 2147483647 == 1)
? 1 : -1];
@@ -5464,7 +5464,7 @@
We can't simply define LARGE_OFF_T to be 9223372036854775807,
since some C++ compilers masquerading as C compilers
incorrectly reject 9223372036854775807. */
-#define LARGE_OFF_T ((((off_t) 1 << 31) << 31) - 1 + (((off_t) 1 << 31) << 31))
+#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
&& LARGE_OFF_T % 2147483647 == 1)
? 1 : -1];
@@ -5488,7 +5488,7 @@
We can't simply define LARGE_OFF_T to be 9223372036854775807,
since some C++ compilers masquerading as C compilers
incorrectly reject 9223372036854775807. */
-#define LARGE_OFF_T ((((off_t) 1 << 31) << 31) - 1 + (((off_t) 1 << 31) << 31))
+#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
&& LARGE_OFF_T % 2147483647 == 1)
? 1 : -1];
@@ -5533,7 +5533,7 @@
We can't simply define LARGE_OFF_T to be 9223372036854775807,
since some C++ compilers masquerading as C compilers
incorrectly reject 9223372036854775807. */
-#define LARGE_OFF_T ((((off_t) 1 << 31) << 31) - 1 + (((off_t) 1 << 31) << 31))
+#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
&& LARGE_OFF_T % 2147483647 == 1)
? 1 : -1];
@@ -5557,7 +5557,7 @@
We can't simply define LARGE_OFF_T to be 9223372036854775807,
since some C++ compilers masquerading as C compilers
incorrectly reject 9223372036854775807. */
-#define LARGE_OFF_T ((((off_t) 1 << 31) << 31) - 1 + (((off_t) 1 << 31) << 31))
+#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
&& LARGE_OFF_T % 2147483647 == 1)
? 1 : -1];
@@ -8673,17 +8673,22 @@
#--------------------------------------------------------------------
# These headers/functions needed for stacktrace in NSException.m
#--------------------------------------------------------------------
-PASS_ARG=no
# Check whether --enable-bfd was given.
if test "${enable_bfd+set}" = set; then :
enableval=$enable_bfd;
else
- enable_bfd=$PASS_ARG
-fi
-
-
-if test $enable_bfd = yes; then
- for ac_header in bfd.h
+ enable_bfd=no
+fi
+
+if test $enable_bfd = yes ; then
+
+$as_echo "#define USE_BFD 1" >>confdefs.h
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: You enabled bfd, which
causes gnustep-base to link with libbfd. This makes the license GPL rather than
the normal LGPL." >&5
+$as_echo "$as_me: WARNING: You enabled bfd, which causes gnustep-base to link
with libbfd. This makes the license GPL rather than the normal LGPL." >&2;}
+fi
+
+for ac_header in bfd.h
do :
ac_fn_c_check_header_mongrel "$LINENO" "bfd.h" "ac_cv_header_bfd_h"
"$ac_includes_default"
if test "x$ac_cv_header_bfd_h" = xyes; then :
@@ -8695,7 +8700,7 @@
done
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for libintl_fprintf in
-lintl" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for libintl_fprintf in
-lintl" >&5
$as_echo_n "checking for libintl_fprintf in -lintl... " >&6; }
if ${ac_cv_lib_intl_libintl_fprintf+:} false; then :
$as_echo_n "(cached) " >&6
@@ -8740,7 +8745,7 @@
fi
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dyn_string_append in
-liberty" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for dyn_string_append in
-liberty" >&5
$as_echo_n "checking for dyn_string_append in -liberty... " >&6; }
if ${ac_cv_lib_iberty_dyn_string_append+:} false; then :
$as_echo_n "(cached) " >&6
@@ -8785,7 +8790,7 @@
fi
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for bfd_openr in -lbfd" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for bfd_openr in -lbfd" >&5
$as_echo_n "checking for bfd_openr in -lbfd... " >&6; }
if ${ac_cv_lib_bfd_bfd_openr+:} false; then :
$as_echo_n "(cached) " >&6
@@ -8830,9 +8835,8 @@
fi
-else
- if test $ismingw = yes ; then
- for ac_header in dbghelp.h
+if test $ismingw = yes ; then
+ for ac_header in dbghelp.h
do :
ac_fn_c_check_header_mongrel "$LINENO" "dbghelp.h" "ac_cv_header_dbghelp_h"
"$ac_includes_default"
if test "x$ac_cv_header_dbghelp_h" = xyes; then :
@@ -8844,8 +8848,8 @@
done
- else
- for ac_header in execinfo.h
+else
+ for ac_header in execinfo.h
do :
ac_fn_c_check_header_mongrel "$LINENO" "execinfo.h"
"ac_cv_header_execinfo_h" "$ac_includes_default"
if test "x$ac_cv_header_execinfo_h" = xyes; then :
@@ -8857,7 +8861,7 @@
done
- for ac_func in backtrace
+ for ac_func in backtrace
do :
ac_fn_c_check_func "$LINENO" "backtrace" "ac_cv_func_backtrace"
if test "x$ac_cv_func_backtrace" = xyes; then :
@@ -8868,8 +8872,8 @@
fi
done
- fi
-fi
+fi
+
for ac_func in __builtin_extract_return_address
do :
ac_fn_c_check_func "$LINENO" "__builtin_extract_return_address"
"ac_cv_func___builtin_extract_return_address"
@@ -12345,7 +12349,8 @@
if test $HAVE_LIBDISPATCH = 1; then
- # We check whether we
+ # We check whether we have a variant of libdispatch that allows runloop
+ # integration
for ac_func in dispatch_main_queue_drain_np dispatch_get_main_queue_handle_np
do :
as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
Modified: libs/base/trunk/configure.ac
URL:
http://svn.gna.org/viewcvs/gnustep/libs/base/trunk/configure.ac?rev=39763&r1=39762&r2=39763&view=diff
==============================================================================
--- libs/base/trunk/configure.ac (original)
+++ libs/base/trunk/configure.ac Sat May 14 16:47:43 2016
@@ -2242,7 +2242,6 @@
#--------------------------------------------------------------------
# These headers/functions needed for stacktrace in NSException.m
#--------------------------------------------------------------------
-PASS_ARG=no
AC_ARG_ENABLE(bfd,
[ --enable-bfd
Enables the use of libbfd to provide symbolic stack traces.
@@ -2251,21 +2250,23 @@
available or does not work properly.
Enabling this option also has the effect of changing the license
of gnustep-base from LGPL to GPL since libbfd uses the GPL license],,
- enable_bfd=$PASS_ARG)
-
-if test $enable_bfd = yes; then
- AC_CHECK_HEADERS(bfd.h)
- AC_CHECK_LIB(intl, libintl_fprintf)
- AC_CHECK_LIB(iberty, dyn_string_append)
- AC_CHECK_LIB(bfd, bfd_openr)
-else
- if test $ismingw = yes ; then
- AC_CHECK_HEADERS(dbghelp.h)
- else
- AC_CHECK_HEADERS(execinfo.h)
- AC_CHECK_FUNCS(backtrace)
- fi
-fi
+ enable_bfd=no)
+if test $enable_bfd = yes ; then
+ AC_DEFINE(USE_BFD,1, [Define to use bfd library for stack traces])
+ AC_MSG_WARN([You enabled bfd, which causes gnustep-base to link with libbfd.
This makes the license GPL rather than the normal LGPL.])
+fi
+
+AC_CHECK_HEADERS(bfd.h)
+AC_CHECK_LIB(intl, libintl_fprintf)
+AC_CHECK_LIB(iberty, dyn_string_append)
+AC_CHECK_LIB(bfd, bfd_openr)
+if test $ismingw = yes ; then
+ AC_CHECK_HEADERS(dbghelp.h)
+else
+ AC_CHECK_HEADERS(execinfo.h)
+ AC_CHECK_FUNCS(backtrace)
+fi
+
AC_CHECK_FUNCS(__builtin_extract_return_address)
#--------------------------------------------------------------------
_______________________________________________
Gnustep-cvs mailing list
[email protected]
https://mail.gna.org/listinfo/gnustep-cvs