Message ID | yddh9ar5pac.fsf@CeBiTec.Uni-Bielefeld.DE |
---|---|
State | New |
Headers | show |
On Thu, Aug 11, 2016 at 5:54 PM, Rainer Orth <ro@cebitec.uni-bielefeld.de> wrote: > Hi Janne, > >> committed a slightly modified patch as r239356. Changes from the >> submitted patch attached. To my surprise, it turned out that my >> fallback code using __gthread_key_{create,delete} and >> __ghtread_{get,set}_specific was faster than my TLS code, so I removed >> the TLS configure magic and the TLS code and just left the __gthread >> stuff in. > > this patch broke Solaris bootstrap: > > /vol/gcc/src/hg/trunk/local/libgfortran/intrinsics/random.c: In function 'constructor_random': > /vol/gcc/src/hg/trunk/local/libgfortran/intrinsics/ > random.c:915:45: error: 'free' undeclared (first use in this function); did you mean 'frexp'? > __gthread_key_create (&rand_state_key, &free); > ^~~~ > frexp > /vol/gcc/src/hg/trunk/local/libgfortran/intrinsics/random.c:915:45: note: each undeclared identifier is reported only once for each function it appears in > > You need to include <stdlib.h> for the free declaration, as this patch > does. Allowed i386-pc-solaris2.12 and sparc-sun-solaris2.12 to > continue. I'm going to install this as obvious. Oh, I (incorrectly, obviously!) remembered that stdlib.h would be included via libgfortran.h. Thanks for the quick fix!
diff --git a/libgfortran/intrinsics/random.c b/libgfortran/intrinsics/random.c --- a/libgfortran/intrinsics/random.c +++ b/libgfortran/intrinsics/random.c @@ -27,6 +27,7 @@ see the files COPYING3 and COPYING.RUNTI #include "libgfortran.h" #include <gthr.h> #include <string.h> +#include <stdlib.h> /* For getosrandom. */ #ifdef HAVE_SYS_TYPES_H