Skip to content
Snippets Groups Projects
ChangeLog 108 KiB
Newer Older
1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 1134 1135 1136 1137 1138 1139 1140 1141 1142 1143 1144 1145 1146 1147 1148 1149 1150 1151 1152 1153 1154 1155 1156 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166 1167 1168 1169 1170 1171 1172 1173 1174 1175 1176 1177 1178 1179 1180 1181 1182 1183 1184 1185 1186 1187 1188 1189 1190 1191 1192 1193 1194 1195 1196 1197 1198 1199 1200 1201 1202 1203 1204 1205 1206 1207 1208 1209 1210 1211 1212 1213 1214 1215 1216 1217 1218 1219 1220 1221 1222 1223 1224 1225 1226 1227 1228 1229 1230 1231 1232 1233 1234 1235 1236 1237 1238 1239 1240 1241 1242 1243 1244 1245 1246 1247 1248 1249 1250 1251 1252 1253 1254 1255 1256 1257 1258 1259 1260 1261 1262 1263 1264 1265 1266 1267 1268 1269 1270 1271 1272 1273 1274 1275 1276 1277 1278 1279 1280 1281 1282 1283 1284 1285 1286 1287 1288 1289 1290 1291 1292 1293 1294 1295 1296 1297 1298 1299 1300 1301 1302 1303 1304 1305 1306 1307 1308 1309 1310 1311 1312 1313 1314 1315 1316 1317 1318 1319 1320 1321 1322 1323 1324 1325 1326 1327 1328 1329 1330 1331 1332 1333 1334 1335 1336 1337 1338 1339 1340 1341 1342 1343 1344 1345 1346 1347 1348 1349 1350 1351 1352 1353 1354 1355 1356 1357 1358 1359 1360 1361 1362 1363 1364 1365 1366 1367 1368 1369 1370 1371 1372 1373 1374 1375 1376 1377 1378 1379 1380 1381 1382 1383 1384 1385 1386 1387 1388 1389 1390 1391 1392 1393 1394 1395 1396 1397 1398 1399 1400 1401 1402 1403 1404 1405 1406 1407 1408 1409 1410 1411 1412 1413 1414 1415 1416 1417 1418 1419 1420 1421 1422 1423 1424 1425 1426 1427 1428 1429 1430 1431 1432 1433 1434 1435 1436 1437 1438 1439 1440 1441 1442 1443 1444 1445 1446 1447
	work_share_list_free_lock ifndef HAVE_SYNC_BUILTINS.
	Remove work_share_lock, generation_mask,
	oldest_live_gen, num_live_gen and init_work_shares fields, add
	work work_share_list_alloc, work_share_list_free and work_share_chunk
	fields.  Change work_shares from pointer to pointers into an array.
	Change ordered_release field into gomp_sem_t ** from flexible array
	member.  Add implicit_task and initial_work_shares fields.
	Move close to the end of the struct.
	(struct gomp_team_state): Add single_count, last_work_share,
	active_level and level fields, remove work_share_generation.
	(gomp_barrier_handle_tasks): New prototype.
	(gomp_finish_task): New inline function.
	(struct gomp_work_share): Move chunk_size, end, incr into
	transparent union/struct, add chunk_size_ull, end_ll, incr_ll and
	next_ll fields.  Reshuffle fields.  Add next_alloc,
	next_ws, next_free and inline_ordered_team_ids fields, change
	ordered_team_ids into pointer from flexible array member.
	Add mode field.  Put lock and next into a different cache line
	from most of the write-once fields.
	(gomp_iter_ull_static_next, gomp_iter_ull_dynamic_next_locked,
	gomp_iter_ull_guided_next_locked, gomp_iter_ull_dynamic_next,
	gomp_iter_ull_guided_next): New prototypes.
	(gomp_new_icv): New prototype.
	(struct gomp_thread): Add thread_pool and task fields.
	(struct gomp_thread_pool): New type.
	(gomp_new_team): New prototype.
	(gomp_team_start): Change type of last argument.
	(gomp_new_work_share): Removed.
	(gomp_init_work_share, gomp_fini_work_share): New prototypes.
	(gomp_work_share_init_done): New static inline.
	(gomp_throttled_spin_count_var, gomp_available_cpus,
	gomp_managed_threads): New extern decls.
	(gomp_init_task): New prototype.
	(gomp_spin_count_var): New extern var decl.
	(LIBGOMP_GNU_SYMBOL_VERSIONING): Undef if no visibility
	or no alias support, or if not PIC.
	(gomp_init_lock_30, gomp_destroy_lock_30, gomp_set_lock_30,
	gomp_unset_lock_30, gomp_test_lock_30, gomp_init_nest_lock_30,
	gomp_destroy_nest_lock_30, gomp_set_nest_lock_30,
	gomp_unset_nest_lock_30, gomp_test_nest_lock_30, gomp_init_lock_25,
	gomp_destroy_lock_25, gomp_set_lock_25, gomp_unset_lock_25,
	gomp_test_lock_25, gomp_init_nest_lock_25, gomp_destroy_nest_lock_25,
	gomp_set_nest_lock_25, gomp_unset_nest_lock_25,
	gomp_test_nest_lock_25): New prototypes.
	(omp_lock_symver, strong_alias): Define.
	(gomp_remaining_threads_count, gomp_remaining_threads_lock): New
	decls.
	(gomp_end_task): New.
	(struct gomp_task_icv, gomp_global_icv): New.
	(gomp_thread_limit_var, gomp_max_active_levels_var): New.
	(struct gomp_task): New.
	(gomp_nthreads_var, gomp_dyn_var, gomp_nest_var,
	gomp_run_sched_var, gomp_run_sched_chunk): Remove.
	(gomp_icv): New.
	(gomp_schedule_type): Reorder enum to match
	omp_sched_t.
	* team.c (struct gomp_thread_start_data): Add thread_pool and task
	fields.
	(gomp_thread_start): Add gomp_team_barrier_wait call.
	For non-nested case remove clearing of docked thread thr fields.
	Use pool fields instead of global gomp_* variables.  Use
	gomp_barrier_wait_last when needed.  Initialize ts.active_level.
	Create tasks for each member thread.
	(free_team): Only destroy team barrier, task_lock here and free it.
	(gomp_free_thread): Free last_team if non-NULL.
	(gomp_team_end): Call gomp_team_barrier_wait instead of
	gomp_barrier_wait.  For nested case call one extra
	gomp_barrier_wait.  Move here some destruction from free_team.
	Call free_team on pool->last_team if any, rather than freeing
	current team.  Destroy work_share_list_free_lock ifndef
	HAVE_SYNC_BUILTINS.
	(gomp_new_icv): New function.
	(gomp_threads, gomp_threads_size, gomp_threads_used,
	gomp_threads_dock): Removed.
	(gomp_thread_destructor): New variable.
	(gomp_new_thread_pool, gomp_free_pool_helper, gomp_free_thread): New
	functions.
	(gomp_team_start): Create new pool if current thread doesn't have
	one.  Use pool fields instead of global gomp_* variables. 
	Initialize thread_pool field for new threads.  Clear single_count.
	Change last argument from ws to team, don't create
	new team, set ts.work_share to &team->work_shares[0] and clear
	ts.last_work_share.  Don't clear ts.work_share_generation.
	If number of threads changed, adjust atomically gomp_managed_threads.
	Use gomp_init_task instead of gomp_new_task,
	set thr->task to the corresponding implicit_task array entry.
	Create tasks for each member thread.  Initialize ts.level.
	(initialize_team): Call pthread_key_create on
	gomp_thread_destructor.
	(team_destructor): New function.
	(new_team): Removed.
	(gomp_new_team): New function.
	(free_team): Free gomp_work_share blocks chained through next_alloc,
	instead of freeing work_shares and destroying work_share_lock.
	(gomp_team_end): Call gomp_fini_work_share.  If number of threads
	changed, adjust atomically gomp_managed_threads.  Use gomp_end_task.
	* barrier.c (GOMP_barrier): Call gomp_team_barrier_wait instead
	of gomp_barrier_wait.
	* single.c (GOMP_single_copy_start): Call gomp_team_barrier_wait
	instead of gomp_barrier_wait.  Call gomp_work_share_init_done
	if gomp_work_share_start returned true.  Don't unlock ws->lock.
	(GOMP_single_copy_end): Call gomp_team_barrier_wait instead
	of gomp_barrier_wait.
	(GOMP_single_start): Rewritten if HAVE_SYNC_BUILTINS.  Call
	gomp_work_share_init_done if gomp_work_share_start returned true.
	Don't unlock ws->lock.
	* work.c: Include stddef.h.
	(free_work_share): Use work_share_list_free_lock instead
	of atomic chaining ifndef HAVE_SYNC_BUILTINS.  Add team argument.
	Call gomp_fini_work_share and then either free ws if orphaned, or
	put it into work_share_list_free list of the current team.
	(alloc_work_share, gomp_init_work_share, gomp_fini_work_share): New
	functions.
	(gomp_work_share_start, gomp_work_share_end,
	gomp_work_share_end_nowait): Rewritten.
	* omp_lib.f90.in Change some tabs to spaces to prevent warnings.
	(openmp_version): Set to 200805.
	(omp_sched_kind, omp_sched_static, omp_sched_dynamic,
	omp_sched_guided, omp_sched_auto): New parameters.
	(omp_set_schedule, omp_get_schedule, omp_get_thread_limit,
	omp_set_max_active_levels, omp_get_max_active_levels,
	omp_get_level, omp_get_ancestor_thread_num, omp_get_team_size,
	omp_get_active_level): New interfaces.
	* omp_lib.h.in (openmp_version): Set to 200805.
	(omp_sched_kind, omp_sched_static, omp_sched_dynamic,
	omp_sched_guided, omp_sched_auto): New parameters.
	(omp_set_schedule, omp_get_schedule, omp_get_thread_limit,
	omp_set_max_active_levels, omp_get_max_active_levels,
	omp_get_level, omp_get_ancestor_thread_num, omp_get_team_size,
	omp_get_active_level): New externals.
	* loop.c: Include limits.h.
	(GOMP_loop_runtime_next, GOMP_loop_ordered_runtime_next): Handle
	GFS_AUTO.
	(GOMP_loop_runtime_start, GOMP_loop_ordered_runtime_start):
	Likewise.  Use gomp_icv.
	(gomp_loop_static_start, gomp_loop_dynamic_start): Clear
	ts.static_trip here.
	(gomp_loop_static_start, gomp_loop_ordered_static_start): Call
	gomp_work_share_init_done after gomp_loop_init.  Don't unlock ws->lock.
	(gomp_loop_dynamic_start, gomp_loop_guided_start): Call
	gomp_work_share_init_done after gomp_loop_init.  If HAVE_SYNC_BUILTINS,
	don't unlock ws->lock, otherwise lock it.
	(gomp_loop_ordered_dynamic_start, gomp_loop_ordered_guided_start): Call
	gomp_work_share_init_done after gomp_loop_init.  Lock ws->lock.
	(gomp_parallel_loop_start): Call gomp_new_team instead of
	gomp_new_work_share.  Call gomp_loop_init on &team->work_shares[0].
	Adjust gomp_team_start caller.  Pass 0 as second argument to
	gomp_resolve_num_threads.
	(gomp_loop_init): For GFS_DYNAMIC, multiply ws->chunk_size by incr.
	If adding ws->chunk_size nthreads + 1 times after end won't
	overflow, set ws->mode to 1.
	* libgomp_g.h (GOMP_loop_ull_static_start, GOMP_loop_ull_dynamic_start,
	GOMP_loop_ull_guided_start, GOMP_loop_ull_runtime_start,
	GOMP_loop_ull_ordered_static_start,
	GOMP_loop_ull_ordered_dynamic_start,
	GOMP_loop_ull_ordered_guided_start,
	GOMP_loop_ull_ordered_runtime_start, GOMP_loop_ull_static_next,
	GOMP_loop_ull_dynamic_next, GOMP_loop_ull_guided_next,
	GOMP_loop_ull_runtime_next, GOMP_loop_ull_ordered_static_next,
	GOMP_loop_ull_ordered_dynamic_next, GOMP_loop_ull_ordered_guided_next,
	GOMP_loop_ull_ordered_runtime_next, GOMP_task, GOMP_taskwait): New
	prototypes.
	* libgomp.map: Export lock routines also @@OMP_2.0.
	(GOMP_loop_ordered_dynamic_first,
	GOMP_loop_ordered_guided_first, GOMP_loop_ordered_runtime_first,
	GOMP_loop_ordered_static_first): Remove.
	(GOMP_loop_ull_dynamic_next, GOMP_loop_ull_dynamic_start,
	GOMP_loop_ull_guided_next, GOMP_loop_ull_guided_start,
	GOMP_loop_ull_ordered_dynamic_next,
	GOMP_loop_ull_ordered_dynamic_start,
	GOMP_loop_ull_ordered_guided_next,
	GOMP_loop_ull_ordered_guided_start,
	GOMP_loop_ull_ordered_runtime_next,
	GOMP_loop_ull_ordered_runtime_start,
	GOMP_loop_ull_ordered_static_next,
	GOMP_loop_ull_ordered_static_start,
	GOMP_loop_ull_runtime_next, GOMP_loop_ull_runtime_start,
	GOMP_loop_ull_static_next, GOMP_loop_ull_static_start,
	GOMP_task, GOMP_taskwait): Export @@GOMP_2.0.
	(omp_set_schedule, omp_get_schedule,
	omp_get_thread_limit, omp_set_max_active_levels,
	omp_get_max_active_levels, omp_get_level,
	omp_get_ancestor_thread_num, omp_get_team_size, omp_get_active_level,
	omp_set_schedule_, omp_set_schedule_8_,
	omp_get_schedule_, omp_get_schedule_8_, omp_get_thread_limit_,
	omp_set_max_active_levels_, omp_set_max_active_levels_8_,
	omp_get_max_active_levels_, omp_get_level_,
	omp_get_ancestor_thread_num_, omp_get_ancestor_thread_num_8_,
	omp_get_team_size_, omp_get_team_size_8_, omp_get_active_level_):
	New exports @@OMP_3.0.
	* omp.h.in (omp_sched_t): New type.
	(omp_set_schedule, omp_get_schedule, omp_get_thread_limit,
	omp_set_max_active_levels, omp_get_max_active_levels,
	omp_get_level, omp_get_ancestor_thread_num, omp_get_team_size,
	omp_get_active_level): New prototypes.
	* env.c (gomp_spin_count_var, gomp_throttled_spin_count_var,
	gomp_available_cpus, gomp_managed_threads, gomp_max_active_levels_var,
	gomp_thread_limit_var, gomp_remaining_threads_count,
	gomp_remaining_threads_lock): New variables.
	(parse_spincount): New function.
	(initialize_env): Call gomp_init_num_threads unconditionally.
	Initialize gomp_available_cpus.  Call parse_spincount,
	initialize gomp_{,throttled_}spin_count_var
	depending on presence and value of OMP_WAIT_POLICY and
	GOMP_SPINCOUNT env vars.  Handle GOMP_BLOCKTIME env var.
	Handle OMP_WAIT_POLICY, OMP_MAX_ACTIVE_LEVELS,
	OMP_THREAD_LIMIT, OMP_STACKSIZE env vars.  Handle unit specification
	for GOMP_STACKSIZE.  Initialize gomp_remaining_threads_count and
	gomp_remaining_threads_lock if needed.  Use gomp_global_icv.
	(gomp_nthreads_var, gomp_dyn_var, gomp_nest_var,
	gomp_run_sched_var, gomp_run_sched_chunk): Remove.
	(gomp_global_icv): New.
	(parse_schedule): Use it.  Parse "auto".
	(omp_set_num_threads): Use gomp_icv.
	(omp_set_dynamic, omp_get_dynamic, omp_set_nested, omp_get_nested):
	Likewise.
	(omp_get_max_threads): Move from parallel.c.
	(omp_set_schedule, omp_get_schedule, omp_get_thread_limit,
	omp_set_max_active_levels, omp_get_max_active_levels): New functions,
	add ialias.
	(parse_stacksize, parse_wait_policy): New functions.
	* fortran.c: Rewrite lock wrappers, if symbol versioning provide
	both wrappers for compatibility and new locks.
	(omp_set_schedule, omp_get_schedule,
	omp_get_thread_limit, omp_set_max_active_levels,
	omp_get_max_active_levels, omp_get_level,
	omp_get_ancestor_thread_num, omp_get_team_size,
	omp_get_active_level): New ialias_redirect.
	(omp_set_schedule_, omp_set_schedule_8_,
	omp_get_schedule_, omp_get_schedule_8_, omp_get_thread_limit_,
	omp_set_max_active_levels_, omp_set_max_active_levels_8_,
	omp_get_max_active_levels_, omp_get_level_,
	omp_get_ancestor_thread_num_, omp_get_ancestor_thread_num_8_,
	omp_get_team_size_, omp_get_team_size_8_, omp_get_active_level_):
	New functions.
	* parallel.c: Include limits.h.
	(gomp_resolve_num_threads): Add count argument.  Rewritten.
	(GOMP_parallel_start): Call gomp_new_team and pass that as last
	argument to gomp_team_start.  Pass 0 as second argument to
	gomp_resolve_num_threads.
	(GOMP_parallel_end): Decrease gomp_remaining_threads_count
	if gomp_thread_limit_var != ULONG_MAX.
	(omp_in_parallel): Implement using ts.active_level.
	(omp_get_max_threads): Move to env.c.
	(omp_get_level, omp_get_ancestor_thread_num,
	omp_get_team_size, omp_get_active_level): New functions,
	add ialias.
	* sections.c (GOMP_sections_start): Call gomp_work_share_init_done
	after gomp_sections_init.  If HAVE_SYNC_BUILTINS, call
	gomp_iter_dynamic_next instead of the _locked variant and don't take
	lock around it, otherwise acquire it before calling
	gomp_iter_dynamic_next_locked.
	(GOMP_sections_next): If HAVE_SYNC_BUILTINS, call
	gomp_iter_dynamic_next instead of the _locked variant and don't take
	lock around it.
	(GOMP_parallel_sections_start): Call gomp_new_team instead of
	gomp_new_work_share.  Call gomp_sections_init on &team->work_shares[0].
	Adjust gomp_team_start caller.  Pass count as second argument to
	gomp_resolve_num_threads, don't adjust num_threads after the call.
	Use gomp_icv.
	* iter.c (gomp_iter_dynamic_next_locked): Don't multiply
	ws->chunk_size by incr.
	(gomp_iter_dynamic_next): Likewise.  If ws->mode, use more efficient
	code.
	* libgomp_f.h.in (omp_lock_25_arg_t, omp_nest_lock_25_arg_t): New
	types.
	(omp_lock_25_arg, omp_nest_lock_25_arg): New macros.
	(omp_check_defines): Check even the compat defines.
	* config/linux/ptrlock.c: New file.
	* config/linux/ptrlock.h: New file.
	* config/linux/wait.h: New file.
	* config/posix/ptrlock.c: New file.
	* config/posix/ptrlock.h: New file.
	* config/linux/bar.h (gomp_team_barrier_wait,
	gomp_team_barrier_wait_end, gomp_team_barrier_wake): New prototypes.
	(gomp_team_barrier_set_task_pending,
	gomp_team_barrier_clear_task_pending,
	gomp_team_barrier_set_waiting_for_tasks,
	gomp_team_barrier_waiting_for_tasks,
	gomp_team_barrier_done): New inlines.
	(gomp_barrier_t): Rewritten.
	(gomp_barrier_state_t): New typedef.
	(gomp_barrier_init, gomp_barrier_reinit, gomp_barrier_destroy,
	gomp_barrier_wait_start): Rewritten.
	(gomp_barrier_wait_end): Change second argument to
	gomp_barrier_state_t.
	(gomp_barrier_last_thread, gomp_barrier_wait_last): New static
	inlines.
	* config/linux/bar.c: Include wait.h instead of libgomp.h and
	futex.h.
	(gomp_barrier_wait_end): Rewritten.
	(gomp_team_barrier_wait, gomp_team_barrier_wait_end,
	gomp_team_barrier_wake, gomp_barrier_wait_last): New functions.
	* config/posix/bar.h (gomp_barrier_t): Add generation field.
	(gomp_barrier_state_t): New typedef.
	(gomp_team_barrier_wait,
	gomp_team_barrier_wait_end, gomp_team_barrier_wake): New prototypes.
	(gomp_barrier_wait_start): Or all but low 2 bits from generation
	into the return value.  Return gomp_barrier_state_t.
	(gomp_team_barrier_set_task_pending,
	gomp_team_barrier_clear_task_pending,
	gomp_team_barrier_set_waiting_for_tasks,
	gomp_team_barrier_waiting_for_tasks,
	gomp_team_barrier_done): New inlines.
	(gomp_barrier_wait_end): Change second argument to
	gomp_barrier_state_t.
	(gomp_barrier_last_thread, gomp_barrier_wait_last): New static
	inlines.
	* config/posix/bar.c (gomp_barrier_init): Clear generation field.
	(gomp_barrier_wait_end): Change second argument to
	gomp_barrier_state_t. 
	(gomp_team_barrier_wait, gomp_team_barrier_wait_end,
	gomp_team_barrier_wake): New functions.
	* config/linux/mutex.c: Include wait.h instead of libgomp.h and
	futex.h.
	(gomp_futex_wake, gomp_futex_wait): New variables.
	(gomp_mutex_lock_slow): Call do_wait instead of futex_wait.
	* config/linux/lock.c: Rewrite to make locks task owned,
	for backwards compatibility provide the old entrypoints
	if symbol versioning.  Include wait.h instead of libgomp.h and
	futex.h.
	(gomp_set_nest_lock_25): Call do_wait instead of futex_wait.
	* config/posix95/lock.c: Rewrite to make locks task owned,
	for backwards compatibility provide the old entrypoints
	if symbol versioning.
	* config/posix/lock.c: Rewrite to make locks task owned,
	for backwards compatibility provide the old entrypoints
	if symbol versioning.
	* config/linux/proc.c (gomp_init_num_threads): Use gomp_global_icv.
	(get_num_procs, gomp_dynamic_max_threads): Use gomp_icv.
	* config/posix/proc.c, config/mingw32/proc.c: Similarly.
	* config/linux/powerpc/futex.h (FUTEX_WAIT, FUTEX_WAKE): Remove.
	(sys_futex0): Return error code.
	(futex_wake, futex_wait): If ENOSYS was returned, clear
	FUTEX_PRIVATE_FLAG in gomp_futex_wa{ke,it} and retry.
	(cpu_relax, atomic_write_barrier): New static inlines.
	* config/linux/alpha/futex.h (FUTEX_WAIT, FUTEX_WAKE): Remove.
	(futex_wake, futex_wait): If ENOSYS was returned, clear
	FUTEX_PRIVATE_FLAG in gomp_futex_wa{ke,it} and retry.
	(cpu_relax, atomic_write_barrier): New static inlines.
	* config/linux/x86/futex.h (FUTEX_WAIT, FUTEX_WAKE): Remove.
	(sys_futex0): Return error code.
	(futex_wake, futex_wait): If ENOSYS was returned, clear
	FUTEX_PRIVATE_FLAG in gomp_futex_wa{ke,it} and retry.
	(cpu_relax, atomic_write_barrier): New static inlines.
	* config/linux/s390/futex.h (FUTEX_WAIT, FUTEX_WAKE): Remove.
	(sys_futex0): Return error code.
	(futex_wake, futex_wait): If ENOSYS was returned, clear
	FUTEX_PRIVATE_FLAG in gomp_futex_wa{ke,it} and retry.
	(cpu_relax, atomic_write_barrier): New static inlines.
	* config/linux/ia64/futex.h (FUTEX_WAIT, FUTEX_WAKE): Remove.
	(sys_futex0): Return error code.
	(futex_wake, futex_wait): If ENOSYS was returned, clear
	FUTEX_PRIVATE_FLAG in gomp_futex_wa{ke,it} and retry.
	(cpu_relax, atomic_write_barrier): New static inlines.
	* config/linux/sparc/futex.h (FUTEX_WAIT, FUTEX_WAKE): Remove.
	(sys_futex0): Return error code.
	(futex_wake, futex_wait): If ENOSYS was returned, clear
	FUTEX_PRIVATE_FLAG in gomp_futex_wa{ke,it} and retry.
	(cpu_relax, atomic_write_barrier): New static inlines.
	* config/linux/sem.c: Include wait.h instead of libgomp.h and
	futex.h.
	(gomp_sem_wait_slow): Call do_wait instead of futex_wait.
	* config/linux/affinity.c: Assume HAVE_SYNC_BUILTINS.
	* config/linux/omp-lock.h (omp_lock_25_t, omp_nest_lock_25_t): New
	types.
	(omp_nest_lock_t): Change owner into void *, add lock field.
	* config/posix95/omp-lock.h: Include semaphore.h.
	(omp_lock_25_t, omp_nest_lock_25_t): New types.
	(omp_lock_t): Use sem_t instead of mutex if semaphores
	aren't broken.
	(omp_nest_lock_t): Likewise.  Change owner to void *.
	* config/posix/omp-lock.h: Include semaphore.h.
	(omp_lock_25_t, omp_nest_lock_25_t): New types.
	(omp_lock_t): Use sem_t instead of mutex if semaphores
	aren't broken.
	(omp_nest_lock_t): Likewise.  Add owner field.

2008-06-06  Jakub Jelinek  <jakub@redhat.com>

	* testsuite/libgomp.c/collapse-1.c: New test.
	* testsuite/libgomp.c/collapse-2.c: New test.
	* testsuite/libgomp.c/collapse-3.c: New test.
	* testsuite/libgomp.c/icv-1.c: New test.
	* testsuite/libgomp.c/icv-2.c: New test.
	* testsuite/libgomp.c/lib-2.c: New test.
	* testsuite/libgomp.c/lock-1.c: New test.
	* testsuite/libgomp.c/lock-2.c: New test.
	* testsuite/libgomp.c/lock-3.c: New test.
	* testsuite/libgomp.c/loop-4.c: New test.
	* testsuite/libgomp.c/loop-5.c: New test.
	* testsuite/libgomp.c/loop-6.c: New test.
	* testsuite/libgomp.c/loop-7.c: New test.
	* testsuite/libgomp.c/loop-8.c: New test.
	* testsuite/libgomp.c/loop-9.c: New test.
	* testsuite/libgomp.c/nested-3.c: New test.
	* testsuite/libgomp.c/nestedfn-6.c: New test.
	* testsuite/libgomp.c/sort-1.c: New test.
	* testsuite/libgomp.c/task-1.c: New test.
	* testsuite/libgomp.c/task-2.c: New test.
	* testsuite/libgomp.c/task-3.c: New test.
	* testsuite/libgomp.c/task-4.c: New test.
	* testsuite/libgomp.c++/c++.exp: Add libstdc++-v3 build includes
	to C++ testsuite default compiler options.
	* testsuite/libgomp.c++/collapse-1.C: New test.
	* testsuite/libgomp.c++/collapse-2.C: New test.
	* testsuite/libgomp.c++/ctor-10.C: New test.
	* testsuite/libgomp.c++/for-1.C: New test.
	* testsuite/libgomp.c++/for-2.C: New test.
	* testsuite/libgomp.c++/for-3.C: New test.
	* testsuite/libgomp.c++/for-4.C: New test.
	* testsuite/libgomp.c++/for-5.C: New test.
	* testsuite/libgomp.c++/loop-8.C: New test.
	* testsuite/libgomp.c++/loop-9.C: New test.
	* testsuite/libgomp.c++/loop-10.C: New test.
	* testsuite/libgomp.c++/task-1.C: New test.
	* testsuite/libgomp.c++/task-2.C: New test.
	* testsuite/libgomp.c++/task-3.C: New test.
	* testsuite/libgomp.c++/task-4.C: New test.
	* testsuite/libgomp.c++/task-5.C: New test.
	* testsuite/libgomp.c++/task-6.C: New test.
	* testsuite/libgomp.fortran/allocatable1.f90: New test.
	* testsuite/libgomp.fortran/allocatable2.f90: New test.
	* testsuite/libgomp.fortran/allocatable3.f90: New test.
	* testsuite/libgomp.fortran/allocatable4.f90: New test.
	* testsuite/libgomp.fortran/collapse1.f90: New test.
	* testsuite/libgomp.fortran/collapse2.f90: New test.
	* testsuite/libgomp.fortran/collapse3.f90: New test.
	* testsuite/libgomp.fortran/collapse4.f90: New test.
	* testsuite/libgomp.fortran/lastprivate1.f90: New test.
	* testsuite/libgomp.fortran/lastprivate2.f90: New test.
	* testsuite/libgomp.fortran/lib4.f90: New test.
	* testsuite/libgomp.fortran/lock-1.f90: New test.
	* testsuite/libgomp.fortran/lock-2.f90: New test.
	* testsuite/libgomp.fortran/nested1.f90: New test.
	* testsuite/libgomp.fortran/nestedfn4.f90: New test.
	* testsuite/libgomp.fortran/strassen.f90: New test.
	* testsuite/libgomp.fortran/tabs1.f90: New test.
	* testsuite/libgomp.fortran/tabs2.f: New test.
	* testsuite/libgomp.fortran/task1.f90: New test.
	* testsuite/libgomp.fortran/task2.f90: New test.
	* testsuite/libgomp.fortran/vla4.f90: Add dg-warning.
	* testsuite/libgomp.fortran/vla5.f90: Likewise.
	* testsuite/libgomp.c/pr26943-2.c: Likewise.
	* testsuite/libgomp.c/pr26943-3.c: Likewise.
	* testsuite/libgomp.c/pr26943-4.c: Likewise.

2008-05-23  Jakub Jelinek  <jakub@redhat.com>

	PR c++/36308
	* testsuite/libgomp.c++/ctor-11.C: New test.
	* testsuite/libgomp.c++/ctor-12.C: New test.

2008-05-15  Janis Johnson  <janis187@us.ibm.com>

	* testsuite/lib/libgomp.exp: Load torture-options.exp from gcc lib.

2008-05-07  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/36106
	* testsuite/libgomp.c/atomic-5.c: New test.
	* testsuite/libgomp.c/atomic-6.c: New test.
	* testsuite/libgomp.c/autopar-1.c: New test.

Ralf Wildenhues's avatar
Ralf Wildenhues committed
2008-04-21  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>

	* acinclude.m4 (LIBGOMP_CHECK_SYNC_BUILTINS)
	(LIBGOMP_CHECK_ATTRIBUTE_VISIBILITY)
	(LIBGOMP_CHECK_ATTRIBUTE_DLLEXPORT)
	(LIBGOMP_CHECK_ATTRIBUTE_ALIAS): Fix cache variable names.
	* configure: Regenerate.
	* Makefile.in, testsuite/Makefile.in: Likewise.

2008-04-18  Paolo Bonzini  <bonzini@gnu.org>

	PR bootstrap/35457
	* aclocal.m4: Regenerate.
	* configure: Regenerate.

	PR middle-end/35611
	* testsuite/libgomp.c/atomic-4.c: New test.

	PR libgomp/35625
	* iter.c (gomp_iter_guided_next_locked): If q > n, set end to ws->end.
	(gomp_iter_guided_next): Likewise.
	* testsuite/libgomp.c/pr35625.c: New test.

2008-03-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>

	* aclocal.m4: Regenerate.
	* configure: Likewise.
	* Makefile.in: Likewise.
	* testsuite/Makefile.in: Likewise.

2008-03-13  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/35185
	* testsuite/libgomp.c++/pr35185.C: New test.

2008-03-12  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/35549
	* testsuite/libgomp.c/pr35549.c: New test.

2008-03-06  Jakub Jelinek  <jakub@redhat.com>

	* testsuite/libgomp.c/atomic-3.c: New test.

2008-03-03  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>

	PR fortran/33197
	* testsuite/libgomp.fortran/fortran.exp: Add .f08 and
2008-03-03  Peter O'Gorman  <pogma@thewrittenword.com>

	PR libgomp/33131
	* configure.ac: Add ACX_HEADER_STRING.
	* env.c: Include strings.h.
	* aclocal.m4: Regenerate.
	* config.h.in: Regenerate.
	* configure: Regenerate.
	* Makefile.in: Regenerate.
	* testsuite/Makefile.in: Regenerate.

2008-02-15  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/35196
	* testsuite/libgomp.c/pr35196.c: New test.

	PR middle-end/35130
	* testsuite/libgomp.fortran/pr35130.f90: New test.
	* testsuite/libgomp.c/pr35130.c: New test.

2008-01-25  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/33880
	* testsuite/libgomp.c/pr33880.c: New test.
	* testsuite/libgomp.fortran/pr33880.f90: New test.

David Edelsohn's avatar
David Edelsohn committed
2008-01-24  David Edelsohn  <edelsohn@gnu.org>
David Edelsohn's avatar
David Edelsohn committed

	* configure: Regenerate.

2008-01-08  Jakub Jelinek  <jakub@redhat.com>

	* configure.ac: Move futex checking into ../config/futex.m4.
	* configure: Rebuilt.
	* aclocal.m4: Rebuilt.
	* Makefile.in: Rebuilt.

	* configure.tgt: Rename have_tls to gcc_cv_have_tls to match
	2007-10-15 ../config/tls.m4 change.

2007-12-19  Jakub Jelinek  <jakub@redhat.com>

	PR c++/34513
	* testsuite/libgomp.c/pr34513.c: New test.
	* testsuite/libgomp.c++/pr34513.C: New test.

2007-12-17  Jack Howarth  <howarth@bromo.med.uc.edu>

	PR target/32765
	* testsuite/libgomp.fortran/crayptr2.f90: Move dg-options for darwin.

2007-12-04  Jakub Jelinek  <jakub@redhat.com>

	* omp.h.in (__GOMP_NOTHROW): Define.  Use it on omp_* prototypes.

2007-12-03  Jakub Jelinek  <jakub@redhat.com>

	* testsuite/libgomp.c/private-1.c: New test.

Paolo Bonzini's avatar
Paolo Bonzini committed
2007-11-29  Andris Pavenis <andris.pavenis@iki.fi>
	    Paolo Bonzini  <bonzini@gnu.org>

	* Makefile.am: Use space as vpath separator.  Use 'vpath %'
	instead of 'VPATH ='.
	* Makefile.in: Regenerate.

2007-11-23  Matthias Klose  <doko@ubuntu.com>

	* configure.ac: Adjust makeinfo version check.
	* configure: Regenerate.

2007-11-10  Jakub Jelinek  <jakub@redhat.com>

	PR fortran/34020
	* testsuite/libgomp.fortran/pr34020.f90: New test.

2007-11-06  Jakub Jelinek  <jakub@redhat.com>

	PR c++/33894
	* testsuite/libgomp.c++/atomic-1.C: New test.

2007-10-25  Jakub Jelinek  <jakub@redhat.com>

	PR libgomp/33275
	* testsuite/libgomp.fortran/omp_parse3.f90 (test_threadprivate):
	Make x and y integers rather than (implicit) reals.  Add private (j)
	clause to the last omp parallel.

2007-10-15  Maciej W. Rozycki  <macro@linux-mips.org>

	* configure: Regenerate following changes to ../config/tls.m4.

2007-09-28  Jakub Jelinek  <jakub@redhat.com>

	* testsuite/libgomp.fortran/stack.f90: New test.

2007-09-10  Danny Smith  <dannysmith@users.sourceforge.net>

	* config/mingw32/proc.c: New file.

Uros Bizjak's avatar
Uros Bizjak committed
2007-09-05  Uros Bizjak  <ubizjak@gmail.com>

	* testsuite/libgomp.c/atomic-1.c: Include cpuid.h for i386 targets.
	(main): Use __get_cpuid to get i386 target fetaures.
	* testsuite/libgomp.c/atomic-2.c: Include cpuid.h for x86_64 targets.
	(main): Use __get_cpuid to get x86_64 target fetaures.

2007-08-15  Jack Howarth  <howarth@bromo.med.uc.edu>

	PR target/32765
	* testsuite/libgomp.fortran/pr32550.f90: Use -static-libgcc on Darwin.
	* testsuite/libgomp.fortran/crayptr2.f90: Likwise.

2007-07-12  Jakub Jelinek  <jakub@redhat.com>

	PR fortran/32550
	* testsuite/libgomp.fortran/pr32550.f90: New test.
	* testsuite/libgomp.fortran/crayptr2.f90: New test.

2007-07-05  H.J. Lu  <hongjiu.lu@intel.com>

	* aclocal.m4: Regenerated.

2007-07-05  Tobias Burnus  <burnus@net-b.de>

	PR fortran/32359
	* testsuite/libgomp.fortran/pr32359.f90: New.

2007-07-02  Jakub Jelinek  <jakub@redhat.com>

	PR libgomp/32468
	* sections.c (GOMP_parallel_sections_start): Only decrease
	number of threads to COUNT if dyn_var is true.
	* testsuite/libgomp.c/pr32468.c: New test.

2007-07-02  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>

	PR libgomp/26308
	* config/posix/lock.c (_XOPEN_SOURCE): Don't define on Tru64 UNIX.

2007-06-21  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/32362
	* testsuite/libgomp.c/pr32362-1.c: New test.
	* testsuite/libgomp.c/pr32362-2.c: New test.
	* testsuite/libgomp.c/pr32362-3.c: New test.

2007-06-07  Jakub Jelinek  <jakub@redhat.com>

	* team.c (gomp_team_start): Fix setting up thread_attr
	stack size.

Paolo Bonzini's avatar
Paolo Bonzini committed
2007-06-02  Paolo Bonzini  <bonzini@gnu.org>

	* configure: Regenerate.

2007-05-23  Steve Ellcey  <sje@cup.hp.com>

	* Makefile.in: Regenerate.
	* configure: Regenerate.
	* aclocal.m4: Regenerate.
	* testsuite/Makefile.in: Regenerate.

2007-05-04  Jakub Jelinek  <jakub@redhat.com>

	* config/linux/proc.c: New file.

	PR libgomp/28482
	* configure.tgt: Don't link with -Wl,-z,nodlopen even on Linux.

2007-04-19  Daniel Franke  <franke.daniel@gmail.com>

	* libgomp.texi (GOMP_CPU_AFFINITY): Updated.

2007-04-16  Matthias Klose  <doko@debian.org>

	* configure.tgt (i[456]86-*-linux*): Only add ia32 specific
	flags if not building with -m64.
	* testsuite/lib/libgomp-dg.exp (libgomp_init): Don't add -march
	flag for i?86-*-* targets, if current target matches -m64.

Steve Ellcey's avatar
Steve Ellcey committed
2007-04-14  Steve Ellcey  <sje@cup.hp.com>

	* Makefile.am: Add -I .. to ACLOCAL_AMFLAGS.
	* Makefile.in: Regenerate.

2007-04-07  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>

	PR testsuite/31369
	* testsuite/libgomp.c++/c++.exp: Don't use concat when setting
	ld_library_path.
	* testsuite/libgomp.fortran/fortran.exp: Likewise.

2007-04-04  Jakub Jelinek  <jakub@redhat.com>

	* libgomp.h (gomp_cpu_affinity, gomp_cpu_affinity_len): New extern
	decls.
	(gomp_init_affinity, gomp_init_thread_affinity): New prototypes.
	* env.c (gomp_cpu_affinity, gomp_cpu_affinity_len): New variables.
	(parse_affinity): New function.
	(initialize_env): Call it and gomp_init_affinity.
	* team.c (gomp_team_start): If gomp_cpu_affinity != NULL,
	create new pthread_attr_t and call gomp_init_thread_affinity
	on it for each thread before passing the attribute to pthread_create.
	* config/linux/affinity.c: New file.
	* config/posix/affinity.c: New file.
	* configure.ac (HAVE_PTHREAD_AFFINITY_NP): New test.
	* configure: Rebuilt.
	* config.h.in: Rebuilt.
	* Makefile.am (libgomp_la_SOURCES): Add affinity.c.
	* Makefile.in: Rebuilt.

2007-03-23  Andreas Tobler  <a.tobler@schweiz.org>

	* testsuite/lib/libgomp.exp (libgomp_init): Add -shared-libgcc for
	*-*-darwin*.
	* testsuite/libgomp.c++/c++.exp: Look for shared libstdc++ library
	and use it if found.

Uros Bizjak's avatar
Uros Bizjak committed
2007-03-18  Uros Bizjak  <ubizjak@gmail.com>

	* testsuite/config/default.exp: New file.
	* testsuite/lib/libgomp.exp: New file.
	* testsuite/lib/libgomp.dg (load_gcc_lib, libgomp_init,
	libgomp_target_compile, libgomp_option_help, libgomp_option_proc,
	load_lib *, load_gcc_lib *): Move to libgomp.exp.
	(libgomp_load): Remove.
	* testsuite/lib/libgomp.exp (libgomp_init): Compute
	always_ld_library_path, not ld_library_path.  Set additional_flags
	to -march=i486 for ilp32 x86_64-*-* and i386-*-* targets.
	(target_compile): Do not call libgomp_init.  Append lang_library_path
	and lang_link_flags to options.
	* testsuite/libgomp.c/c.exp: Set DEFAULT_FLAGS to -O2.  Set
	ld_library_path from always_ld_library_path.  Set LD_LIBRARY_PATH
	here.
	* testsuite/libgomp.c++/c++.exp: Set ld_library_path from
	always_ld_library_path.  Set LD_LIBRARY_PATH here.
	* testsuite/libgomp.fortran/fortran.exp: Ditto.
	* testsuite/libgomp.c/atomic-1.c: Set dg-options to
	"-O2 -march=pentium" for ilp32 x86 targets. Simplify check for
	CX8 flag.
	* testsuite/libgomp.c/atomic-2.c: Set dg-options to "-O2 -mcx16" for
	lp64 x86 targets. Do not check for SSE3 bit. Do not define bit_SSE3.
	* testsuite/libgomp.c/pr29947-1.c: Remove default dg-options.
	* testsuite/libgomp.c/pr29947-1.c: Ditto.
	* testsuite/libgomp.c/atomic-10.c: Ditto.

2007-03-21  Jakub Jelinek  <jakub@redhat.com>

	* testsuite/libgomp.fortran/appendix-a/a.22.8.f90: Add
	dg-final cleanup-modules line.
	* testsuite/libgomp.fortran/appendix-a/a.40.1.f90: Likewise.
	* testsuite/libgomp.fortran/appendix-a/a.31.5.f90: Likewise.
	* testsuite/libgomp.fortran/appendix-a/a.31.4.f90: Likewise.
	* testsuite/libgomp.fortran/threadprivate2.f90: Likewise.
	* testsuite/libgomp.fortran/reduction5.f90: Likewise.
	* testsuite/libgomp.fortran/threadprivate3.f90: Likewise.
	* testsuite/libgomp.fortran/threadprivate1.f90: Likewise.

2007-03-18  Andreas Schwab  <schwab@suse.de>

	* acinclude.m4: Adjust regular expression for ld version
	extraction.
	* configure: Regenerate.

2007-03-01  Brooks Moses  <brooks.moses@codesourcery.com>

	* Makefile.am: Add install-pdf target as copied from
	automake v1.10 rules.
	* Makefile.in: Regenerate

2007-02-07  Jakub Jelinek  <jakub@redhat.com>

Jakub Jelinek's avatar
Jakub Jelinek committed
	PR libgomp/28486
	* configure: Regenerate.

	PR c++/30703
	* testsuite/libgomp.c++/pr30703.C: New test.

2007-02-02  Jakub Jelinek  <jakub@redhat.com>

	Revert:
	2006-07-05  Eric Christopher  <echristo@apple.com>
	* configure.ac: Depend addition of -pthread on host OS.
	* configure: Regenerate.

2007-01-31  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>

	* libgomp.texi: Fix spacing after abbreviations.

2007-01-31  Daniel Franke <franke.daniel@gmail.com>

	PR libgomp/30546
	* configure.ac: Add check for makeinfo
	* Makefile.am: Redefined target libgomp.info, build libgomp.info only
	if an appropiate version of makeinfo is found.
	* aclocal.m4: Regenerated.
	* configure: Regenerated.
	* Makefile.in: Regenerated.
	* testsuite/Makefile.in: Regenerated.

2007-01-29  Daniel Franke <franke.daniel@gmail.com>

	PR libgomp/30540
	* libgomp.texi: More about implementation-dependent settings.

2007-01-26  Tobias Burnus  <burnus@net-b.de>

	* testsuite/libgomp.fortran/fortran.exp: Support .f03 extension.

2007-01-24  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/30494
	* testsuite/libgomp.c/pr30494.c: New test.

Tom Tromey's avatar
Tom Tromey committed
2007-01-15  Tom Tromey  <tromey@redhat.com>

	* configure: Rebuilt.
	* configure.ac: Fixed comment.

2007-01-14  Daniel Franke  <franke.daniel@gmail.com>

	* libgomp.texi: Document implementation specific default values of
	environment variables.

2006-12-21  Daniel Franke  <franke.daniel@gmail.com>

	PR libgomp/28209
	* libgomp.texi: New file.
	* configure.ac: Add --enable-generated-files-in-srcdir option.
	* Makefile.am: Add info, dvi, pdf, html targets. On request, copy
	files to srcdir.
	* Makefile.in: Regenerated.
	* config.h.in: Regenerated.
	* testsuite/Makefile.in: Regenerated.
	* NOTES: Removed.

2006-12-04  Daniel Franke  <franke.daniel@gmail.com>

	PR libgomp/29949
	* env.c (omp_set_num_threads): Set illegal thread count to 1.

2006-12-04  Eric Botcazou  <ebotcazou@libertysurf.fr>

	* configure: Regenerate.

2006-12-04  Jakub Jelinek  <jakub@redhat.com>

	PR libgomp/29947
	* loop.c (gomp_loop_init): Make parameters signed.  Set ws->end to
	start if there shouldn't be any loop iterations.
	(gomp_loop_ordered_static_start): Remove start == end test.
	* testsuite/libgomp.c/pr29947-1.c: New test.
	* testsuite/libgomp.c/pr29947-2.c: New test.

2006-12-02  Eric Botcazou  <ebotcazou@libertysurf.fr>

	* configure.tgt: Force initial-exec TLS model on Linux only.

2006-11-13  Daniel Jacobowitz  <dan@codesourcery.com>

	* configure: Regenerated.

2006-11-09  Uros Bizjak  <ubizjak@gmail.com>

	* env.c (parse_schedule): Reject out of range values.
	(parse_unsigned_long): Reject out of range, negative or zero values.

2006-10-29  Jakub Jelinek  <jakub@redhat.com>

	PR fortran/29629
	* testsuite/libgomp.fortran/pr29629.f90: New test.

2006-10-24  Eric Botcazou  <ebotcazou@libertysurf.fr>

	PR libgomp/29494
	* configure.tgt: Use posix95 configuration for Solaris 2.5.1 and 2.6.
	* config/posix95: New directory.
	* config/posix95/omp-lock.h: New file.
	* config/posix95/lock.c: Likewise.

2006-10-14  Geoffrey Keating  <geoffk@apple.com>

	* aclocal.m4: Regenerate.
	* configure: Regenerate.

2006-10-05  Danny Smith  <dannysmith@users.sourceforge.net>

	* testsuite/libgomp.c/barrier-1.c: Change timestamp tests from
	'<' to '<='.

2006-10-05  Danny Smith  <dannysmith@users.sourceforge.net>

	* acinclude.m4 (HAVE_ATTRIBUTE_ALIAS): Remove __USER_LABEL_PREFIX__ from
	test.
	* configure: Regenerate.
	* fortran.c  (ialias_redirect): Add __USER_LABEL_PREFIX__ to alias.

2006-09-26  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/25261
	PR middle-end/28790
	* testsuite/libgomp.c/nestedfn-4.c: New test.
	* testsuite/libgomp.c/nestedfn-5.c: New test.
	* testsuite/libgomp.fortran/nestedfn3.f90: New test.

	PR fortran/29097
	* testsuite/libgomp.fortran/condinc1.f: New test.
	* testsuite/libgomp.fortran/condinc2.f: New test.
	* testsuite/libgomp.fortran/condinc3.f90: New test.
	* testsuite/libgomp.fortran/condinc4.f90: New test.
	* testsuite/libgomp.fortran/condinc1.inc: New file.

2006-09-18  Tom Tromey  <tromey@redhat.com>

	* configure: Rebuilt.

2006-09-13  Joseph S. Myers  <joseph@codesourcery.com>

	PR c/28768
	PR preprocessor/14634
	* configure.ac (HAVE_CLOCK_GETTIME): Add missing second argument
	to AC_DEFINE.
	* configure: Regenerate.

2006-09-08  Steven G. Kargl  <kargl@gcc.gnu.org>

	* testsuite/libgomp.fortran/reduction3.f90: Change
	-2147483648 to -huge(i)-1 to avoid overflow.
	* testsuite/libgomp.fortran/reduction4.f90: Change
	Z'ffffffff' to not(0) to avoid overflow.

2006-08-26  Joseph S. Myers  <joseph@codesourcery.com>

	PR libgomp/25938
	* Makefile.am (libsubincludedir): New.
	(nodist_include_HEADERS): Rename to nodist_libsubinclude_HEADERS.
	* Makefile.in: Regenerate.

2006-08-17  Jakub Jelinek  <jakub@redhat.com>

	PR libgomp/28725
	* env.c: Include ctype.h.
	(parse_schedule, parse_unsigned_long, parse_boolean): Allow
	leading and/or trailing whitespace and compare strings case
	insensitively.

2006-07-16  Jakub Jelinek  <jakub@redhat.com>

	PR fortran/28390
	* testsuite/libgomp.fortran/pr28390.f: New test.

2006-07-05  Eric Christopher  <echristo@apple.com>

	* configure.ac: Depend addition of -pthread on host OS.
	* configure: Regenerate.

2006-06-21  Jakub Jelinek  <jakub@redhat.com>

	* critical.c (GOMP_critical_name_start): Fix *pptr initialization
	when gomp_mutex_t is larger than pointer and HAVE_SYNC_BUILTINS is
	defined.

2006-06-20  Jakub Jelinek  <jakub@redhat.com>

	PR libgomp/26175
	PR libgomp/26477
	* configure.ac: If neither --enable-linux-futex nor
	--disable-linux-futex is passed, determine the default by checking
	for compiling and/or running against NPTL.  With --enable-linux-futex,
	check if SYS_gettid and SYS_futex are defined.
	* configure: Rebuilt.

2006-06-14  Richard Henderson  <rth@redhat.com>

	PR libgomp/28008
	* env.c (initialize_env): Avoid using PTHREAD_STACK_MIN when
	undefined.  Use GOMP_STACKSIZE not OMP_STACKSIZE for environment.

2006-06-09  Richard Henderson  <rth@redhat.com>

	* env.c (gomp_nthreads_var): Change to unsigned long.
	(gomp_run_sched_chunk): Likewise.
	(parse_unsigned_long): Rename from parse_num_threads and generalize.