Fixes are available
XL Fortran for Blue Gene/Q Fix Pack 12 (May 2015 Update) for 14.1
XL Fortran for Blue Gene/Q Fix Pack 14 (May 2016 Update) for 14.1
XL Fortran for Blue Gene/Q Fix Pack 15 (October 2017 Update) for 14.1
XL Fortran for Blue Gene/Q Fix Pack 7 (February 2014 Update) for 14.1
XL Fortran for Blue Gene/Q Fix Pack 8 (May 2014 Update) for 14.1
XL Fortran for Blue Gene/Q Fix Pack 9 (August 2014 Update) for 14.1
XL Fortran for Blue Gene/Q Fix Pack 10 (November 2014 Update) for 14.1
XL Fortran for Blue Gene/Q Fix Pack 11 (February 2015 Update) for 14.1
XL Fortran for Blue Gene/Q Fix Pack 13 (August 2015 Update) for 14.1
APAR status
Closed as program error.
Error description
Incorrect DWARF information is found for threadprivate common block in TLS. Consider the following test case. ===== TESTCASE: $cat tx_omp_f_threadprivate.f90 ! "Parallel Programming in OpenMP" ISBN 1-55860-671-8 ! Copyright 2001 by Academic Press ! Example 4.7 (pp 104-105) with slight modifications program correct integer omp_get_num_threads, omp_get_thread_num integer iarray(100), N, nthreads, iam, chunk, istart, iend common /bounds/ istart, iend !$omp threadprivate(/bounds/) N = 100 !$omp parallel private(nthreads, iam, chunk) ! Compute the subset of iterations executed by each thread nthreads = omp_get_num_threads() iam = omp_get_thread_num() chunk = (N + nthreads - 1)/nthreads istart = iam * chunk + 1 iend = min((iam + 1) * chunk, N) ! print *, nthreads, iam, chunk, istart, iend call work(iarray) !$omp end parallel print * print *, iarray PRINT *, "Hello, World." end subroutine work(iarray) integer iarray(100), istart, iend, i common /bounds/ istart, iend !$omp threadprivate(/bounds/) do i = istart, iend iarray(i) = i * i enddo return end bgxlf90_r -qsmp=omp:noauto:noopt -g -q64 -qnosave tx_omp_f_threadprivate.f90 -o tx_omp_f_threadprivate.bgq readelf --debug-dump=info tx_omp_f_threadprivate.bgq|grep DW_TAG_common_block -A18 The resulted <2><18d>: Abbrev Number: 12 (DW_TAG_common_block) <18e> DW_AT_sibling : 0x0 0x1e2 <196> DW_AT_location : 9 byte block: 3 0 0 0 0 10 1 12 78 (DW_OP_addr: 10011278) <1a0> DW_AT_name : bounds The DWARF DW_AT_location does not reflect the fact that the common block named /bounds/ is in TLS. The members of the common block should be offsets from the beginning of /bounds/, which is in TLS.
Local fix
n/a
Problem summary
PROBLEM DESCRIPTION: The DWARF DW_AT_location does not reflect the fact that the common block member is in TLS. USERS AFFECTED: users who want to debug with -qsmp option
Problem conclusion
Added the correct location attribute to the dwarf info and the issue was fixed
Temporary fix
Comments
APAR Information
APAR number
LI77683
Reported component name
XL FORTRAN FOR
Reported component ID
5799AH100
Reported release
E10
Status
CLOSED PER
PE
NoPE
HIPER
NoHIPER
Special Attention
NoSpecatt
Submitted date
2013-11-26
Closed date
2014-02-18
Last modified date
2014-02-19
APAR is sysrouted FROM one or more of the following:
APAR is sysrouted TO one or more of the following:
Fix information
Fixed component name
XL FORTRAN FOR
Fixed component ID
5799AH100
Applicable component levels
RE10 PSY
UP
Document Information
Modified date:
19 February 2014