From d0b36781d64a52a93ffec89d7b89a243793ea835 Mon Sep 17 00:00:00 2001 From: rpj Date: Wed, 13 Jan 1999 20:53:49 +0000 Subject: Thu Jan 14 14:27:13 1999 Ross Johnson * cleanup.c: Correct _cplusplus to __cplusplus wherever used. * Makefile.in: Add CC=g++ and add -fhandle-exceptions to CFLAGS. The derived Makefile will compile all units of the package as C++ so that those which include try/catch exception handling should work properly. The package should compile ok if CC=gcc, however, exception handling will not be included and thus thread cancellation, for example, will not work. * cleanup.c (_pthread_pop_cleanup): Add #warning to compile this file as C++ if using a cygwin32 environment. Perhaps the whole package should be compiled using g++ under cygwin. * private.c (_pthread_threadStart): Change #error directive into #warning and bracket for __CYGWIN__ and derivative compilers. --- ChangeLog | 18 ++++++++++++++++++ Makefile.in | 3 ++- cleanup.c | 14 +++++++++----- private.c | 4 +++- 4 files changed, 32 insertions(+), 7 deletions(-) diff --git a/ChangeLog b/ChangeLog index 85f2615..4adbc7e 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,21 @@ +Thu Jan 14 14:27:13 1999 Ross Johnson + + * cleanup.c: Correct _cplusplus to __cplusplus wherever used. + + * Makefile.in: Add CC=g++ and add -fhandle-exceptions to CFLAGS. + The derived Makefile will compile all units of the package as C++ + so that those which include try/catch exception handling should work + properly. The package should compile ok if CC=gcc, however, exception + handling will not be included and thus thread cancellation, for + example, will not work. + + * cleanup.c (_pthread_pop_cleanup): Add #warning to compile this + file as C++ if using a cygwin32 environment. Perhaps the whole package + should be compiled using g++ under cygwin. + + * private.c (_pthread_threadStart): Change #error directive + into #warning and bracket for __CYGWIN__ and derivative compilers. + Wed Jan 13 09:34:52 1999 Ross Johnson * build.bat: Delete old binaries before compiling/linking. diff --git a/Makefile.in b/Makefile.in index dd2e1cc..89c72fe 100644 --- a/Makefile.in +++ b/Makefile.in @@ -1,5 +1,6 @@ +CC = g++ -CFLAGS = -I. -DHAVE_CONFIG_H -Wall +CFLAGS = -fhandle-exceptions -I. -DHAVE_CONFIG_H -Wall OBJS = attr.o cancel.o cleanup.o condvar.o create.o dll.o \ exit.o fork.o global.o misc.o mutex.o private.o sched.o \ diff --git a/cleanup.c b/cleanup.c index e154266..199101b 100644 --- a/cleanup.c +++ b/cleanup.c @@ -71,7 +71,7 @@ _pthread_pop_cleanup (int execute) #else /* _WIN32 */ -#ifdef _cplusplus +#ifdef __cplusplus try { @@ -89,20 +89,24 @@ _pthread_pop_cleanup (int execute) */ } -#else /* _cplusplus */ +#else /* __cplusplus */ +#if defined(__CYGWIN__) || defined(__CYGWIN32__) +#warning Compile __FILE__ as C++ or thread cancellation will not work properly. +#endif + /* * Run the caller's cleanup routine and FIXME: hope for the best. */ (*cleanup->routine) (cleanup->arg); -#endif /* _cplusplus */ +#endif /* __cplusplus */ #endif /* _WIN32 */ } -#if !defined(_WIN32) && !defined(_cplusplus) +#if !defined(_WIN32) && !defined(__cplusplus) pthread_setspecific (_pthread_cleanupKey, cleanup->prev); @@ -161,7 +165,7 @@ _pthread_push_cleanup (_pthread_cleanup_t * cleanup, cleanup->routine = routine; cleanup->arg = arg; -#if !defined(_WIN32) && !defined(_cplusplus) +#if !defined(_WIN32) && !defined(__cplusplus) cleanup->prev = pthread_getspecific (_pthread_cleanupKey); diff --git a/private.c b/private.c index d7b44c9..3a4a0da 100644 --- a/private.c +++ b/private.c @@ -163,7 +163,9 @@ _pthread_threadStart (ThreadParms * threadParms) #else /* __cplusplus */ -#error Warning: Compile __FILE__ as C++ or thread cancellation will not work. +#if defined(__CYGWIN__) || defined(__CYGWIN32__) +#warning Compile __FILE__ as C++ or thread cancellation will not work properly. +#endif /* * Run the caller's routine; -- cgit v1.2.3