mirror of
git://gcc.gnu.org/git/gcc.git
synced 2025-04-14 04:20:25 +08:00
re PR libgomp/79876 (FAIL: libgomp.fortran/strassen.f90 -O execution test on x86_64-apple-darwin16)
PR libgomp/79876 * config/posix/thread-stacksize.h: New file. * config/darwin/thread-stacksize.h: New file. * config/nvptx/thread-stacksize.h: New file. * env.c: Include thread-stacksize.h. (initialize_env): Initialize stacksize to GOMP_DEFAULT_STACKSIZE instead of 0. Call pthread_attr_setstacksize even if GOMP_DEFAULT_STACKSIZE is non-zero. From-SVN: r246675
This commit is contained in:
parent
248179b5fc
commit
c4060df4b1
@ -1,3 +1,14 @@
|
||||
2017-04-04 Jakub Jelinek <jakub@redhat.com>
|
||||
|
||||
PR libgomp/79876
|
||||
* config/posix/thread-stacksize.h: New file.
|
||||
* config/darwin/thread-stacksize.h: New file.
|
||||
* config/nvptx/thread-stacksize.h: New file.
|
||||
* env.c: Include thread-stacksize.h.
|
||||
(initialize_env): Initialize stacksize to GOMP_DEFAULT_STACKSIZE
|
||||
instead of 0. Call pthread_attr_setstacksize even if
|
||||
GOMP_DEFAULT_STACKSIZE is non-zero.
|
||||
|
||||
2017-03-30 Jakub Jelinek <jakub@redhat.com>
|
||||
|
||||
* env.c (initialize_env): Initialize stacksize to 0.
|
||||
|
29
libgomp/config/darwin/thread-stacksize.h
Normal file
29
libgomp/config/darwin/thread-stacksize.h
Normal file
@ -0,0 +1,29 @@
|
||||
/* Copyright (C) 2017 Free Software Foundation, Inc.
|
||||
Contributed by Jakub Jelinek <jakub@redhat.com>
|
||||
|
||||
This file is part of the GNU Offloading and Multi Processing Library
|
||||
(libgomp).
|
||||
|
||||
Libgomp is free software; you can redistribute it and/or modify it
|
||||
under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 3, or (at your option)
|
||||
any later version.
|
||||
|
||||
Libgomp is distributed in the hope that it will be useful, but WITHOUT ANY
|
||||
WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
|
||||
FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
||||
more details.
|
||||
|
||||
Under Section 7 of GPL version 3, you are granted additional
|
||||
permissions described in the GCC Runtime Library Exception, version
|
||||
3.1, as published by the Free Software Foundation.
|
||||
|
||||
You should have received a copy of the GNU General Public License and
|
||||
a copy of the GCC Runtime Library Exception along with this program;
|
||||
see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
|
||||
<http://www.gnu.org/licenses/>. */
|
||||
|
||||
/* OSX uses too small default stack size (0.5MB), use a bigger default.
|
||||
Users can still override it through OMP_STACKSIZE or GOMP_STACKSIZE
|
||||
environment variables. */
|
||||
#define GOMP_DEFAULT_STACKSIZE (2 * 1024 * 1024)
|
27
libgomp/config/nvptx/thread-stacksize.h
Normal file
27
libgomp/config/nvptx/thread-stacksize.h
Normal file
@ -0,0 +1,27 @@
|
||||
/* Copyright (C) 2017 Free Software Foundation, Inc.
|
||||
Contributed by Jakub Jelinek <jakub@redhat.com>
|
||||
|
||||
This file is part of the GNU Offloading and Multi Processing Library
|
||||
(libgomp).
|
||||
|
||||
Libgomp is free software; you can redistribute it and/or modify it
|
||||
under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 3, or (at your option)
|
||||
any later version.
|
||||
|
||||
Libgomp is distributed in the hope that it will be useful, but WITHOUT ANY
|
||||
WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
|
||||
FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
||||
more details.
|
||||
|
||||
Under Section 7 of GPL version 3, you are granted additional
|
||||
permissions described in the GCC Runtime Library Exception, version
|
||||
3.1, as published by the Free Software Foundation.
|
||||
|
||||
You should have received a copy of the GNU General Public License and
|
||||
a copy of the GCC Runtime Library Exception along with this program;
|
||||
see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
|
||||
<http://www.gnu.org/licenses/>. */
|
||||
|
||||
/* Not really applicable to NVPTX. */
|
||||
#define GOMP_DEFAULT_STACKSIZE 0
|
27
libgomp/config/posix/thread-stacksize.h
Normal file
27
libgomp/config/posix/thread-stacksize.h
Normal file
@ -0,0 +1,27 @@
|
||||
/* Copyright (C) 2017 Free Software Foundation, Inc.
|
||||
Contributed by Jakub Jelinek <jakub@redhat.com>
|
||||
|
||||
This file is part of the GNU Offloading and Multi Processing Library
|
||||
(libgomp).
|
||||
|
||||
Libgomp is free software; you can redistribute it and/or modify it
|
||||
under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 3, or (at your option)
|
||||
any later version.
|
||||
|
||||
Libgomp is distributed in the hope that it will be useful, but WITHOUT ANY
|
||||
WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
|
||||
FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
||||
more details.
|
||||
|
||||
Under Section 7 of GPL version 3, you are granted additional
|
||||
permissions described in the GCC Runtime Library Exception, version
|
||||
3.1, as published by the Free Software Foundation.
|
||||
|
||||
You should have received a copy of the GNU General Public License and
|
||||
a copy of the GCC Runtime Library Exception along with this program;
|
||||
see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
|
||||
<http://www.gnu.org/licenses/>. */
|
||||
|
||||
/* 0 means use the system default. */
|
||||
#define GOMP_DEFAULT_STACKSIZE 0
|
@ -51,6 +51,7 @@
|
||||
# endif
|
||||
#endif
|
||||
#include <errno.h>
|
||||
#include "thread-stacksize.h"
|
||||
|
||||
#ifndef HAVE_STRTOULL
|
||||
# define strtoull(ptr, eptr, base) strtoul (ptr, eptr, base)
|
||||
@ -1187,7 +1188,7 @@ handle_omp_display_env (unsigned long stacksize, int wait_policy)
|
||||
static void __attribute__((constructor))
|
||||
initialize_env (void)
|
||||
{
|
||||
unsigned long thread_limit_var, stacksize = 0;
|
||||
unsigned long thread_limit_var, stacksize = GOMP_DEFAULT_STACKSIZE;
|
||||
int wait_policy;
|
||||
|
||||
/* Do a compile time check that mkomp_h.pl did good job. */
|
||||
@ -1274,7 +1275,8 @@ initialize_env (void)
|
||||
pthread_attr_setdetachstate (&gomp_thread_attr, PTHREAD_CREATE_DETACHED);
|
||||
|
||||
if (parse_stacksize ("OMP_STACKSIZE", &stacksize)
|
||||
|| parse_stacksize ("GOMP_STACKSIZE", &stacksize))
|
||||
|| parse_stacksize ("GOMP_STACKSIZE", &stacksize)
|
||||
|| GOMP_DEFAULT_STACKSIZE)
|
||||
{
|
||||
int err;
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user