Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 10 Sep 1998 01:25:05 +0000 (GMT)
From:      Terry Lambert <tlambert@primenet.com>
To:        joelh@gnu.org
Cc:        tlambert@primenet.com, obrien@NUXI.com, dfr@nlsystems.com, jb@cimlogic.com.au, current@FreeBSD.ORG
Subject:   Re: Compiler problems with gcc-2.7.2.1
Message-ID:  <199809100125.SAA13902@usr02.primenet.com>
In-Reply-To: <199809100059.TAA03333@detlev.UUCP> from "Joel Ray Holveck" at Sep 9, 98 07:59:56 pm

next in thread | previous in thread | raw e-mail | index | archive | help
> > I personally dislike EGCS because it requires that you build the
> > compiler's libgcc.a so that it *either* _requires_ libc_r, *or* it
> > *cannot* use libc_r.
> 
> Until your patches are integrated, I'd look at building two libc's,
> and using -B to chose.

They are Jeremy Allison's, not mine.  I helped with the threads
code and making STL able to run using Draft 4 pthreads, but I
did not do the libgcc.a changes.

I believe they are already integrated in the FreeBSD gcc 2.8.1 port.

If not, they should be.  Here they are:

===========================================================================
*** libgcc2.c.orig	Fri Feb  6 12:17:16 1998
--- libgcc2.c	Fri Feb  6 14:57:17 1998
***************
*** 3201,3206 ****
--- 3201,3229 ----
  static void *top_elt[2];
  void **__dynamic_handler_chain = top_elt;
  
+ #if 1 /* MAKE_THREAD_SAFE */
+ 
+ typedef void *** (*dynamic_handler_allocator)();
+ static dynamic_handler_allocator dah = 0;
+ 
+ void __set_dynamic_handler_allocator( dynamic_handler_allocator
new_dah)
+ {
+   dah = new_dah;
+ }
+ 
+ /* Routine to get the head of the current thread's dynamic handler
chain
+    use for exception handling. */
+ 
+ void ***
+ __get_dynamic_handler_chain ()
+ {
+   if(dah == 0)
+     return &__dynamic_handler_chain;
+   return (*dah)();
+ }
+ 
+ #else
+ 
  /* Routine to get the head of the current thread's dynamic handler
chain
     use for exception handling.
  
***************
*** 3211,3216 ****
--- 3234,3241 ----
  {
    return &__dynamic_handler_chain;
  }
+ 
+ #endif
  
  /* This is used to throw an exception when the setjmp/longjmp codegen
     method is used for exception handling.

===========================================================================


					Terry Lambert
					terry@lambert.org
---
Any opinions in this posting are my own and not those of my present
or previous employers.

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-current" in the body of the message



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199809100125.SAA13902>