Skip to content

Commit

Permalink
PR libgomp/79876
Browse files Browse the repository at this point in the history
	* 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.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@246675 138bc75d-0d04-0410-961f-82ee72b054a4
  • Loading branch information
jakub committed Apr 4, 2017
1 parent 2bbfc13 commit cd34a2a
Show file tree
Hide file tree
Showing 5 changed files with 98 additions and 2 deletions.
11 changes: 11 additions & 0 deletions libgomp/ChangeLog
Original file line number Diff line number Diff line change
@@ -1,3 +1,14 @@
2017-04-04 Jakub Jelinek <[email protected]>

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 <[email protected]>

* env.c (initialize_env): Initialize stacksize to 0.
Expand Down
29 changes: 29 additions & 0 deletions libgomp/config/darwin/thread-stacksize.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
/* Copyright (C) 2017 Free Software Foundation, Inc.
Contributed by Jakub Jelinek <[email protected]>
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 changes: 27 additions & 0 deletions libgomp/config/nvptx/thread-stacksize.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
/* Copyright (C) 2017 Free Software Foundation, Inc.
Contributed by Jakub Jelinek <[email protected]>
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 changes: 27 additions & 0 deletions libgomp/config/posix/thread-stacksize.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
/* Copyright (C) 2017 Free Software Foundation, Inc.
Contributed by Jakub Jelinek <[email protected]>
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
6 changes: 4 additions & 2 deletions libgomp/env.c
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down Expand Up @@ -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. */
Expand Down Expand Up @@ -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;

Expand Down

0 comments on commit cd34a2a

Please sign in to comment.